public void ReadTest() { var cso = new Cso(File.OpenRead("../../../TestInput/cube.cso")); var isoBytes = File.ReadAllBytes("../../../TestInput/cube.iso"); var csoStream = new CompressedIsoProxyStream(cso); Assert.Equal(0x72800, csoStream.Length); var data = new byte[2048]; var data2 = new byte[3000]; Assert.Equal(data.Length, csoStream.Read(data, 0, data.Length)); Assert.Equal(data.Length, csoStream.Read(data, 0, data.Length)); Assert.Equal(3000, csoStream.Read(data2, 0, 3000)); csoStream.Position = 0x72800 - data.Length; Assert.Equal(data.Length, csoStream.Read(data, 0, data.Length)); csoStream.Position = 0x72800 - 10; Assert.Equal(10, csoStream.Read(data, 0, 10)); csoStream.Position = 0x72800 - 10; Assert.Equal(10, csoStream.Read(data, 0, 100)); Assert.Equal( isoBytes, csoStream.ReadAll() ); csoStream.Position = 0x10 * 2048 - 100; Assert.Equal( isoBytes.Slice(0x10 * 2048 - 100, 300), csoStream.ReadBytes(300) ); }
public void ReadTest() { var Cso = new Cso(File.OpenRead("../../../TestInput/cube.cso")); var IsoBytes = File.ReadAllBytes("../../../TestInput/cube.iso"); var CsoStream = new CsoProxyStream(Cso); Assert.AreEqual(0x72800, CsoStream.Length); var Data = new byte[2048]; var Data2 = new byte[3000]; Assert.AreEqual(Data.Length, CsoStream.Read(Data, 0, Data.Length)); Assert.AreEqual(Data.Length, CsoStream.Read(Data, 0, Data.Length)); Assert.AreEqual(3000, CsoStream.Read(Data2, 0, 3000)); CsoStream.Position = 0x72800 - Data.Length; Assert.AreEqual(Data.Length, CsoStream.Read(Data, 0, Data.Length)); CsoStream.Position = 0x72800 - 10; Assert.AreEqual(10, CsoStream.Read(Data, 0, 10)); CsoStream.Position = 0x72800 - 10; Assert.AreEqual(10, CsoStream.Read(Data, 0, 100)); CollectionAssert.AreEqual( IsoBytes, CsoStream.ReadAll(true) ); CsoStream.Position = 0x10 * 2048 - 100; CollectionAssert.AreEqual( IsoBytes.Slice(0x10 * 2048 - 100, 300), CsoStream.ReadBytes(300) ); }
public void IsoConstructorTest() { var csoName = "../../../TestInput/test.cso"; var cso = new Cso(File.OpenRead(csoName)); var iso = new IsoFile(new CompressedIsoProxyStream(cso), csoName); var contentNode = iso.Root.Locate("path/content.txt"); var lines = contentNode.Open().ReadAllContentsAsString().Split('\n'); foreach (var line in lines) { iso.Root.Locate(line); } }
public void IsoConstructorTest() { var CsoName = "../../../TestInput/test.cso"; var Cso = new Cso(File.OpenRead(CsoName)); var Iso = new IsoFile(new CsoProxyStream(Cso), CsoName); var ContentNode = Iso.Root.Locate("path/content.txt"); var Lines = ContentNode.Open().ReadAllContentsAsString().Split('\n'); foreach (var Line in Lines) { Iso.Root.Locate(Line); } }
public void ReadSectorDecompressedTest() { var Cso = new Cso(File.OpenRead("../../../TestInput/cube.cso")); var IsoBytes = File.ReadAllBytes("../../../TestInput/cube.iso"); int ExpectedNumberOfBlocks = 229; int ExpectedBlockSize = 2048; Assert.AreEqual(ExpectedNumberOfBlocks, Cso.NumberOfBlocks); Assert.AreEqual(ExpectedBlockSize, Cso.BlockSize); for (uint Block = 0; Block < ExpectedNumberOfBlocks; Block++) { var DecompressedBlockData = Cso.ReadBlockDecompressed(Block); CollectionAssert.AreEqual( IsoBytes.Skip((int)(ExpectedBlockSize * Block)).Take(ExpectedBlockSize).ToArray(), DecompressedBlockData ); } }
public void ReadSectorDecompressedTest() { var cso = new Cso(File.OpenRead("../../../TestInput/cube.cso")); var isoBytes = File.ReadAllBytes("../../../TestInput/cube.iso"); int expectedNumberOfBlocks = 229; int expectedBlockSize = 2048; Assert.Equal(expectedNumberOfBlocks, cso.NumberOfBlocks); Assert.Equal(expectedBlockSize, cso.BlockSize); for (uint block = 0; block < expectedNumberOfBlocks; block++) { var decompressedBlockData = cso.ReadBlocksDecompressed(block, 1)[0]; Assert.Equal( isoBytes.Skip((int)(expectedBlockSize * block)).Take(expectedBlockSize).ToArray(), decompressedBlockData.ToArray() ); } }
public CsoProxyStream(Cso Cso) { this.Cso = Cso; }