Ejemplo n.º 1
0
        private static void CompareNode(HSDStruct s1, HSDStruct s2, HashSet <HSDStruct> done, string path)
        {
            if (done.Contains(s1))
            {
                return;
            }
            done.Add(s1);

            //System.Console.WriteLine("Checking " + s1.Length + " " + s2.Length + " " + s1.References.Count + " "  + s2.References.Count);
            if (s1.Length != s2.Length)
            {
                Console.WriteLine($"{path} Size mismatch");
            }
            else
            {
                for (int i = 0; i < s1.Length; i++)
                {
                    if (s1.GetByte(i) != s2.GetByte(i))
                    {
                        Console.WriteLine($"{path} Content mismatch");
                    }
                }
            }
            if (s1.References.Count != s2.References.Count)
            {
                Console.WriteLine($"{path} Reference mismatch");
            }
            foreach (var re in s2.References)
            {
                CompareNode(s1.References[re.Key], s2.References[re.Key], done, path + $"{re.Key.ToString("X8")}->");
            }
        }
Ejemplo n.º 2
0
        private static void CompareNode(HSDStruct s1, HSDStruct s2, HashSet <HSDStruct> done)
        {
            if (done.Contains(s1))
            {
                return;
            }
            done.Add(s1);

            //System.Console.WriteLine("Checking " + s1.Length + " " + s2.Length + " " + s1.References.Count + " "  + s2.References.Count);
            for (int i = 0; i < s1.Length; i++)
            {
                if (s1.GetByte(i) != s2.GetByte(i))
                {
                    Console.WriteLine("content mismatch");
                }
            }
            if (s1.Length != s2.Length)
            {
                Console.WriteLine("Size mismatch");
            }
            if (s1.References.Count != s2.References.Count)
            {
                Console.WriteLine("Reference mismatch");
            }
            foreach (var re in s2.References)
            {
                var re2 = s2.References[re.Key];
                CompareNode(re.Value, re2, done);
            }
        }