コード例 #1
0
ファイル: BasicRing400.cs プロジェクト: TheAnsarya/logsmall
        // TODO: Move to unit test project
        public static void TestLayout()
        {
            var compressed   = TestData.StringToBytes(TestData.OverworldLayoutCompressed);
            var uncompressed = TestData.StringToBytes(TestData.OverworldLayout);

            var testDecomp   = BasicRing400.Decompress(Rom.GetStream(0xed8a00), 0x2000);
            var decompPassed = testDecomp.SequenceEqual(uncompressed);

            var testComp   = BasicRing400.Compress(uncompressed);
            var compPassed = testComp.SequenceEqual(compressed);

            var testReDecomp   = BasicRing400.Decompress(testComp, 0x2000);
            var reDecompPassed = testReDecomp.SequenceEqual(uncompressed);

            var testMaxComp   = BasicRing400.CompressMax(uncompressed);
            var maxcompPassed = testMaxComp.SequenceEqual(compressed);

            var testMaxReDecomp   = BasicRing400.Decompress(testComp, 0x2000);
            var maxreDecompPassed = testMaxReDecomp.SequenceEqual(uncompressed);

            var folder = @"c:\working\test\";

            Directory.CreateDirectory(folder);
            WriteBytesToFile(compressed, Path.Combine(folder, "compressed.txt"));
            WriteBytesToFile(uncompressed, Path.Combine(folder, "uncompressed.txt"));
            WriteBytesToFile(testDecomp, Path.Combine(folder, "testDecomp.txt"));
            WriteBytesToFile(testComp, Path.Combine(folder, "testComp.txt"));
            WriteBytesToFile(testReDecomp, Path.Combine(folder, "testReDecomp.txt"));
            WriteBytesToFile(testMaxComp, Path.Combine(folder, "testMaxComp.txt"));
            WriteBytesToFile(testReDecomp, Path.Combine(folder, "testReDecomp.txt"));

            Console.WriteLine($"  Decompression: {(decompPassed ? "Passed" : "Failed")}");
            Console.WriteLine($"           size: 0x{testDecomp.Length.ToString("x4", CultureInfo.InvariantCulture)}");
            Console.WriteLine($"       realsize: 0x{uncompressed.Length.ToString("x4", CultureInfo.InvariantCulture)}");

            Console.WriteLine();

            Console.WriteLine($"    Compression: {(compPassed ? "Passed" : "Failed")}");
            Console.WriteLine($"           size: 0x{testComp.Length.ToString("x4", CultureInfo.InvariantCulture)}");
            Console.WriteLine($"       realsize: 0x{compressed.Length.ToString("x4", CultureInfo.InvariantCulture)}");

            Console.WriteLine();

            Console.WriteLine($"ReDecompression: {(reDecompPassed ? "Passed" : "Failed")}");
            Console.WriteLine($"           size: 0x{testReDecomp.Length.ToString("x4", CultureInfo.InvariantCulture)}");
            Console.WriteLine($"       realsize: 0x{uncompressed.Length.ToString("x4", CultureInfo.InvariantCulture)}");

            Console.WriteLine();

            Console.WriteLine($"Max Compression: {(maxcompPassed ? "Passed" : "Failed")}");
            Console.WriteLine($"           size: 0x{testMaxComp.Length.ToString("x4", CultureInfo.InvariantCulture)}");
            Console.WriteLine($"       realsize: 0x{compressed.Length.ToString("x4", CultureInfo.InvariantCulture)}");

            Console.WriteLine();

            Console.WriteLine($"Max ReDecompped: {(maxreDecompPassed ? "Passed" : "Failed")}");
            Console.WriteLine($"           size: 0x{testMaxReDecomp.Length.ToString("x4", CultureInfo.InvariantCulture)}");
            Console.WriteLine($"       realsize: 0x{uncompressed.Length.ToString("x4", CultureInfo.InvariantCulture)}");

            Console.ReadKey();
        }