@@ -70,7 +70,6 @@ BOOST_AUTO_TEST_CASE(sizes)
7070 BOOST_CHECK_EQUAL (sizeof (uint32_t ), GetSerializeSize (uint32_t (0 ), 0 ));
7171 BOOST_CHECK_EQUAL (sizeof (int64_t ), GetSerializeSize (int64_t (0 ), 0 ));
7272 BOOST_CHECK_EQUAL (sizeof (uint64_t ), GetSerializeSize (uint64_t (0 ), 0 ));
73- BOOST_CHECK_EQUAL (sizeof (float ), GetSerializeSize (float (0 ), 0 ));
7473 BOOST_CHECK_EQUAL (sizeof (double ), GetSerializeSize (double (0 ), 0 ));
7574 // Bool is serialized as char
7675 BOOST_CHECK_EQUAL (sizeof (char ), GetSerializeSize (bool (0 ), 0 ));
@@ -85,30 +84,10 @@ BOOST_AUTO_TEST_CASE(sizes)
8584 BOOST_CHECK_EQUAL (GetSerializeSize (uint32_t (0 ), 0 ), 4U );
8685 BOOST_CHECK_EQUAL (GetSerializeSize (int64_t (0 ), 0 ), 8U );
8786 BOOST_CHECK_EQUAL (GetSerializeSize (uint64_t (0 ), 0 ), 8U );
88- BOOST_CHECK_EQUAL (GetSerializeSize (float (0 ), 0 ), 4U );
8987 BOOST_CHECK_EQUAL (GetSerializeSize (double (0 ), 0 ), 8U );
9088 BOOST_CHECK_EQUAL (GetSerializeSize (bool (0 ), 0 ), 1U );
9189}
9290
93- BOOST_AUTO_TEST_CASE (floats_conversion)
94- {
95- // Choose values that map unambiguously to binary floating point to avoid
96- // rounding issues at the compiler side.
97- BOOST_CHECK_EQUAL (ser_uint32_to_float (0x00000000 ), 0 .0F );
98- BOOST_CHECK_EQUAL (ser_uint32_to_float (0x3f000000 ), 0 .5F );
99- BOOST_CHECK_EQUAL (ser_uint32_to_float (0x3f800000 ), 1 .0F );
100- BOOST_CHECK_EQUAL (ser_uint32_to_float (0x40000000 ), 2 .0F );
101- BOOST_CHECK_EQUAL (ser_uint32_to_float (0x40800000 ), 4 .0F );
102- BOOST_CHECK_EQUAL (ser_uint32_to_float (0x44444444 ), 785 .066650390625F );
103-
104- BOOST_CHECK_EQUAL (ser_float_to_uint32 (0 .0F ), 0x00000000U );
105- BOOST_CHECK_EQUAL (ser_float_to_uint32 (0 .5F ), 0x3f000000U );
106- BOOST_CHECK_EQUAL (ser_float_to_uint32 (1 .0F ), 0x3f800000U );
107- BOOST_CHECK_EQUAL (ser_float_to_uint32 (2 .0F ), 0x40000000U );
108- BOOST_CHECK_EQUAL (ser_float_to_uint32 (4 .0F ), 0x40800000U );
109- BOOST_CHECK_EQUAL (ser_float_to_uint32 (785 .066650390625F ), 0x44444444U );
110- }
111-
11291BOOST_AUTO_TEST_CASE (doubles_conversion)
11392{
11493 // Choose values that map unambiguously to binary floating point to avoid
@@ -135,26 +114,8 @@ Python code to generate the below hashes:
135114 def dsha256(x):
136115 return hashlib.sha256(hashlib.sha256(x).digest()).digest()
137116
138- reversed_hex(dsha256(''.join(struct.pack('<f', x) for x in range(0,1000)))) == '8e8b4cf3e4df8b332057e3e23af42ebc663b61e0495d5e7e32d85099d7f3fe0c'
139117 reversed_hex(dsha256(''.join(struct.pack('<d', x) for x in range(0,1000)))) == '43d0c82591953c4eafe114590d392676a01585d25b25d433557f0d7878b23f96'
140118*/
141- BOOST_AUTO_TEST_CASE (floats)
142- {
143- CDataStream ss (SER_DISK, 0 );
144- // encode
145- for (int i = 0 ; i < 1000 ; i++) {
146- ss << float (i);
147- }
148- BOOST_CHECK (Hash (ss) == uint256S (" 8e8b4cf3e4df8b332057e3e23af42ebc663b61e0495d5e7e32d85099d7f3fe0c" ));
149-
150- // decode
151- for (int i = 0 ; i < 1000 ; i++) {
152- float j;
153- ss >> j;
154- BOOST_CHECK_MESSAGE (i == j, " decoded:" << j << " expected:" << i);
155- }
156- }
157-
158119BOOST_AUTO_TEST_CASE (doubles)
159120{
160121 CDataStream ss (SER_DISK, 0 );
0 commit comments