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