John Darrington <[email protected]> writes: > On Sun, Feb 01, 2009 at 02:50:01PM -0800, Ben Pfaff wrote: > I noticed that the Perl module documentation doesn't say how to > tell how you've arrived at the end of the dictionary. It seems > that get_var() returns undef in this case, thus: > > diff --git a/perl-module/lib/PSPP.pm b/perl-module/lib/PSPP.pm > --- a/perl-module/lib/PSPP.pm > +++ b/perl-module/lib/PSPP.pm > @@ -90,6 +90,8 @@ sub new > =head3 get_var ($idx) > > Returns the C<idx>th variable from the dictionary. > +Returns undef if C<idx> is greater than or equal to the number > +of variables in the dictionary. > > =cut > > You're right. Feel free to commit that.
It seems that my real issue was that get_var_cnt() was available but not documented (and so I didn't notice that it was available). Any comments on this commit? commit 56deaed8bc467c5cb6f47a106b274f354efef225 Author: Ben Pfaff <[email protected]> Date: Sun Feb 1 19:06:52 2009 -0800 perl-module: Document and test PSPP::Dict::get_var_cnt(). This function was present but not documented or tested. diff --git a/perl-module/lib/PSPP.pm b/perl-module/lib/PSPP.pm index e9e3215..2957abb 100644 --- a/perl-module/lib/PSPP.pm +++ b/perl-module/lib/PSPP.pm @@ -87,6 +87,10 @@ sub new =pod +=head3 get_var_cnt () + +Returns the number of variables in the dictionary. + =head3 get_var ($idx) Returns the C<idx>th variable from the dictionary. diff --git a/perl-module/t/Pspp.t b/perl-module/t/Pspp.t index 030a342..04b76a5 100644 --- a/perl-module/t/Pspp.t +++ b/perl-module/t/Pspp.t @@ -6,7 +6,7 @@ # change 'tests => 1' to 'tests => last_test_to_print'; -use Test::More tests => 32; +use Test::More tests => 37; use Text::Diff; use File::Temp qw/ tempfile tempdir /; BEGIN { use_ok('PSPP') }; @@ -67,6 +67,7 @@ sub run_pspp_syntax_cmp { my $d = PSPP::Dict->new(); ok (ref $d, "Dictionary Creation"); + ok ($d->get_var_cnt () == 0); $d->set_label ("My Dictionary"); $d->set_documents ("These Documents"); @@ -75,17 +76,21 @@ sub run_pspp_syntax_cmp my $var0 = PSPP::Var->new ($d, "le"); ok (!ref $var0, "Trap illegal variable name"); + ok ($d->get_var_cnt () == 0); $var0 = PSPP::Var->new ($d, "legal"); ok (ref $var0, "Accept legal variable name"); + ok ($d->get_var_cnt () == 1); my $var1 = PSPP::Var->new ($d, "legal"); ok (!ref $var1, "Trap duplicate variable name"); + ok ($d->get_var_cnt () == 1); $var1 = PSPP::Var->new ($d, "money", (fmt=>PSPP::Fmt::DOLLAR, width=>4, decimals=>2) ); ok (ref $var1, "Accept valid format"); + ok ($d->get_var_cnt () == 2); $d->set_weight ($var1); -- "To the engineer, the world is a toy box full of sub-optimized and feature-poor toys." --Scott Adams _______________________________________________ pspp-dev mailing list [email protected] http://lists.gnu.org/mailman/listinfo/pspp-dev
