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); }
public void NaoDeveEncontrarAJogadaNaMaoSeASequenciaEstiverQuebrada() { _maoDe5Cartas[0] = CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir(); var jogadaEncontradaNaMao = _royalFlush.JogadaEncontradaNaMao(_maoDe5Cartas); Assert.False(jogadaEncontradaNaMao); }
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); }
public void NaoDeveEncontrarAJogadaNaMaoSeNaoForUmaSequencia() { _maoDe5Cartas[0] = CartaBuilder.UmaCarta().ComValor(2).ComNaipe(Naipes.Hearts).Construir(); var jogadaEncontradaNaMao = _straight.JogadaEncontradaNaMao(_maoDe5Cartas); Assert.False(jogadaEncontradaNaMao); }
public void NaoDeveEncontrarAJogadaNaMaoSeAlgumaCartaForDeNaipeDiferente() { _maoDe5Cartas[0] = CartaBuilder.UmaCarta().ComValor(10).ComNaipe(Naipes.Diamonds).Construir(); var jogadaEncontradaNaMao = _flush.JogadaEncontradaNaMao(_maoDe5Cartas); Assert.False(jogadaEncontradaNaMao); }
public void NaoDeveEncontrarAJogadaNaMaoQuandoNaoTiverUmPar() { _maoDe5Cartas[1] = CartaBuilder.UmaCarta().ComValor(3).ComNaipe(Naipes.Hearts).Construir(); var jogadaEncontradaNaMao = _fullHouse.JogadaEncontradaNaMao(_maoDe5Cartas); Assert.False(jogadaEncontradaNaMao); }
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() }; }
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); }
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); }
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); }
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); }
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); }
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); }
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); }