public void TestEntropyEstimation()
        {
            BioRandom random = new BioRandom();

            random.AddPoint(100, 100);
            random.AddPoint(200, 200);

            int entropy = random.Entropy;
            Assert.That(entropy, Is.GreaterThan(0));

            random.AddPoint(200, 200);
            Assert.That(random.Entropy, Is.EqualTo(entropy));

            random.AddPoint(300, 200);
            Assert.That(random.Entropy, Is.GreaterThan(entropy));
            entropy = random.Entropy;

            random.AddPoint(300, 300);
            Assert.That(random.Entropy, Is.GreaterThan(entropy));
            entropy = random.Entropy;

            random.AddPoint(200, 300);
            Assert.That(random.Entropy, Is.GreaterThan(entropy));
            entropy = random.Entropy;

            random.AddPoint(200, 200);
            Assert.That(random.Entropy, Is.GreaterThan(entropy));

            byte[] material = random.CreateSeedMaterial();
            Assert.That(material.Length, Is.EqualTo(64));
            Assert.That(material.Count(b => b != 0), Is.GreaterThan(32));

            Assert.That(random.Entropy, Is.EqualTo(0));
        }
        public void TestDifferentInputs()
        {
            BioRandom random2 = new BioRandom();
            BioRandom random1 = new BioRandom();

            random1.AddPoint(100, 100);
            random2.AddPoint(100, 100);

            random1.AddPoint(200, 200);
            random2.AddPoint(300, 300);

            byte[] material1 = random1.CreateSeedMaterial();
            byte[] material2 = random2.CreateSeedMaterial();

            Assert.That(material1.Length, Is.EqualTo(64));
            Assert.That(material1.Count(b => b != 0), Is.GreaterThan(32));

            Assert.That(material2.Length, Is.EqualTo(64));
            Assert.That(material2.Count(b => b != 0), Is.GreaterThan(32));

            int matchCount = 0;
            for (int i = 0; i < material1.Length; i++)
            {
                if (material1[i] == material2[i])
                {
                    matchCount++;
                }
            }

            Assert.That(matchCount, Is.LessThan(16));
        }