def test_chance(): ''' Chance The player scores the sum of all dice, no matter what they read. ''' # iterar sobre *args evita codigo cableado a 5 argumentos assert 15 == Yatzy.chance(1, 2, 3, 4, 5) assert 14 == Yatzy.chance(1, 1, 3, 3, 6) assert 21 == Yatzy.chance(4, 5, 5, 6, 1)
def test_yatzy(): ''' Yatzy If all dice have the same number, the player scores 50 points. ''' # dice significa "dados" pero exige un unico argumento # => interfaz abstraccion del metodo no es coherente # con el resto de metodos # El codigo para iterar sobre dice es muy complejo # El algoritmo para averiguar si todos los dados son iguales # es muy complejo assert 50 == Yatzy.yatzy(1, 1, 1, 1, 1) assert 0 == Yatzy.yatzy(1, 1, 1, 2, 1)
def test_pair(): ''' Pair: The player scores the sum of the two highest matching dice. ''' # El algoritmo del metodo no es optimo, es complicado e ilegible. # La abstraccion, el nombre del metodo, no es adecuada # puesto que la categoria se llama pair. assert 8 == Yatzy.pair(3, 3, 3, 4, 4) assert 12 == Yatzy.pair(1, 1, 6, 2, 6) assert 6 == Yatzy.pair(3, 3, 3, 4, 1) assert 6 == Yatzy.pair(3, 3, 3, 3, 1) assert 0 == Yatzy.pair(1, 2, 3, 4, 5)
def test_two_pairs(): ''' Two pairs: If there are two pairs of dice with the same number, the player scores the sum of these dice. ''' # La categoria se llama "two pairs": la abstraccion del metodo # no es adecuada. # Mantengo notacion snake_case # El algoritmo del metodo no es optimo, es complicado e ilegible. assert 8 == Yatzy.two_pairs(1, 1, 2, 3, 3) assert 0 == Yatzy.two_pairs(1, 1, 2, 3, 4) assert 6 == Yatzy.two_pairs(1, 1, 2, 2, 2) assert 0 == Yatzy.two_pairs(1, 2, 3, 4, 5)
def inyector(): # es el setup de unittest o de JUnit tirada = Yatzy(4, 5, 6, 4, 5) return tirada
def test_constructor(): tirada = Yatzy(1, 1, 1, 1, 1) for dado in tirada.dice: assert 1 == dado
def test_threes(): ''' The player scores the sum of the dice that reads three ''' assert 0 == Yatzy.threes(1, 1, 1, 1, 1) assert 9 == Yatzy.threes(3, 3, 3, 4, 5)
def test_twos(): ''' The player scores the sum of the dice that reads two ''' assert 0 == Yatzy.twos(3, 3, 3, 4, 5) assert 4 == Yatzy.twos(2, 3, 2, 5, 1)
def test_ones(): ''' The player scores the sum of the dice that reads one ''' assert 0 == Yatzy.ones(3, 3, 3, 4, 5) assert 5 == Yatzy.ones(1, 1, 1, 1, 1)
def test_fullHouse(): assert 8 == Yatzy.fullHouse(1, 1, 2, 2, 2) assert 0 == Yatzy.fullHouse(2, 2, 3, 3, 4) assert 0 == Yatzy.fullHouse(4, 4, 4, 4, 4)
def test_large_straight(): assert 20 == Yatzy.large_straight(2, 3, 4, 5, 6) assert 0 == Yatzy.large_straight(1, 2, 3, 4, 5) assert 0 == Yatzy.large_straight(1, 3, 4, 5, 5) assert 0 == Yatzy.large_straight(6, 6, 6, 6, 6) assert 0 == Yatzy.large_straight(1, 2, 3, 4, 6)
def test_small_straight(): assert 15 == Yatzy.small_straight(1, 2, 3, 4, 5) assert 0 == Yatzy.small_straight(2, 3, 4, 5, 6) assert 0 == Yatzy.small_straight(1, 3, 4, 5, 5) assert 0 == Yatzy.small_straight(6, 6, 6, 6, 6) assert 0 == Yatzy.small_straight(1, 2, 3, 4, 6)
def test_four_of_a_kind(): assert 8 == Yatzy.four_of_a_kind(2, 2, 2, 2, 5) assert 0 == Yatzy.four_of_a_kind(2, 2, 2, 5, 5) assert 8 == Yatzy.four_of_a_kind(2, 2, 2, 2, 2) assert 0 == Yatzy.four_of_a_kind(1, 2, 3, 4, 5)
def test_three_of_a_kind(): assert 9 == Yatzy.three_of_a_kind(3, 3, 3, 4, 5) assert 0 == Yatzy.three_of_a_kind(3, 3, 4, 5, 6) assert 9 == Yatzy.three_of_a_kind(3, 3, 3, 3, 1) assert 0 == Yatzy.three_of_a_kind(1, 2, 3, 4, 5)