Beispiel #1
0
        public void Avalia(Leilao leilao)
        {
            if (leilao.Lances.Count == 0)
            {
                throw new Exception("Leilao sem lance");
            }

            foreach (Lance lance in leilao.Lances)
            {
                if (lance.Valor > maiorDeTodos) maiorDeTodos = lance.Valor;
                if (lance.Valor < menorDeTodos) menorDeTodos = lance.Valor;
            }
            pegaOsMaioresNo(leilao);
        }
Beispiel #2
0
        public void DeveEntenderLeilaoComApenasUmLance()
        {
            Usuario joao   = new Usuario("Joao");
            Leilao  leilao = new Leilao("Xbox Novo");

            leilao.Propoe(new Lance(joao, 2000.0));

            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);

            Assert.AreEqual(2000, leiloeiro.MaiorLance, 0.0001);
            Assert.AreEqual(2000, leiloeiro.MenorLance, 0.0001);
        }
        public void Avalia(Leilao leilao)
        {
            // lancando a excecao
            if (leilao.Lances.Count == 0)
                throw new Exception("Não é possível avaliar um leilão sem lances");

            foreach (Lance lance in leilao.Lances)
            {
                if (lance.Valor > maiorDeTodos) maiorDeTodos = lance.Valor;
                if (lance.Valor < menorDeTodos) menorDeTodos = lance.Valor;
            }

            pegaOsMaioresNo(leilao);
        }
Beispiel #4
0
 public void Avalia(Leilao leilao)
 {
     foreach (var lance in leilao.Lances)
     {
         if (lance.Valor > maiorDeTodos)
         {
             maiorDeTodos = lance.Valor;
         }
         if (lance.Valor < menorValor)
         {
             menorValor = lance.Valor;
         }
     }
 }
Beispiel #5
0
        public void DeveDevolverTodosLancesCasoNaoHajaNoMinimo3()
        {
            Leilao leilao = new Leilao("Xbox X Novo");

            leilao.Propoe(new Lance(joao, 100.0));
            leilao.Propoe(new Lance(maria, 200.0));

            leiloeiro.Avalia(leilao);

            var maiores = leiloeiro.TresMaiores;

            Assert.AreEqual(2, maiores.Count);
            Assert.AreEqual(200, maiores[0].Valor, 0.00001);
            Assert.AreEqual(100, maiores[1].Valor, 0.00001);
        }
Beispiel #6
0
 public void Avalia(Leilao leilao)
 {
     foreach (var item in leilao.Lances)
     {
         if (item.Valor > maiordetodos)
         {
             maiordetodos = item.Valor;
         }
         if (item.Valor < menordetodos)
         {
             menordetodos = item.Valor;
         }
     }
     pegaOsMaioresNo(leilao);
 }
Beispiel #7
0
        public double MediaLances(Leilao leilao)
        {
            double somaDosLances = 0;
            int    totalDeLances = leilao.Lances.Count();
            double mediaDosLances;

            foreach (var lance in leilao.Lances)
            {
                somaDosLances += lance.Valor;
            }

            mediaDosLances = somaDosLances / totalDeLances;

            return(mediaDosLances);
        }
Beispiel #8
0
 public void Avalia(Leilao leilao)
 {
     foreach (var lance in leilao.Lances)
     {
         if (lance.Valor > maiorDeTodos)
         {
             maiorDeTodos = lance.Valor;
         }
         if (lance.Valor < menorDeTodos)
         {
             menorDeTodos = lance.Valor;
         }
     }
     pegaOsMaioresNo(leilao);
 }
Beispiel #9
0
        public void DeveEntenderLeilaoEmOrdemRandomica()
        {
            Leilao leilao = new Leilao("Playstation 4 Novo");

            leilao.Propoe(new Lance(joao, 200.0));
            leilao.Propoe(new Lance(maria, 450));
            leilao.Propoe(new Lance(joao, 120.0));
            leilao.Propoe(new Lance(maria, 700.0));
            leilao.Propoe(new Lance(joao, 630.0));
            leilao.Propoe(new Lance(maria, 230));

            leiloeiro.Avalia(leilao);

            Assert.AreEqual(700.0, leiloeiro.MaiorLance, 0.0001);
            Assert.AreEqual(120.0, leiloeiro.MenorLance, 0.0001);
        }
Beispiel #10
0
        public void DoisLances()
        {
            Usuario joao   = new Usuario("Joao");
            Usuario joao2  = new Usuario("Joao2");
            Leilao  leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(joao, 400.0));
            leilao.Propoe(new Lance(joao2, 300.0));
            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);
            List <Lance> resultado = leiloeiro.TresMaiores;

            Assert.AreEqual(400, resultado[0].Valor, 0.0001);
            Assert.AreEqual(300, resultado[1].Valor, 0.0001);
        }
