protected void Compare(ASTNode src, ASTNode dst, MatchIssues?expectedIssues = null) { MatchIssues issues = new ASTNodeComparer(src, dst).AttemptMatch(); expectedIssues ??= new MatchIssues(); CollectionAssert.AreEqual(expectedIssues, issues); }
private static int CompareSources(CompareOptions o) { SetupLogger(o.Verbose); if (string.IsNullOrWhiteSpace(o.Source) || string.IsNullOrWhiteSpace(o.Destination)) { Log.Fatal("Missing source/destination path"); return(1); } if (!TryBuildFromFile(o.Source, out ASTNode? src) || !TryBuildFromFile(o.Destination, out ASTNode? dst)) { return(1); } if (src is null || dst is null) { return(1); } if (!new ASTStructureMatcher(src, dst).AttemptMatch()) { Log.Fatal("Structue match failed."); return(1); } var comparer = new ASTNodeComparer(src, dst); comparer.AttemptMatch(); return(0); }
protected void PartialCompare(ASTNode src, ASTNode dst, MatchIssues expectedIssues) { MatchIssues issues = new ASTNodeComparer(src, dst).AttemptMatch(); CollectionAssert.AreEqual(expectedIssues, issues.Take(expectedIssues.Count)); }