# change 'tests => 1' to 'tests => last_test_to_print';
-use Test::More tests => 36;
+use Test::More tests => 37;
use Text::Diff;
use File::Temp qw/ tempfile tempdir /;
BEGIN { use_ok('PSPP') };
DISPLAY DOCUMENTS.
LIST.
SYNTAX
-Variable,Description,,Position
-id,Format: F2.0,,1
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-name,Format: A20,,2
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 20,,
+Table: Variables
+Name,Position,Label,Measurement Level,Role,Width,Alignment,Print Format,Write Format,Missing Values
+id,1,,Scale,Input,8,Right,F2.0,F2.0,
+name,2,,Nominal,Input,20,Left,A20,A20,
-File label:
-
-This is the file label
+File label: This is the file label
Documents in the active dataset:
GET FILE='$tempfile'.
DISPLAY DICTIONARY.
SYNTAX
-Variable,Description,,Position
-integer,My Integer,,1
-,Format: F8.0,,
-,Measure: Scale,,
-,Display Alignment: Right,,
-,Display Width: 8,,
-,Missing Values: 9; 99,,
-,0,Zero,
-,1,Unity,
-,2,Duality,
-string,My String,,2
-,Format: A8,,
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 8,,
-,"Missing Values: ""this ""; ""that """,,
-,xx ,foo,
-,yy ,bar,
-longstring,My Long String,,3
-,Format: A9,,
-,Measure: Nominal,,
-,Display Alignment: Left,,
-,Display Width: 9,,
-,xxx ,xfoo,
+Table: Variables
+Name,Position,Label,Measurement Level,Role,Width,Alignment,Print Format,Write Format,Missing Values
+integer,1,My Integer,Scale,Input,8,Right,F8.0,F8.0,9; 99
+string,2,My String,Nominal,Input,8,Left,A8,A8,"""this ""; ""that """
+longstring,3,My Long String,Nominal,Input,9,Left,A9,A9,
+
+Table: Value Labels
+Variable,Value,Label
+integer,0,Zero
+,1,Unity
+,2,Duality
+string,xx ,foo
+,yy ,bar
+longstring,xxx ,xfoo
RESULT
}
my $vl = $var->get_value_labels ();
print MYFILE "Value Labels:\n";
- print MYFILE "$_ => $vl->{$_}\n" for keys %$vl;
+ print MYFILE "$_ => $vl->{$_}\n" for (sort keys %$vl);
}
while (my @c = $sf->get_next_case () )
ok (compare ("$tempdir/out.txt", <<EOF), "Basic reader operation");
Variable 0 is "string", label is "A Short String Variable"
Value Labels:
-3333 => threes
1111 => ones
2222 => twos
+3333 => threes
Variable 1 is "longstring", label is "A Long String Variable"
Value Labels:
Variable 2 is "numeric", label is "A Numeric Variable"
Value Labels:
1 => Unity
-3 => Thripality
2 => Duality
+3 => Thripality
Variable 3 is "date", label is "A Date Variable"
Value Labels:
Variable 4 is "dollar", label is "A Dollar Variable"
ok ( !ref $sf, "Returns undef on opening failure");
- ok ("$PSPP::errstr" eq "Error opening `$tempdir/no-such-file.sav' for reading as a system file: No such file or directory.",
+ ok ("$PSPP::errstr" eq "An error occurred while opening `$tempdir/no-such-file.sav': No such file or directory.",
"Error string on open failure");
}
open (MYFILE, ">$tempdir/out.txt");
- foreach $k (keys %$attr)
+ foreach $k (sort (keys (%$attr)))
{
my $ll = $attr->{$k};
print MYFILE "$k =>";
close (MYFILE);
- ok (compare ("$tempdir/out.txt", <<EOF), "Custom Attributes");
+ ok (compare ("$tempdir/out.txt", <<'EOF'), "Custom Attributes");
+$@Role =>0
colour =>blue, pink, violet
nationality =>foreign
size =>large
EOF
+}
+
+
+# Test of the get_case_cnt function
+{
+ my $tempdir = tempdir( CLEANUP => 1 );
+
+ generate_sav_file ("$tempdir/in.sav", "$tempdir");
+
+ my $sf = PSPP::Reader->open ("$tempdir/in.sav");
+
+ my $n = $sf->get_case_cnt ();
+ ok ($n == 5, "Case count");
}