예제 #1
0
        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));
        }
예제 #2
0
        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());
        }
예제 #3
0
		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));
		}