Ejemplo 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 = EliasGammaUnsignedWriter.WriteOneDefault(input);
                var output  = EliasGammaUnsignedReader.ReadOneDefault(encoded);

                Assert.AreEqual(input, output);
            }
        }
 public void Write_15_15_15()
 {
     using (var stream = new MemoryStream()) {
         using (var writer = new EliasGammaUnsignedWriter(stream)) {
             writer.Write(15);
             writer.Write(15);
             writer.Write(15);
         }
         Assert.AreEqual("00001000 00000100 00000010 00000000", stream.ToArray().ToBinaryString());
     }
 }
        public void WriteRead_First1000_Appending()
        {
            ulong min = 0;
            ulong max = 1000;

            using (var stream = new MemoryStream()) {
                using (var writer = new EliasGammaUnsignedWriter(stream)) {
                    for (var i = min; i < max; i++)
                    {
                        writer.Write(i);
                    }
                }
                stream.Position = 0;
                using (var reader = new EliasGammaUnsignedReader(stream)) {
                    for (var i = min; i < max; i++)
                    {
                        Assert.AreEqual(i, reader.Read());
                    }
                }
            }
        }
 private string Write(ulong value)
 {
     return(EliasGammaUnsignedWriter.WriteOneDefault(value).ToBinaryString());
 }