// /*************************************************************************** // Aaru Data Preservation Suite // ---------------------------------------------------------------------------- // // Filename : compressed.cs // Author(s) : Natalia Portillo // // Component : Aaru unit testing. // // --[ License ] -------------------------------------------------------------- // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // ---------------------------------------------------------------------------- // Copyright © 2011-2025 Natalia Portillo // ****************************************************************************/ using System.IO; using Aaru.CommonTypes; using Aaru.CommonTypes.Interfaces; using Aaru.Images; using NUnit.Framework; namespace Aaru.Tests.Images.MAME.v5; [TestFixture] public class Compressed : OpticalMediaImageTest { public override string DataFolder => Path.Combine(Consts.TestFilesRoot, "Media image formats", "MAME", "v5", "compressed"); public override IMediaImage Plugin => new Chd(); public override OpticalImageTestExpected[] Tests => [ new OpticalImageTestExpected { TestFile = "gigarec.chd", MediaType = MediaType.CDROM, Sectors = 469652, SectorSize = 2048, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 469651, Pregap = 150, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "hdd.chd", MediaType = MediaType.GENERIC_HDD, Sectors = 251904, SectorSize = 512, Md5 = "43476343f53a177dd57b68dd769917aa" }, new OpticalImageTestExpected { TestFile = "jaguarcd.chd", MediaType = MediaType.CDROM, Sectors = 243587, SectorSize = 2352, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 27639, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 27640, End = 28236, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 28237, End = 78891, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 78892, End = 100053, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 100054, End = 133202, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 133203, End = 160907, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 160908, End = 181465, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 181466, End = 202023, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 202024, End = 222581, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 222582, End = 243139, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 243140, End = 243586, Pregap = 0, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "pcengine.chd", MediaType = MediaType.CDROM, Sectors = 160506, SectorSize = 2352, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 3439, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 3440, End = 38313, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 38314, End = 46916, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 46917, End = 53200, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 53201, End = 61518, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 61519, End = 68262, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 68263, End = 75096, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 75097, End = 82829, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 82830, End = 86180, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 86181, End = 90966, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 90967, End = 98973, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 98974, End = 106392, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 106393, End = 111937, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 111938, End = 119969, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 119970, End = 125778, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 125779, End = 160505, Pregap = 150, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "pcfx.chd", MediaType = MediaType.CDROM, Sectors = 246380, SectorSize = 2352, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 4244, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 4245, End = 4758, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 4759, End = 5790, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 5791, End = 41908, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 41909, End = 220494, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 220495, End = 225345, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 225346, End = 235197, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 235198, End = 246379, Pregap = 0, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "report_audiocd.chd", MediaType = MediaType.CDROM, Sectors = 247073, SectorSize = 2352, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 16548, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 16549, End = 30050, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 30051, End = 47949, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 47950, End = 63313, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 63314, End = 78924, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 78925, End = 94731, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 94732, End = 117124, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 117125, End = 136165, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 136166, End = 154071, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 154072, End = 170750, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 170751, End = 186538, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 186539, End = 201798, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 201799, End = 224448, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 224449, End = 247072, Pregap = 0, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "report_cdr.chd", MediaType = MediaType.CDROM, Sectors = 254265, SectorSize = 2048, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 254264, Pregap = 150, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "report_cdrom.chd", MediaType = MediaType.CDROM, Sectors = 254265, SectorSize = 2048, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 254264, Pregap = 150, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "report_cdrw.chd", MediaType = MediaType.CDROM, Sectors = 308224, SectorSize = 2048, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 308223, Pregap = 150, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "test_audiocd_cdtext.chd", MediaType = MediaType.CDROM, Sectors = 277696, SectorSize = 2352, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 29901, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 29902, End = 65183, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 65184, End = 78575, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 78576, End = 95229, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 95230, End = 126296, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 126297, End = 155108, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 155109, End = 191834, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 191835, End = 222925, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 222926, End = 243587, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 243588, End = 269749, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 269750, End = 277695, Pregap = 0, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "test_enhancedcd.chd", MediaType = MediaType.CDROM, Sectors = 59206, SectorSize = 2352, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 14404, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 14405, End = 40352, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 40353, End = 59205, Pregap = 0, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "test_incd_udf200_finalized.chd", MediaType = MediaType.CDROM, Sectors = 350134, SectorSize = 2336, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 350133, Pregap = 150, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "test_multi_karaoke_sampler.chd", MediaType = MediaType.CDROM, Sectors = 329158, SectorSize = 2352, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 1886, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 1887, End = 32748, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 32749, End = 52671, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 52672, End = 70303, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 70304, End = 100097, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 100098, End = 119760, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 119761, End = 136998, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 136999, End = 155789, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 155790, End = 175825, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 175826, End = 206460, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 206461, End = 226449, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 226450, End = 244354, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 244355, End = 273964, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 273965, End = 293751, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 293752, End = 310710, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 310711, End = 329157, Pregap = 0, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "test_multiple_indexes.chd", MediaType = MediaType.CDROM, Sectors = 65536, SectorSize = 2352, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 4803, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 4804, End = 13874, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 13875, End = 41184, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 41185, End = 54988, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 54989, End = 65535, Pregap = 0, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "test_multisession.chd", MediaType = MediaType.CDROM, Sectors = 51168, SectorSize = 2336, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 19532, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 19533, End = 32859, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 32860, End = 45377, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 45378, End = 51167, Pregap = 0, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "test_multisession_dvd+r.chd", MediaType = MediaType.CDROM, Sectors = 230624, SectorSize = 2048, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 24063, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 24064, End = 230623, Pregap = 0, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "test_multisession_dvd-r.chd", MediaType = MediaType.CDROM, Sectors = 257264, SectorSize = 2048, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 235247, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 235248, End = 257263, Pregap = 0, Flags = 0 } ] }, new OpticalImageTestExpected { TestFile = "test_videocd.chd", MediaType = MediaType.CDROM, Sectors = 48794, SectorSize = 2336, Md5 = "UNKNOWN", LongMd5 = "UNKNOWN", SubchannelMd5 = "UNKNOWN", Tracks = [ new TrackInfoTestExpected { Session = 1, Start = 0, End = 1251, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 1252, End = 48793, Pregap = 0, Flags = 0 } ] } ]; }