protected void Compare(ASTNode src, ASTNode dst, MatchIssues?expectedIssues = null)
        {
            MatchIssues issues = new ASTNodeComparer(src, dst).AttemptMatch();

            expectedIssues ??= new MatchIssues();
            CollectionAssert.AreEqual(expectedIssues, issues);
        }
Exemple #2
0
        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));
        }