RegressionTests__StringTests.st
changeset 1693 04a3687c829e
parent 1447 2351db93aa5b
child 1990 add7e46a1fac
--- a/RegressionTests__StringTests.st	Sat Aug 26 12:40:45 2017 +0200
+++ b/RegressionTests__StringTests.st	Wed Aug 30 23:58:29 2017 +0200
@@ -202,6 +202,74 @@
     "
 !
 
+test03_unicode16
+    |u s u2|
+
+    u := 'hello' asUnicode16String.
+    self assert:(u class == Unicode16String).
+    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' asUnicode16String.
+    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 == Unicode16String).
+    self assert:(u2 == s).
+
+    u := Unicode16String fromString:'hello'.
+    self assert:(u class == Unicode16String).
+    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 == Unicode16String).
+    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 test03_unicode16
+    "
+
+    "Created: / 30-08-2017 / 23:51:07 / cg"
+!
+
 test10_Contains8BitCharacters
     0 to:65 do:[:l |
 	|str|