public void TestBecomeRoot6() /*throws Exception*/ { // emulates construction of ^(5 6) CommonTree root_0 = (CommonTree)adaptor.Nil(); CommonTree root_1 = (CommonTree)adaptor.Nil(); root_1 = (CommonTree)adaptor.BecomeRoot(new CommonTree(new CommonToken(5)), root_1); adaptor.AddChild(root_1, new CommonTree(new CommonToken(6))); adaptor.AddChild(root_0, root_1); root_0.SanityCheckParentAndChildIndexes(); }
public void TestBecomeRoot2() /*throws Exception*/ { // 5 becomes new root of ^(101 102 103) CommonTree newRoot = new CommonTree(new CommonToken(5)); CommonTree oldRoot = new CommonTree(new CommonToken(101)); oldRoot.AddChild(new CommonTree(new CommonToken(102))); oldRoot.AddChild(new CommonTree(new CommonToken(103))); ITreeAdaptor adaptor = new CommonTreeAdaptor(); adaptor.BecomeRoot(newRoot, oldRoot); newRoot.SanityCheckParentAndChildIndexes(); }
public void TestReplaceAllWithOne() /*throws Exception*/ { CommonTree t = new CommonTree(new CommonToken(99, "a")); t.AddChild(new CommonTree(new CommonToken(99, "b"))); t.AddChild(new CommonTree(new CommonToken(99, "c"))); t.AddChild(new CommonTree(new CommonToken(99, "d"))); CommonTree newChild = new CommonTree(new CommonToken(99, "x")); t.ReplaceChildren(0, 2, newChild); string expecting = "(a x)"; Assert.AreEqual(expecting, t.ToStringTree()); t.SanityCheckParentAndChildIndexes(); }
public void TestReplaceWithOneChildren() /*throws Exception*/ { // assume token type 99 and use text CommonTree t = new CommonTree(new CommonToken(99, "a")); CommonTree c0 = new CommonTree(new CommonToken(99, "b")); t.AddChild(c0); CommonTree newChild = new CommonTree(new CommonToken(99, "c")); t.ReplaceChildren(0, 0, newChild); string expecting = "(a c)"; Assert.AreEqual(expecting, t.ToStringTree()); t.SanityCheckParentAndChildIndexes(); }
public void TestReplaceTwoWithOneAtRight() /*throws Exception*/ { CommonTree t = new CommonTree(new CommonToken(99, "a")); t.AddChild(new CommonTree(new CommonToken(99, "b"))); t.AddChild(new CommonTree(new CommonToken(99, "c"))); t.AddChild(new CommonTree(new CommonToken(99, "d"))); CommonTree newChild = new CommonTree(new CommonToken(99, "x")); t.ReplaceChildren(1, 2, newChild); string expecting = "(a b x)"; assertEquals(expecting, t.ToStringTree()); t.SanityCheckParentAndChildIndexes(); }
public void TestReplaceAtLeft() /*throws Exception*/ { CommonTree t = new CommonTree(new CommonToken(99, "a")); t.AddChild(new CommonTree(new CommonToken(99, "b"))); // index 0 t.AddChild(new CommonTree(new CommonToken(99, "c"))); t.AddChild(new CommonTree(new CommonToken(99, "d"))); CommonTree newChild = new CommonTree(new CommonToken(99, "x")); t.ReplaceChildren(0, 0, newChild); string expecting = "(a x c d)"; assertEquals(expecting, t.ToStringTree()); t.SanityCheckParentAndChildIndexes(); }
public void TestReplaceOneWithTwoInMiddle() /*throws Exception*/ { CommonTree t = new CommonTree(new CommonToken(99, "a")); t.AddChild(new CommonTree(new CommonToken(99, "b"))); t.AddChild(new CommonTree(new CommonToken(99, "c"))); t.AddChild(new CommonTree(new CommonToken(99, "d"))); CommonTree newChildren = (CommonTree)adaptor.Nil(); newChildren.AddChild(new CommonTree(new CommonToken(99, "x"))); newChildren.AddChild(new CommonTree(new CommonToken(99, "y"))); t.ReplaceChildren(1, 1, newChildren); string expecting = "(a b x y d)"; Assert.AreEqual(expecting, t.ToStringTree()); t.SanityCheckParentAndChildIndexes(); }
public void TestReplaceAllWithTwo() /*throws Exception*/ { CommonTree t = new CommonTree(new CommonToken(99, "a")); t.AddChild(new CommonTree(new CommonToken(99, "b"))); t.AddChild(new CommonTree(new CommonToken(99, "c"))); t.AddChild(new CommonTree(new CommonToken(99, "d"))); CommonTree newChildren = (CommonTree)adaptor.Nil(); newChildren.AddChild(new CommonTree(new CommonToken(99, "x"))); newChildren.AddChild(new CommonTree(new CommonToken(99, "y"))); t.ReplaceChildren(0, 2, newChildren); string expecting = "(a x y)"; assertEquals(expecting, t.ToStringTree()); t.SanityCheckParentAndChildIndexes(); }
public void TestDupTree() /*throws Exception*/ { // ^(101 ^(102 103 ^(106 107) ) 104 105) CommonTree r0 = new CommonTree(new CommonToken(101)); CommonTree r1 = new CommonTree(new CommonToken(102)); r0.AddChild(r1); r1.AddChild(new CommonTree(new CommonToken(103))); ITree r2 = new CommonTree(new CommonToken(106)); r2.AddChild(new CommonTree(new CommonToken(107))); r1.AddChild(r2); r0.AddChild(new CommonTree(new CommonToken(104))); r0.AddChild(new CommonTree(new CommonToken(105))); CommonTree dup = (CommonTree)(new CommonTreeAdaptor()).DupTree(r0); Assert.IsNull(dup.Parent); Assert.AreEqual(-1, dup.ChildIndex); dup.SanityCheckParentAndChildIndexes(); }