public void Compress()
        {
            var c = ZahyoCompress.Create("compress").Compress();

            var(decN, decO) = c;
            decN.Should().BeSameAs(c.NewTable);
            decO.Should().BeSameAs(c.Original);

            c.NewTable.Should().Equal(new Dictionary <char, int>
            {
                { 'c', 0 },
                { 'o', 3 },
                { 'm', 2 },
                { 'p', 4 },
                { 'r', 5 },
                { 'e', 1 },
                { 's', 6 },
            });
            c.Original.Should().Equal('c', 'e', 'm', 'o', 'p', 'r', 's');
            c.Replace("compress").Should().Equal(0, 3, 2, 4, 5, 1, 6, 6);

            c.Compress(new ReverseComparerClass <char>());
            c.NewTable.Should().Equal(new Dictionary <char, int>
            {
                { 'c', 6 },
                { 'o', 3 },
                { 'm', 4 },
                { 'p', 2 },
                { 'r', 1 },
                { 'e', 5 },
                { 's', 0 },
            });
            c.Original.Should().Equal('s', 'r', 'p', 'o', 'm', 'e', 'c');
            c.Replace("compress").Should().Equal(6, 3, 4, 2, 1, 5, 0, 0);

            c.Add('i');
            c.Add('r');
            c.Add('k');
            c.Compress();
            c.NewTable.Should().Equal(new Dictionary <char, int>
            {
                { 'c', 0 },
                { 'o', 5 },
                { 'm', 4 },
                { 'p', 6 },
                { 'r', 7 },
                { 'e', 1 },
                { 's', 8 },
                { 'i', 2 },
                { 'k', 3 },
            });
            c.Original.Should().Equal('c', 'e', 'i', 'k', 'm', 'o', 'p', 'r', 's');
        }
 public void CompressedArray()
 {
     ZahyoCompress.CompressedArray("compress".AsSpan()).Should().Equal(0, 3, 2, 4, 5, 1, 6, 6);
     ZahyoCompress.CompressedArray(new[] { 3, 5, 6, 41, 6 }).Should().Equal(0, 1, 2, 3, 2);
 }