RegressionTests__CharacterEncoderTests.st
branchjv
changeset 1500 d406a10b2965
parent 1499 26a16a04219b
parent 1447 2351db93aa5b
child 1564 2a4963ef3a4a
equal deleted inserted replaced
1499:26a16a04219b 1500:d406a10b2965
   220         |s1 s2 s3|
   220         |s1 s2 s3|
   221 
   221 
   222         s1 := (Character value:eachCodePoint) asString.
   222         s1 := (Character value:eachCodePoint) asString.
   223         s2 := encoder encodeString:s1.
   223         s2 := encoder encodeString:s1.
   224         self assert:(s2 size == 2).
   224         self assert:(s2 size == 2).
   225         self assert:((s2 first codePoint bitAnd:2r11100000) == 2r11000000).
   225 	self assert:((s2 first codePoint bitAnd:2r11100000) == 2r11000000).
   226         self assert:((s2 second codePoint bitAnd:2r11000000) == 2r10000000).
   226 	self assert:((s2 second codePoint bitAnd:2r11000000) == 2r10000000).
   227         s3 := encoder decodeString:s2.
   227         s3 := encoder decodeString:s2.
   228         self assert:(s1 = s3).
   228         self assert:(s1 = s3).
   229     ].
   229     ].
   230 
   230 
   231     "/ 800 .. FFFF -> 1110xxxx 10xxxxxx 10xxxxxx
   231     "/ 800 .. FFFF -> 1110xxxx 10xxxxxx 10xxxxxx
   235         |s1 s2 s3|
   235         |s1 s2 s3|
   236 
   236 
   237         s1 := (Character value:eachCodePoint) asString.
   237         s1 := (Character value:eachCodePoint) asString.
   238         s2 := encoder encodeString:s1.
   238         s2 := encoder encodeString:s1.
   239         self assert:(s2 size == 3).
   239         self assert:(s2 size == 3).
   240         self assert:((s2 first codePoint bitAnd:2r11110000) == 2r11100000).
   240 	self assert:((s2 first codePoint bitAnd:2r11110000) == 2r11100000).
   241         self assert:((s2 second codePoint bitAnd:2r11000000) == 2r10000000).
   241 	self assert:((s2 second codePoint bitAnd:2r11000000) == 2r10000000).
   242         self assert:((s2 third codePoint bitAnd:2r11000000) == 2r10000000).
   242 	self assert:((s2 third codePoint bitAnd:2r11000000) == 2r10000000).
   243         s3 := encoder decodeString:s2.
   243         s3 := encoder decodeString:s2.
   244         self assert:(s1 = s3).
   244         self assert:(s1 = s3).
   245     ].
   245     ].
   246 
   246 
   247     "/ 10000 .. 1FFFFF -> 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
   247     "/ 10000 .. 1FFFFF -> 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
   251         |s1 s2 s3|
   251         |s1 s2 s3|
   252 
   252 
   253         s1 := (Character value:eachCodePoint) asString.
   253         s1 := (Character value:eachCodePoint) asString.
   254         s2 := encoder encodeString:s1.
   254         s2 := encoder encodeString:s1.
   255         self assert:(s2 size == 4).
   255         self assert:(s2 size == 4).
   256         self assert:((s2 first codePoint bitAnd:2r11111000) == 2r11110000).
   256 	self assert:((s2 first codePoint bitAnd:2r11111000) == 2r11110000).
   257         self assert:((s2 second codePoint bitAnd:2r11000000) == 2r10000000).
   257 	self assert:((s2 second codePoint bitAnd:2r11000000) == 2r10000000).
   258         self assert:((s2 third codePoint bitAnd:2r11000000) == 2r10000000).
   258 	self assert:((s2 third codePoint bitAnd:2r11000000) == 2r10000000).
   259         self assert:((s2 fourth codePoint bitAnd:2r11000000) == 2r10000000).
   259 	self assert:((s2 fourth codePoint bitAnd:2r11000000) == 2r10000000).
   260         s3 := encoder decodeString:s2.
   260         s3 := encoder decodeString:s2.
   261         self assert:(s1 = s3).
   261         self assert:(s1 = s3).
   262     ].
   262     ].
   263 
   263 
   264     "/ 200000 .. 3FFFFFF -> 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
   264     "/ 200000 .. 3FFFFFF -> 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
   268         |s1 s2 s3|
   268         |s1 s2 s3|
   269 
   269 
   270         s1 := (Character value:eachCodePoint) asString.
   270         s1 := (Character value:eachCodePoint) asString.
   271         s2 := encoder encodeString:s1.
   271         s2 := encoder encodeString:s1.
   272         self assert:(s2 size == 5).
   272         self assert:(s2 size == 5).
   273         self assert:((s2 first codePoint bitAnd:2r11111100) == 2r11111000).
   273 	self assert:((s2 first codePoint bitAnd:2r11111100) == 2r11111000).
   274         self assert:((s2 second codePoint bitAnd:2r11000000) == 2r10000000).
   274 	self assert:((s2 second codePoint bitAnd:2r11000000) == 2r10000000).
   275         self assert:((s2 third codePoint bitAnd:2r11000000) == 2r10000000).
   275 	self assert:((s2 third codePoint bitAnd:2r11000000) == 2r10000000).
   276         self assert:((s2 fourth codePoint bitAnd:2r11000000) == 2r10000000).
   276 	self assert:((s2 fourth codePoint bitAnd:2r11000000) == 2r10000000).
   277         self assert:((s2 fifth codePoint bitAnd:2r11000000) == 2r10000000).
   277 	self assert:((s2 fifth codePoint bitAnd:2r11000000) == 2r10000000).
   278         s3 := encoder decodeString:s2.
   278         s3 := encoder decodeString:s2.
   279         self assert:(s1 = s3).
   279         self assert:(s1 = s3).
   280     ].
   280     ].
   281 
   281 
   282     "/ ST/X limitation: only 30 bit integers (to avoid largeInteger codePoint)
   282     "/ ST/X limitation: only 30 bit integers (to avoid largeInteger codePoint)
   288         |s1 s2 s3|
   288         |s1 s2 s3|
   289 
   289 
   290         s1 := (Character value:eachCodePoint) asString.
   290         s1 := (Character value:eachCodePoint) asString.
   291         s2 := encoder encodeString:s1.
   291         s2 := encoder encodeString:s1.
   292         self assert:(s2 size == 6).
   292         self assert:(s2 size == 6).
   293         self assert:((s2 first codePoint bitAnd:2r11111110) == 2r11111100).
   293 	self assert:((s2 first codePoint bitAnd:2r11111110) == 2r11111100).
   294         self assert:((s2 second codePoint bitAnd:2r11000000) == 2r10000000).
   294 	self assert:((s2 second codePoint bitAnd:2r11000000) == 2r10000000).
   295         self assert:((s2 third codePoint bitAnd:2r11000000) == 2r10000000).
   295 	self assert:((s2 third codePoint bitAnd:2r11000000) == 2r10000000).
   296         self assert:((s2 fourth codePoint bitAnd:2r11000000) == 2r10000000).
   296 	self assert:((s2 fourth codePoint bitAnd:2r11000000) == 2r10000000).
   297         self assert:((s2 fifth codePoint bitAnd:2r11000000) == 2r10000000).
   297 	self assert:((s2 fifth codePoint bitAnd:2r11000000) == 2r10000000).
   298         self assert:((s2 sixth codePoint bitAnd:2r11000000) == 2r10000000).
   298 	self assert:((s2 sixth codePoint bitAnd:2r11000000) == 2r10000000).
   299         s3 := encoder decodeString:s2.
   299         s3 := encoder decodeString:s2.
   300         self assert:(s1 = s3).
   300         self assert:(s1 = s3).
   301     ].
   301     ].
   302 
   302 
   303     "
   303     "
   308 !CharacterEncoderTests class methodsFor:'documentation'!
   308 !CharacterEncoderTests class methodsFor:'documentation'!
   309 
   309 
   310 version
   310 version
   311     ^ '$Header$'
   311     ^ '$Header$'
   312 ! !
   312 ! !
       
   313