Uso de Data::Dumper y del Depurador para la Preparación de las Pruebas

En el proceso de elaboración de una prueba para una subrutina es necesario tener una descripción Perl de

Esta descripción puede obtenerse usando Data::Dumper o el depurador o ambas cosas.
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
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19