예제 #1
0
        public void BaseConverter_BaseExpIntsWithSmallVarCodingTest(BaseConverter converter)
        {
            var q = Enumerable.Range(0, 64)
                    .SelectMany(x => {
                var log = (ulong)Math.Pow(converter.Coding.Base, x);
                return(new[] { log - 1, log, log + 1 });
            });

            var a = q.TakeWhile(x => x <= int.MaxValue).Select(x => (int)x);
            var b = q.TakeWhile(x => x <= uint.MaxValue).Select(x => (uint)x);
            var c = q.TakeWhile(x => x <= long.MaxValue).Select(x => (long)x);
            var d = q;

            var actions = new Action[] {
                TestBuilder
                .NewCodingTest(a, converter, converter.Encode, x => converter.DecodeInt32(x))
                .Create(),
                TestBuilder
                .NewCodingTest(b, converter, converter.Encode, x => converter.DecodeUInt32(x))
                .Create(),
                TestBuilder
                .NewCodingTest(c, converter, converter.Encode, x => converter.DecodeInt64(x))
                .Create(),
                TestBuilder
                .NewCodingTest(d, converter, converter.Encode, x => converter.DecodeUInt64(x))
                .Create(),
            };

            foreach (var action in actions)
            {
                action();
            }
        }
예제 #2
0
        public void BaseConverter_RandomIntsCodingTest(BaseConverter converter)
        {
            var r = Randomness.NextRandom();

            var a = r.NextInt32Sequence().Take(1000);
            var b = r.NextUInt32Sequence().Take(1000);
            var c = r.NextInt64Sequence().Take(1000);
            var d = r.NextUInt64Sequence().Take(1000);

            var actions = new Action[] {
                TestBuilder
                .NewCodingTest(a, converter, converter.Encode, x => converter.DecodeInt32(x))
                .Create(),
                TestBuilder
                .NewCodingTest(b, converter, converter.Encode, x => converter.DecodeUInt32(x))
                .Create(),
                TestBuilder
                .NewCodingTest(c, converter, converter.Encode, x => converter.DecodeInt64(x))
                .Create(),
                TestBuilder
                .NewCodingTest(d, converter, converter.Encode, x => converter.DecodeUInt64(x))
                .Create(),
            };

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