コード例 #1
0
        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);
        }
コード例 #2
0
        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);
            }
        }