Example #1
0
        public void DeveDesempatarEntreDoisFullHouse()
        {
            var identificadorDeTrinca = new IdentificaTresCartasComValoresIguais();
            var maoA = new List <Carta>
            {
                CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir(),
                CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Diamonds).Construir(),
                CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Clubs).Construir(),
                CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Diamonds).Construir(),
                CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Spades).Construir()
            };
            var maoB = new List <Carta>
            {
                CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Clubs).Construir(),
                CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Diamonds).Construir(),
                CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Spades).Construir(),
                CartaBuilder.UmaCarta().ComValor(9).ComNaipe(Naipes.Spades).Construir(),
                CartaBuilder.UmaCarta().ComValor(9).ComNaipe(Naipes.Diamonds).Construir()
            };
            var maoVencedoraEsperada = maoA.Select(carta => carta.HashDaCarta).ToList();

            var maoVencedoraEncontrada = new DesempateDeFullHouse(identificadorDeTrinca)
                                         .Desempatar(maoA, maoB).Select(carta => carta.HashDaCarta).ToList();

            Assert.Equal(maoVencedoraEsperada, maoVencedoraEncontrada);
        }
        public void DeveDesempatarEntreDuasQuadras()
        {
            var identificadorDeQuadra = new IdentificaQuatroCartasComValoresIguais();
            var maoA = new List <Carta>
            {
                CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Diamonds).Construir(),
                CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Spades).Construir(),
                CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Hearts).Construir(),
                CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Clubs).Construir(),
                CartaBuilder.UmaCarta().ComValor(1).ComNaipe(Naipes.Diamonds).Construir()
            };
            var maoB = new List <Carta>
            {
                CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Diamonds).Construir(),
                CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Spades).Construir(),
                CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Hearts).Construir(),
                CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Clubs).Construir(),
                CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Diamonds).Construir()
            };
            var maoVencedoraEsperada = maoB.Select(carta => carta).ToList();

            var maoVencedoraEncontrada = new DesempateDeQuadra(identificadorDeQuadra).Desempatar(maoA, maoB);

            Assert.Equal(maoVencedoraEsperada, maoVencedoraEncontrada);
        }
        public void NaoDeveEncontrarVencedorQuandoOsFlushsSaoIguais()
        {
            _maoB[4] = CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Diamonds).Construir();

            var jogadaEncontrada = new DesempateDeFlush(_identificadorDeCartaMaisAlta).Desempatar(_maoA, _maoB);

            Assert.Empty(jogadaEncontrada);
        }
        public void NaoDeveIdentificarSeNaoHouverQuatroCartasComValorIgual()
        {
            _listaDeCartas[0] = CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir();

            var quadraEncontrada = new IdentificaQuatroCartasComValoresIguais().IdentificarCartas(_listaDeCartas);

            Assert.Empty(quadraEncontrada);
        }
        public void NaoDeveEncontrarAJogadaNaMaoSeNaoHouverUmPar()
        {
            _maoDe5Cartas[3] = CartaBuilder.UmaCarta().ComValor(8).ComNaipe(Naipes.Diamonds).Construir();

            var jogadaEncontradaNaMao = _umParDeCartas.JogadaEncontradaNaMao(_maoDe5Cartas);

            Assert.False(jogadaEncontradaNaMao);
        }
Example #6
0
        public void NaoDeveEncontrarAJogadaNaMaoSeASequenciaEstiverQuebrada()
        {
            _maoDe5Cartas[0] = CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir();

            var jogadaEncontradaNaMao = _royalFlush.JogadaEncontradaNaMao(_maoDe5Cartas);

            Assert.False(jogadaEncontradaNaMao);
        }
