Beispiel #1
0
        private static void SplitStringDecodeTest()
        {
            const int DATA_SIZE     = 13;
            const int FRAGMENT_SIZE = 10;

            byte[] data1 = new byte[DATA_SIZE];

            for (int i = 0; i < DATA_SIZE; i++)
            {
                data1[i] = (byte)i;
            }

            string base32   = Base32Core.ToBase32String(data1) + "a";
            var    length32 = base32.Length;

            var             accumulator = new List <byte>();
            Action <byte[]> handler     = (i) => { foreach (var x in i)
                                                   {
                                                       accumulator.Add(x);
                                                   }
            };

            using (var pipe = new Base32DecodePipe(handler)) {
                var offset = 0;
                while (offset < base32.Length)
                {
                    var length   = Math.Min(FRAGMENT_SIZE, base32.Length - offset);
                    var progress = length + offset;

                    var final = progress == base32.Length;

                    var fragment = base32.Substring(offset, length);
                    pipe.FeedFragment(fragment, final);

                    offset += FRAGMENT_SIZE;
                }
            }

            var data2 = accumulator.ToArray();

            var isok = data2.SequenceEqual(data1);
        }
 public void CtorTest()
 {
     var pipe = new Base32DecodePipe(Handler);
 }