public void AddNegativeLookbehindAssertionTest()
        {
            // Arrange
            var regexGenerator = new RegexGenerator();

            // Act
            regexGenerator.AddNegativeLookbehindAssertion(@"a");

            // Assert
            Assert.Equal(@"(?<!a)", regexGenerator.ToString());
        }
        public void CompositeAddNestedNodeTest()
        {
            // Arrange
            var regexGenerator = new RegexGenerator();
            var node1          = new RegexNode(@"[abc]");
            var nested1        = new RegexGroupNode(node1, capturing: false, min: 1, max: null, quantifierOption: RegexQuantifierOption.Lazy);
            var node2          = new RegexConditionalNode(@"a", "b", "c");
            var nested2        = new RegexGroupNode(node2, capturing: true, name: "a");

            // Act
            regexGenerator.AddNegativeLookbehindAssertion(nested1)
            .AddGroup(nested2);

            // Assert
            Assert.Equal(@"(?<!(?:[abc])+?)(?<a>(?(?=a)b|c))", regexGenerator.ToString());
        }