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); }
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()); }
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()); }
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()); }
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(); }
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()); }
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); }
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); }
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); }