[latex3-commits] [git/LaTeX3-latex3-latex3] l3text: Add tests for \text_titlecase_first:n (0ca6a4522)

Joseph Wright joseph.wright at morningstar2.co.uk
Sat Dec 7 21:11:18 CET 2019


Repository : https://github.com/latex3/latex3
On branch  : l3text
Link       : https://github.com/latex3/latex3/commit/0ca6a45228f756fbdc5a3c97a1c85335baddf00e

>---------------------------------------------------------------

commit 0ca6a45228f756fbdc5a3c97a1c85335baddf00e
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Sat Dec 7 20:11:18 2019 +0000

    Add tests for \text_titlecase_first:n


>---------------------------------------------------------------

0ca6a45228f756fbdc5a3c97a1c85335baddf00e
 l3kernel/testfiles/m3text002.luatex.tlg | 75 ++++++++++++++++++++++++++-------
 l3kernel/testfiles/m3text002.lvt        | 43 +++++++++++++++----
 l3kernel/testfiles/m3text002.ptex.tlg   | 27 +++++++++++-
 l3kernel/testfiles/m3text002.tlg        | 74 +++++++++++++++++++++++++-------
 l3kernel/testfiles/m3text002.uptex.tlg  | 75 ++++++++++++++++++++++++++-------
 l3kernel/testfiles/m3text002.xetex.tlg  | 74 +++++++++++++++++++++++++-------
 6 files changed, 294 insertions(+), 74 deletions(-)

diff --git a/l3kernel/testfiles/m3text002.luatex.tlg b/l3kernel/testfiles/m3text002.luatex.tlg
index d9ac41f25..a68c2da57 100644
--- a/l3kernel/testfiles/m3text002.luatex.tlg
+++ b/l3kernel/testfiles/m3text002.luatex.tlg
@@ -7,6 +7,7 @@ TEST 1: Basic case changing
 hello world \par with \ERROR &##
 HELLO WORLD \par WITH \ERROR &##
 Hello world \par with \ERROR &##
+Hello world \par with \ERROR &##
 ============================================================
 ============================================================
 TEST 2: Case changes in braces
@@ -14,16 +15,25 @@ TEST 2: Case changes in braces
 {hello} world \par with \ERROR &##
 {HELLO} WORLD \par WITH \ERROR &##
 {Hello} world \par with \ERROR &##
+{Hello} world \par with \ERROR &##
 ============================================================
 ============================================================
 TEST 3: Titlecase basics
 ============================================================
 Hello world
 Hello world
+Hello world
+HELLO WORLD
+" Hello world"
 " Hello world"
 " Hello world"
+" HELLO WORLD"
 {H}ello world
 {H}ello world
+{H}ello world
+{H}ELLO WORLD
+{}helloworld
+{}helloworld
 {}helloworld
 {}helloworld
 ============================================================
@@ -31,35 +41,52 @@ Hello world
 TEST 4: Titlecase skipping chars
 ============================================================
 `Hic sunt leones'
+`Hic sunt leones'
 ``Hic sunt leones''
+``Hic sunt leones''
+([Hic sunt leones])
 ([Hic sunt leones])
 ============================================================
 ============================================================
-TEST 5: Language based case changing but nothing
+TEST 5: Titlecase first
+============================================================
+`Hic sunt leones'
+`Hic SUNT leones'
+`Hic sunt leones'
+`HIC SUNT leones'
+E pluribus unum
+E PLURIBUS UNUM
+============================================================
+============================================================
+TEST 6: Language based case changing but nothing
 ============================================================
 no problems
 NO PROBLEMS
 No problems
+No problems
 no problems
 NO PROBLEMS
 No problems
+No problems
 ============================================================
 ============================================================
-TEST 6: Unicode case changing
+TEST 7: Unicode case changing
 ============================================================
 ^^e5^^e9^^ee^^f8ὥдαɛ
 ^^c5^^c9^^ce^^d8ὭДΑƐ
 ^^c5^^e9^^ee^^f8ὥдαɛ
+^^c5^^e9^^ee^^f8ὭдαƐ
 ============================================================
 ============================================================
-TEST 7: Unicode case changing exceptions
+TEST 8: Unicode case changing exceptions
 ============================================================
 fu^^dfball
 FUSSBALL
 Fu^^dfball
+Fu^^dfball
 ============================================================
 ============================================================
-TEST 8: The final sigma rule
+TEST 9: The final sigma rule
 ============================================================
 ὀδυσσεύς (ὀδυσσεύς) ὀδυσσεύς, ὀδυσσεύς{} 
 ὀδυσσεύς\noop 
@@ -67,18 +94,21 @@ TEST 8: The final sigma rule
 ὈΔΥΣΣΕΎΣ\noop 
 Ὀδυσσεύς (ὀδυσσεύς) ὀδυσσεύς, ὀδυσσεύς{} 
 ὀδυσσεύς\noop 
+ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} 
+ὈΔΥΣΣΕΎΣ\noop 
 ὀδυσσεύς
 ὈΔΥΣΣΕΎΣ
 Ὀδυσσεύς
+ὈΔΥΣΣΕΎΣ
 ============================================================
 ============================================================
-TEST 9: German-alternative
+TEST 10: German-alternative
 ============================================================
 FUSSBALL
 FUẞBALL
 ============================================================
 ============================================================
-TEST 10: Greek
+TEST 11: Greek
 ============================================================
 ὈΔΥΣΣΕΎΣ
 ΟΔΥΣΣΕΥΣ
@@ -86,7 +116,7 @@ TEST 10: Greek
 Ὀδυσσεύς
 ============================================================
 ============================================================
-TEST 11: Turkish/Azeri
+TEST 12: Turkish/Azeri
 ============================================================
 ragıp hul^^fbsi ^^f6zdem
 ragip hul^^fbsi̇ ^^f6zdem
@@ -98,7 +128,7 @@ Ip hul^^fbsi ^^f6zdem
 Ip hul^^fbsi ^^f6zdem
 ============================================================
 ============================================================
-TEST 12: Lithuanian
+TEST 13: Lithuanian
 ============================================================
 i̇̀i̇́i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
 ^^ec^^edĩìíĩj̀j́j̃į̀į́į̃
@@ -110,7 +140,7 @@ Ìi̇̀i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
 İ̀i̇̀i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
 ============================================================
 ============================================================
-TEST 13: Dutch
+TEST 14: Dutch
 ============================================================
 ijsselmeer
 ijsselmeer
@@ -126,58 +156,69 @@ Im
 Im
 ============================================================
 ============================================================
-TEST 14: Titlecase exceptions
+TEST 15: Titlecase exceptions
 ============================================================
 Ssoo
 Dž!
 ============================================================
 ============================================================
-TEST 15: Case changing braced arguments
+TEST 16: Case changing braced arguments
 ============================================================
 foo \emph {BAR} {baz}
 FOO \emph {BAR} {BAZ}
 Foo \emph {BAR} {baz}
+FOO \emph {BAR} {BAZ}
 \emph {BAR} {baz}
 \emph {BAR} {BAZ}
 \emph {BAR} {Baz}
+\emph {BAR} {BAZ}
 ============================================================
 ============================================================
-TEST 16: Expanding content
+TEST 17: Expanding content
 ============================================================
 some text hello
 SOME TEXT HELLO
 Some text hello
+Some text Hello
 hello sometext
 HELLO SOMETEXT
 Hello sometext
+Hello sometext
 some text hello
 SOME TEXT HELLO
 Some text hello
+Some text Hello
 hello sometext
 HELLO SOMETEXT
 Hello sometext
+Hello sometext
 some text \cs_tmp:w 
 SOME TEXT \cs_tmp:w 
 Some text \cs_tmp:w 
+Some text \cs_tmp:w 
 \cs_tmp:w  sometext
 \cs_tmp:w  SOMETEXT
 \cs_tmp:w  Sometext
+\cs_tmp:w  Sometext
 ============================================================
 ============================================================
-TEST 17: Math-mode escape
+TEST 18: Math-mode escape
 ============================================================
 some text $y = mx + c$
 SOME TEXT $y = mx + c$
 Some text $y = mx + c$
+Some text $y = mx + c$
 $y = mx + c$ text
 $y = mx + c$ TEXT
 $y = mx + c$ Text
+$y = mx + c$ Text
 opps not close token in $y = mx + c
 OPPS NOT CLOSE TOKEN IN $y = mx + c
 Opps not close token in $y = mx + c
+Opps not close token in $y = mx + c
 ============================================================
 ============================================================
-TEST 18: Nesting
+TEST 19: Nesting
 ============================================================
 HELLO
 hello
@@ -185,16 +226,18 @@ FUSSBALL
 ὈΔΥΣΣΕΎΣ
 ============================================================
 ============================================================
-TEST 19: Letter-like commands
+TEST 20: Letter-like commands
 ============================================================
 \aa \aa \J \ae \dh \ss \l \o 
 \AA \AA \J \AE \DH \SS \L \O 
 \AA \aa \J \ae \dh \ss \l \o 
+\AA \aa \J \ae \dh \ss \l \O 
 ============================================================
 ============================================================
-TEST 20: Accents
+TEST 21: Accents
 ============================================================
 \"{a}\u {e}\H {i}\v {o}\.{u}
 \"{A}\u {E}\H {I}\v {O}\.{U}
 \"{A}\u {e}\H {i}\v {o}\.{u}
+\"{A}\u {e}\H {i}\v {o}\.{u}
 ============================================================
