public void ShouldRemoveQuantifierN()
        {
            // Arrange
            var quantifierNode = new QuantifierNNode(5, new CharacterNode('X'));
            var childNodes     = new List <RegexNode>
            {
                new CharacterNode('a'),
                new CharacterNode('b'),
                new CharacterNode('c'),
                quantifierNode
            };
            var rootNode = new ConcatenationNode(childNodes);
            var target   = new QuantifierRemovalMutator();

            // Act
            var result = target.ApplyMutations(quantifierNode, rootNode);

            // Assert
            var mutation = result.ShouldHaveSingleItem();

            mutation.OriginalNode.ShouldBe(quantifierNode);
            mutation.ReplacementNode.ToString().ShouldBe("X");
            mutation.ReplacementPattern.ShouldBe("abcX");
            mutation.DisplayName.ShouldBe("Regex quantifier removal mutation");
            mutation.Description.ShouldBe("Quantifier \"{5}\" was removed at offset 4.");
        }
        public void MutateShouldNotMutateNonQuantifierNode()
        {
            // Arrange
            var characterNode = new CharacterNode('a');
            var rootNode      = new ConcatenationNode(characterNode);
            var target        = new QuantifierRemovalMutator();

            // Act
            var result = target.Mutate(characterNode, rootNode);

            // Assert
            result.ShouldBeEmpty();
        }