public void Unify_NonUnifiableNames_False(string n1, string n2, Refactorization r) { IEnumerable<Substitution> bindings = new List<Substitution>(); var isUnifiable = true; if (r == Refactorization.Current) { var name1 = Name.BuildName(n1); var name2 = Name.BuildName(n2); for (int i = 0; i < unifierReps; i++) { isUnifiable = Unifier.Unify(name1, name2, out bindings); } }else if(r == Refactorization.New) { var name1 = new SimpleName(n1); var name2 = new SimpleName(n2); for (int i = 0; i < unifierReps; i++) { isUnifiable = SimpleUnifier.Unify(name1, name2, out bindings); } } Assert.That(!isUnifiable); Assert.That(bindings == null); }
public void Add_Variable_Tag_SimpleWFN(string n1, string tag, string expectedResult, Refactorization r) { string result = string.Empty; if(r == Refactorization.New) { SimpleName name = new SimpleName(n1); SimpleName resName = null; for (long i = 0; i < reps; i++) { resName = SimpleWFN.AddVariableTag(name, tag); } result = resName.ToString(); } else if(r == Refactorization.Current) { Name name = Name.BuildName(n1); Name resName = null; for (long i = 0; i < reps; i++) { resName = name.ReplaceUnboundVariables("_tag"); } result = RemoveWhiteSpace(resName.ToString()); } Assert.AreEqual(expectedResult, result); }
public void Unify_NonUnifiableNames_False(string n1, string n2, Refactorization r) { IEnumerable <Substitution> bindings = new List <Substitution>(); var isUnifiable = true; if (r == Refactorization.Current) { var name1 = Name.BuildName(n1); var name2 = Name.BuildName(n2); for (int i = 0; i < unifierReps; i++) { isUnifiable = Unifier.Unify(name1, name2, out bindings); } } else if (r == Refactorization.New) { var name1 = new SimpleName(n1); var name2 = new SimpleName(n2); for (int i = 0; i < unifierReps; i++) { isUnifiable = SimpleUnifier.Unify(name1, name2, out bindings); } } Assert.That(!isUnifiable); Assert.That(bindings == null); }
public void Unify_UnifiableNames_True(string n1, string n2, string[] result, Refactorization r) { var expectedBindings = result.Select(s => new Substitution(s)); IEnumerable <Substitution> bindings = null; var isUnifiable = false; if (r == Refactorization.Current) { var name1 = Name.BuildName(n1); var name2 = Name.BuildName(n2); for (int i = 0; i < unifierReps; i++) { isUnifiable = Unifier.Unify(name1, name2, out bindings); } } else if (r == Refactorization.New) { var name1 = new SimpleName(n1); var name2 = new SimpleName(n2); for (int i = 0; i < unifierReps; i++) { isUnifiable = SimpleUnifier.Unify(name1, name2, out bindings); } } Assert.That(isUnifiable); if (result.Any()) { Assert.That(bindings, Is.EquivalentTo(expectedBindings)); } else { Assert.That(bindings.Count() == 0); } }
public void HasSelf(string nStr, bool expectedResult, Refactorization r) { bool result = false; if (r == Refactorization.Current) { var name = Name.BuildName(nStr); for (long i = 0; i < reps; i++) { result = name.HasSelf(); } } else if (r == Refactorization.New) { var name = new SimpleName(nStr); for (long i = 0; i < reps; i++) { result = SimpleWFN.HasSelf(name); } } Assert.AreEqual(expectedResult, result); }
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)); }
public void MatchNames_False(string n1, string n2, Refactorization r) { bool result = true; if (r == Refactorization.Current) { var name = Name.BuildName(n1); var name2 = Name.BuildName(n2); for (long i = 0; i < reps; i++) { result = name.Match(name2); } } else if (r == Refactorization.New) { var name = new SimpleName(n1); var name2 = new SimpleName(n2); for (long i = 0; i < reps; i++) { result = SimpleWFN.Match(name, name2); } } Assert.IsFalse(result); }
public void ReplaceLiterals(string n1, string t1, string t2, string expectedResult, Refactorization r) { string resultStr = string.Empty; if(r == Refactorization.Current) { Name result = null; var name = Name.BuildName(n1); for (long i = 0; i < reps; i++) { result = name.SwapTerms((Name)t1, (Name)t2); } resultStr = RemoveWhiteSpace(result.ToString()); }else if(r == Refactorization.New) { SimpleName result = null; var name = new SimpleName(n1); for (long i = 0; i < reps; i++) { result = SimpleWFN.ReplaceLiterals(name, t1, t2); } resultStr = result.ToString(); } Assert.That(string.Equals(resultStr, expectedResult, StringComparison.InvariantCultureIgnoreCase)); }
public void MatchNames_True(string n1, string n2, Refactorization r) { bool result = false; if(r == Refactorization.Current) { var name = Name.BuildName(n1); var name2 = Name.BuildName(n2); for (long i = 0; i < reps; i++) { result = name.Match(name2); } } else if (r == Refactorization.New) { var name = new SimpleName(n1); var name2 = new SimpleName(n2); for (long i = 0; i < reps; i++) { result = SimpleWFN.Match(name, name2); } } Assert.IsTrue(result); }
public void MakeGround_GroundedName(string n1, string var, string sub, string expectedResult, Refactorization r) { String result = string.Empty; if (r == Refactorization.New) { var name = new SimpleName(n1); SimpleName nameResult = null; Dictionary<string, SimpleName> subs = new Dictionary<string, SimpleName>(); subs[var] = new SimpleName(sub); for (long i = 0; i < reps; i++) { nameResult = SimpleWFN.MakeGround(name, subs); } result = nameResult.ToString(); } else if (r == Refactorization.Current) { var name = Name.BuildName(n1); Name nameResult = null; SubstitutionSet subSet = new SubstitutionSet(); subSet.AddSubstitution(new Substitution("[x]/J(I)")); for (long i = 0; i < reps; i++) { nameResult = name.MakeGround(subSet); } } Assert.AreEqual(expectedResult, result); }
public void Unify_UnifiableNames_True(string n1, string n2, string[] result, Refactorization r) { var expectedBindings = result.Select(s => new Substitution(s)); IEnumerable<Substitution> bindings = null; var isUnifiable = false; if(r == Refactorization.Current) { var name1 = Name.BuildName(n1); var name2 = Name.BuildName(n2); for (int i = 0; i < unifierReps; i++) { isUnifiable = Unifier.Unify(name1, name2, out bindings); } } else if(r == Refactorization.New) { var name1 = new SimpleName(n1); var name2 = new SimpleName(n2); for (int i = 0; i < unifierReps; i++) { isUnifiable = SimpleUnifier.Unify(name1, name2, out bindings); } } Assert.That(isUnifiable); if (result.Any()) { Assert.That(bindings, Is.EquivalentTo(expectedBindings)); } else { Assert.That(bindings.Count() == 0); } }
public void ReplaceLiterals(string n1, string t1, string t2, string expectedResult, Refactorization r) { string resultStr = string.Empty; if (r == Refactorization.Current) { Name result = null; var name = Name.BuildName(n1); for (long i = 0; i < reps; i++) { result = name.SwapTerms((Name)t1, (Name)t2); } resultStr = RemoveWhiteSpace(result.ToString()); } else if (r == Refactorization.New) { SimpleName result = null; var name = new SimpleName(n1); for (long i = 0; i < reps; i++) { result = SimpleWFN.ReplaceLiterals(name, t1, t2); } resultStr = result.ToString(); } Assert.That(string.Equals(resultStr, expectedResult, StringComparison.InvariantCultureIgnoreCase)); }
public void MakeGround_GroundedName(string n1, string var, string sub, string expectedResult, Refactorization r) { String result = string.Empty; if (r == Refactorization.New) { var name = new SimpleName(n1); SimpleName nameResult = null; Dictionary <string, SimpleName> subs = new Dictionary <string, SimpleName>(); subs[var] = new SimpleName(sub); for (long i = 0; i < reps; i++) { nameResult = SimpleWFN.MakeGround(name, subs); } result = nameResult.ToString(); } else if (r == Refactorization.Current) { var name = Name.BuildName(n1); Name nameResult = null; SubstitutionSet subSet = new SubstitutionSet(); subSet.AddSubstitution(new Substitution("[x]/J(I)")); for (long i = 0; i < reps; i++) { nameResult = name.MakeGround(subSet); } } Assert.AreEqual(expectedResult, result); }
public void Add_Variable_Tag_SimpleWFN(string n1, string tag, string expectedResult, Refactorization r) { string result = string.Empty; if (r == Refactorization.New) { SimpleName name = new SimpleName(n1); SimpleName resName = null; for (long i = 0; i < reps; i++) { resName = SimpleWFN.AddVariableTag(name, tag); } result = resName.ToString(); } else if (r == Refactorization.Current) { Name name = Name.BuildName(n1); Name resName = null; for (long i = 0; i < reps; i++) { resName = name.ReplaceUnboundVariables("_tag"); } result = RemoveWhiteSpace(resName.ToString()); } Assert.AreEqual(expectedResult, result); }