Beispiel #11
0
        public void DeveEncontrarOsTresMaioresLances()
        {
            Usuario joao   = new Usuario("João");
            Usuario maria  = new Usuario("Maria");
            Leilao  leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(joao, 100.0));
            leilao.Propoe(new Lance(maria, 200.0));
            leilao.Propoe(new Lance(joao, 300.0));
            leilao.Propoe(new Lance(maria, 400.0));

            leiloeiro.Avalia(leilao);

            IList <Lance> maiores = leiloeiro.TresMaiores;

            Assert.AreEqual(3, maiores.Count);
        }
Beispiel #12
0
        public double MediaDosLances(Leilao leilao)
        {
            int    qnt  = leilao.Lances.Count;
            double soma = 0;

            foreach (var lance in leilao.Lances)
            {
                soma += lance.Valor;
            }

            if (qnt < 1)
            {
                throw new Exception("Não pode dividir por zero");
            }

            return(soma / qnt);
        }
        public void TesteOutroCenarioLances()
        {
            Usuario   Luan      = new Usuario("Luan");
            Leilao    leilao    = new Leilao("TV");
            Avaliador leiloeiro = new Avaliador();
            string    Message;

            leilao.Propoe(new Lance(Luan, 0));

            try
            {
                leiloeiro.Avalia(leilao);
            }
            catch (Exception ex)
            {
                Message = ex.ToString();
            }
        }
Beispiel #14
0
        public void DoisValores()
        {
            Usuario joao = new Usuario("Joao");
            Usuario jose = new Usuario("José");

            Leilao leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(jose, 395.0));
            leilao.Propoe(new Lance(joao, 200.0));

            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);

            Assert.AreEqual(2, leiloeiro.TresMaiores.Count);
            Assert.AreEqual(395, leiloeiro.TresMaiores[0].Valor);
            Assert.AreEqual(200, leiloeiro.TresMaiores[1].Valor);
        }
Beispiel #15
0
        public void Avalia(Leilao leilao)
        {
            foreach (var lance in leilao.Lances)
            {
                if (lance.Valor > maiorDeTodos)
                {
                    maiorDeTodos = lance.Valor;
                }
                if (lance.Valor < menorDeTodos)
                {
                    menorDeTodos = lance.Valor;
                }
            }

            this.pegaOsMaioresNo(leilao);

            this.mediaDeTodos = leilao.Lances.Sum(t => t.Valor) / leilao.Lances.Count;
        }
Beispiel #16
0
        public void DeveEntenderOsTresMaioresLances()
        {
            Leilao leilao = new Leilao("Xbox X Novo");

            leilao.Propoe(new Lance(joao, 100.0));
            leilao.Propoe(new Lance(maria, 200.0));
            leilao.Propoe(new Lance(joao, 300.0));
            leilao.Propoe(new Lance(maria, 400.0));

            leiloeiro.Avalia(leilao);

            var maiores = leiloeiro.TresMaiores;

            Assert.AreEqual(3, maiores.Count);
            Assert.AreEqual(400.0, maiores[0].Valor, 0.00001);
            Assert.AreEqual(300.0, maiores[1].Valor, 0.00001);
            Assert.AreEqual(200.0, maiores[2].Valor, 0.00001);
        }
Beispiel #17
0
        public void DeveEntenderLancesEmOrdemCrescenteComOutrosValores()
        {
            //1º Parte: Cenário


            Leilao leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(joao, 1000.0));
            leilao.Propoe(new Lance(henrique, 2000.0));
            leilao.Propoe(new Lance(maria, 3000.0));

            //2º Parte: Ação
            CriaAvaliador();
            leiloeiro.Avalia(leilao);

            //3º Parte: Validação
            Assert.AreEqual(3000, leiloeiro.maiorLance);
            Assert.AreEqual(1000, leiloeiro.menorLance);
        }
        public void DeveEntenderLancesEmOrdemCrescente()
        {
            Leilao leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(maria, 250.0));
            leilao.Propoe(new Lance(joao, 300.0));
            leilao.Propoe(new Lance(jose, 400.0));



            leiloeiro.Avalia(leilao);

            double maiorEsperado = 400;
            double menorEsperado = 250;


            Assert.AreEqual(maiorEsperado, leiloeiro.MaiorLance);
            Assert.AreEqual(menorEsperado, leiloeiro.MenorLance);
        }
