Esempio n. 1
0
        public void BaseConverter_RandomBytesCodingTest(BaseConverter converter)
        {
            var r = Randomness.NextRandom();

            var a = Enumerable.Range(0, 1000)
                    .Select(x => {
                var v = new byte[r.Next(8)];
                r.NextBytes(v);
                return(v);
            });

            var b = Enumerable.Range(0, 1000)
                    .Select(x => {
                var v = new byte[r.Next(16)];
                r.NextBytes(v);
                return(v);
            });

            var c = Enumerable.Range(0, 1000)
                    .Select(x => {
                var v = new byte[r.Next(256)];
                r.NextBytes(v);
                return(v);
            });

            var actions = new Action[] {
                TestBuilder
                .NewCodingTest(a, converter, converter.Encode, x => converter.DecodeBytes(x))
                .WithStringFunction(x => string.Join(",", x.Select(y => y.ToString("X2"))))
                .Create(),
                TestBuilder
                .NewCodingTest(b, converter, converter.Encode, x => converter.DecodeBytes(x))
                .WithStringFunction(x => string.Join(",", x.Select(y => y.ToString("X2"))))
                .Create(),
                TestBuilder
                .NewCodingTest(c, converter, converter.Encode, x => converter.DecodeBytes(x))
                .WithStringFunction(x => string.Join(",", x.Select(y => y.ToString("X2"))))
                .Create(),
            };

            foreach (var action in actions)
            {
                action();
            }
        }
