// /*************************************************************************** // Aaru Data Preservation Suite // ---------------------------------------------------------------------------- // // Filename : BlindWrite5.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 { [TestFixture] public class BlindWrite4 : OpticalMediaImageTest { public override string DataFolder => Path.Combine(Consts.TEST_FILES_ROOT, "Media image formats", "BlindWrite 4"); public override IMediaImage _plugin => new DiscImages.BlindWrite4(); public override OpticalImageTestExpected[] Tests => new[] { new OpticalImageTestExpected { TestFile = "cdiready_the_apprentice.BWT", MediaType = MediaType.CDDA, Sectors = 279300, MD5 = "3be5ba5cc64cd63030d970cd8eeecc99", LongMD5 = "3be5ba5cc64cd63030d970cd8eeecc99", SubchannelMD5 = "fb42293c276a95724616ad25dcc734b6", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 69150, End = 88649, Pregap = 0, 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.BWT", MediaType = MediaType.CDDA, Sectors = 247073, MD5 = "0e4c52acfb90e8954b70b7c50ba01ffb", LongMD5 = "0e4c52acfb90e8954b70b7c50ba01ffb", SubchannelMD5 = "5fe9338986050d5631a519a3242dda2d", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 16398, Pregap = 0, 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.BWT", MediaType = MediaType.CDROM, Sectors = 254265, MD5 = "bf4bbec517101d0d6f45d2e4d50cb875", LongMD5 = "3d3f9cf7d1ba2249b1e7960071e5af46", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 254264, Pregap = 0, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_cdrom.BWT", MediaType = MediaType.CDROM, Sectors = 254265, MD5 = "bf4bbec517101d0d6f45d2e4d50cb875", LongMD5 = "3d3f9cf7d1ba2249b1e7960071e5af46", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 254264, Pregap = 0, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_cdrw.BWT", MediaType = MediaType.CDROM, Sectors = 308224, MD5 = "UNKNOWN", LongMD5 = "UNKNOWN", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 308223, Pregap = 0, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "report_enhancedcd.BWT", MediaType = MediaType.CDPLUS, Sectors = 303316, MD5 = "UNKNOWN", LongMD5 = "UNKNOWN", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 15510, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 15511, End = 33808, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 33809, End = 51179, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 51180, End = 71822, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 71823, End = 87431, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 87432, End = 103154, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 103155, End = 117540, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 117541, End = 136016, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 136017, End = 153267, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 153268, End = 166781, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 166782, End = 186962, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 186963, End = 201290, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 201291, End = 222779, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 2, Start = 234030, End = 303315, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "test_all_tracks_are_track1.BWT", MediaType = MediaType.CDROMXA, Sectors = 62385, MD5 = "UNKNOWN", LongMD5 = "UNKNOWN", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 25538, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 2, Start = 36789, End = 62384, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "test_audiocd_cdtext.BWT", MediaType = MediaType.CDDA, Sectors = 277696, MD5 = "3463a12134de20f22340d4d36f75ecf1", LongMD5 = "3463a12134de20f22340d4d36f75ecf1", SubchannelMD5 = "73c889ef800df274824d4212c4a060a1", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 29751, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 29752, End = 65033, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 65034, End = 78425, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 78426, End = 95079, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 95080, End = 126146, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 126147, End = 154958, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 154959, End = 191684, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 191685, End = 222775, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 222776, End = 243437, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 243438, End = 269599, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 269600, End = 277695, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "test_castrated_leadout.BWT", MediaType = MediaType.CDDA, Sectors = 269750, MD5 = "0639197a3c2292f62745e05b7e701e4d", LongMD5 = "0639197a3c2292f62745e05b7e701e4d", SubchannelMD5 = "28267d1e5dbc9589cc2cccc1b7a47095", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 29751, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 29752, End = 65033, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 65034, End = 78425, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 78426, End = 95079, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 95080, End = 126146, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 126147, End = 154958, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 154959, End = 191684, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 191685, End = 222775, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 222776, End = 243437, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 243438, End = 269599, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 269600, End = 269749, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "test_data_track_as_audio.BWT", MediaType = MediaType.CDROMXA, Sectors = 62385, MD5 = "e1664576ae56b98faaf60652fd050e15", LongMD5 = "1e1a4024e652668b09868b238aadc0f7", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 25538, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 2, Start = 36789, End = 62384, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "test_data_track_as_audio_fixed_sub.BWT", MediaType = MediaType.CDROMXA, Sectors = 62385, MD5 = "e1664576ae56b98faaf60652fd050e15", LongMD5 = "1e1a4024e652668b09868b238aadc0f7", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 25538, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 2, Start = 36789, End = 62384, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "test_disc_starts_at_track2.BWT", MediaType = MediaType.CDROMXA, Sectors = 62385, MD5 = "UNKNOWN", LongMD5 = "UNKNOWN", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 25538, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 2, Start = 36789, End = 62384, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "test_enhancedcd.BWT", MediaType = MediaType.CDPLUS, Sectors = 59206, MD5 = "UNKNOWN", LongMD5 = "UNKNOWN", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 14254, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 14255, End = 28952, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 2, Start = 40203, End = 59205, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "test_incd_udf200_finalized.BWT", MediaType = MediaType.CDROMXA, Sectors = 350134, MD5 = "f95d6f978ddb4f98bbffda403f627fe1", LongMD5 = "6751e0ae7821f92221672b1cd5a1ff36", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 350133, Pregap = 0, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "test_multi_karaoke_sampler.BWT", MediaType = MediaType.CDROMXA, Sectors = 329158, MD5 = "0f8f94e00fed4a163f2590632a1c163e", LongMD5 = "7f8cca32ee186cf1d70d21882cbe8274", SubchannelMD5 = "b840fe64cd1784f166fd0ac378487ae0", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 1736, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 1737, End = 32598, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 32599, End = 52521, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 52522, End = 70153, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 70154, End = 99947, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 99948, End = 119610, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 119611, End = 136848, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 136849, End = 155639, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 155640, End = 175675, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 175676, End = 206310, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 206311, End = 226299, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 226300, End = 244204, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 244205, End = 273814, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 273815, End = 293601, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 293602, End = 310560, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 310561, End = 329157, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "test_multiple_indexes.BWT", MediaType = MediaType.CDDA, Sectors = 65536, MD5 = "9a5ab4e16c0410d4b2040ce836e78d45", LongMD5 = "9a5ab4e16c0410d4b2040ce836e78d45", SubchannelMD5 = "bd86329c11da806cda20b57872aa0a49", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 4653, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 4654, End = 13724, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 13725, End = 41034, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 41035, End = 54838, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 54839, End = 65535, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "test_multisession.BWT", MediaType = MediaType.CDROMXA, Sectors = 51168, MD5 = "UNKNOWN", LongMD5 = "UNKNOWN", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 8132, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 2, Start = 19383, End = 25959, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 3, Start = 32710, End = 38477, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 4, Start = 45228, End = 51167, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "test_track2_inside_track1.BWT", MediaType = MediaType.CDROMXA, Sectors = 62385, MD5 = "UNKNOWN", LongMD5 = "UNKNOWN", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 13199, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 13200, End = 25538, Pregap = 150, Flags = 0 }, new TrackInfoTestExpected { Session = 2, Start = 36789, End = 62384, Pregap = 150, Flags = 0 } } }, new OpticalImageTestExpected { TestFile = "test_videocd.BWT", MediaType = MediaType.CDROMXA, Sectors = 48794, MD5 = "UNKNOWN", LongMD5 = "UNKNOWN", SubchannelMD5 = "UNKNOWN", Tracks = new[] { new TrackInfoTestExpected { Session = 1, Start = 0, End = 1101, Pregap = 0, Flags = 0 }, new TrackInfoTestExpected { Session = 1, Start = 1102, End = 48793, Pregap = 150, Flags = 0 } } } }; } }