Exemplo n.º 1
0
        public void TestCoPrimesEmpty()
        {
            BigInteger coprimeTo = 20160;
            BigInteger coprimeMin = 6777122;
            BigInteger coprimeMax = 6777131;
            int expectedCoprimeCount = 0;

            Coprimes coprimes = new Coprimes(coprimeTo, coprimeMin, coprimeMax);
            List<BigInteger> resultCoprimes = coprimes.GetCoprimes().ToList();
            int resultCoprimeCount = resultCoprimes.Count;

            Assert.AreEqual(expectedCoprimeCount, resultCoprimeCount);
        }
Exemplo n.º 2
0
        public void TestCoPrimes256()
        {
            BigInteger coprimeTo = 256;
            BigInteger coprimeMin = 16777216;
            BigInteger coprimeMax = 16777700;
            int expectedCoprimeCount = 242;
            BigInteger expectedFirst = 16777217;
            BigInteger expectedLast = 16777699;

            Coprimes coprimes = new Coprimes(coprimeTo, coprimeMin, coprimeMax);
            List<BigInteger> resultCoprimes = coprimes.GetCoprimes().ToList();
            int resultCoprimeCount = resultCoprimes.Count;

            Assert.AreEqual(expectedCoprimeCount, resultCoprimeCount);
            Assert.AreEqual(expectedFirst, resultCoprimes.First());
            Assert.AreEqual(expectedLast, resultCoprimes.Last());
        }
Exemplo n.º 3
0
        public void TestCoPrimes251()
        {
            BigInteger coprimeTo = 251;
            BigInteger coprimeMin = 1234567000;
            BigInteger coprimeMax = 1234568000;
            int expectedCoprimeCount = 996;
            BigInteger expectedFirst = 1234567000;
            BigInteger expectedLast = 1234567999;

            Coprimes coprimes = new Coprimes(coprimeTo, coprimeMin, coprimeMax);
            List<BigInteger> resultCoprimes = coprimes.GetCoprimes().ToList();
            int resultCoprimeCount = resultCoprimes.Count;

            Assert.AreEqual(expectedCoprimeCount, resultCoprimeCount);
            Assert.AreEqual(expectedFirst, resultCoprimes.First());
            Assert.AreEqual(expectedLast, resultCoprimes.Last());
        }
Exemplo n.º 4
0
        public void TestCoPrimesLarge10Pow10Parallel()
        {
            BigInteger coprimeTo = 2147483642;
            BigInteger coprimeMin = 2145483643;
            BigInteger coprimeMax = 2147483643;
            int expectedCoprimeCount = 956522;
            BigInteger expectedFirst = 2145483643;
            BigInteger expectedLast = 2147483641;

            Coprimes coprimes = new Coprimes(coprimeTo, coprimeMin, coprimeMax);
            IOrderedEnumerable<BigInteger> orderedResultCoprimes = coprimes.GetCoprimesParallel().OrderBy(bi => (BigInteger)bi);

            int resultCoprimeCount = orderedResultCoprimes.Count();

            Assert.AreEqual(expectedCoprimeCount, resultCoprimeCount);
            Assert.AreEqual(expectedFirst, orderedResultCoprimes.First());
            Assert.AreEqual(expectedLast, orderedResultCoprimes.Last());
        }
Exemplo n.º 5
0
        private void btnEnumeratePrimeFactors_Click(object sender, EventArgs e)
        {
            DateTime startTime = DateTime.UtcNow;
            Coprimes factorsFinder = new Coprimes(CoprimeTo, CoprimeMin, CoprimeMax);
            List<BigInteger> factors = factorsFinder.GetPrimeFactors().ToList();
            string joinedFactors = string.Join(Environment.NewLine, factors);
            TimeSpan factorsTimeElapsed = DateTime.UtcNow.Subtract(startTime);

            factorsTimeElapsed.ToString("m'm 's's.'FFFFFFF");

            StringBuilder resultString = new StringBuilder();
            resultString.AppendFormat("Total # of prime found in range: {0}", factors.Count);
            resultString.AppendLine();
            resultString.AppendFormat("Total time elapsed: {0}", factorsTimeElapsed.ToString("m'm 's's.'ffff"));
            resultString.AppendLine();
            resultString.Append(joinedFactors);

            tbOutput.Clear();
            DisplayOutput(resultString.ToString());
            tbOutput.Select(0, 0);
            tbOutput.ScrollToCaret();
        }
