MCPcopy Create free account
hub / github.com/ElementsProject/elements / BOOST_AUTO_TEST_CASE

Function BOOST_AUTO_TEST_CASE

src/test/arith_uint256_tests.cpp:68–124  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

66}
67
68BOOST_AUTO_TEST_CASE( basics ) // constructors, equality, inequality
69{
70 BOOST_CHECK(1 == 0+1);
71 // constructor arith_uint256(vector<char>):
72 BOOST_CHECK(R1L.ToString() == ArrayToString(R1Array,32));
73 BOOST_CHECK(R2L.ToString() == ArrayToString(R2Array,32));
74 BOOST_CHECK(ZeroL.ToString() == ArrayToString(ZeroArray,32));
75 BOOST_CHECK(OneL.ToString() == ArrayToString(OneArray,32));
76 BOOST_CHECK(MaxL.ToString() == ArrayToString(MaxArray,32));
77 BOOST_CHECK(OneL.ToString() != ArrayToString(ZeroArray,32));
78
79 // == and !=
80 BOOST_CHECK(R1L != R2L);
81 BOOST_CHECK(ZeroL != OneL);
82 BOOST_CHECK(OneL != ZeroL);
83 BOOST_CHECK(MaxL != ZeroL);
84 BOOST_CHECK(~MaxL == ZeroL);
85 BOOST_CHECK( ((R1L ^ R2L) ^ R1L) == R2L);
86
87 uint64_t Tmp64 = 0xc4dab720d9c7acaaULL;
88 for (unsigned int i = 0; i < 256; ++i)
89 {
90 BOOST_CHECK(ZeroL != (OneL << i));
91 BOOST_CHECK((OneL << i) != ZeroL);
92 BOOST_CHECK(R1L != (R1L ^ (OneL << i)));
93 BOOST_CHECK(((arith_uint256(Tmp64) ^ (OneL << i) ) != Tmp64 ));
94 }
95 BOOST_CHECK(ZeroL == (OneL << 256));
96
97 // String Constructor and Copy Constructor
98 BOOST_CHECK(arith_uint256("0x"+R1L.ToString()) == R1L);
99 BOOST_CHECK(arith_uint256("0x"+R2L.ToString()) == R2L);
100 BOOST_CHECK(arith_uint256("0x"+ZeroL.ToString()) == ZeroL);
101 BOOST_CHECK(arith_uint256("0x"+OneL.ToString()) == OneL);
102 BOOST_CHECK(arith_uint256("0x"+MaxL.ToString()) == MaxL);
103 BOOST_CHECK(arith_uint256(R1L.ToString()) == R1L);
104 BOOST_CHECK(arith_uint256(" 0x"+R1L.ToString()+" ") == R1L);
105 BOOST_CHECK(arith_uint256("") == ZeroL);
106 BOOST_CHECK(R1L == arith_uint256(R1ArrayHex));
107 BOOST_CHECK(arith_uint256(R1L) == R1L);
108 BOOST_CHECK((arith_uint256(R1L^R2L)^R2L) == R1L);
109 BOOST_CHECK(arith_uint256(ZeroL) == ZeroL);
110 BOOST_CHECK(arith_uint256(OneL) == OneL);
111
112 // uint64_t constructor
113 BOOST_CHECK( (R1L & arith_uint256("0xffffffffffffffff")) == arith_uint256(R1LLow64));
114 BOOST_CHECK(ZeroL == arith_uint256(0));
115 BOOST_CHECK(OneL == arith_uint256(1));
116 BOOST_CHECK(arith_uint256("0xffffffffffffffff") == arith_uint256(0xffffffffffffffffULL));
117
118 // Assignment (from base_uint)
119 arith_uint256 tmpL = ~ZeroL; BOOST_CHECK(tmpL == ~ZeroL);
120 tmpL = ~OneL; BOOST_CHECK(tmpL == ~OneL);
121 tmpL = ~R1L; BOOST_CHECK(tmpL == ~R1L);
122 tmpL = ~R2L; BOOST_CHECK(tmpL == ~R2L);
123 tmpL = ~MaxL; BOOST_CHECK(tmpL == ~MaxL);
124}
125

Callers

nothing calls this directly

Calls 13

arith_uint256Class · 0.85
shiftArrayLeftFunction · 0.85
arith_uint256VFunction · 0.85
shiftArrayRightFunction · 0.85
almostEqualFunction · 0.85
GetLow64Method · 0.80
getdoubleMethod · 0.80
GetCompactMethod · 0.80
ArrayToStringFunction · 0.70
ToStringMethod · 0.45
GetHexMethod · 0.45
SetHexMethod · 0.45

Tested by

no test coverage detected