Exemple #1
0
        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));
            }
        }
Exemple #2
0
 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));
     }
 }
Exemple #3
0
        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)));
        }
Exemple #4
0
 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));
         }
     }
 }
Exemple #5
0
    public TrialDivisionDecider(int limit)
    {
        Limit = limit;

        _sieveProvider = new SieveOfEratosthenesProvider(Convert.ToInt32(Math.Sqrt(Limit)));
    }
Exemple #6
0
 public TrialDivisionDecider(int limit)
 {
     _sieve = new SieveOfEratosthenesProvider(Convert.ToInt32(Math.Sqrt(limit)));
 }