Parse floating point and binaries
[ton] / test_don.py
index df91309..1b68059 100644 (file)
@@ -192,4 +192,38 @@ class TestStringDeserialize(unittest.TestCase):
             string.deserialize('false'),
         )
 
+    def test_deserializes_int8(self):
+        self.assertEqual(10, string.deserialize('10i8'))
+        self.assertEqual(-1, string.deserialize('-1i8'))
+
+    def test_deserializes_int16(self):
+        self.assertEqual(10, string.deserialize('10i16'))
+        self.assertEqual(-1, string.deserialize('-1i16'))
+
+    def test_deserializes_int32(self):
+        self.assertEqual(10, string.deserialize('10i32'))
+        self.assertEqual(-1, string.deserialize('-1i32'))
+
+    def test_deserializes_int64(self):
+        self.assertEqual(10, string.deserialize('10i64'))
+        self.assertEqual(-1, string.deserialize('-1i64'))
+
+    def test_deserializes_float(self):
+        self.assertEqual(1.0, string.deserialize('1.0f'))
+
+    def test_deserializes_double(self):
+        self.assertEqual(1.0, string.deserialize('1.0d'))
+
+    def test_serializes_binary(self):
+        self.assertEqual(
+            b'\xde\xad\xbe\xef',
+            string.deserialize(b'\x30\x00\x00\x00\x04\xde\xad\xbe\xef'),
+        )
+
+    def test_serializes_binary(self):
+        self.assertEqual(
+            b'\xde\xad\xbe\xef',
+            string.deserialize('"deadbeef"b'),
+        )
+
 unittest.main()