public void testSingleNodeIndex() { ITreeAdaptor adaptor = new CommonTreeAdaptor(); TreeWizard wiz = new TreeWizard(adaptor, tokens); CommonTree t = (CommonTree)wiz.Create("ID"); IDictionary m = wiz.Index(t); string actual = CollectionUtils.DictionaryToString(m); string expected = "{10=[ID]}"; Assert.AreEqual(expected, actual); }
public void testFindPattern() { ITreeAdaptor adaptor = new CommonTreeAdaptor(); TreeWizard wiz = new TreeWizard(adaptor, tokens); CommonTree t = (CommonTree)wiz.Create("(A B C (A[foo] B[bar]) (D (A[big] B[dog])))"); IList subtrees = wiz.Find(t, "(A B)"); IList elements = subtrees; string actual = CollectionUtils.ListToString(elements); string expected = "[foo, big]"; Assert.AreEqual(expected, actual); }
public void testRepeatsIndex() { ITreeAdaptor adaptor = new CommonTreeAdaptor(); TreeWizard wiz = new TreeWizard(adaptor, tokens); CommonTree t = (CommonTree)wiz.Create("(A B (A C B) B D D)"); IDictionary m = wiz.Index(t); string actual = CollectionUtils.DictionaryToString(m); //string expected = "{8=[D, D], 6=[B, B, B], 7=[C], 5=[A, A]}"; string expected = "{8=[D, D], 7=[C], 6=[B, B, B], 5=[A, A]}"; Assert.AreEqual(expected, actual); }
public void testVisitPatternMultipleWithLabels() { ITreeAdaptor adaptor = new CommonTreeAdaptor(); TreeWizard wiz = new TreeWizard(adaptor, tokens); CommonTree t = (CommonTree)wiz.Create("(A B C (A[foo] B[bar]) (D (A[big] B[dog])))"); IList elements = new ArrayList(); wiz.Visit(t, "(%a:A %b:B)", new Test2ContextVisitor(adaptor, elements)); string actual = CollectionUtils.ListToString(elements); string expected = "[foo@A[2]foo&bar, big@D[0]big&dog]"; Assert.AreEqual(expected, actual); }
public void testVisitPatternMultiple() { ITreeAdaptor adaptor = new CommonTreeAdaptor(); TreeWizard wiz = new TreeWizard(adaptor, tokens); CommonTree t = (CommonTree)wiz.Create("(A B C (A B) (D (A B)))"); IList elements = new ArrayList(); wiz.Visit(t, "(A B)", new Test1ContextVisitor(adaptor, elements)); string actual = CollectionUtils.ListToString(elements); string expected = "[A@A[2], A@D[0]]"; // shouldn't match overall root, just (A B) Assert.AreEqual(expected, actual); }
public void testVisitPattern() { ITreeAdaptor adaptor = new CommonTreeAdaptor(); TreeWizard wiz = new TreeWizard(adaptor, tokens); CommonTree t = (CommonTree)wiz.Create("(A B C (A B) D)"); IList elements = new ArrayList(); wiz.Visit(t, "(A B)", new RecordAllElementsVisitor(elements)); string actual = CollectionUtils.ListToString(elements); string expected = "[A]"; // shouldn't match overall root, just (A B) Assert.AreEqual(expected, actual); }
public void testRepeatsVisitWithNullParentAndContext() { ITreeAdaptor adaptor = new CommonTreeAdaptor(); TreeWizard wiz = new TreeWizard(adaptor, tokens); CommonTree t = (CommonTree)wiz.Create("(A B (A C B) B D D)"); IList elements = new ArrayList(); wiz.Visit(t, wiz.GetTokenType("A"), new Test1ContextVisitor(adaptor, elements)); string actual = CollectionUtils.ListToString(elements); string expected = "[A@nil[0], A@A[1]]"; Assert.AreEqual(expected, actual); }
public void testRepeatsVisit2() { ITreeAdaptor adaptor = new CommonTreeAdaptor(); TreeWizard wiz = new TreeWizard(adaptor, tokens); CommonTree t = (CommonTree)wiz.Create("(A B (A C B) B D D)"); IList elements = new ArrayList(); wiz.Visit(t, wiz.GetTokenType("A"), new RecordAllElementsVisitor(elements)); string actual = CollectionUtils.ListToString(elements); string expected = "[A, A]"; Assert.AreEqual(expected, actual); }