RegressionTests__CRCTests.st
changeset 2148 7b5e4c70aa5b
parent 2136 58df71c87356
child 2149 40765bd0896a
--- a/RegressionTests__CRCTests.st	Sun Mar 24 13:28:53 2019 +0100
+++ b/RegressionTests__CRCTests.st	Sun Mar 24 20:57:57 2019 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "{ Package: 'stx:goodies/regression' }"
 
 "{ NameSpace: RegressionTests }"
@@ -65,41 +67,104 @@
 !
 
 test03_crc16
-    "the default ccitt crc16"
+    "the crc16 variants"
 
-    self skipIf:true description:'fails, in order of cg skip'.
+    self skipIf:true description:'fails, by order of cg - skip'.
+
+    "/ 1..9 testVector from 
+    "/    https://www.lammertbies.nl/comm/info/crc-calculation.html
 
     CRC16Stream flushCrcTables.
     "/ CRCStream flushCrcTables.
     "/ CRC32Stream flushCrcTables.
     self assert:(CRC16Stream newKERMIT hashValueOf:'') = 0.
     self assert:(CRC16Stream newKERMIT hashValueOf:'a') = 16r8F72.
+    self assert:(CRC16Stream newKERMIT hashValueOf:'abc') = 16rE958.
     self assert:(CRC16Stream newKERMIT hashValueOf:' ') = 16r0221.
     self assert:(CRC16Stream newKERMIT hashValueOf:'123456789') = 16r8921.
+    self assert:(CRC16Stream newKERMIT hashValueOf:'Lammert Bies') = 16rF80D.
+    self assert:(CRC16Stream newKERMIT hashValueOf:#[16r06 16r00 16r0c 16rf0 16r00 16r04 16r00 16r55 16r88 16r73 16rc9 16r00 16r00 16r05 16r21]
+                                                    ) = 16r2098.
 
     self assert:(CRC16Stream newDNP hashValueOf:'') = 16rFFFF.
     self assert:(CRC16Stream newDNP hashValueOf:'a') = 16r50B3.
+    self assert:(CRC16Stream newDNP hashValueOf:'abc') = 16r57E9.
     self assert:(CRC16Stream newDNP hashValueOf:' ') = 16r50D6.
     self assert:(CRC16Stream newDNP hashValueOf:'123456789') = 16r82EA.
+    self assert:(CRC16Stream newDNP hashValueOf:'Lammert Bies') = 16r4583.
+    self assert:(CRC16Stream newDNP hashValueOf:#[16r06 16r00 16r0c 16rf0 16r00 16r04 16r00 16r55 16r88 16r73 16rc9 16r00 16r00 16r05 16r21]
+                                                    ) = 16r7482.
 
-    self assert:(CRC16Stream newMODBUS hashValueOf:'') = 0.
+    self assert:(CRC16Stream newMODBUS hashValueOf:'') = 16rFFFF.
     self assert:(CRC16Stream newMODBUS hashValueOf:'a') = 16rA87E.
+    self assert:(CRC16Stream newMODBUS hashValueOf:'abc') = 16r5749.
     self assert:(CRC16Stream newMODBUS hashValueOf:' ') = 16r98BE.
     self assert:(CRC16Stream newMODBUS hashValueOf:'123456789') = 16r4B37.
+    self assert:(CRC16Stream newMODBUS hashValueOf:'Lammert Bies') = 16rB45C.
+    self assert:(CRC16Stream newMODBUS hashValueOf:#[16r06 16r00 16r0c 16rf0 16r00 16r04 16r00 16r55 16r88 16r73 16rc9 16r00 16r00 16r05 16r21]
+                                                    ) = 16rF50C.
+
+    self assert:(CRC16Stream newXMODEM hashValueOf:'') = 0.
+    self assert:(CRC16Stream newXMODEM hashValueOf:'a') = 16r7C87.
+    self assert:(CRC16Stream newXMODEM hashValueOf:'abc') = 16r9dd6.
+    self assert:(CRC16Stream newXMODEM hashValueOf:' ') = 16r2462.
+    self assert:(CRC16Stream newXMODEM hashValueOf:'123456789') = 16r31C3.
+    self assert:(CRC16Stream newXMODEM hashValueOf:'Lammert Bies') = 16rCEC8.
+    self assert:(CRC16Stream newXMODEM hashValueOf:#[16r06 16r00 16r0c 16rf0 16r00 16r04 16r00 16r55 16r88 16r73 16rc9 16r00 16r00 16r05 16r21]
+                                                    ) = 16r3B38.
 
     self assert:(CRC16Stream newCRC_16 hashValueOf:'') = 0.
