@@ -107,3 +107,30 @@ def T(serialized, ex_cls=SerializationTruncationError):
107107 T (b'01' )
108108 T (b'0200' )
109109 T (b'ff00000000000000ff11223344' , SerializationError ) # > max_size
110+
111+ class Test_Compact (unittest .TestCase ):
112+ def test_from_compact_zero (self ):
113+ self .assertEqual (uint256_from_compact (0x00123456 ), 0 )
114+ self .assertEqual (uint256_from_compact (0x01003456 ), 0 )
115+ self .assertEqual (uint256_from_compact (0x02000056 ), 0 )
116+ self .assertEqual (uint256_from_compact (0x03000000 ), 0 )
117+ self .assertEqual (uint256_from_compact (0x04000000 ), 0 )
118+ self .assertEqual (uint256_from_compact (0x00923456 ), 0 )
119+ def test_from_compact_negative_zero (self ):
120+ # Negative bit isn't supported yet
121+ # self.assertEqual(uint256_from_compact(0x01803456), 0)
122+ # self.assertEqual(uint256_from_compact(0x02800056), 0)
123+ # self.assertEqual(uint256_from_compact(0x03800000), 0)
124+ # self.assertEqual(uint256_from_compact(0x04800000), 0)
125+ return
126+
127+ def test_twelve (self ):
128+ self .assertEqual (uint256_from_compact (0x01123456 ), 0x0012 )
129+ self .assertEqual (compact_from_uint256 (0x0012 ), 0x01120000 )
130+
131+ def test_from_uint256 (self ):
132+ self .assertEqual (compact_from_uint256 (0x1234 ), 0x02123400 )
133+ self .assertEqual (compact_from_uint256 (0x123456 ), 0x03123456 )
134+ self .assertEqual (compact_from_uint256 (0x12345600 ), 0x04123456 )
135+ self .assertEqual (compact_from_uint256 (0x92340000 ), 0x05009234 )
136+ self .assertEqual (compact_from_uint256 (0x1234560000000000000000000000000000000000000000000000000000000000 ), 0x20123456 )
0 commit comments