Ejemplo n.º 1
0
        public void GetPrimeNumbers_ShouldReturn25PrimeNumbers_WhenMaxNumberIs100()
        {
            //Arrange
            const int maxNumber     = 100;
            const int expectedCount = 25;

            //Act
            var primeNumbersList = PrimeNumbersFinder.GetPrimeNumbers(maxNumber);
            var actualCount      = primeNumbersList.Count;

            //Assert
            Assert.AreEqual(expectedCount, actualCount);
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            if (File.Exists("Result.csv"))
            {
                File.Delete("Result.csv");
            }
            var acquisitionTimeSeconds   = 60;
            var logginPeriodMilliseconds = 200;
            var timeStarted = DateTime.Now;
            var resultList  = new List <PrimeNumbersProgressModel>();
            var finder      = new PrimeNumbersFinder(reportAction);

            Console.CursorVisible = false;
            var timer = new Timer((obj) =>
            {
                var timePassed = DateTime.Now.Subtract(timeStarted);
                Console.Write($" Seconds passed: {Convert.ToInt32(timePassed.TotalSeconds)}");
                Console.CursorLeft = 0;
            }, null, 0, 1000);

            finder.FindPrimes(
                new TimeSpan(0, 0, acquisitionTimeSeconds),
                new TimeSpan(0, 0, 0, 0, logginPeriodMilliseconds));

            foreach (var progressItem in resultList)
            {
                var resultString = $"{Convert.ToInt32(progressItem.MillisecondsPassed.TotalMilliseconds)}," +
                                   $"{progressItem.NumberOfPrimeNumbers}, " +
                                   $"{progressItem.NumberOfIterations}, " +
                                   $"{progressItem.MaxPrimeNumber}";
                File.AppendAllText("Result.csv", resultString + "\n");
            }

            void reportAction(PrimeNumbersProgressModel progressModel)
            {
                resultList.Add(progressModel);
            }

            Console.CursorVisible = true;
            timer?.Dispose();
        }