public void RunTest_BigInteger() { var integerSquareRootAlg = new BigIntSquareRootAlgorithm(); var integerNumber = new BigIntegerDomain(); var factorizationAlg = new NaiveIntegerFactorizationAlgorithm <BigInteger>( integerSquareRootAlg, integerNumber); var value = BigInteger.Parse("1000000000001"); var expected = new Dictionary <BigInteger, int>(); expected.Add(137, 1); expected.Add(73, 1); expected.Add(BigInteger.Parse("99990001"), 1); var actual = factorizationAlg.Run(value); CollectionAssert.AreEquivalent(expected, actual); }
public void RunTest_BigInteger() { var squareRootAlgorithm = new BigIntSquareRootAlgorithm(); var primeNumberFactory = new BigIntegerPrimeNumbersIteratorFactory(); var integerNumber = new BigIntegerDomain(); var totientAlgorithm = new EulerTotFuncAlg <BigInteger>( squareRootAlgorithm, primeNumberFactory, integerNumber); var values = new[] { 1, 12, 343, 720, 73, 100 }; var expected = new[] { 1, 4, 294, 192, 72, 40 }; for (int i = 0; i < values.Length; ++i) { var actual = totientAlgorithm.Run(values[i]); Assert.AreEqual(expected[i], actual); } }