static void Main(string[] args)
        {
            // Cria o StopWatch
            var sw = new Stopwatch();

            // Começa a contar o tempo
            sw.Start();

            //Gera uma lista de 1 até o limite de execuções
            var baseList = Enumerable.Range(1, LimitNumber).ToList();

            //Monta uma lista com o número que foi calculado e a quantidade de ocorrências que o mesmo gerou
            var resolvedList = baseList.Select(c => new Result
            {
                Number            = c,
                OcccurencesNumber = CollatzCalculator.ResolveNumber(c)
            })
                               .ToList();

            //Seleciona o número com o maior número de ocorrências
            var result =
                resolvedList.OrderByDescending(c => c.OcccurencesNumber).FirstOrDefault();

            // Para de contar o tempo
            sw.Stop();


            // Obtém o tempo que a rotina demorou a executar
            var tempo = sw.Elapsed;

            //Monta e exibie a mensagem na tela
            Console.WriteLine(BuildResult(result.Number, result.OcccurencesNumber));

            //Exibe a quantidade em ms em que o código demorou para resolver
            Console.WriteLine($"tempo de processamento: {tempo.Milliseconds} ms");
            //Espera uma ação do usuário
            Console.ReadKey();
        }
        public void TestResultOfResultNumberIsOk()
        {
            var number = CollatzCalculator.ResolveNumber(13);

            Assert.IsTrue(number == 10, "O valor está correto");
        }
 public void TestNegativeNumberToCalculate()
 {
     CollatzCalculator.ResolveNumber(-1);
 }