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)
                );
        }
Ejemplo n.º 2
0
        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)
                );
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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
                    );
            }
        }
Ejemplo n.º 6
0
        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()
                    );
            }
        }
Ejemplo n.º 7
0
 public CsoProxyStream(Cso Cso)
 {
     this.Cso = Cso;
 }