public void CanCompressData()
        {
            // Arrange
            var testData = new byte[] { 55, 66, 55, 66, 77, 88, 0, 11, 0, 22, 0, 33, 0, 22, 0, 11, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 55, 66, 77, 88, 99 };

            // Act
            var compressed   = Gyu0.Compress(new BinaryFile(testData));
            var decompressed = Gyu0.Decompress(compressed);

            // Assert
            var decompressedArray = decompressed.ReadArray();

            decompressedArray.Should().Equal(testData);
        }
            public Entry(IReadOnlyBinaryDataAccessor accessor)
            {
                var buffer = Gyu0.Decompress(accessor);

                Sir0 sir0              = new Sir0(buffer);
                var  offsetHeader      = sir0.SubHeader.ReadInt64(0x00);
                var  offsetWildPokemon = sir0.SubHeader.ReadInt64(0x08);
                var  offset3           = sir0.SubHeader.ReadInt64(0x10);
                var  offset4           = sir0.SubHeader.ReadInt64(0x18);
                var  lenHeader         = offsetWildPokemon - offsetHeader;
                var  lenWildPokemon    = offset3 - offsetWildPokemon;
                var  len3              = offset4 - offset3;
                var  len4              = sir0.SubHeaderOffset - offset4;

                var headerEntrySize = FloorInfoEntry.Size;
                var entryCount      = lenHeader / headerEntrySize;

                FloorInfos = new FloorInfoEntry[entryCount];
                for (int i = 0; i < lenHeader / headerEntrySize; i++)
                {
                    FloorInfos[i] = new FloorInfoEntry(sir0.Data.Slice(offsetHeader + i * headerEntrySize, headerEntrySize));
                }

                if (lenWildPokemon > 0)
                {
                    WildPokemon = new WildPokemonInfo(sir0.Data.Slice(offsetWildPokemon, lenWildPokemon));
                }
                if (len3 > 0)
                {
                    Data3 = new DungeonBalanceDataEntry3(sir0.Data.Slice(offset3, len3));
                }
                if (len4 > 0)
                {
                    Data4 = new DungeonBalanceDataEntry4(sir0.Data.Slice(offset4, len4));
                }
            }