msampaio / flauta-solo

Estudo do repertório de flauta solo
BSD 3-Clause "New" or "Revised" License
2 stars 0 forks source link

Criar testes funcionais para reduções de Bor e Morris #155

Closed msampaio closed 10 years ago

msampaio commented 10 years ago

A tarefa consiste na criação de testes funcionais para as funções dos algoritmos de Bor e Morris. O arquivo https://github.com/GenosResearchGroup/FlautaSolo/blob/master/reducaoContorno/danilo/testes.py contém um exemplo de testes funcionais para as etapas 1 e 2 do algoritmo de Morris. Para cada função é necessário criar assertivas verdadeiras para testar as funções. Por exemplo:

def soma(a, b):
    return a + b

def subtracao(a, b):
    return a - b

import unittest

class TestUtils(unittest.TestCase):
    def test_soma(self):
        self.assertEqual(soma(2, 2), 4)
        self.assertNotEqual(soma(3, 2), 20)

    def test_subtracao(self):
        self.assertEqual(subtracao(2, 2), 0)
        self.assertNotEqual(subtracao(3, 2), 20)

Ambos os métodos assertEqual e assertNotEqual comparam dois parâmetros e retornam verdadeiro se os parâmetros são iguais (equal) ou diferentes (notEqual). O procedimento é colocar a operação no primeiro parâmetro e o resultado esperado no segundo.

msampaio commented 10 years ago

@azevedospider, conforme combinamos na reunião da sexta-feira, seguiremos com a criação dos testes funcionais. Fico no arguardo da conclusão.

msampaio commented 10 years ago

@azevedospider, nos testes dos algoritmos você importou o módulo unittest, mas não usou (commit 3b2cc4c615acd094ec5d1c6dd4f3d270c0c7cbce). Ao invés de criar uma classe como MorrisTest, crie uma classe herdeira de unittest, como o exemplo da descrição desta tarefa. Assim você poderá usar os métodos de igualdade e diferença (assertEqual e assertNotEqual) para definir as assertivas dos testes. Observe o exemplo da descrição da tarefa.

Além disso, acresente contra exemplos para os testes de cada uma das funções. Por exemplo: self.assertNotEqual(morris.etapa1([0, 1, 2],0), [0, 1, 0])