def test_bits_to_bucket_num(self): # valid bn = BaseDiscretizer.bits_to_bucket_num('0b0') self.assertEqual(bn, 0) bn = BaseDiscretizer.bits_to_bucket_num('0b10') self.assertEqual(bn, 2) bn = BaseDiscretizer.bits_to_bucket_num('0b0010') self.assertEqual(bn, 2) bn = BaseDiscretizer.bits_to_bucket_num('0b00000000010') self.assertEqual(bn, 2) # not a string self.assertRaises(DiscretizerException, BaseDiscretizer.bits_to_bucket_num, 1101) # empty string self.assertRaises(DiscretizerException, BaseDiscretizer.bits_to_bucket_num, '') # not a string of bits (should begin with '0b') self.assertRaises(DiscretizerException, BaseDiscretizer.bits_to_bucket_num, '11111111') # no bits self.assertRaises(DiscretizerException, BaseDiscretizer.bits_to_bucket_num, '0b') # invalid bits self.assertRaises(ValueError, BaseDiscretizer.bits_to_bucket_num, '0b123')
def tests_bits_to_bytearray(self): # 1 byte ba = BaseDiscretizer.bits_to_bytearray('0b11111111') self.assertIsInstance(ba, bytearray) self.assertEqual(len(ba), 1) self.assertEqual(ba[0], 255) # 1 byte, shortened ba = BaseDiscretizer.bits_to_bytearray('0b10') self.assertEqual(len(ba), 1) self.assertEqual(ba[0], 2) # 4 bytes ba = BaseDiscretizer.bits_to_bytearray('0b'+'11111111'+'00000000'+'01111111'+'00000011') self.assertEqual(len(ba), 4) self.assertEqual(ba, bytearray([255, 0, 127, 3])) # 4 bytes (zero first) ba = BaseDiscretizer.bits_to_bytearray('0b'+'00000000'+'11111111'+'01111111'+'00000011') self.assertEqual(len(ba), 4) self.assertEqual(ba, bytearray([0, 255, 127, 3])) # 4 bytes, shortened ba = BaseDiscretizer.bits_to_bytearray('0b'+'00'+'11111111'+'01111111'+'00000011') self.assertEqual(len(ba), 4) self.assertEqual(ba, bytearray([0, 255, 127, 3])) # not a string self.assertRaises(DiscretizerException, BaseDiscretizer.bits_to_bytearray, 1101) # empty string self.assertRaises(DiscretizerException, BaseDiscretizer.bits_to_bytearray, '') # not a string of bits (should begin with '0b') self.assertRaises(DiscretizerException, BaseDiscretizer.bits_to_bytearray, '11111111') # no bits self.assertRaises(DiscretizerException, BaseDiscretizer.bits_to_bytearray, '0b') # invalid bits self.assertRaises(ValueError, BaseDiscretizer.bits_to_bytearray, '0b123')
def test_bytearray_to_bucket_num(self): # valid bn = BaseDiscretizer.bytearray_to_bucket_num(bytearray([0])) self.assertIsInstance(bn, int) self.assertEqual(bn, 0) bn = BaseDiscretizer.bytearray_to_bucket_num(bytearray([0, 0, 0])) self.assertEqual(bn, 0) bn = BaseDiscretizer.bytearray_to_bucket_num(bytearray([3])) self.assertEqual(bn, 3) bn = BaseDiscretizer.bytearray_to_bucket_num(bytearray([255])) self.assertEqual(bn, 255) bn = BaseDiscretizer.bytearray_to_bucket_num(bytearray([1, 0])) self.assertEqual(bn, 256) bn = BaseDiscretizer.bytearray_to_bucket_num(bytearray([1, 1])) self.assertEqual(bn, 257) bn = BaseDiscretizer.bytearray_to_bucket_num(bytearray([255, 255])) self.assertEqual(bn, 65535) bn = BaseDiscretizer.bytearray_to_bucket_num(bytearray([1, 0, 0])) self.assertEqual(bn, 65536) # 0 bytes self.assertRaises(DiscretizerException, BaseDiscretizer.bytearray_to_bucket_num, bytearray()) # not a bytearray self.assertRaises(DiscretizerException, BaseDiscretizer.bytearray_to_bucket_num, 0.0) self.assertRaises(DiscretizerException, BaseDiscretizer.bytearray_to_bucket_num, [0, 1, 2])
def test_bucket_num_to_bytearray(self): # valid ba = BaseDiscretizer.bucket_num_to_bytearray(0) self.assertIsInstance(ba, bytearray) self.assertEqual(len(ba), 1) self.assertEqual(ba[0], 0) ba = BaseDiscretizer.bucket_num_to_bytearray(3) self.assertEqual(ba, bytearray([3])) ba = BaseDiscretizer.bucket_num_to_bytearray(255) self.assertEqual(ba, bytearray([255])) ba = BaseDiscretizer.bucket_num_to_bytearray(256) self.assertEqual(ba, bytearray([1, 0])) ba = BaseDiscretizer.bucket_num_to_bytearray(257) self.assertEqual(ba, bytearray([1, 1])) ba = BaseDiscretizer.bucket_num_to_bytearray(65535) self.assertEqual(ba, bytearray([255, 255])) ba = BaseDiscretizer.bucket_num_to_bytearray(65536) self.assertEqual(ba, bytearray([1, 0, 0])) # not an integer self.assertRaises(DiscretizerException, BaseDiscretizer.bucket_num_to_bits, 'abcd') # bad bucket number self.assertRaises(DiscretizerException, BaseDiscretizer.bucket_num_to_bits, -1)
def test_bucket_num_to_bits(self): # valid bits = BaseDiscretizer.bucket_num_to_bits(0) self.assertEqual(bits, '0b00000000') bits = BaseDiscretizer.bucket_num_to_bits(3) self.assertEqual(bits, '0b00000011') bits = BaseDiscretizer.bucket_num_to_bits(255) self.assertEqual(bits, '0b11111111') bits = BaseDiscretizer.bucket_num_to_bits(512) self.assertEqual(bits, '0b'+'00000010'+'00000000') bits = BaseDiscretizer.bucket_num_to_bits(16744195) self.assertEqual(bits, '0b'+'11111111'+'01111111'+'00000011') # not an integer self.assertRaises(DiscretizerException, BaseDiscretizer.bucket_num_to_bits, 'abcd') # bad bucket number self.assertRaises(DiscretizerException, BaseDiscretizer.bucket_num_to_bits, -1)
def test_bytearray_to_bits(self): # 1 byte ba = bytearray([255]) bits = BaseDiscretizer.bytearray_to_bits(ba) self.assertEqual(bits, '0b11111111') # 4 bytes ba = bytearray([0, 255, 127, 3]) bits = BaseDiscretizer.bytearray_to_bits(ba) self.assertEqual(bits, '0b'+'00000000'+'11111111'+'01111111'+'00000011') # 0 bytes self.assertRaises(DiscretizerException, BaseDiscretizer.bytearray_to_bits, bytearray()) # not a bytearray self.assertRaises(DiscretizerException, BaseDiscretizer.bytearray_to_bits, 0.0) self.assertRaises(DiscretizerException, BaseDiscretizer.bytearray_to_bits, [0, 1, 2])