public void ByteRoundTripTest()
        {
            var generator = new Generator("ByteRoundTripTest");
            var clone     = generator.Clone();

            for (int t = 0; t < 100; t++)
            {
                var f = MixingFunctions.CreateByteMixer(generator);
                var g = MixingFunctions.CreateByteInverseMixer(clone);

                for (int i = 0; i < 256; i++)
                {
                    Assert.AreEqual((Byte)i, g(f((Byte)i)));
                    Assert.AreEqual((Byte)i, f(g((Byte)i)));
                }
            }
        }
        public void ByteInverseTest()
        {
            var generator = new Generator("ByteInverseTest");

            for (int t = 0; t < 100; t++)
            {
                var fn   = MixingFunctions.CreateByteInverseMixer(generator);
                var used = new HashSet <Byte>();

                for (int i = 0; i < 256; i++)
                {
                    used.Add(fn((Byte)i));
                }

                Assert.AreEqual(256, used.Count);
            }
        }