Example #7
0
        public void NaoDeveEncontrarAJogadaNaMaoSePeloMenosUmNaipeForDiferentes()
        {
            _maoDe5Cartas[0] = CartaBuilder.UmaCarta().ComValor(13).ComNaipe(Naipes.Diamonds).Construir();

            var jogadaEncontradaNaMao = _royalFlush.JogadaEncontradaNaMao(_maoDe5Cartas);

            Assert.False(jogadaEncontradaNaMao);
        }
        public void DeveEncontrarACartaMaisAlta()
        {
            var cartaEsperada = CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Hearts).Construir();

            var cartaEncontrada = new IdentificaCartaMaisAlta().IdentificarCartas(_listaDeCartas).First();

            Assert.Equal(cartaEsperada.Valor, cartaEncontrada.Valor);
        }
        public void NaoDeveDesempatarEntreCartasMaisAltasEmMaosIguais()
        {
            _maoB[0] = CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Diamonds).Construir();

            var jogadaVencedoraEncontrada = _desempateDeCartaMaisAlta.Desempatar(_maoA, _maoB);

            Assert.Empty(jogadaVencedoraEncontrada);
        }
Example #10
0
        public void NaoDeveEncontrarAJogadaNaMaoSeNaoForUmaSequencia()
        {
            _maoDe5Cartas[0] = CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir();

            var jogadaEncontradaNaMao = _straight.JogadaEncontradaNaMao(_maoDe5Cartas);

            Assert.False(jogadaEncontradaNaMao);
        }
Example #11
0
        public void NaoDeveEncontrarAJogadaNaMaoSeAlgumaCartaForDeNaipeDiferente()
        {
            _maoDe5Cartas[0] = CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Diamonds).Construir();

            var jogadaEncontradaNaMao = _flush.JogadaEncontradaNaMao(_maoDe5Cartas);

            Assert.False(jogadaEncontradaNaMao);
        }
Example #12
0
        public void NaoDeveEncontrarAJogadaNaMaoQuandoNaoTiverUmPar()
        {
            _maoDe5Cartas[1] = CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Hearts).Construir();

            var jogadaEncontradaNaMao = _fullHouse.JogadaEncontradaNaMao(_maoDe5Cartas);

            Assert.False(jogadaEncontradaNaMao);
        }
Example #13
0
        public void NaoDeveEncontrarAJogadaNaMaoSeNaoHouverTrinca()
        {
            _maoDe5Cartas[0] = CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Hearts).Construir();

            var jogadaEncontradaNaMao = _umaTrinca.JogadaEncontradaNaMao(_maoDe5Cartas);

            Assert.False(jogadaEncontradaNaMao);
        }
        public void NaoDeveIndetificarSeUmNaipeForDiferente()
        {
            _listaDeCartas[0] = CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir();

            var todosOsNaipesSaoIguais =
                new IdentificaCincoCartasComNaipesIguais().IdentificarCartas(_listaDeCartas).Count == 5;

            Assert.False(todosOsNaipesSaoIguais);
        }
        public void NaoDeveEncontrarAJogadaNaMaoSeNaoHouverDoisPares()
        {
            _maoDe5Cartas[1] = CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Hearts).Construir();

            var jogadaEncontradaNaMao =
                _doisParesDiferentes.JogadaEncontradaNaMao(_maoDe5Cartas);

            Assert.False(jogadaEncontradaNaMao);
        }
        public void DeveConverterUmaCartaValida(string cartaDeEntrada, int valor, Naipes naipe)
        {
            var cartaEsperada = CartaBuilder.UmaCarta().ComNaipe(naipe).ComValor(valor).Construir();

            var cartaConvertida = new ConversorDeCarta(new ConversorDeValorDeCarta(), new ConversorDeNaipe()).Converter(cartaDeEntrada);

            Assert.Equal(cartaEsperada.Valor, cartaConvertida.Valor);
            Assert.Equal(cartaEsperada.Naipe, cartaConvertida.Naipe);
        }
        public void DeveDesempatarEntreDoisParesDiferentesComParMaiorIgual()
        {
            _maoA[3] = CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Hearts).Construir();
            var jogadaVencedoraEsperada = _maoB.Select(carta => carta.HashDaCarta).ToList();

            var jogadaVencedoraEncontrada = new DesempateDeDoisPares(_identificadorDePar)
                                            .Desempatar(_maoA, _maoB).Select(carta => carta.HashDaCarta).ToList();

            Assert.Equal(jogadaVencedoraEsperada, jogadaVencedoraEncontrada);
        }
        public void NaoDeveEncontrarTresCartasIguais()
        {
            _listaDeCartas[0] = CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Diamonds).Construir();
            var tresCartasEsperadas = _tresCartasEsperadas.Select(carta => carta.HashDaCarta).ToList();

            var tresCartasEncontradas = new IdentificaTresCartasComValoresIguais().IdentificarCartas(_listaDeCartas)
                                        .Select(carta => carta.HashDaCarta).ToList();

            Assert.NotEqual(tresCartasEsperadas, tresCartasEncontradas);
        }
 public IdentificaSequenciaDeCartasTeste()
 {
     _listaDeCartas = new List <Carta>
     {
         CartaBuilder.UmaCarta().ComValor(4).Construir(),
         CartaBuilder.UmaCarta().ComValor(3).Construir(),
         CartaBuilder.UmaCarta().ComValor(2).Construir(),
         CartaBuilder.UmaCarta().ComValor(6).Construir(),
         CartaBuilder.UmaCarta().ComValor(5).Construir()
     };
 }
 public IdentificadorDeQuatroCartasComValoresIguaisTeste()
 {
     _listaDeCartas = new List <Carta>
     {
         CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Spades).Construir(),
         CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Clubs).Construir(),
         CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Hearts).Construir(),
         CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Diamonds).Construir(),
         CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Hearts).Construir()
     };
 }
 public IdentificaCincoCartasComNaipesIguaisTeste()
 {
     _listaDeCartas = new List <Carta>
     {
         CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Hearts).Construir(),
         CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Hearts).Construir(),
         CartaBuilder.UmaCarta().ComValor(8).ComNaipe(Naipes.Hearts).Construir(),
         CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir(),
         CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Hearts).Construir()
     };
 }
