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); }
private Rewriter(int inRequestCount, Mutatations original, Mutatations mutateTo) { Original = original; MutateTo = mutateTo; requestCount = inRequestCount; }
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)); }