public void BinaryStringToUInt128Test() { var s = "10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"; var sb = UInt128.FromBigInteger(BigInteger.Parse("226854911280625642308916404954512140970")); var n = UInt128.FromBinaryString(s); Assert.AreEqual(sb, n); }
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); }
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)); }
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); }
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); }
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); }