public void PrimeDeciders_AgreeWithKnownOutput() { var sieveDecider = new SieveOfEratosthenesDecider(2); var sieveProvider = new SieveOfEratosthenesProvider(2); var sieveFactorizer = new SieveOfEratosthenesFactorizer(2); var trialDivisionDecider = new TrialDivisionDecider(2); for (int n = 0; n <= 2; ++n) { Assert.AreEqual(_primesUpTo2.Contains(n), sieveDecider.IsPrime(n)); Assert.AreEqual(_primesUpTo2.Contains(n), sieveProvider.IsPrime(n)); Assert.AreEqual(_primesUpTo2.Contains(n), sieveFactorizer.IsPrime(n)); Assert.AreEqual(_primesUpTo2.Contains(n), trialDivisionDecider.IsPrime(n)); Assert.AreEqual(_primesUpTo2.Contains(n), NaivePrimeDeciderProviderFactorizer.IsPrime(n)); } sieveDecider = new SieveOfEratosthenesDecider(49); sieveProvider = new SieveOfEratosthenesProvider(49); sieveFactorizer = new SieveOfEratosthenesFactorizer(49); trialDivisionDecider = new TrialDivisionDecider(49); for (int n = 0; n <= 49; ++n) { Assert.AreEqual(_primesUpTo49.Contains(n), sieveDecider.IsPrime(n)); Assert.AreEqual(_primesUpTo49.Contains(n), sieveProvider.IsPrime(n)); Assert.AreEqual(_primesUpTo49.Contains(n), sieveFactorizer.IsPrime(n)); Assert.AreEqual(_primesUpTo49.Contains(n), trialDivisionDecider.IsPrime(n)); Assert.AreEqual(_primesUpTo49.Contains(n), NaivePrimeDeciderProviderFactorizer.IsPrime(n)); } }
public void GetPrimes_AgreesWithNaiveProvider() { for (int n = 1000; n <= 10000; n += 1000) { var sieveProvider = new SieveOfEratosthenesProvider(n); Assert.IsTrue(NaivePrimeDeciderProviderFactorizer.GetPrimes(n).SequenceEqual(sieveProvider.Primes)); } }
public void GetPrimes_AgreesWithKnownOutput() { var sieveProvider = new SieveOfEratosthenesProvider(2); Assert.IsTrue(_primesUpTo2.SequenceEqual(sieveProvider.Primes)); Assert.IsTrue(_primesUpTo2.SequenceEqual(NaivePrimeDeciderProviderFactorizer.GetPrimes(2))); sieveProvider = new SieveOfEratosthenesProvider(49); Assert.IsTrue(_primesUpTo49.SequenceEqual(sieveProvider.Primes)); Assert.IsTrue(_primesUpTo49.SequenceEqual(NaivePrimeDeciderProviderFactorizer.GetPrimes(49))); }
public void PrimeDeciders_AgreeWithNaiveDecider() { for (int i = 1000; i <= 10000; i += 1000) { var sieveDecider = new SieveOfEratosthenesDecider(i); var sieveProvider = new SieveOfEratosthenesProvider(i); var sieveFactorizer = new SieveOfEratosthenesFactorizer(i); var trialDivisionDecider = new TrialDivisionDecider(i); for (int n = 0; n <= i; ++n) { Assert.AreEqual(NaivePrimeDeciderProviderFactorizer.IsPrime(n), sieveDecider.IsPrime(n)); Assert.AreEqual(NaivePrimeDeciderProviderFactorizer.IsPrime(n), sieveProvider.IsPrime(n)); Assert.AreEqual(NaivePrimeDeciderProviderFactorizer.IsPrime(n), sieveFactorizer.IsPrime(n)); Assert.AreEqual(NaivePrimeDeciderProviderFactorizer.IsPrime(n), trialDivisionDecider.IsPrime(n)); } } }
public TrialDivisionDecider(int limit) { Limit = limit; _sieveProvider = new SieveOfEratosthenesProvider(Convert.ToInt32(Math.Sqrt(Limit))); }
public TrialDivisionDecider(int limit) { _sieve = new SieveOfEratosthenesProvider(Convert.ToInt32(Math.Sqrt(limit))); }