-    self assert:(CRC16Stream newCRC_16 hashValueOf:'a') = 16r50B3.
-    self assert:(CRC16Stream newCRC_16 hashValueOf:' ') = 16r50D6.
-    self assert:(CRC16Stream newCRC_16 hashValueOf:'123456789') = 16rBB3d.
+    self assert:(CRC16Stream newCRC_16 hashValueOf:'a') = 16rE8C1.
+    self assert:(CRC16Stream newCRC_16 hashValueOf:'abc') = 16r9738.
+    self assert:(CRC16Stream newCRC_16 hashValueOf:' ') = 16rD801.
+    self assert:(CRC16Stream newCRC_16 hashValueOf:'123456789') = 16rBB3D.
+    self assert:(CRC16Stream newCRC_16 hashValueOf:'Lammert Bies') = 16rB638.
+    self assert:(CRC16Stream newCRC_16 hashValueOf:#[16r06 16r00 16r0c 16rf0 16r00 16r04 16r00 16r55 16r88 16r73 16rc9 16r00 16r00 16r05 16r21]
+                                                    ) = 16r4A4C.
 
-    self assert:(CRC16Stream newCCITT hashValueOf:'') = 0.
+    "/ CCITT with 0xFFFF as start
+    self assert:(CRC16Stream newCCITT hashValueOf:'') = 16rFFFF.
     self assert:(CRC16Stream newCCITT hashValueOf:'a') = 16r9D77.
+    self assert:(CRC16Stream newCCITT hashValueOf:'abc') = 16r514A.
     self assert:(CRC16Stream newCCITT hashValueOf:' ') = 16rC592.
-    self assert:(CRC16Stream newCCITT hashValueOf:'123456789') = 16r8921.
+    self assert:(CRC16Stream newCCITT hashValueOf:'123456789') = 16r29B1.
+    self assert:(CRC16Stream newCCITT hashValueOf:'Lammert Bies') = 16r4A31.
+    self assert:(CRC16Stream newCCITT hashValueOf:#[16r06 16r00 16r0c 16rf0 16r00 16r04 16r00 16r55 16r88 16r73 16rc9 16r00 16r00 16r05 16r21]
+                                                   ) = 16r75FB.
+
+    "/ CCITT with 0x1D0F as start
+    self assert:(CRC16Stream newCCITT_1D0F hashValueOf:'') = 16r1D0F.
+    self assert:(CRC16Stream newCCITT_1D0F hashValueOf:'a') = 16rB01B.
+    self assert:(CRC16Stream newCCITT_1D0F hashValueOf:'abc') = 16r8CDA.
+    self assert:(CRC16Stream newCCITT_1D0F hashValueOf:' ') = 16rE8FE.
+    self assert:(CRC16Stream newCCITT_1D0F hashValueOf:'123456789') = 16rE5CC.
+    self assert:(CRC16Stream newCCITT_1D0F hashValueOf:'Lammert Bies') = 16r67A2.
+    self assert:(CRC16Stream newCCITT_1D0F hashValueOf:#[16r06 16r00 16r0c 16rf0 16r00 16r04 16r00 16r55 16r88 16r73 16rc9 16r00 16r00 16r05 16r21]
+                                                        ) = 16rFCD4.
 
     "Created: / 16-03-2019 / 23:40:26 / Claus Gittinger"
     "Modified: / 19-03-2019 / 11:23:27 / Stefan Reise"
-    "Modified: / 23-03-2019 / 11:47:40 / Claus Gittinger"
+    "Modified: / 24-03-2019 / 20:56:50 / Claus Gittinger"
+!
+
+test04_crc8
+    "the crc8 variants"
+
+    self skipIf:true description:'fails, by order of cg - skip'.
+
+    CRC8Stream flushCrcTables.
+
+    "/ test vectors from AUTOSAR_SWS_CRCLibrary.pdf
+    self assert:(CRC8Stream newSAE_J1850 hashValueOf:'') = 0.
+    self assert:(CRC8Stream newSAE_J1850 hashValueOf:#[0 0 0 0] ) = 16r59.
+    self assert:(CRC8Stream newSAE_J1850 hashValueOf:#[16rF2 16r01 16r83]) = 16r37.
+    self assert:(CRC8Stream newSAE_J1850 hashValueOf:#[16r0F 16rAA 16r99 16r55]) = 16r79.
+    self assert:(CRC8Stream newSAE_J1850 hashValueOf:#[16r00 16rFF 16r55 16r11]) = 16rB8.
+    self assert:(CRC8Stream newSAE_J1850 hashValueOf:#[16r33 16r22 16r55 16rAA 16rBB 16rCC 16rDD 16rEE 16rFF]) = 16rCB.
+    self assert:(CRC8Stream newSAE_J1850 hashValueOf:#[16r92 16r6B 16r55]) = 16r8C.
+    self assert:(CRC8Stream newSAE_J1850 hashValueOf:#[16rFF 16rFF 16rFF 16rFF]) = 16r74.
+
+    "Created: / 24-03-2019 / 12:03:54 / Claus Gittinger"
 !
 
 test99_speed