Exemplo n.º 6
0
        public void TestCoPrimesLarge10Pow10Synchronous()
        {
            BigInteger coprimeTo = 2147483642;
            BigInteger coprimeMin = 2145483643;
            BigInteger coprimeMax = 2147483643;
            int expectedCoprimeCount = 956522;
            BigInteger expectedFirst = 2145483643;
            BigInteger expectedLast = 2147483641;

            Coprimes coprimes = new Coprimes(coprimeTo, coprimeMin, coprimeMax);
            List<BigInteger> resultCoprimes = coprimes.GetCoprimes().ToList();
            int resultCoprimeCount = resultCoprimes.Count;

            Assert.AreEqual(expectedCoprimeCount, resultCoprimeCount);
            Assert.AreEqual(expectedFirst, resultCoprimes.First());
            Assert.AreEqual(expectedLast, resultCoprimes.Last());
        }
Exemplo n.º 7
0
        public void TestFindPrimeFactors64bit()
        {
            BigInteger coprimeTo = BigInteger.Parse("90459209396766660489526818707270239963");
            BigInteger coprimeMin = 9223506588021000000;
            BigInteger coprimeMax = BigInteger.Parse("90459209396766660489526818707270239964");
            int expectedCoprimeCount = 2;
            BigInteger primeP = 9223506588022268141;
            BigInteger primeQ = 9807464062988563943;

            Coprimes coprimes = new Coprimes(coprimeTo, coprimeMin, coprimeMax);
            List<BigInteger> resultCoprimes = coprimes.GetPrimeFactors().ToList();
            int resultCoprimeCount = resultCoprimes.Count;

            Assert.AreEqual(expectedCoprimeCount, resultCoprimeCount);
            Assert.AreEqual(resultCoprimes[0], primeP);
            Assert.AreEqual(resultCoprimes[1], primeQ);
        }
Exemplo n.º 8
0
        public void TestFindPrimeFactors32bit()
        {
            BigInteger coprimeTo = 1202664026348236889;
            BigInteger coprimeMin = 1069760585;
            BigInteger coprimeMax = 1202664026348236890;
            int expectedCoprimeCount = 2;
            BigInteger primeP = 1074936217;
            BigInteger primeQ = 1118823617;

            Coprimes coprimes = new Coprimes(coprimeTo, coprimeMin, coprimeMax);
            List<BigInteger> resultCoprimes = coprimes.GetPrimeFactors().ToList();
            int resultCoprimeCount = resultCoprimes.Count;

            Assert.AreEqual(expectedCoprimeCount, resultCoprimeCount);
            Assert.AreEqual(resultCoprimes[0], primeP);
            Assert.AreEqual(resultCoprimes[1], primeQ);
        }
Exemplo n.º 9
0
        public void TestFindPrimeFactors()
        {
            BigInteger coprimeTo = 111247819;
            BigInteger coprimeMin = 2;
            BigInteger coprimeMax = 111247820;
            int expectedCoprimeCount = 2;
            BigInteger primeP = 10007;
            BigInteger primeQ = 11117;

            Coprimes coprimes = new Coprimes(coprimeTo, coprimeMin, coprimeMax);
            List<BigInteger> resultCoprimes = coprimes.GetPrimeFactors().ToList();
            int resultCoprimeCount = resultCoprimes.Count;

            Assert.AreEqual(expectedCoprimeCount, resultCoprimeCount);
            Assert.AreEqual(resultCoprimes[0], primeP);
            Assert.AreEqual(resultCoprimes[1], primeQ);
        }