Exemplo n.º 1
0
        public void Desafio_Multiplos()
        {
            var bus = new ClassificacaoBusiness();

            var c = CreateClassificaoInicial();
            var p = new List <Placar>();

            // RESULTADO: C B A D E
            p.Add(CreateP("A", 0, "C", 3, RegrasBusiness.DESAFIO_DENTE_POR_DENTE, p.Count));

            // RESULTADO: C B D A E
            p.Add(CreateP("A", 0, "B", 1, RegrasBusiness.DESAFIO_DENTE_POR_DENTE, p.Count));

            // RESULTADO: C B A D E
            p.Add(CreateP("B", 1, "D", 0, RegrasBusiness.DESAFIO_DENTE_POR_DENTE, p.Count));

            // RESULTADO: C B A D E
            p.Add(CreateP("C", 1, "E", 0, RegrasBusiness.DESAFIO_LIDER, p.Count));

            // RESULTADO: C B E D A
            p.Add(CreateP("E", 1, "A", 0, RegrasBusiness.DESAFIO_DENTE_POR_DENTE, p.Count));

            // RESULTADO: A B E D C
            p.Add(CreateP("C", 0, "A", 1, RegrasBusiness.DESAFIO_LIDER, p.Count));

            // RESULTADO: A B E D C
            p.Add(CreateP("E", 1, "A", 1, RegrasBusiness.DESAFIO_DENTE_POR_DENTE, p.Count));

            // RESULTADO: A B D E C
            p.Add(CreateP("A", 3, "E", 2, RegrasBusiness.PADRAO, p.Count));

            // RESULTADO: A B E C D
            p.Add(CreateP("A", 3, "D", 2, RegrasBusiness.DESAFIO_LIDER, p.Count));

            var clasFinal = bus.RecalcularClassificacao(c, p.ToArray());

            var result = clasFinal.ToArray();

            Assert.Equal("A", result[0].Jogador);
            Assert.Equal("B", result[1].Jogador);
            Assert.Equal("E", result[2].Jogador);
            Assert.Equal("C", result[3].Jogador);
            Assert.Equal("D", result[4].Jogador);
        }
Exemplo n.º 2
0
        public void Desafio_MassaDeDados()
        {
            var clasIniText = File.ReadAllText("classificacao-inicial.json");
            var placText    = File.ReadAllText("placares.json");

            var c = JsonConvert.DeserializeObject <ClassificacaoInicial[]>(clasIniText);
            var p = JsonConvert.DeserializeObject <Placar[]>(placText);

            var bus = new ClassificacaoBusiness();

            var clasFinal = bus.RecalcularClassificacao(c, p.ToArray());

            var result = clasFinal.Select(a => a.Jogador).ToArray();

            //Assert.Equal("C", result[0].Jogador);
            //Assert.Equal("B", result[1].Jogador);
            //Assert.Equal("A", result[2].Jogador);
            //Assert.Equal("D", result[3].Jogador);
            //Assert.Equal("E", result[4].Jogador);
        }
Exemplo n.º 3
0
        public void Desafio_Lider_PosicaoMenor_Vence()
        {
            var bus = new ClassificacaoBusiness();


            var c = CreateClassificaoInicial();

            var p = new List <Placar>();

            p.Add(CreateP("A", 0, "B", 3, RegrasBusiness.DESAFIO_LIDER, p.Count));

            var clasFinal = bus.RecalcularClassificacao(c, p.ToArray());

            var result = clasFinal.ToArray();

            Assert.Equal("B", result[0].Jogador);
            Assert.Equal("A", result[1].Jogador);
            Assert.Equal("C", result[2].Jogador);
            Assert.Equal("D", result[3].Jogador);
            Assert.Equal("E", result[4].Jogador);
        }
Exemplo n.º 4
0
        public void Desafio_EstouFora_UmJogador_AMenos()
        {
            var bus = new ClassificacaoBusiness();


            var c = CreateClassificaoInicial();

            var p = new List <Placar>();

            p.Add(CreateP("C", 3, "C", 0, RegrasBusiness.ESTOU_FORA, p.Count));

            var clasFinal = bus.RecalcularClassificacao(c, p.ToArray());

            var result = clasFinal.ToArray();

            Assert.Equal("A", result[0].Jogador);
            Assert.Equal("B", result[1].Jogador);
            Assert.Equal("D", result[2].Jogador);
            Assert.Equal("E", result[3].Jogador);
            Assert.Equal(c.Length - 1, result.Length);
        }
Exemplo n.º 5
0
        public void Desafio_DentePorDente_Duas_Partidas_PerdedoresGanham()
        {
            var bus = new ClassificacaoBusiness();


            var c = CreateClassificaoInicial();

            var p = new List <Placar>();

            p.Add(CreateP("C", 3, "B", 0, RegrasBusiness.DESAFIO_DENTE_POR_DENTE, p.Count));
            p.Add(CreateP("E", 3, "B", 0, RegrasBusiness.DESAFIO_DENTE_POR_DENTE, p.Count));

            var clasFinal = bus.RecalcularClassificacao(c, p.ToArray());

            var result = clasFinal.ToArray();

            Assert.Equal("A", result[0].Jogador);
            Assert.Equal("C", result[1].Jogador);
            Assert.Equal("E", result[2].Jogador);
            Assert.Equal("D", result[3].Jogador);
            Assert.Equal("B", result[4].Jogador);
        }
Exemplo n.º 6
0
        public async void RecalcularClassificacaoAsync(Classificacao[] clas = null)
        {
            if (clas == null)
            {
                clas = (await ClassificacaoInicialStore.GetItemsAsync())
                       .Select(a => a.Clone())
                       .OrderBy(a => a.Posicao)
                       .ToArray();
            }

            var placares = (await PlacarDataStore.GetItemsAsync(true)).ToArray();

            var busi     = new ClassificacaoBusiness();
            var classifs = busi.RecalcularClassificacao(clas, placares);

            var novaLista = classifs.Where(a => a.Excluir == false)
                            .OrderBy(a => a.Posicao)
                            .ToArray();

            await DataStore.SaveAll(classifs);

            await ExecuteLoadClassificacaoCommand(novaLista);
        }
Exemplo n.º 7
0
        public void Desafio_EstouFora_Retorno_Do_Desistente_Perdedor()
        {
            var bus = new ClassificacaoBusiness();


            var c = CreateClassificaoInicial();

            var p = new List <Placar>();

            p.Add(CreateP("C", 3, "C", 0, RegrasBusiness.ESTOU_FORA, p.Count));
            p.Add(CreateP("E", 3, "D", 0, RegrasBusiness.DESAFIO_DENTE_POR_DENTE, p.Count));
            p.Add(CreateP("C", 3, "B", 0, RegrasBusiness.DESAFIO_DENTE_POR_DENTE, p.Count));

            var clasFinal = bus.RecalcularClassificacao(c, p.ToArray());

            var result = clasFinal.ToArray();

            Assert.Equal(c.Length, result.Length);
            Assert.Equal("A", result[0].Jogador);
            Assert.Equal("C", result[1].Jogador);
            Assert.Equal("E", result[2].Jogador);
            Assert.Equal("D", result[3].Jogador);
            Assert.Equal("B", result[4].Jogador);
        }