public void Test_End_To_End()
        {
            string input = "9\r\n" +
                           "8\r\n" +
                           "nothing\r\n" +
                           "13\r\n" +
                           "-87\r\n" +
                           "2";

            string expected = "9:3,3\r\n" +
                              "8:2,2,2\r\n" +
                              "13:13\r\n" +
                              "-87:1\r\n" +
                              "2:2\r\n";

            var standardOut = new StringWriter();
            var errorOut = new StringWriter();
            var logger = new ConsoleLogger(standardOut, errorOut);

            IPrimeFactorCalculator calculator = new PrimeFactorCalculator(); // The main calculator.
            calculator = new PrimeFactorOutputWriter(calculator, logger);    // Our formatter for dumping to the console
            calculator = new PrimeFactorExceptionLogger(calculator, logger); // An exception handler that can log errors for us.

            var path = TempFileHelpers.CreateTestFile(input);
            IIntegerReader reader = new IntegerFileReader(path);

            int? number;
            while ((number = reader.ReadNext()) != null)
            {
                calculator.Execute(number.Value);
            }

            Assert.AreEqual(expected, standardOut.ToString());
            Assert.AreEqual(string.Empty, errorOut.ToString());
        }
Example #2
0
        public void Verify_GetLargestFactor()
        {
            long solution = PrimeFactorCalculator.GetLargestPrimeFactor(10);

            Assert.AreEqual(5, solution);
            solution = PrimeFactorCalculator.GetLargestPrimeFactor(21);
            Assert.AreEqual(7, solution);
            solution = PrimeFactorCalculator.GetLargestPrimeFactor(81);
            Assert.AreEqual(3, solution);
            solution = PrimeFactorCalculator.GetLargestPrimeFactor(2);
            Assert.AreEqual(2, solution);
        }
Example #3
0
        public long GetSmallestNumberDivisibleByNumbersUpTo(long topNumber)
        {
            List <long> primeFactors = new List <long>();

            for (int i = 1; i < topNumber; i++)
            {
                primeFactors = CombineLists(primeFactors,
                                            PrimeFactorCalculator.GetPrimeFactors(i));
            }

            long result = 1;

            foreach (long primeFactor in primeFactors)
            {
                Console.Write("{0}, ", primeFactor);
                result *= primeFactor;
            }

            return(result);
        }
Example #4
0
        public void Verify_Prime_Factors_Of_A_Test_Case()
        {
            long solution = PrimeFactorCalculator.GetLargestPrimeFactor(2520);

            Assert.AreEqual(7, solution);
        }
Example #5
0
        public void Verify_Prime_Factors_Of_A_Large_Number()
        {
            long solution = PrimeFactorCalculator.GetLargestPrimeFactor(13195);

            Assert.AreEqual(29, solution);
        }
Example #6
0
        public void Verify_Largest_Prime_Factors_Of_TwentySeven()
        {
            long solution = PrimeFactorCalculator.GetLargestPrimeFactor(27);

            Assert.AreEqual(3, solution);
        }
 public void Init()
 {
     calculator = new PrimeFactorCalculator();
 }
 public void SetUp()
 {
     _calculator = new PrimeFactorCalculator();
 }
        public void Test_For_Two()
        {
            var calculator = new PrimeFactorCalculator();

            CollectionAssert.AreEqual(calculator.Execute(2).ToList(), new List<int>() { 2 });
        }
Example #10
0
 public long Solve(long solveFor)
 {
     return(PrimeFactorCalculator.GetLargestPrimeFactor(solveFor));
 }