Example #22
0
        public void DeveDesempatarEntreDuasTrincasIguais()
        {
            _maoB    = _maoA.Select(carta => carta).ToList();
            _maoA[4] = CartaBuilder.UmaCarta().ComValor(8).ComNaipe(Naipes.Hearts).Construir();
            var maoVencedoraEsperada = _maoA.Select(carta => carta.HashDaCarta).ToList();

            var maoVencedoraEncontrada = new DesempateDeTrinca(_identificadorDeTrinca, _identificadorDeCartaMaisAlta)
                                         .Desempatar(_maoA, _maoB).Select(carta => carta.HashDaCarta).ToList();

            Assert.Equal(maoVencedoraEsperada, maoVencedoraEncontrada);
        }
Example #23
0
        public void DeveDesempatarEntreDoisParesIguais()
        {
            _maoA    = _maoB.Select(carta => carta).ToList();
            _maoA[4] = CartaBuilder.UmaCarta().ComValor(12).ComNaipe(Naipes.Hearts).Construir();

            var maoVencedoraEsperada = _maoA.Select(carta => carta.HashDaCarta).ToList();

            var maoVencedoraEncontrada = _desempateDeUmPar.Desempatar(_maoA, _maoB)
                                         .Select(carta => carta.HashDaCarta).ToList();

            Assert.Equal(maoVencedoraEsperada, maoVencedoraEncontrada);
        }
Example #24
0
        public void DeveEncontrarUmaQuadraNaMao()
        {
            var quadraEsperada = new List <Carta>
            {
                CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir(),
                CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Diamonds).Construir(),
                CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Clubs).Construir(),
                CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Hearts).Construir(),
            }.Select(carta => carta.HashDaCarta).ToList();

            var quadraEncontrada = _quadra.Encontrar(_maoDe5Cartas).Select(carta => carta.HashDaCarta).ToList();

            Assert.Equal(quadraEsperada, quadraEncontrada);
        }
