--- a/RegressionTests__CharacterEncoderTests.st Thu Apr 28 11:08:21 2005 +0200
+++ b/RegressionTests__CharacterEncoderTests.st Thu Apr 28 11:11:04 2005 +0200
@@ -1,5 +1,7 @@
"{ Package: 'exept:regression' }"
+"{ NameSpace: RegressionTests }"
+
TestCase subclass:#CharacterEncoderTests
instanceVariableNames:''
classVariableNames:''
@@ -14,7 +16,7 @@
documentation to be added.
[author:]
- Claus Gittinger (cg@alan)
+ Claus Gittinger (cg@alan)
[instance variables:]
@@ -49,10 +51,10 @@
xTestReversability:encoderClass range:range skip:skippedCodes
self
- xTestReversability:encoderClass
- range:range
- skip:skippedCodes
- ignoreInvalid:false
+ xTestReversability:encoderClass
+ range:range
+ skip:skippedCodes
+ ignoreInvalid:false
"
self new xTestReversability: (CharacterEncoder::ISO8859_1)
@@ -64,46 +66,46 @@
encoder := encoderClass new.
range do:[:code |
- |unicode code2 invalid|
+ |unicode code2 invalid|
- (skippedCodes includes:code) ifTrue:[
- self should:[ encoder decode:code ] raise:CharacterEncoderError.
- ] ifFalse:[
- ignoreInvalid ifTrue:[
- invalid := false.
- CharacterEncoderError handle:[:ex |
- invalid := true.
- ] do:[
- unicode := encoder decode:code.
- ].
- invalid ifFalse:[
- code2 := encoder encode:unicode.
- self assert:(code == code2).
- ].
- ] ifFalse:[
- unicode := encoder decode:code.
- code2 := encoder encode:unicode.
- self assert:(code == code2).
- ]
- ]
+ (skippedCodes includes:code) ifTrue:[
+ self should:[ encoder decode:code ] raise:CharacterEncoderError.
+ ] ifFalse:[
+ ignoreInvalid ifTrue:[
+ invalid := false.
+ CharacterEncoderError handle:[:ex |
+ invalid := true.
+ ] do:[
+ unicode := encoder decode:code.
+ ].
+ invalid ifFalse:[
+ code2 := encoder encode:unicode.
+ self assert:(code == code2).
+ ].
+ ] ifFalse:[
+ unicode := encoder decode:code.
+ code2 := encoder encode:unicode.
+ self assert:(code == code2).
+ ]
+ ]
].
"
self new xTestReversability: (CharacterEncoder::ISO8859_1)
- self new
- xTestReversability:(CharacterEncoder::JIS0208)
- range:(16r8140 to:16rEAA4)
- skip:#()
- ignoreInvalid:true
+ self new
+ xTestReversability:(CharacterEncoder::JIS0208)
+ range:(16r8140 to:16rEAA4)
+ skip:#()
+ ignoreInvalid:true
"
!
xTestReversability:encoderClass skip:skippedCodes
- self
- xTestReversability:encoderClass
- range:(encoderClass minCode to:encoderClass maxCode)
- skip:skippedCodes
+ self
+ xTestReversability:encoderClass
+ range:(encoderClass minCode to:encoderClass maxCode)
+ skip:skippedCodes
"
self new xTestReversability: (CharacterEncoder::ISO8859_1)
@@ -112,11 +114,11 @@
!
xTestReversability:encoderClass skip:skippedCodes ignoreInvalid:ignoreInvalid
- self
- xTestReversability:encoderClass
- range:(encoderClass minCode to:encoderClass maxCode)
- skip:skippedCodes
- ignoreInvalid:ignoreInvalid
+ self
+ xTestReversability:encoderClass
+ range:(encoderClass minCode to:encoderClass maxCode)
+ skip:skippedCodes
+ ignoreInvalid:ignoreInvalid
"
self new xTestReversability: (CharacterEncoder::ISO8859_1)
@@ -146,23 +148,23 @@
self xTestReversability: (CharacterEncoder::ISO8859_3) skip:#( 16rA5 16rAE 16rBE 16rC3 16rD0 16rE3 16rF0 ).
self xTestReversability: (CharacterEncoder::ISO8859_4).
self xTestReversability: (CharacterEncoder::ISO8859_5).
- self xTestReversability: (CharacterEncoder::ISO8859_6) skip:#( 16rA1 16rA2 16rA3 16rA5 16rA6 16rA7
- 16rA8 16rA9 16rAA 16rAB 16rAE 16rAF
- 16rB0 16rB1 16rB2 16rB3 16rB4 16rB5 16rB6 16rB7
- 16rB8 16rB9 16rBA 16rBC 16rBD 16rBE
- 16rC0
- 16rDB 16rDC 16rDD 16rDE 16rDF
- 16rF3 16rF4 16rF5 16rF6 16rF7
- 16rF8 16rF9 16rFA 16rFB 16rFC 16rFD 16rFE 16rFF
- ).
+ self xTestReversability: (CharacterEncoder::ISO8859_6) skip:#( 16rA1 16rA2 16rA3 16rA5 16rA6 16rA7
+ 16rA8 16rA9 16rAA 16rAB 16rAE 16rAF
+ 16rB0 16rB1 16rB2 16rB3 16rB4 16rB5 16rB6 16rB7
+ 16rB8 16rB9 16rBA 16rBC 16rBD 16rBE
+ 16rC0
+ 16rDB 16rDC 16rDD 16rDE 16rDF
+ 16rF3 16rF4 16rF5 16rF6 16rF7
+ 16rF8 16rF9 16rFA 16rFB 16rFC 16rFD 16rFE 16rFF
+ ).
self xTestReversability: (CharacterEncoder::ISO8859_7) skip:#( 16rAE 16rD2 16rFF ).
- self xTestReversability: (CharacterEncoder::ISO8859_8) skip:#( 16rA1 16rBF
- 16rC0 16rC1 16rC2 16rC3 16rC4 16rC5 16rC6 16rC7
- 16rC8 16rC9 16rCA 16rCB 16rCC 16rCD 16rCE 16rCF
- 16rD0 16rD1 16rD2 16rD3 16rD4 16rD5 16rD6 16rD7
- 16rD8 16rD9 16rDA 16rDB 16rDC 16rDD 16rDE
- 16rFB 16rFC 16rFF
- ).
+ self xTestReversability: (CharacterEncoder::ISO8859_8) skip:#( 16rA1 16rBF
+ 16rC0 16rC1 16rC2 16rC3 16rC4 16rC5 16rC6 16rC7
+ 16rC8 16rC9 16rCA 16rCB 16rCC 16rCD 16rCE 16rCF
+ 16rD0 16rD1 16rD2 16rD3 16rD4 16rD5 16rD6 16rD7
+ 16rD8 16rD9 16rDA 16rDB 16rDC 16rDD 16rDE
+ 16rFB 16rFC 16rFF
+ ).
self xTestReversability: (CharacterEncoder::ISO8859_9).
self xTestReversability: (CharacterEncoder::ISO8859_10).
self xTestReversability: (CharacterEncoder::ISO8859_11) skip:#( 16rDB 16rDC 16rDD 16rDE 16rFC 16rFD 16rFE 16rFF ).
@@ -189,113 +191,113 @@
"/ reversibility
(0 to:16rFFFF) do:[:eachCodePoint |
- |s1 s2 s3|
+ |s1 s2 s3|
- s1 := (Character value:eachCodePoint) asString.
- s2 := encoder encodeString:s1.
- s3 := encoder decodeString:s2.
- self assert:(s1 = s3).
+ s1 := (Character value:eachCodePoint) asString.
+ s2 := encoder encodeString:s1.
+ s3 := encoder decodeString:s2.
+ self assert:(s1 = s3).
].
"/ 00 .. 7F -> 0xxxxxxx
#[16r00 16r01 16r02 16r04 16r08 16r10 16r20 16r40
- 16r03 16r07 16r0F 16r1F 16r3F 16r7F]
+ 16r03 16r07 16r0F 16r1F 16r3F 16r7F]
do:[:eachCodePoint |
- |s1 s2 s3|
+ |s1 s2 s3|
- s1 := (Character value:eachCodePoint) asString.
- s2 := encoder encodeString:s1.
- s3 := encoder decodeString:s2.
- self assert:(s1 = s2).
- self assert:(s2 = s3).
- self assert:(s2 size == 1).
+ s1 := (Character value:eachCodePoint) asString.
+ s2 := encoder encodeString:s1.
+ s3 := encoder decodeString:s2.
+ self assert:(s1 = s2).
+ self assert:(s2 = s3).
+ self assert:(s2 size == 1).
].
"/ 80 .. 7FF -> 110xxxxx 10xxxxxx
#(16r80 16r100 16r200 16r400
- 16r0FF 16r1FF 16r3FF 16r7FF)
+ 16r0FF 16r1FF 16r3FF 16r7FF)
do:[:eachCodePoint |
- |s1 s2 s3|
+ |s1 s2 s3|
- s1 := (Character value:eachCodePoint) asString.
- s2 := encoder encodeString:s1.
- self assert:(s2 size == 2).
- self assert:((s2 first asciiValue bitAnd:2r11100000) == 2r11000000).
- self assert:((s2 second asciiValue bitAnd:2r11000000) == 2r10000000).
- s3 := encoder decodeString:s2.
- self assert:(s1 = s3).
+ s1 := (Character value:eachCodePoint) asString.
+ s2 := encoder encodeString:s1.
+ self assert:(s2 size == 2).
+ self assert:((s2 first asciiValue bitAnd:2r11100000) == 2r11000000).
+ self assert:((s2 second asciiValue bitAnd:2r11000000) == 2r10000000).
+ s3 := encoder decodeString:s2.
+ self assert:(s1 = s3).
].
"/ 800 .. FFFF -> 1110xxxx 10xxxxxx 10xxxxxx
#(16r800 16r1000 16r2000 16r4000 16r8000
- 16r0FFF 16r1FFF 16r3FFF 16r7FFF 16rFFFF)
+ 16r0FFF 16r1FFF 16r3FFF 16r7FFF 16rFFFF)
do:[:eachCodePoint |
- |s1 s2 s3|
+ |s1 s2 s3|
- s1 := (Character value:eachCodePoint) asString.
- s2 := encoder encodeString:s1.
- self assert:(s2 size == 3).
- self assert:((s2 first asciiValue bitAnd:2r11110000) == 2r11100000).
- self assert:((s2 second asciiValue bitAnd:2r11000000) == 2r10000000).
- self assert:((s2 third asciiValue bitAnd:2r11000000) == 2r10000000).
- s3 := encoder decodeString:s2.
- self assert:(s1 = s3).
+ s1 := (Character value:eachCodePoint) asString.
+ s2 := encoder encodeString:s1.
+ self assert:(s2 size == 3).
+ self assert:((s2 first asciiValue bitAnd:2r11110000) == 2r11100000).
+ self assert:((s2 second asciiValue bitAnd:2r11000000) == 2r10000000).
+ self assert:((s2 third asciiValue bitAnd:2r11000000) == 2r10000000).
+ s3 := encoder decodeString:s2.
+ self assert:(s1 = s3).
].
"/ 10000 .. 1FFFFF -> 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
#(16r10000 16r20000 16r40000 16r80000 16r10000
- 16r1FFFF 16r3FFFF 16r7FFFF 16rFFFFF 16r1FFFFF)
+ 16r1FFFF 16r3FFFF 16r7FFFF 16rFFFFF 16r1FFFFF)
do:[:eachCodePoint |
- |s1 s2 s3|
+ |s1 s2 s3|
- s1 := (Character value:eachCodePoint) asString.
- s2 := encoder encodeString:s1.
- self assert:(s2 size == 4).
- self assert:((s2 first asciiValue bitAnd:2r11111000) == 2r11110000).
- self assert:((s2 second asciiValue bitAnd:2r11000000) == 2r10000000).
- self assert:((s2 third asciiValue bitAnd:2r11000000) == 2r10000000).
- self assert:((s2 fourth asciiValue bitAnd:2r11000000) == 2r10000000).
- s3 := encoder decodeString:s2.
- self assert:(s1 = s3).
+ s1 := (Character value:eachCodePoint) asString.
+ s2 := encoder encodeString:s1.
+ self assert:(s2 size == 4).
+ self assert:((s2 first asciiValue bitAnd:2r11111000) == 2r11110000).
+ self assert:((s2 second asciiValue bitAnd:2r11000000) == 2r10000000).
+ self assert:((s2 third asciiValue bitAnd:2r11000000) == 2r10000000).
+ self assert:((s2 fourth asciiValue bitAnd:2r11000000) == 2r10000000).
+ s3 := encoder decodeString:s2.
+ self assert:(s1 = s3).
].
"/ 200000 .. 3FFFFFF -> 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
#(16r200000 16r400000 16r800000 16r1000000 16r2000000
- 16r3FFFFF 16r7FFFFF 16r0FFFFFF 16r1FFFFFF 16r3FFFFFF)
+ 16r3FFFFF 16r7FFFFF 16r0FFFFFF 16r1FFFFFF 16r3FFFFFF)
do:[:eachCodePoint |
- |s1 s2 s3|
+ |s1 s2 s3|
- s1 := (Character value:eachCodePoint) asString.
- s2 := encoder encodeString:s1.
- self assert:(s2 size == 5).
- self assert:((s2 first asciiValue bitAnd:2r11111100) == 2r11111000).
- self assert:((s2 second asciiValue bitAnd:2r11000000) == 2r10000000).
- self assert:((s2 third asciiValue bitAnd:2r11000000) == 2r10000000).
- self assert:((s2 fourth asciiValue bitAnd:2r11000000) == 2r10000000).
- self assert:((s2 fifth asciiValue bitAnd:2r11000000) == 2r10000000).
- s3 := encoder decodeString:s2.
- self assert:(s1 = s3).
+ s1 := (Character value:eachCodePoint) asString.
+ s2 := encoder encodeString:s1.
+ self assert:(s2 size == 5).
+ self assert:((s2 first asciiValue bitAnd:2r11111100) == 2r11111000).
+ self assert:((s2 second asciiValue bitAnd:2r11000000) == 2r10000000).
+ self assert:((s2 third asciiValue bitAnd:2r11000000) == 2r10000000).
+ self assert:((s2 fourth asciiValue bitAnd:2r11000000) == 2r10000000).
+ self assert:((s2 fifth asciiValue bitAnd:2r11000000) == 2r10000000).
+ s3 := encoder decodeString:s2.
+ self assert:(s1 = s3).
].
"/ ST/X limitation: only 30 bit integers (to avoid largeInteger asciiValue)
"/ 4000000 .. 7FFFFFFF -> 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
#(16r4000000 16r8000000 16r10000000 16r20000000 "16r40000000"
- 16r7FFFFFF 16r0FFFFFFF 16r1FFFFFFF "16r3FFFFFFF 16r7FFFFFFF")
- do:[:eachCodePoint |
- |s1 s2 s3|
+ 16r7FFFFFF 16r0FFFFFFF 16r1FFFFFFF "16r3FFFFFFF 16r7FFFFFFF")
+ do:[:eachCodePoint |
+ |s1 s2 s3|
- s1 := (Character value:eachCodePoint) asString.
- s2 := encoder encodeString:s1.
- self assert:(s2 size == 6).
- self assert:((s2 first asciiValue bitAnd:2r11111110) == 2r11111100).
- self assert:((s2 second asciiValue bitAnd:2r11000000) == 2r10000000).
- self assert:((s2 third asciiValue bitAnd:2r11000000) == 2r10000000).
- self assert:((s2 fourth asciiValue bitAnd:2r11000000) == 2r10000000).
- self assert:((s2 fifth asciiValue bitAnd:2r11000000) == 2r10000000).
- self assert:((s2 sixth asciiValue bitAnd:2r11000000) == 2r10000000).
- s3 := encoder decodeString:s2.
- self assert:(s1 = s3).
+ s1 := (Character value:eachCodePoint) asString.
+ s2 := encoder encodeString:s1.
+ self assert:(s2 size == 6).
+ self assert:((s2 first asciiValue bitAnd:2r11111110) == 2r11111100).
+ self assert:((s2 second asciiValue bitAnd:2r11000000) == 2r10000000).
+ self assert:((s2 third asciiValue bitAnd:2r11000000) == 2r10000000).
+ self assert:((s2 fourth asciiValue bitAnd:2r11000000) == 2r10000000).
+ self assert:((s2 fifth asciiValue bitAnd:2r11000000) == 2r10000000).
+ self assert:((s2 sixth asciiValue bitAnd:2r11000000) == 2r10000000).
+ s3 := encoder decodeString:s2.
+ self assert:(s1 = s3).
].
"