public void uintTests() { var v = new uint256("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); var v2 = new uint256("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); var vless = new uint256("00000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffe"); var vplus = new uint256("00000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); Assert.Equal("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff", v.ToString()); Assert.Equal(new uint256("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), v); Assert.Equal(new uint256("0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), v); Assert.Equal(uint256.Parse("0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), v); Assert.True(v < vplus); Assert.True(v > vless); uint256 unused; Assert.True(uint256.TryParse("0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff", out unused)); Assert.True( uint256.TryParse("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff", out unused)); Assert.True( uint256.TryParse("00000000ffffFFfFffffffffffffffffffffffffffffffffffffffffffffffff", out unused)); Assert.False(uint256.TryParse("00000000gfffffffffffffffffffffffffffffffffffffffffffffffffffffff", out unused)); Assert.False(uint256.TryParse("100000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff", out unused)); Assert.False(uint256.TryParse("1100000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff", out unused)); Assert.Throws <FormatException>(() => uint256.Parse("1100000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff")); Assert.Throws <FormatException>(() => uint256.Parse("100000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff")); uint256.Parse("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); Assert.Throws <FormatException>(() => uint256.Parse("000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff")); Assert.True(v >= v2); Assert.True(v <= v2); Assert.False(v < v2); Assert.False(v > v2); Assert.True(v.ToBytes()[0] == 0xFF); Assert.True(v.ToBytes(false)[0] == 0x00); AssertEquals(v, new uint256(v.ToBytes())); AssertEquals(v, new uint256(v.ToBytes(false), false)); Assert.Equal(0xFF, v.GetByte(0)); Assert.Equal(0x00, v.GetByte(31)); Assert.Equal(0x39, new uint256("39000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffff").GetByte(31)); Assert.Throws <ArgumentOutOfRangeException>(() => v.GetByte(32)); }
public void uitnSerializationTests2() { var v = new uint256("0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20"); var vr = new uint256("201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a090807060504030201"); var bytes = v.ToBytes(); Assert.Equal(0x20, bytes[0]); Assert.Equal(0x01, bytes[31]); var v2 = new uint256(bytes); Assert.Equal(v, v2); Assert.Equal("0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20", v2.ToString()); var bytes2 = new byte[32]; v2.ToBytes(bytes2); var v3 = new uint256(bytes2, 0, 32); Assert.Equal(v2, v3); Assert.Equal(vr, new uint256(v.ToBytes(false))); v.ToBytes(bytes, false); Assert.Equal(vr, new uint256(bytes)); v.ToBytes(bytes); Assert.Equal(vr, new uint256(bytes, false)); Assert.Equal(v, new uint256(Enumerable.Range(0, 32).Select(i => v.GetByte(i)).ToArray())); Assert.Equal(0x1d1e1f20U, v.GetLow32()); Assert.Equal(0x191a1b1c1d1e1f20U, v.GetLow64()); }
public void uintTests() { var v = new uint256("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); var v2 = new uint256("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); var vless = new uint256("00000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffe"); var vplus = new uint256("00000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); Assert.Equal("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff", v.ToString()); Assert.Equal(new uint256("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), v); Assert.Equal(new uint256("0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), v); Assert.Equal(uint256.Parse("0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), v); Assert.True(v < vplus); Assert.True(v > vless); uint256 unused; Assert.True(uint256.TryParse("0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff", out unused)); Assert.True(uint256.TryParse("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff", out unused)); Assert.True(uint256.TryParse("00000000ffffFFfFffffffffffffffffffffffffffffffffffffffffffffffff", out unused)); Assert.False(uint256.TryParse("00000000gfffffffffffffffffffffffffffffffffffffffffffffffffffffff", out unused)); Assert.False(uint256.TryParse("100000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff", out unused)); Assert.False(uint256.TryParse("1100000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff", out unused)); Assert.Throws<FormatException>(() => uint256.Parse("1100000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff")); Assert.Throws<FormatException>(() => uint256.Parse("100000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff")); uint256.Parse("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); Assert.Throws<FormatException>(() => uint256.Parse("000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff")); Assert.True(v >= v2); Assert.True(v <= v2); Assert.False(v < v2); Assert.False(v > v2); Assert.True(v.ToBytes()[0] == 0xFF); Assert.True(v.ToBytes(false)[0] == 0x00); AssertEquals(v, new uint256(v.ToBytes())); AssertEquals(v, new uint256(v.ToBytes(false), false)); Assert.Equal(0xFF, v.GetByte(0)); Assert.Equal(0x00, v.GetByte(31)); Assert.Equal(0x39, new uint256("39000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffff").GetByte(31)); Assert.Throws<ArgumentOutOfRangeException>(() => v.GetByte(32)); }