예제 #1
0
        static void Main(string[] args)
        {
            while (true)
            {
                BasE91 b    = new BasE91();
                Random r    = new Random();
                byte[] data = new byte[r.Next(1024 * 1024, 20 * 1024 * 1024)];
                r.NextBytes(data);

                DateTime      begin = DateTime.UtcNow;
                StringBuilder enc   = b.Encode(data);
                DateTime      end   = DateTime.UtcNow;

                System.Console.WriteLine("Encode {0}: {1}mb in {2}ms. {3}mb/sec. +{4}%",
                                         enc.ToString(0, 10),
                                         data.Length / (1024 * 1024),
                                         (int)(end - begin).TotalMilliseconds,
                                         Math.Round((data.Length / (end - begin).TotalSeconds) / (1024 * 1024), 1),
                                         ((long)enc.Length * 100) / data.Length - 100);

                b = new BasE91();
                string encoded = enc.ToString();
                begin = DateTime.UtcNow;
                b.Decode(encoded);
                end = DateTime.UtcNow;

                System.Console.WriteLine("Decode: {0}mb in {1}ms. {2}mb/sec",
                                         enc.Length / (1024 * 1024),
                                         (int)(end - begin).TotalMilliseconds,
                                         Math.Round((enc.Length / (end - begin).TotalSeconds) / (1024 * 1024), 1));
            }
        }
예제 #2
0
파일: UnitTest1.cs 프로젝트: jdluzen/base91
 public void Roundtrip_Byte()
 {
     for (byte i = 1; i < byte.MaxValue; i++)
     {
         byte[] raw = new byte[] { i };
         string enc = new BasE91().Encode(raw).ToString();
         byte   dec = new BasE91().Decode(enc).First();
         Assert.Equal(raw[0], dec);
     }
 }
예제 #3
0
파일: UnitTest1.cs 프로젝트: jdluzen/base91
 public void Roundtrip_ushort()
 {
     for (ushort i = 1; i < ushort.MaxValue; i++)
     {
         byte[]      raw = BitConverter.GetBytes(i);
         string      enc = new BasE91().Encode(raw).ToString();
         List <byte> dec = new BasE91().Decode(enc);
         Assert.Equal(raw[0], dec[0]);
         Assert.Equal(raw[1], dec[1]);
     }
 }
예제 #4
0
파일: UnitTest1.cs 프로젝트: jdluzen/base91
        public void Large_Array()
        {
            byte[] data = new byte[20 * 1024 * 1024];
            new Random().NextBytes(data);
            var         builder = new BasE91().Encode(data);
            List <byte> newData = new BasE91().Decode(builder.ToString());

            for (int i = 0; i < data.Length; i++)
            {
                Assert.Equal(data[i], newData[i]);
            }
        }