Beispiel #19
0
        public void MediaDosLancesTest()
        {
            //cenario: média de 3 lances
            Usuario john    = new Usuario("John Marston");
            Usuario hosea   = new Usuario("Hosea");
            Usuario abigail = new Usuario("Abigail");

            Leilao leilao = new Leilao("RDRII");

            leilao.Propoe(new Lance(john, 200.0));
            leilao.Propoe(new Lance(hosea, 200.0));
            leilao.Propoe(new Lance(abigail, 200.0));

            Avaliador leiloeiro = new Avaliador();

            double mediaEsperada = 200;

            Assert.AreEqual(mediaEsperada, leiloeiro.MediaDosLances(leilao), 0.00001);
        }
Beispiel #20
0
        public void Avalia(Leilao leilao)
        {
            double total = 0;

            foreach (Lance lance in leilao.Lances)
            {
                if (lance.Valor > maiorDeTodos)
                {
                    maiorDeTodos = lance.Valor;
                }
                if (lance.Valor < menorDeTodos)
                {
                    menorDeTodos = lance.Valor;
                }
                total += lance.Valor;
            }
            media = total / leilao.Lances.Count;
            pegaOsMaioresNo(leilao);
        }
Beispiel #21
0
        public void TestaMedia()
        {
            Usuario joao  = new Usuario("Joao");
            Usuario jose  = new Usuario("José");
            Usuario maria = new Usuario("Maria");

            Leilao leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(joao, 300.0));
            leilao.Propoe(new Lance(jose, 400.0));
            leilao.Propoe(new Lance(maria, 250.0));


            double esperado  = 316;
            double resultado = leiloeiro.Media(leilao);


            Assert.AreEqual(esperado, resultado, 1);
        }
        public void DeveDevolverTodosLancesCasoNaoHajaNoMinimo3()
        {
            Usuario joao   = new Usuario("Joao");
            Usuario maria  = new Usuario("maria");
            Leilao  leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(joao, 800.0));
            leilao.Propoe(new Lance(maria, 400.0));

            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);

            var maiores = leiloeiro.TresMaiores;

            Assert.AreEqual(2, maiores.Count);
            Assert.AreEqual(800, maiores[0].Valor, 0.0001);
            Assert.AreEqual(400, maiores[1].Valor, 0.0001);
        }
Beispiel #23
0
        public void DeveEntenderLancesEmOrdemCrescenteComOutrosValores()
        {
            Usuario joao  = new Usuario("Joao");
            Usuario jose  = new Usuario("José");
            Usuario maria = new Usuario("Maria");

            Leilao leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(maria, 1000.0));
            leilao.Propoe(new Lance(joao, 2000.0));
            leilao.Propoe(new Lance(jose, 3000.0));

            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);

            Assert.AreEqual(3000, leiloeiro.MaiorLance, 0.0001);
            Assert.AreEqual(1000, leiloeiro.MenorLance, 0.0001);
        }
Beispiel #24
0
        public void DobralanceDeUsuario()
        {
            Leilao leilao = new Leilao("Macbook Pro 15");

            Usuario steveJobs = new Usuario("Steve Jobs");
            Usuario billGates = new Usuario("Bill GAtes");

            leilao.Propoe(new Lance(steveJobs, 2000));
            leilao.Propoe(new Lance(billGates, 3000));
            leilao.DobraLance(steveJobs);


            Assert.AreEqual(3, leilao.Lances.Count);

            var ultimo = leilao.Lances.Count - 1;

            Lance ultimoLance = leilao.Lances[ultimo];

            Assert.AreEqual(4000, ultimoLance.Valor, 0.00001);
        }
Beispiel #25
0
        public void Main()
        {
            Usuario joao  = new Usuario("Joao");
            Usuario jose  = new Usuario("José");
            Usuario maria = new Usuario("Maria");

            Leilao leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(joao, 300.0));
            leilao.Propoe(new Lance(jose, 400.0));
            leilao.Propoe(new Lance(maria, 250.0));

            leiloeiro.Avalia(leilao);

            double maiorEsperado = 400;
            double menorEsperado = 250;

            Assert.AreEqual(maiorEsperado, leiloeiro.MaiorLance, 0.0001);
            Assert.AreEqual(menorEsperado, leiloeiro.MenorLance, 0.0001);
        }
Beispiel #26
0
        public void DeveEntenderLancesEmOrdeCrescente()
        {
            //1º parte : cenario

            Leilao leilao = new Leilao("Playstation 4");

            leilao.Propoe(new Lance(joao, 250.0));
            leilao.Propoe(new Lance(jose, 300.0));
            leilao.Propoe(new Lance(maria, 400.0));

            //2º parte : executa uma ação
            leiloeiro.Avalia(leilao);

            //3º parte : validação
            double menorValor = 250.0;
            double maiorValor = 400.0;

            Assert.AreEqual(maiorValor, leiloeiro.ObterMaiorLance);
            Assert.AreEqual(menorValor, leiloeiro.ObterMenorLance);
        }
