Пример #1
0
            public static IEnumerable <MutationResult> GetAllCombinations(SyntaxNode node, Mutatations original, Mutatations mutateTo)
            {
                List <MutationResult> results = new List <MutationResult>();
                int        i           = 0;
                Rewriter   rewriter    = new Rewriter(i, original, mutateTo);
                SyntaxNode visitedNode = rewriter.Visit(SyntaxNodeTools.CloneNode(node));

                results.Add(new MutationResult(rewriter.ChangeNote, visitedNode.ToString()));
                while (rewriter.changeMade)
                {
                    rewriter    = new Rewriter(++i, original, mutateTo);
                    visitedNode = rewriter.Visit(SyntaxNodeTools.CloneNode(node));
                    results.Add(new MutationResult(rewriter.ChangeNote, visitedNode.ToString()));
                }
                results.RemoveAt(results.Count - 1);
                return(results);
            }
Пример #2
0
 private Rewriter(int inRequestCount, Mutatations original, Mutatations mutateTo)
 {
     Original     = original;
     MutateTo     = mutateTo;
     requestCount = inRequestCount;
 }
Пример #3
0
        public static IEnumerable <MutationResult> Mutate(string filePath, Mutatations original, Mutatations mutated)
        {
            SyntaxNode root = CSharpSyntaxTree.ParseText(File.ReadAllText(filePath)).GetRoot();

            return(Rewriter.GetAllCombinations(root, original, mutated));
        }