public void AddHashCodes()
 {
     var store = new HashStore(new[] { 123, 456, 123, 456, 789, 123, 123 });
     Assert.AreEqual(7, store.Result.StatisticalPopulation);
     Assert.AreEqual(4, store[123]);
     Assert.AreEqual(2, store[456]);
     Assert.AreEqual(1, store[789]);
     Assert.AreEqual(0, store[666]);
 }
 public void DistributionDeviationProbability(double expectedProbability, IEnumerable<int> hashes)
 {
     var store = new HashStore(hashes);
     double actual = store.Result.UniformDistributionDeviationProbability;
     Assert.AreApproximatelyEqual(expectedProbability, actual, 0.000001);
 }
 public void CalculateCollisionProbabilityWithHighLoad()
 {
     var store = new HashStore(GenerateHashLoad(Enumerable.Range(0, 10000), 5000));
     double actualProbability = store.Result.CollisionProbability;
     Assert.AreApproximatelyEqual(9.998E-5, actualProbability, 1E-5);
 }
 public void CalculateCollisionProbability(double expectedProbability, IEnumerable<int> hashes)
 {
     var store = new HashStore(hashes);
     double actualProbability = store.Result.CollisionProbability;
     Assert.AreApproximatelyEqual(expectedProbability, actualProbability, 0.0001);
 }