Esempio n. 2
0
        public void BaseConverter_FixedBytesCodingTest(BaseConverter converter)
        {
            var q = new[] {
                new byte[] {},

                new byte[] { 0, },
                new byte[] { 1, },
                new byte[] { 255, },

                new byte[] { 0, 0, },
                new byte[] { 0, 1, },
                new byte[] { 0, 255, },
                new byte[] { 1, 0, },
                new byte[] { 1, 1, },
                new byte[] { 1, 255, },
                new byte[] { 255, 0, },
                new byte[] { 255, 1, },
                new byte[] { 255, 255, },

                new byte[] { 0, 0, 0, },
                new byte[] { 0, 0, 1, },
                new byte[] { 0, 0, 255, },
                new byte[] { 0, 1, 0, },
                new byte[] { 0, 1, 1, },
                new byte[] { 0, 1, 255, },
                new byte[] { 0, 255, 0, },
                new byte[] { 0, 255, 1, },
                new byte[] { 0, 255, 255, },
                new byte[] { 1, 0, 0, },
                new byte[] { 1, 0, 1, },
                new byte[] { 1, 0, 255, },
                new byte[] { 1, 1, 0, },
                new byte[] { 1, 1, 1, },
                new byte[] { 1, 1, 255, },
                new byte[] { 1, 255, 0, },
                new byte[] { 1, 255, 1, },
                new byte[] { 1, 255, 255, },
                new byte[] { 255, 0, 0, },
                new byte[] { 255, 0, 1, },
                new byte[] { 255, 0, 255, },
                new byte[] { 255, 1, 0, },
                new byte[] { 255, 1, 1, },
                new byte[] { 255, 1, 255, },
                new byte[] { 255, 255, 0, },
                new byte[] { 255, 255, 1, },
                new byte[] { 255, 255, 255, },

                new byte[] { 0, 0, 0, 0, },
                new byte[] { 0, 0, 0, 1, },
                new byte[] { 0, 0, 0, 255, },
                new byte[] { 0, 0, 1, 0, },
                new byte[] { 0, 0, 1, 1, },
                new byte[] { 0, 0, 1, 255, },
                new byte[] { 0, 0, 255, 0, },
                new byte[] { 0, 0, 255, 1, },
                new byte[] { 0, 0, 255, 255, },
                new byte[] { 0, 1, 0, 0, },
                new byte[] { 0, 1, 0, 1, },
                new byte[] { 0, 1, 0, 255, },
                new byte[] { 0, 1, 1, 0, },
                new byte[] { 0, 1, 1, 1, },
                new byte[] { 0, 1, 1, 255, },
                new byte[] { 0, 1, 255, 0, },
                new byte[] { 0, 1, 255, 1, },
                new byte[] { 0, 1, 255, 255, },
                new byte[] { 0, 255, 0, 0, },
                new byte[] { 0, 255, 0, 1, },
                new byte[] { 0, 255, 0, 255, },
                new byte[] { 0, 255, 1, 0, },
                new byte[] { 0, 255, 1, 1, },
                new byte[] { 0, 255, 1, 255, },
                new byte[] { 0, 255, 255, 0, },
                new byte[] { 0, 255, 255, 1, },
                new byte[] { 0, 255, 255, 255, },

                new byte[] { 1, 0, 0, 0, },
                new byte[] { 1, 0, 0, 1, },
                new byte[] { 1, 0, 0, 255, },
                new byte[] { 1, 0, 1, 0, },
                new byte[] { 1, 0, 1, 1, },
                new byte[] { 1, 0, 1, 255, },
                new byte[] { 1, 0, 255, 0, },
                new byte[] { 1, 0, 255, 1, },
                new byte[] { 1, 0, 255, 255, },
                new byte[] { 1, 1, 0, 0, },
                new byte[] { 1, 1, 0, 1, },
                new byte[] { 1, 1, 0, 255, },
                new byte[] { 1, 1, 1, 0, },
                new byte[] { 1, 1, 1, 1, },
                new byte[] { 1, 1, 1, 255, },
                new byte[] { 1, 1, 255, 0, },
                new byte[] { 1, 1, 255, 1, },
                new byte[] { 1, 1, 255, 255, },
                new byte[] { 1, 255, 0, 0, },
                new byte[] { 1, 255, 0, 1, },
                new byte[] { 1, 255, 0, 255, },
                new byte[] { 1, 255, 1, 0, },
                new byte[] { 1, 255, 1, 1, },
                new byte[] { 1, 255, 1, 255, },
                new byte[] { 1, 255, 255, 0, },
                new byte[] { 1, 255, 255, 1, },
                new byte[] { 1, 255, 255, 255, },

                new byte[] { 255, 0, 0, 0, },
                new byte[] { 255, 0, 0, 1, },
                new byte[] { 255, 0, 0, 255, },
                new byte[] { 255, 0, 1, 0, },
                new byte[] { 255, 0, 1, 1, },
                new byte[] { 255, 0, 1, 255, },
                new byte[] { 255, 0, 255, 0, },
                new byte[] { 255, 0, 255, 1, },
                new byte[] { 255, 0, 255, 255, },
                new byte[] { 255, 1, 0, 0, },
                new byte[] { 255, 1, 0, 1, },
                new byte[] { 255, 1, 0, 255, },
                new byte[] { 255, 1, 1, 0, },
                new byte[] { 255, 1, 1, 1, },
                new byte[] { 255, 1, 1, 255, },
                new byte[] { 255, 1, 255, 0, },
                new byte[] { 255, 1, 255, 1, },
                new byte[] { 255, 1, 255, 255, },
                new byte[] { 255, 255, 0, 0, },
                new byte[] { 255, 255, 0, 1, },
                new byte[] { 255, 255, 0, 255, },
                new byte[] { 255, 255, 1, 0, },
                new byte[] { 255, 255, 1, 1, },
                new byte[] { 255, 255, 1, 255, },
                new byte[] { 255, 255, 255, 0, },
                new byte[] { 255, 255, 255, 1, },
                new byte[] { 255, 255, 255, 255, },
            };

            var actions = new Action[] {
                TestBuilder
                .NewCodingTest(q, converter, converter.Encode, x => converter.DecodeBytes(x))
                .WithMessage("Cannot encode/decode 'Remainder'.")
                .WithStringFunction(x => string.Join(",", x.Select(y => y.ToString("X2"))))
                .Create(),
            };

            foreach (var action in actions)
            {
                action();
            }
        }