// throws VisitFailure public virtual void testDepth2() { IVisitor recognize = new SucceedAtNodes(n1, n12); NestingDepth nd = new NestingDepth(recognize); nd.visit(n0); Assertion.AssertEquals(2,nd.getDepth()); }
// throws VisitFailure public virtual void testNestingStopAt() { IVisitor recognize = new FailAtNodes(n1, n12); IVisitor goOnWhile = new SucceedAtNodes(n0, n1); NestingDepth nd = new NestingDepth(recognize, goOnWhile); nd.visit(n0); Assertion.AssertEquals(1, nd.getDepth()); }
// throws VisitFailure public virtual void testTopDownUntil() { IVisitor stopAt = new SucceedAtNodes(n1, n2); Logger expected = new Logger(); expected.log(new Event(stopAt, n0)); expected.log(new Event(stopAt, n1)); expected.log(new Event(stopAt, n2)); IVisitable nodeReturned = DoWhileSuccess.TopDownUntil(logVisitor(stopAt)).visit(n0); Assertion.AssertEquals(expected, logger); Assertion.AssertEquals(n0, nodeReturned); }
// throws VisitFailure public virtual void testn2Success() { IVisitor action = new Identity(); IVisitor goDown = new Identity(); IVisitor successNode = new SucceedAtNodes(n2); AllSpinesBottomUp asbu = new AllSpinesBottomUp(goDown, successNode, logVisitor(action)); Logger expected = new Logger(action, new IVisitable[]{n2,n0}); IVisitable nodeReturned = asbu.visit(n0); Assertion.AssertEquals("visit trace",expected, logger); Assertion.AssertEquals("return value",n0, nodeReturned); }
// throws VisitFailure public virtual void testTopDownUntilAtBorder() { IVisitor stopAt = new SucceedAtNodes(n1, n2); Logger expected = new Logger(); IVisitor borderAction = new Identity(); expected.log(new Event(stopAt, n0)); expected.log(new Event(stopAt, n1)); expected.log(new Event(borderAction, n1)); expected.log(new Event(stopAt, n2)); expected.log(new Event(borderAction, n2)); IVisitable nodeReturned = new TopDownUntil(logVisitor(stopAt), logVisitor(borderAction) ).visit(n0); Assertion.AssertEquals(expected, logger); Assertion.AssertEquals(n0, nodeReturned); }