En el proceso de elaboración de una prueba para una subrutina es necesario tener una descripción Perl de
pp2@nereida:/tmp/Algorithm-Knap01DP-0.01/t$ perl -I../lib "-MAlgorithm::Knap01DP=Knap01DP,ReadKnap" -wde 0
main::(-e:1): 0
DB<1> $x = ReadKnap("knap22.dat")
DB<2> use Data::Dumper
DB<3> Dumper($x)
DB<4> p Dumper($x)
$VAR1 = [
'70',
'20',
'39',
'37',
'7',
'5',
'10'
];
DB<5> x $x
0 ARRAY(0x840a11c)
0 70
1 20
2 39
3 37
4 7
5 5
6 10
Cuando la función ReadKnap lee un fichero
de datos devuelve una estructura como la descrita.
De hecho, es usando el depurador, cortando y pegando que hemos construido
parte del código de pruebas
definiendo las estructuras de datos $knapXX:
10 ### main 11 my @inputfiles = qw/knap21.dat knap22.dat knap23.dat knap25.dat/; 12 my @sol = (280, 107, 150, 900); 13 my $knap21 = ['102', [ '2', '20', '20', '30', '40', '30', '60', '10' ], 14 [ '15', '100', '90', '60', '40', '15', '10', '1' ]]; 15 my $knap22 = ['50', [ '31', '10', '20', '19', '4', '3', '6' ], 16 [ '70', '20', '39', '37', '7', '5', '10' ]]; 17 my $knap23 = ['190', [ '56', '59', '80', '64', '75', '17' ], 18 [ '50', '50', '64', '46', '50', '5' ]]; 19 my $knap25 = ['104', [ '25', '35', '45', '5', '25', '3', '2', '2' ], 20 [ '350', '400', '450', '20', '70', '8', '5', '5' ]]; 21 22 my $knapsackproblem = [$knap21, $knap22, $knap23, $knap25];
Casiano Rodríguez León
