def test_decode_embedded_value_field_table_value(self): value = decode.embedded_value(b'F' + self.FIELD_TBL)[1] for key in self.FIELD_TBL_VALUE.keys(): if isinstance(value[key], float): self.assertAlmostEqual(round(value[key], 3), round(self.FIELD_TBL_VALUE[key], 3)) else: self.assertEqual(value[key], self.FIELD_TBL_VALUE[key])
def test_decode_embedded_value_field_array_value(self): value = decode.embedded_value(b'A' + self.FIELD_ARR)[1] for position in range(0, len(value)): if isinstance(value[position], float): self.assertAlmostEqual( round(value[position], 3), round(self.FIELD_ARR_VALUE[position], 3)) else: self.assertEqual(value[position], self.FIELD_ARR_VALUE[position])
def test_decode_embedded_value_long_uint_value(self): value = b'i\xff\xff\xff\xff' self.assertEqual(decode.embedded_value(value)[1], 4294967295)
def test_decode_embedded_value_void_value(self): self.assertIsNone(decode.embedded_value(b'V')[1])
def test_decode_embedded_value_field_table_bytes_consumed(self): self.assertEqual( decode.embedded_value(b'F' + self.FIELD_TBL)[0], len(b'F' + self.FIELD_TBL))
def test_decode_embedded_value_field_array_data_type(self): self.assertIsInstance( decode.embedded_value(b'A' + self.FIELD_ARR)[1], list)
def test_decode_embedded_value_timestamp_value(self): value = b'T\x00\x00\x00\x00Ec)\x92' self.assertEqual( decode.embedded_value(value)[1], datetime.datetime(2006, 11, 21, 16, 30, 10))
def test_decode_embedded_value_timestamp_bytes_consumed(self): value = b'T\x00\x00\x00\x00Ec)\x92' self.assertEqual(decode.embedded_value(value)[0], 9)
def test_decode_embedded_value_byte_array_data_type(self): value = b'x\x00\x00\x00\x03ABC' self.assertIsInstance(decode.embedded_value(value)[1], bytearray)
def test_decode_embedded_value_byte_array_data(self): value = b'x\x00\x00\x00\x03ABC' self.assertEqual( decode.embedded_value(value)[1], bytearray([65, 66, 67]))
def test_decode_embedded_value_longstr_data_type(self): value = b'S\x00\x00\x00\n0123456789' self.assertIsInstance(decode.embedded_value(value)[1], str)
def test_decode_embedded_value_longstr_bytes_consumed(self): value = b'S\x00\x00\x00\n0123456789' self.assertEqual(decode.embedded_value(value)[0], 15)
def test_decode_embedded_value_long_long_value(self): value = b'l\x7f\xff\xff\xff\xff\xff\xff\xf8' self.assertEqual(decode.embedded_value(value)[1], 9223372036854775800)
def test_decode_embedded_value_long_long_data_type_32bit(self): value = b'l\x7f\xff\xff\xff\xff\xff\xff\xf8' self.assertIsInstance(decode.embedded_value(value)[1], int)
def test_decode_embedded_value_long_long_bytes_consumed(self): value = b'l\x7f\xff\xff\xff\xff\xff\xff\xf8' self.assertEqual(decode.embedded_value(value)[0], 9)
def test_decode_embedded_value_short_uint_data_type(self): self.assertIsInstance(decode.embedded_value(b'u\xff\xff')[1], int)
def test_decode_embedded_value_short_uint_value(self): self.assertEqual(decode.embedded_value(b'u\xff\xff')[1], 65535)
def test_decode_embedded_value_longstr_data_type_unicode(self): value = (b'S\x00\x00\x00\x0c\xd8\xa7\xd8\xae\xd8\xaa\xd8\xa8\xd8' b'\xa7\xd8\xb1') self.assertIsInstance(decode.embedded_value(value)[1], str)
def test_decode_embedded_value_timestamp_data_type(self): value = b'T\x00\x00\x00\x00Ec)\x92' self.assertIsInstance( decode.embedded_value(value)[1], datetime.datetime)
def test_decode_embedded_value_longstr_value(self): value = b'S\x00\x00\x00\n0123456789' self.assertEqual(decode.embedded_value(value)[1], '0123456789')
def test_decode_embedded_value_field_array_bytes_consumed(self): self.assertEqual( decode.embedded_value(b'A' + self.FIELD_ARR)[0], len(b'A' + self.FIELD_ARR))
def test_decode_embedded_value_short_bytes_consumed(self): value = b's\x7f\xff' self.assertEqual(decode.embedded_value(value)[0], 3)
def test_decode_embedded_value_short_short_bytes_consumed(self): self.assertEqual(decode.embedded_value(b'b\xff')[0], 2)
def test_decode_embedded_value_short_short_value(self): self.assertEqual(decode.embedded_value(b'b\xff')[1], 255)
def test_decode_embedded_value_field_table_data_type(self): self.assertIsInstance( decode.embedded_value(b'F' + self.FIELD_TBL)[1], dict)
def test_decode_embedded_value_short_data_type(self): value = b's\x7f\xff' self.assertIsInstance(decode.embedded_value(value)[1], int)
def test_decode_embedded_value_void_consumed(self): self.assertEqual(decode.embedded_value(b'V')[0], 1)
def test_decode_embedded_value_short_value(self): self.assertEqual(decode.embedded_value(b's\x7f\xff')[1], 32767)
def test_field_embedded_value_field_table_keys(self): value = decode.embedded_value(b'F' + self.FIELD_TBL)[1] self.assertListEqual(sorted(value.keys()), sorted(self.FIELD_TBL_VALUE.keys()))
def test_decode_embedded_value_long_uint_data_type(self): value = b'i\xff\xff\xff\xff' self.assertIsInstance(decode.embedded_value(value)[1], int)