#QUALITY by cg
authorClaus Gittinger <cg@exept.de>
Tue, 02 Apr 2019 10:49:27 +0200
changeset 2209 dd72456e8de4
parent 2208 2d54a6ac9a73
child 2210 d3368bb7f119
#QUALITY by cg class: RegressionTests::StringTests added: #test03a_unicode16 #test03b_unicode32 #test03c_unicodeStrings removed: #test03_unicode16
RegressionTests__StringTests.st
--- a/RegressionTests__StringTests.st	Tue Apr 02 10:42:50 2019 +0200
+++ b/RegressionTests__StringTests.st	Tue Apr 02 10:49:27 2019 +0200
@@ -204,7 +204,7 @@
     "
 !
 
-test03_unicode16
+test03a_unicode16
     |u s u2|
 
     u := 'hello' asUnicode16String.
@@ -266,10 +266,104 @@
     self assert:((u at:5) == $e).
     
     "
-     self new test03_unicode16
+     self new test03a_unicode16
     "
 
-    "Created: / 30-08-2017 / 23:51:07 / cg"
+    "Created: / 02-04-2019 / 10:43:49 / Claus Gittinger"
+!
+
+test03b_unicode32
+    |u s u2|
+
+    u := 'hello' asUnicode32String.
+    self assert:(u class == Unicode32String).
+    self assert:(u size == 5).
+    self assert:((u at:1) == $h).
+    self assert:((u at:2) == $e).
+    self assert:((u at:3) == $l).
+    self assert:((u at:4) == $l).
+    self assert:((u at:5) == $o).
+
+    s := u asSingleByteString.
+    self assert:(s class == String).
+    self assert:(s size == 5).
+    self assert:((s at:1) == $h).
+    self assert:((s at:2) == $e).
+    self assert:((s at:3) == $l).
+    self assert:((s at:4) == $l).
+    self assert:((s at:5) == $o).
+
+    s := u asSingleByteStringIfPossible.
+    self assert:(s class == String).
+    self assert:(s size == 5).
+    self assert:((s at:1) == $h).
+    self assert:((s at:2) == $e).
+    self assert:((s at:3) == $l).
+    self assert:((s at:4) == $l).
+    self assert:((s at:5) == $o).
+
+    u2 := 'hello' asUnicode32String.
+    u2 at:1 put:(Character codePoint:16r20AC).   "/ euro character
+    self assert:(u2 size == 5).
+    self assert:((u2 at:1) = (Character codePoint:16r20AC)).
+    self assert:((u2 at:2) == $e).
+    self assert:((u2 at:3) == $l).
+    self assert:((u2 at:4) == $l).
+    self assert:((u2 at:5) == $o).
+
+    s := u2 asSingleByteStringIfPossible.
+    self assert:(s class == Unicode32String).
+    self assert:(u2 == s).
+
+    u := Unicode32String fromString:'hello'.
+    self assert:(u class == Unicode32String).
+    self assert:(u size == 5).
+    self assert:((u at:1) == $h).
+    self assert:((u at:2) == $e).
+    self assert:((u at:3) == $l).
+    self assert:((u at:4) == $l).
+    self assert:((u at:5) == $o).
+
+    u replaceFrom:1 to:5 with:'abcde' startingAt:1.
+    self assert:(u class == Unicode32String).
+    self assert:(u size == 5).
+    self assert:((u at:1) == $a).
+    self assert:((u at:2) == $b).
+    self assert:((u at:3) == $c).
+    self assert:((u at:4) == $d).
+    self assert:((u at:5) == $e).
+    
+    "
+     self new test03b_unicode32
+    "
+
+    "Created: / 02-04-2019 / 10:44:34 / Claus Gittinger"
+!
+
+test03c_unicodeStrings
+    |u32 u16 u8|
+
+    u32 := 'hello' asUnicode32String.
+    u16 := 'hello' asUnicode16String.
+    u8 := 'hello' asString.
+    self assert:(u32 = u16).
+    self assert:(u16 = u32).
+    self assert:(u32 = u8).
+    self assert:(u8 = u32).
+    self assert:(u16 = u8).
+    self assert:(u8 = u16).
+    
+    self assert:(u32 asDenseUnicodeString = u8).
+    self assert:(u32 asDenseUnicodeString class == String).
+    self assert:(u16 asDenseUnicodeString = u8).
+    self assert:(u16 asDenseUnicodeString class == String).
+    self assert:(u8 asDenseUnicodeString == u8).
+    
+    "
+     self new test03c_unicodeStrings
+    "
+
+    "Created: / 02-04-2019 / 10:46:10 / Claus Gittinger"
 !
 
 test10_Contains8BitCharacters