arademaker / krr

Knowledge Representation and Reasoning
3 stars 6 forks source link

Criando testes para a função "input-tab" #50

Closed paulodt closed 9 years ago

paulodt commented 9 years ago

Professor, agora criei testes para a função "input-tab". Tais testes analisam a entrada do tabuleiro. O primeiro teste verifica se há algum elemento maior do que 9. O segundo, se o tamanho do tabuleiro (ou seja, da lista referente a ele) é maior que 81. Já o terceiro faz um teste de um tabuleiro bem formado, com tamanho e elementos válidos. A função retorna triplas do tipo (linha coluna valor), que são utilizadas na função principal, "solve-sudoku". Além disso, modifiquei a função "show-sudoku" para poder "printar" mais de um tabuleiro da solução final, pois podem haver casos em que há mais de uma solução para o tabuleiro.

arademaker commented 9 years ago

@paulodt Aceitei mas temos vários problemas ainda com organização do código. Sudoku é um exemplo particular de uso do provador onde um problema é codificado em LP (Lógica Proposicional). Tableaux é um método de prova que temos implementado para LP.

Quero dizer que os testes de sudoku não deveria estas em um arquivo que não depende (ou não deveria depender) diretamente de sudoku. Tudo relacionado à sudoku depende do Tableaux, mas o inverso não é verdade. Entendem?

Também acho que poderíamos ter funções auxiliares para geração de entradas aleatórias para sudoku, assim os testes de tabuleiros válidos ficam mais fáceis.