| 192 | } |
| 193 | |
| 194 | func TestU256(t *testing.T) { |
| 195 | tests := []struct{ x, y *big.Int }{ |
| 196 | {x: big.NewInt(0), y: big.NewInt(0)}, |
| 197 | {x: big.NewInt(1), y: big.NewInt(1)}, |
| 198 | {x: BigPow(2, 255), y: BigPow(2, 255)}, |
| 199 | {x: BigPow(2, 256), y: big.NewInt(0)}, |
| 200 | {x: new(big.Int).Add(BigPow(2, 256), big.NewInt(1)), y: big.NewInt(1)}, |
| 201 | // negative values |
| 202 | {x: big.NewInt(-1), y: new(big.Int).Sub(BigPow(2, 256), big.NewInt(1))}, |
| 203 | {x: big.NewInt(-2), y: new(big.Int).Sub(BigPow(2, 256), big.NewInt(2))}, |
| 204 | {x: BigPow(2, -255), y: big.NewInt(1)}, |
| 205 | } |
| 206 | for _, test := range tests { |
| 207 | if y := U256(new(big.Int).Set(test.x)); y.Cmp(test.y) != 0 { |
| 208 | t.Errorf("U256(%x) = %x, want %x", test.x, y, test.y) |
| 209 | } |
| 210 | } |
| 211 | } |
| 212 | |
| 213 | func TestBigEndianByteAt(t *testing.T) { |
| 214 | tests := []struct { |