Example #1
0
        public void BinaryStringToUInt128Test()
        {
            var s  = "10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010";
            var sb = UInt128.FromBigInteger(BigInteger.Parse("226854911280625642308916404954512140970"));
            var n  = UInt128.FromBinaryString(s);

            Assert.AreEqual(sb, n);
        }
Example #2
0
        public void CommonPrefixTest3()
        {
            var a   = UInt128.FromBinaryString("11111010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010");
            var b   = UInt128.FromBinaryString("11110101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101");
            var c   = BigInteger.Parse("326103934965899360819067332122111202645");
            var len = a.LongestCommonPrefix(b);

            Assert.AreEqual(4, len);
        }
Example #3
0
        private UInt128 Reverse(UInt128 n)
        {
            var n_str   = n.ToString();
            var n_chars = n_str.ToCharArray();

            Array.Reverse(n_chars);
            var rev_n_str = new String(n_chars);

            return(UInt128.FromBinaryString(rev_n_str));
        }
Example #4
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);
        }
Example #5
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);
        }
        public void InsertEmptyTreeTest()
        {
            // initialize a tree
            var t = new CRTRoot <String>();

            // insert a value
            var key   = UInt128.FromBinaryString("00000000000000000000000101010000000000000000000000000000000000000000000000000000000000000000000000000000000000010001000110010111");
            var value = "first";
            var t2    = t.Replace(key, value);

            // expected outcome
            var te = new CRTRoot <String>(
                new CRTLeaf <String>(key, value),
                new CRTEmptyLeaf <String>(UInt128.MaxValue)
                );

            Assert.AreEqual(te, t2);
        }
Example #7
0
        public void UInt128RightShift64Test()
        {
            var bstr   = "11110101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101";
            var a      = UInt128.FromBinaryString(bstr);
            var a_rs64 = a.RightShift(64);

            // get reversed number
            var arev = Reverse(a);

            // left shift the reversed number
            var arev_ls64 = arev.LeftShift(64);

            // unreverse shifted number
            var unrev_ls1 = Reverse(arev_ls64);

            // compare
            Assert.AreEqual(a_rs64, unrev_ls1);
        }