//return the idx jump on the valName or -1 if it can't add the substitution private static int FindSubsAux(Literal var, Literal val, SimpleName valName, IDictionary <string, Substitution> bindings) { //first, analyse if the value is a composed name or a single parameter string valDescription; int valLiteralCount; if (val.type == LiteralType.Root) { SimpleName auxName = null; auxName = SimpleWFN.BuildNameFromContainedLiteral(valName, val); valDescription = auxName.ToString(); valLiteralCount = auxName.literals.Count; } else { valDescription = val.description; valLiteralCount = 1; } //check if a binding for the same variable already exists Substitution existingSub = null; bindings.TryGetValue(var.description, out existingSub); if (existingSub != null) { if (existingSub.SubValue.ToString().RemoveWhiteSpace().EqualsIgnoreCase(valDescription)) { return(valLiteralCount); } else { return(-1); } } //if there was no existing binding to the variable try { bindings[var.description] = new Substitution(var.description, valDescription); return(valLiteralCount); } catch (BadSubstitutionException) { return(-1); } }
public void ToString(string n1, string expectedResult, Refactorization r) { string result = string.Empty; if (r == Refactorization.Current) { var name = Name.BuildName(n1); for (long i = 0; i < reps; i++) { result = name.ToString(); } result = RemoveWhiteSpace(result); } else if (r == Refactorization.New) { var name = new SimpleName(n1); for (long i = 0; i < reps; i++) { result = name.ToString(); } } Assert.That(string.Equals(expectedResult, result, StringComparison.InvariantCultureIgnoreCase)); }