// /*************************************************************************** // Aaru Data Preservation Suite // ---------------------------------------------------------------------------- // // Filename : V1.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-2021 Natalia Portillo // ****************************************************************************/ using System.IO; using Aaru.CommonTypes; using Aaru.CommonTypes.Interfaces; using NUnit.Framework; namespace Aaru.Tests.Images.AaruFormat { [TestFixture] public class V1 : OpticalMediaImageTest { public override string DataFolder => Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "AaruFormat", "V1"); public override IMediaImage _plugin => new DiscImages.AaruFormat(); public override OpticalImageTestExpected[] Tests => new[] { new OpticalImageTestExpected { TestFile = "cdiready_the_apprentice.aif", MediaType = MediaType.CDIREADY, Sectors = 279300, SectorSize = 2352, MD5 = "ad6b898e5f93faf33967fe53fea7037e", LongMD5 = "8c897ff39ce1ae7b091bfd00fbc3c1bb", SubchannelMD5 = "579e2b502d86bc1eb7d6aded2b752c36", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 69149, Pregap = 0, Flags = 4 }, new TrackInfoTestExpected { Session = 1, Start = 69150, End = 88649, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 88650, End = 107474, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 107475, End = 112049, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 112050, End = 133499, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 133500, End = 138074, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 138075, End = 159674, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 159675, End = 164624, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 164625, End = 185249, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 185250, End = 189974, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 189975, End = 208724, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 208725, End = 212849, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 212850, End = 232049, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 232050, End = 236549, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 236550, End = 241724, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 241725, End = 255974, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 255975, End = 256724, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 256725, End = 265499, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 265500, End = 267224, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 267225, End = 269849, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 269850, End = 271499, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 271500, End = 274124, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 274125, End = 279299, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_audiocd.aif", MediaType = MediaType.CDDA, Sectors = 247073, SectorSize = 2352, MD5 = "c9036cb72bcb67d469ca82eb7a66cb2a", LongMD5 = "c9036cb72bcb67d469ca82eb7a66cb2a", SubchannelMD5 = "6d2ae02b362918f531ad414c736d349a", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 16398, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 16399, End = 29900, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 29901, End = 47799, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 47800, End = 63163, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 63164, End = 78774, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 78775, End = 94581, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 94582, End = 116974, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 116975, End = 136015, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 136016, End = 153921, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 153922, End = 170600, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 170601, End = 186388, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 186389, End = 201648, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 201649, End = 224298, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 224299, End = 247072, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_cdr.aif", MediaType = MediaType.CDR, Sectors = 254265, SectorSize = 2048, MD5 = "bf4bbec517101d0d6f45d2e4d50cb875", LongMD5 = "3d3f9cf7d1ba2249b1e7960071e5af46", SubchannelMD5 = "34b8e75c3038deceaea7d382f22740cb", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 254264, Pregap = 150, Flags = 4 } } }, new OpticalImageTestExpected { TestFile = "report_cdrom.aif", MediaType = MediaType.CDROM, Sectors = 254265, SectorSize = 2048, MD5 = "bf4bbec517101d0d6f45d2e4d50cb875", LongMD5 = "3d3f9cf7d1ba2249b1e7960071e5af46", SubchannelMD5 = "5d7f79a75e21f56e62d6fc894ee71ee6", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 254264, Pregap = 150, Flags = 4 } } }, new OpticalImageTestExpected { TestFile = "report_cdrw_2x.aif", MediaType = MediaType.CDRW, Sectors = 308224, SectorSize = 2048, MD5 = "1e55aa420ca8f8ea77d5b597c9cfc19b", LongMD5 = "3af5f943ddb9427d9c63a4ce3b704db9", SubchannelMD5 = "80a59aaf861f925a530e1b0d7857fe25", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 308223, Pregap = 150, Flags = 4 } } }, new OpticalImageTestExpected { TestFile = "report_dvd+r.aif", MediaType = MediaType.DVDPR, Sectors = 2146368, SectorSize = 2048, MD5 = "106f141400355476b499213f36a363f9", LongMD5 = "106f141400355476b499213f36a363f9", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 2146367, Pregap = 0, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_dvd-r.aif", MediaType = MediaType.DVDR, Sectors = 2146368, SectorSize = 2048, MD5 = "106f141400355476b499213f36a363f9", LongMD5 = "106f141400355476b499213f36a363f9", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 2146367, Pregap = 0, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_dvd-ram_v1.aif", MediaType = MediaType.DVDRAM, Sectors = 1218960, SectorSize = 2048, MD5 = "c22b7796791cd4299d74863ed04496c6", LongMD5 = "c22b7796791cd4299d74863ed04496c6", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 1218959, Pregap = 0, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_dvd-ram_v2.aif", MediaType = MediaType.DVDRAM, Sectors = 2236704, SectorSize = 2048, MD5 = "00b1d7c5e9855959a4d2f6b796aeaf4c", LongMD5 = "00b1d7c5e9855959a4d2f6b796aeaf4c", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 2236703, Pregap = 0, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_dvd+r_dl.aif", MediaType = MediaType.DVDROM, Sectors = 16384000, SectorSize = 2048, MD5 = "63d0fd3f25ab503a1818b15ca5eb86b5", LongMD5 = "63d0fd3f25ab503a1818b15ca5eb86b5", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 16383999, Pregap = 0, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_dvd-rom.aif", MediaType = MediaType.DVDROM, Sectors = 2146368, SectorSize = 2048, MD5 = "106f141400355476b499213f36a363f9", LongMD5 = "106f141400355476b499213f36a363f9", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 2146367, Pregap = 0, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_dvd+rw.aif", MediaType = MediaType.DVDPRW, Sectors = 2295104, SectorSize = 2048, MD5 = "3c03ab1def372553f1b04afa0fdbc527", LongMD5 = "3c03ab1def372553f1b04afa0fdbc527", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 2295103, Pregap = 0, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_dvd-rw.aif", MediaType = MediaType.DVDRWDL, Sectors = 2146368, SectorSize = 2048, MD5 = "106f141400355476b499213f36a363f9", LongMD5 = "106f141400355476b499213f36a363f9", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 2146367, Pregap = 0, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_enhancedcd.aif", MediaType = MediaType.CD, Sectors = 303316, SectorSize = 2352, MD5 = "d10b427d18546a3c8f548edb6d911798", LongMD5 = "1c2ff79133d4db028ce415a8b03e70c2", SubchannelMD5 = "f80d8f55069a8815bd03cb2b6d9284b8", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 15660, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 15661, End = 33958, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 33959, End = 51329, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 51330, End = 71972, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 71973, End = 87581, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 87582, End = 103304, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 103305, End = 117690, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 117691, End = 136166, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 136167, End = 153417, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 153418, End = 166931, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 166932, End = 187112, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 187113, End = 201440, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 201441, End = 234033, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 2, Start = 234034, End = 303315, Pregap = 146, Flags = 4 } } }, new OpticalImageTestExpected { TestFile = "test_audiocd_cdtext.aif", MediaType = MediaType.CDR, Sectors = 277696, SectorSize = 2352, MD5 = "78466ec1a08d7804a6cb38f2ed89b10f", LongMD5 = "78466ec1a08d7804a6cb38f2ed89b10f", SubchannelMD5 = "ac39ed98b7033da6aa936b4314574a2a", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 29751, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 29752, End = 65033, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 65034, End = 78425, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 78426, End = 95079, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 95080, End = 126146, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 126147, End = 154958, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 154959, End = 191684, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 191685, End = 222775, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 222776, End = 243437, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 243438, End = 269599, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 269600, End = 277695, Pregap = 150, Flags = 2 } } }, new OpticalImageTestExpected { TestFile = "test_audiocd_multiple_indexes.aif", MediaType = MediaType.CDR, Sectors = 65536, SectorSize = 2352, MD5 = "d5d22e15dcf3f081d562b351611a8991", LongMD5 = "d5d22e15dcf3f081d562b351611a8991", SubchannelMD5 = "3546cc3e1b2b3898de5a03083af9d6ee", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 4652, Pregap = 150, Flags = 2 }, new TrackInfoTestExpected { Session = 1, Start = 4653, End = 13804, Pregap = 151, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 13805, End = 36684, Pregap = 70, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 36685, End = 54988, Pregap = 4500, Flags = 8 }, new TrackInfoTestExpected { Session = 1, Start = 54989, End = 65535, Pregap = 0, Flags = 1 } } }, new OpticalImageTestExpected { TestFile = "test_cdr_incd_finalized.aif", MediaType = MediaType.CDR, Sectors = 350134, SectorSize = 2048, MD5 = "edc146b00d622f92c6a9bb4648cbea82", LongMD5 = "6b36340c27d5583e73539175eb87c683", SubchannelMD5 = "663da762a5bef780d09217fca9d23e08", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 350133, Pregap = 150, Flags = 7 } } }, new OpticalImageTestExpected { TestFile = "test_enhancedcd.aif", MediaType = MediaType.CDR, Sectors = 59206, SectorSize = 2352, MD5 = "2fd88f1e8c21601017c937963d8fe5eb", LongMD5 = "151e45bd1e949e0416d64eb89f48a55b", SubchannelMD5 = "9b33f13d1dab986e981ba924797f464a", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 14255, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 14256, End = 40206, Pregap = 149, Flags = 0 }, new TrackInfoTestExpected { Session = 2, Start = 40207, End = 59205, Pregap = 146, Flags = 4 } } }, new OpticalImageTestExpected { TestFile = "test_multi_karaoke_sampler.aif", MediaType = MediaType.CD, Sectors = 329158, SectorSize = 2352, MD5 = "fef9ff409aa2643ac0c0649e84346f5f", LongMD5 = "ef18dc4f63ad59c6294ab09da7704366", SubchannelMD5 = "aa71734f6385319656e2f1a64af5328b", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 1736, Pregap = 150, Flags = 4 }, new TrackInfoTestExpected { Session = 1, Start = 1737, End = 32748, Pregap = 150, 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_multisession.aif", MediaType = MediaType.CDR, Sectors = 51168, SectorSize = 2048, MD5 = "099011fe470ce7ca0ecb52368cd2efe5", LongMD5 = "997fa9a35a2c9a6efbbbd55fcc9008f5", SubchannelMD5 = "0eecfd65daf8a2aa9fea47cf2072350e", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 19386, Pregap = 150, Flags = 4 }, new TrackInfoTestExpected { Session = 2, Start = 19387, End = 32713, Pregap = 146, Flags = 4 }, new TrackInfoTestExpected { Session = 3, Start = 32714, End = 45231, Pregap = 146, Flags = 4 }, new TrackInfoTestExpected { Session = 4, Start = 45232, End = 51167, Pregap = 146, Flags = 4 } } }, new OpticalImageTestExpected { TestFile = "test_videocd.aif", MediaType = MediaType.CDR, Sectors = 48794, SectorSize = 2328, MD5 = "a5531d15eefe70ff21718b3b5da08255", LongMD5 = "11a0d9994ee761655ef4d61c6cda99e9", SubchannelMD5 = "f49e383ccee2f3cb97aeb82fcb4fdb18", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 1107, Pregap = 150, Flags = 4 }, new TrackInfoTestExpected { Session = 1, Start = 1108, End = 48793, Pregap = 144, Flags = 4 } } } }; } }