Beispiel #27
0
        public void Avalia(Leilao leilao)
        {
            if (leilao.Lance.Count == 0)
            {
                throw new Exception("Não é possível avaliar leilao sem lance");
            }

            foreach (Lance lance in leilao.Lances)
            {
                if (lance.Valor > maiorDeTodos)
                {
                    maiorDeTodos = lance.Valor;
                }
                if (lance.Valor < menorDeTodos)
                {
                    menorDeTodos = lance.Valor;
                }
            }
            pegaOsMaioresNo(leilao);
        }
Beispiel #28
0
        public void ValoresDecrescente()
        {
            Usuario joao   = new Usuario("Joao");
            Usuario joao2  = new Usuario("Joao2");
            Usuario joao3  = new Usuario("Joao3");
            Usuario joao4  = new Usuario("Joao4");
            Leilao  leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(joao, 400.0));
            leilao.Propoe(new Lance(joao2, 300.0));
            leilao.Propoe(new Lance(joao3, 200.0));
            leilao.Propoe(new Lance(joao4, 100.0));
            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);
            double maiorEsperado = 400;
            double menorEsperado = 100;

            Assert.AreEqual(maiorEsperado, leiloeiro.MaiorLance, 0.0001);
            Assert.AreEqual(menorEsperado, leiloeiro.MenorLance, 0.0001);
        }
        public void DeveCalcularAMedia()
        {
            //1a Parte: cenário
            Usuario joao  = new Usuario("Joao");
            Usuario jose  = new Usuario("Jose");
            Usuario maria = new Usuario("Maria");

            Leilao leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(maria, 300.0));
            leilao.Propoe(new Lance(joao, 400.0));
            leilao.Propoe(new Lance(jose, 500.0));

            //2a Parte: acao
            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);

            //3a Parte: validacao
            Assert.AreEqual(400, leiloeiro.ValorMedio, 0.0001);
        }
Beispiel #30
0
        public void Avalia(Leilao leilao)
        {
            if (leilao.Lances.Count() == 0)
            {
                throw new Exception("Não é possível iniciar um leilão sem lances");
            }
            foreach (var lance in leilao.Lances)
            {
                if (lance.Valor >= maiorDeTodos)
                {
                    maiorDeTodos = lance.Valor;
                }

                if (lance.Valor <= menorDeTodos)
                {
                    menorDeTodos = lance.Valor;
                }
            }

            PegaOsMaioresNo(leilao);
        }
Beispiel #31
0
        public void TestDeMedia()
        {
            // cenario: 3 lances em ordem crescente
            Usuario joao  = new Usuario("Joao");
            Usuario jose  = new Usuario("José");
            Usuario maria = new Usuario("Maria");

            Leilao leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(maria, 300.0));
            leilao.Propoe(new Lance(joao, 400.0));
            leilao.Propoe(new Lance(jose, 500.0));

            // executando a acao
            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);

            // comparando a saida com o esperado
            Assert.AreEqual(400, leiloeiro.Media, 0.0001);
        }
        public void DeveEncontrarOsTresMaioresLances()
        {
            Usuario joao   = new Usuario("Joao");
            Usuario maria  = new Usuario("maria");
            Leilao  leilao = new Leilao("Playstation 3 Novo");

            leilao.Propoe(new Lance(maria, 200.0));
            leilao.Propoe(new Lance(joao, 300.0));
            leilao.Propoe(new Lance(maria, 400.0));

            Avaliador leiloeiro = new Avaliador();

            leiloeiro.Avalia(leilao);

            var maiores = leiloeiro.TresMaiores;

            Assert.AreEqual(3, maiores.Count);
            Assert.AreEqual(400, maiores[0].Valor, 0.0001);
            Assert.AreEqual(300, maiores[1].Valor, 0.0001);
            Assert.AreEqual(200, maiores[2].Valor, 0.0001);
        }
 public CriadorDeLeilao Para(String descricao)
 {
     this.leilao = new Leilao(descricao);
     return this;
 }
Beispiel #34
0
 private void pegaOsMaioresNo(Leilao leilao)
 {
     var filtro = leilao.Lances.OrderByDescending(p => p.Valor).Take(3);
     maiores = new List<Lance>(filtro);
 }
 private void pegaOsMaioresNo(Leilao leilao)
 {
     maiores = new List<Lance>(leilao.Lances.OrderByDescending(x => x.Valor));
     maiores = maiores.GetRange(0, maiores.Count > 3 ? 3 : maiores.Count);
 }