Beispiel #1
0
 def test_int1_vec(self):
     self.assertEqual(
         flexbuf.decode(
             bytearray([3, 1, 2, 3, FlexBufferType.FBT_VECTOR_INT << 2,
                        3])),
         [1, 2, 3],
     )
Beispiel #2
0
 def test_string(self):
     tstring = b"foo" + bytearray([0])
     bytes = bytearray([len(tstring)]) + tstring
     type_byte = FlexBufferType.FBT_STRING << 2
     self.assertEqual(
         flexbuf.decode(bytes +
                        bytearray([type_byte, len(tstring)])), "foo")
Beispiel #3
0
 def test_vec(self):
     self.assertEqual(
         flexbuf.decode(
             bytearray([
                 3, 1, 2, 3, 4, 4, 4, 6, FlexBufferType.FBT_VECTOR << 2, 1
             ])),
         [1, 2, 3],
     )
Beispiel #4
0
 def test_int2_vec(self):
     type_byte = FlexBufferType.FBT_VECTOR_INT << 2 | BitWidth.BIT_WIDTH_16
     bytes = bytearray()
     vec = [1001, 1002, 1003]
     for v in vec:
         bytes += struct.pack("<h", v)
     self.assertEqual(
         flexbuf.decode(bytearray([3]) + bytes + bytearray([type_byte, 6])),
         [1001, 1002, 1003],
     )
Beispiel #5
0
 def test_float(self):
     test_float = -3.14
     bytes = struct.pack("<f", test_float)
     type_byte = FlexBufferType.FBT_FLOAT << 2 | BitWidth.BIT_WIDTH_32
     self.assertAlmostEqual(
         flexbuf.decode(bytes +
                        bytearray([type_byte, len(bytes) + 2])),
         test_float,
         places=5,
     )
Beispiel #6
0
 def test_string_vec(self):
     type_byte = FlexBufferType.FBT_VECTOR_STRING << 2
     bytes = bytearray()
     vec = ["apples", "oranges", "peaches"]
     for v in vec:
         bytes += bytearray([len(v) + 1])
         bytes += v.encode("utf-8")
         bytes += b"\0"
     self.assertEqual(
         flexbuf.decode(
             bytearray([3]) + bytes +
             bytearray([type_byte, len(bytes)])),
         vec,
     )
Beispiel #7
0
 def test_map(self):
     # Example from the documentation
     tmap = b"bar" + bytearray([0]) + b"foo" + bytearray([0])
     tmap += bytearray([2])  # key vec size
     tmap += bytearray([9, 6])  # offset to bar and foo
     tmap += bytearray([2, 1])  # offset to key vec and byte width
     tmap += bytearray([2])  # value vec size
     # value vec points here
     value_vec = bytearray([14, 13])  # values
     value_vec += bytearray([4, 4])  # types of values
     tmap += value_vec
     self.assertEqual(
         flexbuf.decode(
             tmap + bytearray([FlexBufferType.FBT_MAP << 2,
                               len(value_vec)])),
         {
             "foo": 13,
             "bar": 14
         },
     )
Beispiel #8
0
 def test_null(self):
     self.assertEqual(flexbuf.decode(bytearray([0, 0, 1])), b"0")
Beispiel #9
0
 def test_uint(self):
     self.assertEqual(flexbuf.decode(bytearray([13, 8, 1])), 13)
Beispiel #10
0
 def test_int(self):
     minus_13 = struct.pack("b", -13)
     self.assertEqual(flexbuf.decode(minus_13 + bytearray([4, 1])), -13)