示例#1
0
        public void Uint128LeftShiftLowOverflowTest2()
        {
            var n  = new UInt128(0UL, 1UL);
            var n2 = n.LeftShift(100);
            var sb = UInt128.FromBigInteger(BigInteger.One << 100);

            Assert.AreEqual(sb, n2);
        }
示例#2
0
        public void UInt128ToBigDecimalAndBackTest()
        {
            var bignum   = new UInt128(UInt64.MaxValue, UInt64.MaxValue);
            var bignumbi = bignum.ToBigInteger;
            var bignum2  = UInt128.FromBigInteger(bignumbi);

            Assert.AreEqual(bignum, bignum2);
        }
示例#3
0
        public void UInt128LeftShiftOverflowTest3()
        {
            var n  = UInt128.FromBigInteger(BigInteger.Parse("18446744073709551616"));
            var n2 = n.LeftShift(1);
            var sb = UInt128.FromBigInteger(BigInteger.Parse("36893488147419103232"));

            Assert.AreEqual(sb, n2);
        }
示例#4
0
        public void BinaryStringToUInt128Test()
        {
            var s  = "10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010";
            var sb = UInt128.FromBigInteger(BigInteger.Parse("226854911280625642308916404954512140970"));
            var n  = UInt128.FromBinaryString(s);

            Assert.AreEqual(sb, n);
        }
示例#5
0
        public void BigIntegerToUInt128AndBackTest()
        {
            var bignum    = new BigInteger(UInt64.MaxValue * Convert.ToUInt64(20));
            var bignum128 = UInt128.FromBigInteger(bignum);
            var bignum2   = bignum128.ToBigInteger;

            Assert.AreEqual(bignum, bignum2);
        }
示例#6
0
        public void SimpleCountableHashTest()
        {
            var o     = BigInteger.One;
            var c     = FeatureUtil.makeFullCVR(1, 1, 1, 1, 1, 1, 1);
            var bvbi  = o | (o << 1) | (o << 2) | (o << 3) | (o << 4) | (o << (20 * 5)) | (o << (20 * 5 + 1));
            var bv    = UInt128.FromBigInteger(bvbi);
            var bv_is = LSHCalc.h7(c);

            Assert.AreEqual(bv, bv_is);
        }
示例#7
0
        public void UInt128ToBinaryStringAndBack()
        {
            var b1 = BigInteger.Parse("123456789123456789");
            var n1 = UInt128.FromBigInteger(b1);
            var s  = n1.ToString();
            var n2 = UInt128.FromBinaryString(s);
            var b2 = n2.ToBigInteger;

            Assert.AreEqual(b1, b2);
        }
示例#8
0
        public void BinaryStringToUInt128Test2()
        {
            var a   = UInt128.FromBinaryString("11110101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101");
            var abi = a.ToBigInteger;

            var bbi = BigInteger.Parse("326103934965899360819067332122111202645");
            var b   = UInt128.FromBigInteger(bbi);

            Assert.IsTrue(UInt128.Equals(a, b));
            Assert.AreEqual(bbi, abi);
        }
示例#9
0
 public void UInt128LeftShiftTest()
 {
     for (int i = 0; i < 128; i++)
     {
         var n  = UInt128.One.LeftShift(i);
         var sb = UInt128.FromBigInteger(BigInteger.Pow(new BigInteger(2), i));
         if (!sb.Equals(n))
         {
             Console.WriteLine("Whoa!");
         }
         Assert.AreEqual(sb, n);
     }
 }