def test_crcmod_c8d16_revB(self): data = NumberMask(0xE3F2, 16) inputPoly = NumberMask(0x1F0, 8) regInit = 0x0 xorOut = 0x0 reverse = True revInputPoly = inputPoly.reversed() revData = data.reorderedBytes() crc_func = crcmod.mkCrcFun(revInputPoly.masterData(), rev=reverse, initCrc=regInit, xorOut=xorOut) crcLib = crc_func(revData.toASCII()) # print "crc: {:X} {:X}".format( crc, crc2 ) crcProc = DivisionCRC() crcProc.setReversed(reverse) crcProc.setXorOutValue(xorOut) crcProc.setRegisterInitValue(regInit) # crcProc.setInitCRC( regInit ) crc = crcProc.calculate3(data, inputPoly) # print "values: {} poly:{:X} init:{:X} xorOut:{:08b} rev:{} crc:{:08b} crcmod:{:08b} crcxor:{:08b}".format( data, inputPoly, regInit, xorOut, reverse, crc, crcLib, crc^crcLib ) self.assertEqual(crc, crcLib)
def test_crcmod_8darc(self): data = NumberMask(0x01, 8) inputPoly = NumberMask(0x139, 8) regInit = 0x0 xorOut = 0x0 crc_func = crcmod.predefined.mkCrcFun('crc-8-darc') crcLib = crc_func(data.toASCII()) crcProc = ModCRC() crcProc.setReversed() crcProc.setRegisterInitValue(regInit) crcProc.setXorOutValue(xorOut) revData = data.reorderedBytes() crc = crcProc.calculate3(revData, inputPoly) # print "crcx: {:b} {:b}".format( crc, crcLib ) self.assertEqual(crc, crcLib)
def test_crcmod_8rev_symm(self): data = NumberMask(0xFF, 8) inputPoly = NumberMask(0x181, 8) ## leave symmetric regInit = 0x0 xorOut = 0x0 crc_func = crcmod.mkCrcFun(inputPoly.masterData(), initCrc=regInit, rev=True, xorOut=xorOut) crcLib = crc_func(data.toASCII()) crcProc = ModCRC() crcProc.setReversed() crcProc.setRegisterInitValue(regInit) crcProc.setXorOutValue(xorOut) revData = data.reorderedBytes() revPoly = inputPoly.reversed() crc = crcProc.calculate3(revData, revPoly) # print "crcx: {:b} {:b}".format( crc, crcLib ) self.assertEqual(crc, crcLib)
def test_reorderedBytes_partialBytes(self): data = NumberMask(0xABCDE, 20) reordered = data.reorderedBytes() self.assertEqual(reordered.dataSize, data.dataSize) self.assertEqual(reordered.dataNum, 0xEBC0A)
def test_reorderedBytes_fullBytes(self): data = NumberMask(0xABCDEF, 24) reordered = data.reorderedBytes() self.assertEqual(reordered.dataSize, data.dataSize) self.assertEqual(reordered.dataNum, 0xEFCDAB)