private CRTNode <string> treeWithAlmostRightMostInsert() { var t = new CRTRoot <string>( new CRTInner <string>(0, UInt128.FromZeroFilledPrefix("0"), new CRTInner <string>(1, UInt128.FromZeroFilledPrefix("00"), new CRTInner <string>(4, UInt128.FromZeroFilledPrefix("00001"), new CRTLeaf <string>(UInt128.FromZeroFilledPrefix("000010"), "hi!"), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("000011")) ), new CRTInner <string>(3, UInt128.FromZeroFilledPrefix("0010"), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("00100")), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("00101")) ) ), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("01")) ), new CRTInner <string>(1, UInt128.FromZeroFilledPrefix("11"), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("110")), new CRTInner <string>(126, UInt128.Zero.Sub(UInt128.One).Sub(UInt128.One), new CRTLeaf <string>(UInt128.Zero.Sub(UInt128.One).Sub(UInt128.One), "stuff"), new CRTLeaf <string>(UInt128.Zero.Sub(UInt128.One), "all one or none!") ) ) ); return(t); }
private CRTNode <string> treeWithLeftMostInsert() { var t = new CRTRoot <string>( new CRTInner <string>(0, UInt128.FromZeroFilledPrefix("0"), new CRTInner <string>(1, UInt128.FromZeroFilledPrefix("00"), new CRTInner <string>(3, UInt128.FromZeroFilledPrefix("0000"), // START: difference new CRTLeaf <string>(UInt128.FromZeroFilledPrefix("0000"), "none"), new CRTInner <string>(4, UInt128.FromZeroFilledPrefix("00001"), new CRTLeaf <string>(UInt128.FromZeroFilledPrefix("000010"), "hi!"), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("000011")) ) // END: difference ), new CRTInner <string>(3, UInt128.FromZeroFilledPrefix("0010"), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("00100")), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("00101")) ) ), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("01")) ), new CRTInner <string>(1, UInt128.FromZeroFilledPrefix("11"), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("110")), new CRTLeaf <string>(UInt128.Zero.Sub(UInt128.One), "all one or none!") ) ); return(t); }
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); }
private CRTNode <string> setupTree() { var t = new CRTRoot <string>( new CRTInner <string>(0, UInt128.FromZeroFilledPrefix("0"), new CRTInner <string>(1, UInt128.FromZeroFilledPrefix("00"), new CRTInner <string>(4, UInt128.FromZeroFilledPrefix("00001"), new CRTLeaf <string>(UInt128.FromZeroFilledPrefix("000010"), "hi!"), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("000011")) ), new CRTInner <string>(3, UInt128.FromZeroFilledPrefix("0010"), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("00100")), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("00101")) ) ), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("01")) ), new CRTInner <string>(1, UInt128.FromZeroFilledPrefix("11"), new CRTEmptyLeaf <string>(UInt128.FromZeroFilledPrefix("110")), new CRTLeaf <string>(UInt128.Zero.Sub(UInt128.One), "all one or none!") ) ); return(t); }