Casos de Teste

 

Casos de Teste

Abaixo segue exemplos de testes efetuados e seus respectivos resultados:

 

?-vinte_e_um([3],T,3).

T = 3;

no

?-vinte_e_um([5,3],T,3).

T = 3 + 5;

no

?-vinte_e_um([3,7],T,21).

T = 3 * 7;

T = ( - 7 ) * ( - 3 );

no

?-vinte_e_um([3,5,8],T,10).

T = 8 + ( 5 + ( - 3 ) );

no

?-vinte_e_um([1,2,3],T,6).

T = 3 + ( 2 + 1);

T = 3 * ( 2 * 1);

T = 3 * ( 2 / 1);

T = 3 / (1 / 2);

T = ( - 3) * ( ( - 2) * 1);

T = ( - 3) * ( ( - 2) / 1);

T = ( - 3) / ( 1 /( - 2) );

T = ( - 3) * ( 2 *(- 1) );

T = ( - 3) * ( 2 / (- 1));

T = ( - 3) / ( ( - 1) / 2);

T = 3 * ( ( - 2) *( - 1));

T = 3 * ( ( - 2) /( - 1));

T = 3 / ( ( - 1) *( - 2));

no

?-vinte_e_um([2,1,3],T,6).

T = 3 + ( 1 + 2);

T = 3 * ( 1 * 2);

T = 3 / (1 / 2);

T = 3 * ( 2 / 1);

T = ( - 3) * ( ( - 1) * 2);

T = ( - 3) / ( ( - 1) / 2);

T = ( - 3) / ( 2 /( - 1) );

T = ( - 3) * ( 1 *(- 2) );

T = ( - 3) / ( 1 / (- 2));

T = ( - 3) * ( ( - 2) / 1);

T = 3 * ( ( - 1) * ( - 2));

T = 3 / ( ( - 1) / ( - 2));

T = 3 * ( ( - 2) /( - 1));

no

Testes - Considerações:

Como observado, o programa devolve em T as expressões cujas combinações levam ao resultado desejado. Quando não encontra mais possibilidades encerra-se com "no".