public void SByteTest()
        {
            var generator = new Generator("SByteTest");

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

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

                Assert.AreEqual(256, used.Count);
            }
        }
        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 UInt32Test()
        {
            var generator = new Generator("UInt32Test");

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

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

                Assert.AreEqual(256, used.Count);
            }
        }
        public void Int64InverseTest()
        {
            var generator = new Generator("Int64InverseTest");

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

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

                Assert.AreEqual(256, used.Count);
            }
        }
        public void CharTest()
        {
            var generator = new Generator("CharTest");

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

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

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