diff --git a/l3kernel/testfiles/m3text002.lvt b/l3kernel/testfiles/m3text002.lvt
index db4f1974e..398cde198 100644
--- a/l3kernel/testfiles/m3text002.lvt
+++ b/l3kernel/testfiles/m3text002.lvt
@@ -20,6 +20,8 @@
       \text_uppercase:n {#1}
       \NEWLINE
       \text_titlecase:n {#1}
+      \NEWLINE
+      \text_titlecase_first:n {#1}
     }
   \cs_set:Npn \test:nn #1#2
     {
@@ -28,6 +30,8 @@
       \text_uppercase:nn {#1} {#2}
       \NEWLINE
       \text_titlecase:nn {#1} {#2}
+      \NEWLINE
+      \text_titlecase_first:nn {#1} {#2}
     }
 \TIMO
 
@@ -41,33 +45,54 @@
     \test:n { {Hello}~world~\par with~\ERROR & # }
   }
 
+\OMIT
+  \cs_set:Npn \testii:n #1
+    {
+      \text_titlecase:n {#1}
+      \NEWLINE
+      \text_titlecase_first:n {#1}
+    }
+\TIMO
+
 \TESTEXP { Titlecase~basics }
   {
-    \text_titlecase:n { hello~world }
+    \testii:n { hello~world }
     \NEWLINE
-    \text_titlecase:n { HELLO~WORLD }
+    \testii:n { HELLO~WORLD }
     \NEWLINE
     "\text_titlecase:n { ~hello~world }"
     \NEWLINE
+    "\text_titlecase_first:n { ~hello~world }"
+    \NEWLINE
     "\text_titlecase:n { ~HELLO~WORLD }"
     \NEWLINE
-    \text_titlecase:n { {h}ello~world }
+    "\text_titlecase_first:n { ~HELLO~WORLD }"
     \NEWLINE
-    \text_titlecase:n { {H}ELLO~WORLD }
+    \testii:n { {h}ello~world }
     \NEWLINE
-    \text_titlecase:n { { } hello world }
+    \testii:n { {H}ELLO~WORLD }
     \NEWLINE
-    \text_titlecase:n { { \prg_do_nothing: } hello world }
+    \testii:n { { } hello world }
+    \NEWLINE
+    \testii:n { { \prg_do_nothing: } hello world }
   }
 
 \TESTEXP { Titlecase~skipping~chars }
   {
-    \text_titlecase:n { `hic~sunt~leones' }
+    \testii:n { `hic~sunt~leones' }
+    \NEWLINE
+    \testii:n { ``hic~sunt~leones'' }
     \NEWLINE
-    \text_titlecase:n { ``hic~sunt~leones'' }
+    \testii:n { ([hic~sunt~leones]) }
+  }
+
+\TESTEXP { Titlecase~first }
+  {
+    \testii:n { `hic~SUNT~leones' }
     \NEWLINE
-    \text_titlecase:n { ([hic~sunt~leones]) }
+    \testii:n { `HIC~SUNT~leones' }
     \NEWLINE
+    \testii:n { E~PLURIBUS~UNUM }
   }
 
 \TESTEXP { Language~based~case~changing~but~nothing }
diff --git a/l3kernel/testfiles/m3text002.ptex.tlg b/l3kernel/testfiles/m3text002.ptex.tlg
index 19096aa9b..a29c50703 100644
--- a/l3kernel/testfiles/m3text002.ptex.tlg
+++ b/l3kernel/testfiles/m3text002.ptex.tlg
@@ -7,6 +7,7 @@ TEST 1: Basic case changing
 hello world \par with \ERROR &##
 HELLO WORLD \par WITH \ERROR &##
 Hello world \par with \ERROR &##
+Hello world \par with \ERROR &##
 ============================================================
 ============================================================
 TEST 2: Case changes in braces
@@ -14,16 +15,25 @@ TEST 2: Case changes in braces
 {hello} world \par with \ERROR &##
 {HELLO} WORLD \par WITH \ERROR &##
 {Hello} world \par with \ERROR &##
+{Hello} world \par with \ERROR &##
 ============================================================
 ============================================================
 TEST 3: Titlecase basics
 ============================================================
 Hello world
 Hello world
+Hello world
+HELLO WORLD
 " Hello world"
 " Hello world"
+" Hello world"
+" HELLO WORLD"
+{H}ello world
 {H}ello world
 {H}ello world
+{H}ELLO WORLD
+{}helloworld
+{}helloworld
 {}helloworld
 {}helloworld
 ============================================================
@@ -31,16 +41,31 @@ Hello world
 TEST 4: Titlecase skipping chars
 ============================================================
 `Hic sunt leones'
+`Hic sunt leones'
+``Hic sunt leones''
 ``Hic sunt leones''
 ([Hic sunt leones])
+([Hic sunt leones])
+============================================================
+============================================================
+TEST 5: Titlecase first
+============================================================
+`Hic sunt leones'
+`Hic SUNT leones'
+`Hic sunt leones'
+`HIC SUNT leones'
+E pluribus unum
+E PLURIBUS UNUM
 ============================================================
 ============================================================
-TEST 5: Language based case changing but nothing
+TEST 6: Language based case changing but nothing
 ============================================================
 no problems
 NO PROBLEMS
 No problems
+No problems
 no problems
 NO PROBLEMS
 No problems
+No problems
 ============================================================
diff --git a/l3kernel/testfiles/m3text002.tlg b/l3kernel/testfiles/m3text002.tlg
index 51b7e5f0d..b312e8a7f 100644
--- a/l3kernel/testfiles/m3text002.tlg
+++ b/l3kernel/testfiles/m3text002.tlg
@@ -7,6 +7,7 @@ TEST 1: Basic case changing
 hello world \par with \ERROR &##
 HELLO WORLD \par WITH \ERROR &##
 Hello world \par with \ERROR &##
+Hello world \par with \ERROR &##
 ============================================================
 ============================================================
 TEST 2: Case changes in braces
@@ -14,16 +15,25 @@ TEST 2: Case changes in braces
 {hello} world \par with \ERROR &##
 {HELLO} WORLD \par WITH \ERROR &##
 {Hello} world \par with \ERROR &##
+{Hello} world \par with \ERROR &##
 ============================================================
 ============================================================
 TEST 3: Titlecase basics
 ============================================================
 Hello world
 Hello world
+Hello world
+HELLO WORLD
+" Hello world"
 " Hello world"
 " Hello world"
+" HELLO WORLD"
 {H}ello world
 {H}ello world
+{H}ello world
+{H}ELLO WORLD
+{}helloworld
+{}helloworld
 {}helloworld
 {}helloworld
 ============================================================
@@ -31,51 +41,70 @@ Hello world
 TEST 4: Titlecase skipping chars
 ============================================================
 `Hic sunt leones'
+`Hic sunt leones'
 ``Hic sunt leones''
+``Hic sunt leones''
+([Hic sunt leones])
 ([Hic sunt leones])
 ============================================================
 ============================================================
-TEST 5: Language based case changing but nothing
+TEST 5: Titlecase first
+============================================================
+`Hic sunt leones'
+`Hic SUNT leones'
+`Hic sunt leones'
+`HIC SUNT leones'
+E pluribus unum
+E PLURIBUS UNUM
+============================================================
+============================================================
+TEST 6: Language based case changing but nothing
 ============================================================
 no problems
 NO PROBLEMS
 No problems
+No problems
 no problems
 NO PROBLEMS
 No problems
+No problems
 ============================================================
 ============================================================
-TEST 6: Unicode case changing
+TEST 7: Unicode case changing
 ============================================================
 ^^c3^^a5^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^ad^^d0^^b4^^ce^^b1^^c6^^90
 ^^c3^^85^^c3^^89^^c3^^8e^^c3^^98^^e1^^bd^^ad^^d0^^b4^^ce^^b1^^c6^^90
 ^^c3^^85^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^ad^^d0^^b4^^ce^^b1^^c6^^90
+^^c3^^85^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^ad^^d0^^b4^^ce^^b1^^c6^^90
 ============================================================
 ============================================================
-TEST 7: Unicode case changing exceptions
+TEST 8: Unicode case changing exceptions
 ============================================================
 fu^^c3^^9fball
 FUSSBALL
 Fu^^c3^^9fball
+Fu^^c3^^9fball
 ============================================================
 ============================================================
-TEST 8: The final sigma rule
+TEST 9: The final sigma rule
 ============================================================
 ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3 (^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3) ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3, ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3{} ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3\noop 
 ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3 (^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3) ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3, ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3{} ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3\noop 
 ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3 (^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3) ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3, ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3{} ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3\noop 
+^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3 (^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3) ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3, ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3{} ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3\noop 
+^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3
 ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3
 ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3
 ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3
 ============================================================
 ============================================================
-TEST 9: German-alternative
+TEST 10: German-alternative
 ============================================================
 FUSSBALL
 FUSSBALL
 ============================================================
 ============================================================
-TEST 10: Greek
+TEST 11: Greek
 ============================================================
 ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3
 ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3
@@ -83,7 +112,7 @@ TEST 10: Greek
 ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3
 ============================================================
 ============================================================
-TEST 11: Turkish/Azeri
+TEST 12: Turkish/Azeri
 ============================================================
 rag^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
 ragip hul^^c3^^bbs^^c4^^b0 ^^c3^^b6zdem
@@ -95,7 +124,7 @@ Rag^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
 ^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
 ============================================================
 ============================================================
-TEST 12: Lithuanian
+TEST 13: Lithuanian
 ============================================================
 ^^c3^^ac^^c3^^ad^^c4^^a9
 ^^c3^^ac^^c3^^ad^^c4^^a9
@@ -103,7 +132,7 @@ TEST 12: Lithuanian
 ^^c3^^8c^^c3^^ad^^c4^^a9
 ============================================================
 ============================================================
-TEST 13: Dutch
+TEST 14: Dutch
 ============================================================
 ijsselmeer
 ijsselmeer
@@ -119,58 +148,69 @@ Im
 Im
 ============================================================
 ============================================================
-TEST 14: Titlecase exceptions
+TEST 15: Titlecase exceptions
 ============================================================
 Ssoo
 ^^c7^^85!
 ============================================================
 ============================================================
-TEST 15: Case changing braced arguments
+TEST 16: Case changing braced arguments
 ============================================================
 foo \emph {BAR} {baz}
 FOO \emph {BAR} {BAZ}
 Foo \emph {BAR} {baz}
+FOO \emph {BAR} {BAZ}
 \emph {BAR} {baz}
 \emph {BAR} {BAZ}
 \emph {BAR} {Baz}
+\emph {BAR} {BAZ}
 ============================================================
 ============================================================
-TEST 16: Expanding content
+TEST 17: Expanding content
 ============================================================
 some text hello
 SOME TEXT HELLO
 Some text hello
+Some text Hello
 hello sometext
 HELLO SOMETEXT
 Hello sometext
+Hello sometext
 some text hello
 SOME TEXT HELLO
 Some text hello
+Some text Hello
 hello sometext
 HELLO SOMETEXT
 Hello sometext
+Hello sometext
 some text \cs_tmp:w 
 SOME TEXT \cs_tmp:w 
 Some text \cs_tmp:w 
+Some text \cs_tmp:w 
 \cs_tmp:w  sometext
 \cs_tmp:w  SOMETEXT
 \cs_tmp:w  Sometext
+\cs_tmp:w  Sometext
 ============================================================
 ============================================================
-TEST 17: Math-mode escape
+TEST 18: Math-mode escape
 ============================================================
 some text $y = mx + c$
 SOME TEXT $y = mx + c$
 Some text $y = mx + c$
+Some text $y = mx + c$
 $y = mx + c$ text
 $y = mx + c$ TEXT
 $y = mx + c$ Text
+$y = mx + c$ Text
 opps not close token in $y = mx + c
 OPPS NOT CLOSE TOKEN IN $y = mx + c
 Opps not close token in $y = mx + c
+Opps not close token in $y = mx + c
 ============================================================
 ============================================================
-TEST 18: Nesting
+TEST 19: Nesting
 ============================================================
 HELLO
 hello
@@ -178,16 +218,18 @@ FUSSBALL
 ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3
 ============================================================
 ============================================================
-TEST 19: Letter-like commands
+TEST 20: Letter-like commands
 ============================================================
 \aa \aa \J \ae \dh \ss \l \o 
 \AA \AA \J \AE \DH \SS \L \O 
 \AA \aa \J \ae \dh \ss \l \o 
+\AA \aa \J \ae \dh \ss \l \O 
 ============================================================
 ============================================================
-TEST 20: Accents
+TEST 21: Accents
 ============================================================
 \"{a}\u {e}\H {i}\v {o}\.{u}
 \"{A}\u {E}\H {I}\v {O}\.{U}
 \"{A}\u {e}\H {i}\v {o}\.{u}
+\"{A}\u {e}\H {i}\v {o}\.{u}
 ============================================================
diff --git a/l3kernel/testfiles/m3text002.uptex.tlg b/l3kernel/testfiles/m3text002.uptex.tlg
index 99d9b4a90..6a268d674 100644
--- a/l3kernel/testfiles/m3text002.uptex.tlg
+++ b/l3kernel/testfiles/m3text002.uptex.tlg
@@ -7,6 +7,7 @@ TEST 1: Basic case changing
 hello world \par with \ERROR &##
 HELLO WORLD \par WITH \ERROR &##
 Hello world \par with \ERROR &##
+Hello world \par with \ERROR &##
 ============================================================
 ============================================================
 TEST 2: Case changes in braces
@@ -14,16 +15,25 @@ TEST 2: Case changes in braces
 {hello} world \par with \ERROR &##
 {HELLO} WORLD \par WITH \ERROR &##
 {Hello} world \par with \ERROR &##
+{Hello} world \par with \ERROR &##
 ============================================================
 ============================================================
 TEST 3: Titlecase basics
 ============================================================
 Hello world
 Hello world
+Hello world
+HELLO WORLD
+" Hello world"
 " Hello world"
 " Hello world"
+" HELLO WORLD"
 {H}ello world
 {H}ello world
+{H}ello world
+{H}ELLO WORLD
+{}helloworld
+{}helloworld
 {}helloworld
 {}helloworld
 ============================================================
@@ -31,35 +41,52 @@ Hello world
 TEST 4: Titlecase skipping chars
 ============================================================
 `Hic sunt leones'
+`Hic sunt leones'
 ``Hic sunt leones''
+``Hic sunt leones''
+([Hic sunt leones])
 ([Hic sunt leones])
 ============================================================
 ============================================================
-TEST 5: Language based case changing but nothing
+TEST 5: Titlecase first
+============================================================
+`Hic sunt leones'
+`Hic SUNT leones'
+`Hic sunt leones'
+`HIC SUNT leones'
+E pluribus unum
+E PLURIBUS UNUM
+============================================================
+============================================================
+TEST 6: Language based case changing but nothing
 ============================================================
 no problems
 NO PROBLEMS
 No problems
+No problems
 no problems
 NO PROBLEMS
 No problems
+No problems
 ============================================================
 ============================================================
-TEST 6: Unicode case changing
+TEST 7: Unicode case changing
 ============================================================
 ^^e5^^e9^^ee^^f8ὭдαƐ
 ^^c5^^c9^^ce^^d8ὭдαƐ
 ^^c5^^e9^^ee^^f8ὭдαƐ
+^^c5^^e9^^ee^^f8ὭдαƐ
 ============================================================
 ============================================================
-TEST 7: Unicode case changing exceptions
+TEST 8: Unicode case changing exceptions
 ============================================================
 fu^^dfball
 FUSSBALL
 Fu^^dfball
+Fu^^dfball
 ============================================================
 ============================================================
-TEST 8: The final sigma rule
+TEST 9: The final sigma rule
 ============================================================
 ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} 
 ὈΔΥΣΣΕΎΣ\noop 
@@ -67,18 +94,21 @@ TEST 8: The final sigma rule
 ὈΔΥΣΣΕΎΣ\noop 
 ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} 
 ὈΔΥΣΣΕΎΣ\noop 
+ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} 
+ὈΔΥΣΣΕΎΣ\noop 
+ὈΔΥΣΣΕΎΣ
 ὈΔΥΣΣΕΎΣ
 ὈΔΥΣΣΕΎΣ
 ὈΔΥΣΣΕΎΣ
 ============================================================
 ============================================================
-TEST 9: German-alternative
+TEST 10: German-alternative
 ============================================================
 FUSSBALL
 FUSSBALL
 ============================================================
 ============================================================
-TEST 10: Greek
+TEST 11: Greek
 ============================================================
 ὈΔΥΣΣΕΎΣ
 ὈΔΥΣΣΕΎΣ
@@ -86,7 +116,7 @@ TEST 10: Greek
 ὈΔΥΣΣΕΎΣ
 ============================================================
 ============================================================
-TEST 11: Turkish/Azeri
+TEST 12: Turkish/Azeri
 ============================================================
 ragıp hul^^fbsi ^^f6zdem
 ragip hul^^fbsİ ^^f6zdem
@@ -98,7 +128,7 @@ Ragıp hul^^fbsi ^^f6zdem
 ıp hul^^fbsi ^^f6zdem
 ============================================================
 ============================================================
-TEST 12: Lithuanian
+TEST 13: Lithuanian
 ============================================================
 ^^ec^^edĩ
 ^^ec^^edĩ
@@ -106,7 +136,7 @@ TEST 12: Lithuanian
 ^^cc^^edĩ
 ============================================================
 ============================================================
-TEST 13: Dutch
+TEST 14: Dutch
 ============================================================
 ijsselmeer
 ijsselmeer
@@ -122,58 +152,69 @@ Im
 Im
 ============================================================
 ============================================================
-TEST 14: Titlecase exceptions
+TEST 15: Titlecase exceptions
 ============================================================
 Ssoo
 Dž!
 ============================================================
 ============================================================
-TEST 15: Case changing braced arguments
+TEST 16: Case changing braced arguments
 ============================================================
 foo \emph {BAR} {baz}
 FOO \emph {BAR} {BAZ}
 Foo \emph {BAR} {baz}
+FOO \emph {BAR} {BAZ}
 \emph {BAR} {baz}
 \emph {BAR} {BAZ}
 \emph {BAR} {Baz}
+\emph {BAR} {BAZ}
 ============================================================
 ============================================================
-TEST 16: Expanding content
+TEST 17: Expanding content
 ============================================================
 some text hello
 SOME TEXT HELLO
 Some text hello
+Some text Hello
 hello sometext
 HELLO SOMETEXT
 Hello sometext
+Hello sometext
 some text hello
 SOME TEXT HELLO
 Some text hello
+Some text Hello
 hello sometext
 HELLO SOMETEXT
 Hello sometext
+Hello sometext
 some text \cs_tmp:w 
 SOME TEXT \cs_tmp:w 
 Some text \cs_tmp:w 
+Some text \cs_tmp:w 
 \cs_tmp:w  sometext
 \cs_tmp:w  SOMETEXT
 \cs_tmp:w  Sometext
+\cs_tmp:w  Sometext
 ============================================================
 ============================================================
-TEST 17: Math-mode escape
+TEST 18: Math-mode escape
 ============================================================
 some text $y = mx + c$
 SOME TEXT $y = mx + c$
 Some text $y = mx + c$
+Some text $y = mx + c$
 $y = mx + c$ text
 $y = mx + c$ TEXT
 $y = mx + c$ Text
+$y = mx + c$ Text
 opps not close token in $y = mx + c
 OPPS NOT CLOSE TOKEN IN $y = mx + c
 Opps not close token in $y = mx + c
+Opps not close token in $y = mx + c
 ============================================================
 ============================================================
-TEST 18: Nesting
+TEST 19: Nesting
 ============================================================
 HELLO
 hello
@@ -181,16 +222,18 @@ FUSSBALL
 ὈΔΥΣΣΕΎΣ
 ============================================================
 ============================================================
-TEST 19: Letter-like commands
+TEST 20: Letter-like commands
 ============================================================
 \aa \aa \J \ae \dh \ss \l \o 
 \AA \AA \J \AE \DH \SS \L \O 
 \AA \aa \J \ae \dh \ss \l \o 
+\AA \aa \J \ae \dh \ss \l \O 
 ============================================================
 ============================================================
-TEST 20: Accents
+TEST 21: Accents
 ============================================================
 \"{a}\u {e}\H {i}\v {o}\.{u}
 \"{A}\u {E}\H {I}\v {O}\.{U}
 \"{A}\u {e}\H {i}\v {o}\.{u}
+\"{A}\u {e}\H {i}\v {o}\.{u}
 ============================================================
diff --git a/l3kernel/testfiles/m3text002.xetex.tlg b/l3kernel/testfiles/m3text002.xetex.tlg
index f84a9adbf..742aa2309 100644
--- a/l3kernel/testfiles/m3text002.xetex.tlg
+++ b/l3kernel/testfiles/m3text002.xetex.tlg
@@ -7,6 +7,7 @@ TEST 1: Basic case changing
 hello world \par with \ERROR &##
 HELLO WORLD \par WITH \ERROR &##
 Hello world \par with \ERROR &##
+Hello world \par with \ERROR &##
 ============================================================
 ============================================================
 TEST 2: Case changes in braces
@@ -14,16 +15,25 @@ TEST 2: Case changes in braces
 {hello} world \par with \ERROR &##
 {HELLO} WORLD \par WITH \ERROR &##
 {Hello} world \par with \ERROR &##
+{Hello} world \par with \ERROR &##
 ============================================================
 ============================================================
 TEST 3: Titlecase basics
 ============================================================
 Hello world
 Hello world
+Hello world
+HELLO WORLD
+" Hello world"
 " Hello world"
 " Hello world"
+" HELLO WORLD"
 {H}ello world
 {H}ello world
+{H}ello world
+{H}ELLO WORLD
+{}helloworld
+{}helloworld
 {}helloworld
 {}helloworld
 ============================================================
@@ -31,51 +41,70 @@ Hello world
 TEST 4: Titlecase skipping chars
 ============================================================
 `Hic sunt leones'
+`Hic sunt leones'
 ``Hic sunt leones''
+``Hic sunt leones''
+([Hic sunt leones])
 ([Hic sunt leones])
 ============================================================
 ============================================================
-TEST 5: Language based case changing but nothing
+TEST 5: Titlecase first
+============================================================
+`Hic sunt leones'
+`Hic SUNT leones'
+`Hic sunt leones'
+`HIC SUNT leones'
+E pluribus unum
+E PLURIBUS UNUM
+============================================================
+============================================================
+TEST 6: Language based case changing but nothing
 ============================================================
 no problems
 NO PROBLEMS
 No problems
+No problems
 no problems
 NO PROBLEMS
 No problems
+No problems
 ============================================================
 ============================================================
-TEST 6: Unicode case changing
+TEST 7: Unicode case changing
 ============================================================
 ^^e5^^e9^^ee^^f8ὥдαɛ
 ^^c5^^c9^^ce^^d8ὭДΑƐ
 ^^c5^^e9^^ee^^f8ὥдαɛ
+^^c5^^e9^^ee^^f8ὭдαƐ
 ============================================================
 ============================================================
-TEST 7: Unicode case changing exceptions
+TEST 8: Unicode case changing exceptions
 ============================================================
 fu^^dfball
 FUSSBALL
 Fu^^dfball
+Fu^^dfball
 ============================================================
 ============================================================
-TEST 8: The final sigma rule
+TEST 9: The final sigma rule
 ============================================================
 ὀδυσσεύς (ὀδυσσεύς) ὀδυσσεύς, ὀδυσσεύς{} ὀδυσσεύς\noop 
 ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop 
 Ὀδυσσεύς (ὀδυσσεύς) ὀδυσσεύς, ὀδυσσεύς{} ὀδυσσεύς\noop 
+ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop 
 ὀδυσσεύς
 ὈΔΥΣΣΕΎΣ
 Ὀδυσσεύς
+ὈΔΥΣΣΕΎΣ
 ============================================================
 ============================================================
-TEST 9: German-alternative
+TEST 10: German-alternative
 ============================================================
 FUSSBALL
 FUẞBALL
 ============================================================
 ============================================================
-TEST 10: Greek
+TEST 11: Greek
 ============================================================
 ὈΔΥΣΣΕΎΣ
 ΟΔΥΣΣΕΥΣ
@@ -83,7 +112,7 @@ TEST 10: Greek
 Ὀδυσσεύς
 ============================================================
 ============================================================
-TEST 11: Turkish/Azeri
+TEST 12: Turkish/Azeri
 ============================================================
 ragıp hul^^fbsi ^^f6zdem
 ragip hul^^fbsi̇ ^^f6zdem
@@ -95,7 +124,7 @@ Ip hul^^fbsi ^^f6zdem
 Ip hul^^fbsi ^^f6zdem
 ============================================================
 ============================================================
-TEST 12: Lithuanian
+TEST 13: Lithuanian
 ============================================================
 i̇̀i̇́i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
 ^^ec^^edĩìíĩj̀j́j̃į̀į́į̃
@@ -107,7 +136,7 @@ Ìi̇̀i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
 İ̀i̇̀i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
 ============================================================
 ============================================================
-TEST 13: Dutch
+TEST 14: Dutch
 ============================================================
 ijsselmeer
 ijsselmeer
@@ -123,58 +152,69 @@ Im
 Im
 ============================================================
 ============================================================
-TEST 14: Titlecase exceptions
+TEST 15: Titlecase exceptions
 ============================================================
 Ssoo
 Dž!
 ============================================================
 ============================================================
-TEST 15: Case changing braced arguments
+TEST 16: Case changing braced arguments
 ============================================================
 foo \emph {BAR} {baz}
 FOO \emph {BAR} {BAZ}
 Foo \emph {BAR} {baz}
+FOO \emph {BAR} {BAZ}
 \emph {BAR} {baz}
 \emph {BAR} {BAZ}
 \emph {BAR} {Baz}
+\emph {BAR} {BAZ}
 ============================================================
 ============================================================
-TEST 16: Expanding content
+TEST 17: Expanding content
 ============================================================
 some text hello
 SOME TEXT HELLO
 Some text hello
+Some text Hello
 hello sometext
 HELLO SOMETEXT
 Hello sometext
+Hello sometext
 some text hello
 SOME TEXT HELLO
 Some text hello
+Some text Hello
 hello sometext
 HELLO SOMETEXT
 Hello sometext
+Hello sometext
 some text \cs_tmp:w 
 SOME TEXT \cs_tmp:w 
 Some text \cs_tmp:w 
+Some text \cs_tmp:w 
 \cs_tmp:w  sometext
 \cs_tmp:w  SOMETEXT
 \cs_tmp:w  Sometext
+\cs_tmp:w  Sometext
 ============================================================
 ============================================================
-TEST 17: Math-mode escape
+TEST 18: Math-mode escape
 ============================================================
 some text $y = mx + c$
 SOME TEXT $y = mx + c$
 Some text $y = mx + c$
+Some text $y = mx + c$
 $y = mx + c$ text
 $y = mx + c$ TEXT
 $y = mx + c$ Text
+$y = mx + c$ Text
 opps not close token in $y = mx + c
 OPPS NOT CLOSE TOKEN IN $y = mx + c
 Opps not close token in $y = mx + c
+Opps not close token in $y = mx + c
 ============================================================
 ============================================================
-TEST 18: Nesting
+TEST 19: Nesting
 ============================================================
 HELLO
 hello
@@ -182,16 +222,18 @@ FUSSBALL
 ὈΔΥΣΣΕΎΣ
 ============================================================
 ============================================================
-TEST 19: Letter-like commands
+TEST 20: Letter-like commands
 ============================================================
 \aa \aa \J \ae \dh \ss \l \o 
 \AA \AA \J \AE \DH \SS \L \O 
 \AA \aa \J \ae \dh \ss \l \o 
+\AA \aa \J \ae \dh \ss \l \O 
 ============================================================
 ============================================================
-TEST 20: Accents
+TEST 21: Accents
 ============================================================
 \"{a}\u {e}\H {i}\v {o}\.{u}
 \"{A}\u {E}\H {I}\v {O}\.{U}
 \"{A}\u {e}\H {i}\v {o}\.{u}
+\"{A}\u {e}\H {i}\v {o}\.{u}
 ============================================================





More information about the latex3-commits mailing list