Departamento de Ciência da
Computação - IME - USP
Estes critérios são dinâmicos. À medida que a correção for avançando, poderão surgir novos casos não previstos ainda. Para acertar isso, novos itens serão colocados na Seção "Outros tipos de problemas encontrados nos EPs".
num_digitos(n)
- Valor total: 1.0 pontopos_ocupada(nlinhas, ncols, x, y, x0, y0, d)
: - Valor total: 3 pontosimprime_tabuleiro(nlinhas, ncols, x0, y0, d)
: - Valor total: 3 pontosObs.: Este teste verifica se a função imprime um retângulo do tamanho correto, com as bordas delimitadas por caracteres "#". Os caracteres impressos no interior do retângulo são ignorados no teste.
Obs. 1: O teste 2 só é executado se a função passou sem erros pelo teste 1.
Obs. 2: Para verificar se a impressão do interior do tabuleiro está correta, considera-se a implementacao feita pelo aluno da função pos_ocupada
. Ou seja, passará no teste o tabuleiro que for desenhado corretamente de acordo com o que é devolvido na funcão pos_ocupada
do aluno, ainda que o tabuleiro impresso não fique igual ao esperado (devido a algum possível erro na implementação de pos_ocupada
).
move(nlinhas, ncols, x0, y0, d, direcao)
: - Valor total: 3 pontosObs.: O teste 6 só é executado se a função passou sem erros pelos 5 testes anteriores.
len()
: desconto de 1 pontoAlguns dos testes listados acima foram realizados por meio de um programa (o testador automático) que verifica as saídas das funções obrigatórias implementadas pelos alunos. Quando uma função testada gera um resultado diferente do esperado para ela, o testador exibe uma mensagem de erro. Toda mensagem de erro do testador tem o seguinte formato:
[<pontos_descontados>]: <nome_do_teste> | <função_testada(lista_de_parâmetros)> <Erro_identificado_na_execução>
Todo aluno deve ter recebido (na Graúna) uma lista com os erros identificados em seu EP1 durante a correção, que incluirá mensagens do tipo acima.
É importante ressaltar aqui que o testador automático pode executar um mesmo teste mais de uma vez, cada vez chamando a função testada com valores diferentes de parâmetros. Entretanto, quando um EP falha no mesmo teste mais de uma vez, o testador automático aplica o desconto correspondente ao teste somente uma vez, embora ele liste uma mensagem de erro para cada vez em que o teste falhou.
Abaixo é mostrado um exemplo da saída do programa testador automático quando aplicado sobre uma implementação do EP1 que contém erros. Nesse exemplo, há duas mensagens de erro para o caso 2 de teste da função imprime_tabuleiro
(nome_do_teste = "Teste da impressao do interior do tabuleiro feita pela funcao imprime_tabuleiro"); os dois erros juntos causam um desconto de apenas 2 na nota. O mesmo ocorre para o caso 5 de teste da função move
(nome_do_teste = "Teste do valor devolvido pela funcao move quando ha colisao"); os dois erros juntos causam um desconto de apenas 0.6 na nota.
Nota: 6.2 Os testes aplicados sobre o programa identificaram os seguintes erros: [2 pontos]: Teste da impressao do interior do tabuleiro feita pela funcao imprime_tabuleiro | imprime_tabuleiro(4, 8, 4, 1, 2322) AssertionError: A impressao do interior do tabuleiro nao esta correta [2 pontos]: Teste da impressao do interior do tabuleiro feita pela funcao imprime_tabuleiro | imprime_tabuleiro(8, 16, 9, 5, 24223222442) AssertionError: A impressao do interior do tabuleiro nao esta correta [0.6 pontos]: Teste do valor devolvido pela funcao move quando direcao = 2 | move(5, 5, 3, 0, 23, 2) AssertionError: Expected (4, 0, 32) but got (3, 0, 23) [0.6 pontos]: Teste do valor devolvido pela funcao move quando direcao = 3 | move(5, 5, 3, 1, 32, 3) AssertionError: Expected (3, 0, 23) but got (3, 1, 32) [0.6 pontos]: Teste do valor devolvido pela funcao move quando ha colisao | move(5, 5, 3, 0, 23, 2) AssertionError: Expected (4, 0, 32) but got (3, 0, 23) [0.6 pontos]: Teste do valor devolvido pela funcao move quando ha colisao | move(5, 5, 3, 1, 32, 3) AssertionError: Expected (3, 0, 23) but got (3, 1, 32)