public void ChildNodesGetSpanShouldReturnTupleWithStartEqualToPreviousChildsStartPlusLengthStartingAt3() { // Arrange var childNodes = new List <RegexNode> { new CharacterNode('a'), new CharacterNode('b'), new CharacterNode('c') }; var target = new NonCaptureGroupNode(childNodes); // Act var(Start, Length) = target.ChildNodes.First().GetSpan(); var(Start2, Length2) = target.ChildNodes.ElementAt(1).GetSpan(); var(Start3, _) = target.ChildNodes.ElementAt(2).GetSpan(); // Assert Start.ShouldBe(3); Start2.ShouldBe(Start + Length); Start3.ShouldBe(Start2 + Length2); }
public void ChildNodesGetSpanShouldReturnTupleWithStartEqualToPreviousChildsStartPlusLengthStartingAt2() { // Arrange var thenBranch = new CharacterNode('t'); var elseBranch = new CharacterNode('e'); var alternates = new AlternationNode(new List <RegexNode> { thenBranch, elseBranch }); var condition = new CaptureGroupNode(new CharacterNode('c')); var target = new ConditionalGroupNode(condition, alternates); // Act var(Start, Length) = target.ChildNodes.First().GetSpan(); var(Start2, _) = target.ChildNodes.ElementAt(1).GetSpan(); // Assert Start.ShouldBe(2); Start2.ShouldBe(Start + Length); }
public void ChildNodesGetSpanShouldReturnTupleWithStartEqualToPreviousChildsStartPlusLengthStartingAtNameLengthPlus4() { // Arrange var name = "name"; var childNodes = new List <RegexNode> { new CharacterNode('a'), new CharacterNode('b'), new CharacterNode('c') }; var target = new NamedGroupNode(name, false, childNodes); var start = name.Length + 4; // Act var(Start, Length) = target.ChildNodes.First().GetSpan(); var(Start2, Length2) = target.ChildNodes.ElementAt(1).GetSpan(); var(Start3, _) = target.ChildNodes.ElementAt(2).GetSpan(); // Assert Start.ShouldBe(start); Start2.ShouldBe(Start + Length); Start3.ShouldBe(Start2 + Length2); }
public void ChildNodesGetSpanShouldReturnTupleWithStartEqualToPreviousChildsStartPlusLengthStartingAtModesLengthPlus3() { // Arrange var modes = "imsnx-imsnx"; var childNodes = new List <RegexNode> { new CharacterNode('a'), new CharacterNode('b'), new CharacterNode('c') }; var target = new ModeModifierGroupNode(modes, childNodes); var start = modes.Length + 3; // Act var(Start, Length) = target.ChildNodes.First().GetSpan(); var(Start2, Length2) = target.ChildNodes.ElementAt(1).GetSpan(); var(Start3, _) = target.ChildNodes.ElementAt(2).GetSpan(); // Assert Start.ShouldBe(start); Start2.ShouldBe(Start + Length); Start3.ShouldBe(Start2 + Length2); }