Example #25
0
        public UmaTrincaTeste()
        {
            _maoDe5Cartas = new List <Carta>
            {
                CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Clubs).Construir(),
                CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Hearts).Construir(),
                CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Diamonds).Construir(),
                CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Clubs).Construir(),
                CartaBuilder.UmaCarta().ComValor(14).ComNaipe(Naipes.Hearts).Construir()
            };
            var identificadorDeTresCartasComValoresIguais = new IdentificaTresCartasComValoresIguais();

            _umaTrinca = new UmaTrinca(identificadorDeTresCartasComValoresIguais);
        }
        public DoisParesDiferentesTeste()
        {
            _maoDe5Cartas = new List <Carta>
            {
                CartaBuilder.UmaCarta().ComValor(1).ComNaipe(Naipes.Hearts).Construir(),
                CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir(),
                CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Diamonds).Construir(),
                CartaBuilder.UmaCarta().ComValor(9).ComNaipe(Naipes.Clubs).Construir(),
                CartaBuilder.UmaCarta().ComValor(9).ComNaipe(Naipes.Hearts).Construir()
            };
            var identificadorDePar = new IdentificaDuasCartasComValoresIguais();

            _doisParesDiferentes = new DoisParesDiferentes(identificadorDePar);
        }
Example #27
0
        public QuadraTeste()
        {
            _maoDe5Cartas = new List <Carta>
            {
                CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir(),
                CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Diamonds).Construir(),
                CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Clubs).Construir(),
                CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Hearts).Construir(),
                CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Diamonds).Construir()
            };
            var identificadorDeQuatroCartasComValoresIguais = new IdentificaQuatroCartasComValoresIguais();

            _quadra = new Quadra(identificadorDeQuatroCartasComValoresIguais);
        }
        public UmParDeCartasTeste()
        {
            _maoDe5Cartas = new List <Carta>
            {
                CartaBuilder.UmaCarta().ComValor(1).ComNaipe(Naipes.Diamonds).Construir(),
                CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir(),
                CartaBuilder.UmaCarta().ComValor(7).ComNaipe(Naipes.Spades).Construir(),
                CartaBuilder.UmaCarta().ComValor(7).ComNaipe(Naipes.Diamonds).Construir(),
                CartaBuilder.UmaCarta().ComValor(9).ComNaipe(Naipes.Hearts).Construir()
            };
            var identificadorDePar = new IdentificaDuasCartasComValoresIguais();

            _umParDeCartas = new UmParDeCartas(identificadorDePar);
        }
Example #29
0
        public void DeveEncontrarUmRoyalFlushNaMao()
        {
            var royalFlushEsperado = new List <Carta>
            {
                CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Hearts).Construir(),
                CartaBuilder.UmaCarta().ComValor(11).ComNaipe(Naipes.Hearts).Construir(),
                CartaBuilder.UmaCarta().ComValor(12).ComNaipe(Naipes.Hearts).Construir(),
                CartaBuilder.UmaCarta().ComValor(13).ComNaipe(Naipes.Hearts).Construir(),
                CartaBuilder.UmaCarta().ComValor(14).ComNaipe(Naipes.Hearts).Construir()
            }.Select(carta => carta.HashDaCarta).ToList();

            var royalFlushEncontrado = _royalFlush.Encontrar(_maoDe5Cartas).Select(carta => carta.HashDaCarta).ToList();

            Assert.Equal(royalFlushEsperado, royalFlushEncontrado);
        }
Example #30
0
        public StraightTeste()
        {
            _maoDe5Cartas = new List <Carta>
            {
                CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Clubs).Construir(),
                CartaBuilder.UmaCarta().ComValor(6).ComNaipe(Naipes.Clubs).Construir(),
                CartaBuilder.UmaCarta().ComValor(5).ComNaipe(Naipes.Spades).Construir(),
                CartaBuilder.UmaCarta().ComValor(4).ComNaipe(Naipes.Hearts).Construir(),
                CartaBuilder.UmaCarta().ComValor(7).ComNaipe(Naipes.Diamonds).Construir()
            };

            var identificadorDeSequencia = new IdentificaSequenciaDeCarta();

            _straight = new Straight(identificadorDeSequencia);
        }