@@ -101,6 +101,8 @@ BOOST_AUTO_TEST_CASE( basics ) // constructors, equality, inequality
101101 BOOST_CHECK_EQUAL (uint256S (" 0x" +MaxL.ToString ()), MaxL);
102102 BOOST_CHECK_EQUAL (uint256S (R1L.ToString ()), R1L);
103103 BOOST_CHECK_EQUAL (uint256S (" 0x" +R1L.ToString ()+" " ), R1L);
104+ BOOST_CHECK_EQUAL (uint256S (" 0x" +R1L.ToString ()+" -trash;%^& " ), R1L);
105+ BOOST_CHECK_EQUAL (uint256S (" \t \n \n \f\n\r\t\v\t 0x" +R1L.ToString ()+" \t \n \n \f\n\r\t\v\t " ), R1L);
104106 BOOST_CHECK_EQUAL (uint256S (" " ), ZeroL);
105107 BOOST_CHECK_EQUAL (R1L, uint256S (R1ArrayHex));
106108 BOOST_CHECK_EQUAL (uint256 (R1L), R1L);
@@ -114,6 +116,8 @@ BOOST_AUTO_TEST_CASE( basics ) // constructors, equality, inequality
114116 BOOST_CHECK_EQUAL (uint160S (" 0x" +MaxS.ToString ()), MaxS);
115117 BOOST_CHECK_EQUAL (uint160S (R1S.ToString ()), R1S);
116118 BOOST_CHECK_EQUAL (uint160S (" 0x" +R1S.ToString ()+" " ), R1S);
119+ BOOST_CHECK_EQUAL (uint160S (" 0x" +R1S.ToString ()+" -trash;%^& " ), R1S);
120+ BOOST_CHECK_EQUAL (uint160S (" \t \n \n \f\n\r\t\v\t 0x" +R1S.ToString ()+" \t \n \n \f\n\r\t\v\t " ), R1S);
117121 BOOST_CHECK_EQUAL (uint160S (" " ), ZeroS);
118122 BOOST_CHECK_EQUAL (R1S, uint160S (R1ArrayHex));
119123
@@ -162,6 +166,9 @@ BOOST_AUTO_TEST_CASE( methods ) // GetHex SetHex begin() end() size() GetLow64 G
162166 BOOST_CHECK_EQUAL (MaxL.GetHex (), MaxL.ToString ());
163167 uint256 TmpL (R1L);
164168 BOOST_CHECK_EQUAL (TmpL, R1L);
169+ // Verify previous values don't persist when setting to truncated string.
170+ TmpL.SetHex (" 21" );
171+ BOOST_CHECK_EQUAL (TmpL.ToString (), " 0000000000000000000000000000000000000000000000000000000000000021" );
165172 TmpL.SetHex (R2L.ToString ()); BOOST_CHECK_EQUAL (TmpL, R2L);
166173 TmpL.SetHex (ZeroL.ToString ()); BOOST_CHECK_EQUAL (TmpL, uint256 ());
167174
0 commit comments