示例#1
0
        public void CalcularTempoTotalDeProva_DeveRetornarASomatoriaDeTodasAsVoltasDoPiloto()
        {
            var piloto = new Piloto();

            var volta1 = new Volta();

            volta1.TempoDaVolta = TimeSpan.Parse("00:1:02.852");

            var volta2 = new Volta();

            volta2.TempoDaVolta = TimeSpan.Parse("00:1:03.170");

            var volta3 = new Volta();

            volta3.TempoDaVolta = TimeSpan.Parse("00:1:02.769");

            var volta4 = new Volta();

            volta4.TempoDaVolta = TimeSpan.Parse("00:1:02.787");

            piloto.AdicionarVolta(volta1);
            piloto.AdicionarVolta(volta2);
            piloto.AdicionarVolta(volta3);
            piloto.AdicionarVolta(volta4);

            var totalTempo = piloto.CalcularTempoTotalDeProva();

            TimeSpan expected = TimeSpan.Parse("00:04:11.5780000");

            Assert.AreEqual(expected, totalTempo);
        }
示例#2
0
        public void CalcularVelocidadeMedia_DeveRetornarAVelocidadeMediaDuranteACorridaDoPiloto()
        {
            var piloto = new Piloto();

            var volta1 = new Volta();

            volta1.VelocidadeMediaDaVolta = 45.31;

            var volta2 = new Volta();

            volta2.VelocidadeMediaDaVolta = 43.1;

            var volta3 = new Volta();

            volta3.VelocidadeMediaDaVolta = 40;

            var volta4 = new Volta();

            volta4.VelocidadeMediaDaVolta = 44.89;

            piloto.AdicionarVolta(volta1);
            piloto.AdicionarVolta(volta2);
            piloto.AdicionarVolta(volta3);
            piloto.AdicionarVolta(volta4);

            double expected = 43.325;

            double current = piloto.CalcularVelocidadeMedia();

            Assert.AreEqual(expected, current, 0.0001);
        }
示例#3
0
        public void GetTotalVoltasCompletadas_DeveRetornarAsVoltasCompletadasDoPiloto()
        {
            var piloto = new Piloto();

            var volta1 = new Volta();

            volta1.TempoDaVolta = TimeSpan.Parse("00:1:02.852");

            var volta2 = new Volta();

            volta2.TempoDaVolta = TimeSpan.Parse("00:1:03.170");

            piloto.AdicionarVolta(volta1);
            piloto.AdicionarVolta(volta2);

            int expected = 2;

            int current = piloto.GetTotalVoltasCompletadas();

            Assert.AreEqual(expected, current);
        }
示例#4
0
        public CorridaKart LerArquivoDeLog()
        {
            try
            {
                var    arquivo = new StreamReader(Nome);
                string linha   = null;
                var    corrida = new CorridaKart();
                while ((linha = arquivo.ReadLine()) != null)
                {
                    MatchCollection matches = Regex.Matches(linha, PadraoRegex);

                    foreach (Match match in matches)
                    {
                        Piloto piloto = new Piloto();
                        Volta  volta  = new Volta();

                        //Adicionando informações do piloto.
                        piloto.Id   = Convert.ToInt32(match.Groups[2].Value);
                        piloto.Nome = match.Groups[3].Value;

                        //Adicionando informações da volta.
                        volta.HoraVolta              = TimeSpan.Parse(match.Groups[1].Value);
                        volta.NumeroDaVolta          = Convert.ToInt32(match.Groups[4].Value);
                        volta.TempoDaVolta           = TimeSpan.Parse($"00:{match.Groups[5].Value}");
                        volta.VelocidadeMediaDaVolta = Convert.ToDouble(match.Groups[6].Value);

                        var pilotoExiste = corrida.VerificarSeOPilotoExiste(piloto);

                        if (pilotoExiste)
                        {
                            var pilotoEncontrado = corrida.GetPiloto(piloto);
                            pilotoEncontrado.AdicionarVolta(volta);
                            continue;
                        }

                        piloto.AdicionarVolta(volta);
                        corrida.AdicionarPilotoNaCorrida(piloto);
                    }
                }
                return(corrida);
            }
            catch (FileNotFoundException)
            {
                throw new FileNotFoundException("O arquivo especificado não está no diretório especificado ou não existe", Nome);
            }
        }