#QUALITY by cg
class: RegressionTests::StringTests
added:
#test03a_unicode16
#test03b_unicode32
#test03c_unicodeStrings
removed: #test03_unicode16
--- 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