def testDecode2(self): # Two integers der = DerSetOf() der.decode(b('1\x08\x02\x02\x01\x80\x02\x02\x00\xff')) self.assertEqual(len(der), 2) l = list(der) self.assertTrue(0x180 in l) self.assertTrue(0xFF in l)
def testEncode2(self): # Two integers der = DerSetOf() der.add(0x180) der.add(0xFF) self.assertEqual(der.encode(), b('1\x08\x02\x02\x00\xff\x02\x02\x01\x80')) # Initialize with integers der = DerSetOf([0x180, 0xFF]) self.assertEqual(der.encode(), b('1\x08\x02\x02\x00\xff\x02\x02\x01\x80'))
def testEncode1(self): # Empty set der = DerSetOf() self.assertEqual(der.encode(), b('1\x00')) # One single-byte integer (zero) der.add(0) self.assertEqual(der.encode(), b('1\x03\x02\x01\x00')) # Invariant self.assertEqual(der.encode(), b('1\x03\x02\x01\x00'))
def testDecode1(self): # Empty sequence der = DerSetOf() der.decode(b('1\x00')) self.assertEqual(len(der), 0) # One single-byte integer (zero) der.decode(b('1\x03\x02\x01\x00')) self.assertEqual(len(der), 1) self.assertEqual(list(der), [0])
def testErrDecode1(self): # No leftovers allowed der = DerSetOf() self.assertRaises(ValueError, der.decode, b('1\x08\x02\x02\x01\x80\x02\x02\x00\xff\xAA'))
def testDecode4(self): # Verify that decode returns the object der = DerSetOf() self.assertEqual( der, der.decode(b('1\x08\x02\x02\x01\x80\x02\x02\x00\xff')))
def testDecode3(self): # One integer and 2 other types der = DerSetOf() #import pdb; pdb.set_trace() self.assertRaises(ValueError, der.decode, b('0\x0A\x02\x02\x01\x80\x24\x02\xb6\x63\x12\x00'))
def testEncode4(self): # Only non integers der = DerSetOf() der.add(b('\x01\x00')) der.add(b('\x01\x01\x01')) self.assertEqual(der.encode(), b('1\x05\x01\x00\x01\x01\x01'))
def testEncode3(self): # One integer and another type (no matter what it is) der = DerSetOf() der.add(0x180) self.assertRaises(ValueError, der.add, b('\x00\x02\x00\x00'))
def testInit1(self): der = DerSetOf([DerInteger(1), DerInteger(2)]) self.assertEqual(der.encode(), b('1\x06\x02\x01\x01\x02\x01\x02'))