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