| 66 | } |
| 67 | |
| 68 | BOOST_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 |
nothing calls this directly
no test coverage detected