Esempio n. 1
0
 static void Main(String[] args)
 {
     using (var writer = new StreamWriter("output.csv", false)) {
         writer.WriteLine(",min,elias-omega,elias-gamma,elias-delta,fibonacci,vlq(7),thompson-alpha(6)");
         for (UInt64 i = 1; i < UInt64.MaxValue / 10; i *= 2)
         {
             writer.Write(i);
             writer.Write(",");
             writer.Write(Bits.CountUsed(i));
             writer.Write(",");
             writer.Write(EliasOmegaUnsignedWriter.CalculateBitLength(i));
             writer.Write(",");
             writer.Write(EliasGammaUnsignedWriter.CalculateBitLength(i));
             writer.Write(",");
             writer.Write(EliasDeltaUnsignedWriter.CalculateBitLength(i));
             writer.Write(",");
             writer.Write(FibonacciUnsignedWriter.CalculateBitLength(i));
             writer.Write(",");
             writer.Write(VLQUnsignedWriter.CalculateBitLength(7, i));
             writer.Write(",");
             writer.Write(ThompsonAlphaUnsignedWriter.CalculateBitLength(6, i));
             writer.WriteLine();
         }
     }
 }
        public void WriteRead_First1000()
        {
            for (ulong input = 0; input < 1000; input++)
            {
                var encoded = FibonacciUnsignedWriter.WriteOneDefault(input);
                var output  = FibonacciUnsignedReader.ReadOneDefault(encoded);

                Assert.AreEqual(input, output);
            }
        }
 public void Write_13_13_13()
 {
     using (var stream = new MemoryStream()) {
         using (var writer = new FibonacciUnsignedWriter(stream)) {
             writer.Write(13);
             writer.Write(13);
             writer.Write(13);
         }
         Assert.AreEqual("10000111 00001110 00011000", stream.ToArray().ToBinaryString());
     }
 }
        public void WriteRead_First1000_Appending()
        {
            ulong min = 0;
            ulong max = 1000;

            using (var stream = new MemoryStream()) {
                using (var writer = new FibonacciUnsignedWriter(stream)) {
                    for (var i = min; i < max; i++)
                    {
                        writer.Write(i);
                    }
                }
                stream.Position = 0;
                using (var reader = new FibonacciUnsignedReader(stream)) {
                    for (var i = min; i < max; i++)
                    {
                        Assert.AreEqual(i, reader.Read());
                    }
                }
            }
        }
 private string Write(ulong value)
 {
     return(FibonacciUnsignedWriter.WriteOneDefault(value).ToBinaryString());
 }
        public void WriteRead_100000000000000()
        {
            var encoded = FibonacciUnsignedWriter.WriteOneDefault(100000000000000);

            Assert.AreEqual((ulong)100000000000000, FibonacciUnsignedReader.ReadOneDefault(encoded));
        }