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(); } }
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(); } }