# -*-perl-*-
-# Before `make install' is performed this script should be runnable with
-# `make test'. After `make install' it should work as `perl PSPP.t'
+# Before `make install' is performed this script should be runnable
+# with `make test' as long as libpspp-core-$VERSION.so is in
+# LD_LIBRARY_PATH. After `make install' it should work as `perl
+# PSPP.t'
#########################
print FH "$syntax";
close (FH);
- system ("cd $tempdir; $pspp_cmd -o raw-ascii $syntaxfile");
+ system ("cd $tempdir; $pspp_cmd -o pspp.csv $syntaxfile");
}
sub run_pspp_syntax_cmp
run_pspp_syntax ($tempdir, $syntax);
- my $diff = diff ("$tempdir/pspp.list", \$result);
+ my $diff = diff ("$tempdir/pspp.csv", \$result);
if ( ! ($diff eq ""))
{
ok ($d->get_var_cnt () == 0);
$d->set_label ("My Dictionary");
- $d->set_documents ("These Documents");
+ $d->add_document ("These Documents");
# Tests for variable creation
)
);
- $d->set_documents ("This should not appear");
+ $d->add_document ("This should not appear");
$d->clear_documents ();
$d->add_document ("This is a document line");
DISPLAY DOCUMENTS.
LIST.
SYNTAX
-1.1 DISPLAY.
-+--------+-------------------------------------------+--------+
-|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 | |
-+--------+-------------------------------------------+--------+
-
-File label:
-This is the file label
-
-Documents in the active file:
+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,,
-This is a document line
+File label: This is the file label
+
+Documents in the active dataset:
-id name
--- --------------------
-21 wheelbarrow
+This is a document line
+Table: Data List
+id,name
+21,wheelbarrow
RESULT
$longstr->set_label ("My Long String");
my $re = $longstr->add_value_label ("xxx", "xfoo");
- ok (($re == 0), "Long strings cant have labels");
-
- ok ($PSPP::errstr eq "Cannot add label to a long string variable", "Error msg");
+ ok ($re, "Value label for long string");
$int->set_missing_values (9, 99);
GET FILE='$tempfile'.
DISPLAY DICTIONARY.
SYNTAX
-1.1 DISPLAY.
-+----------+-----------------------------------------+--------+
-|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 | |
-+----------+-----------------------------------------+--------+
-
+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,
RESULT
}
1111 One 1 1/1/1 1 1/1/1+01:01
2222 Two 2 2/2/2 2 2/2/2+02:02
3333 Three 3 3/3/3 3 3/3/3+03:03
-. . . . .
+. . . . . .
5555 Five 5 5/5/5 5 5/5/5+05:05
end data.
SYNTAX
- system ("cp $tempdir/pspp.list $tempdir/in.txt");
+ system ("cp $tempdir/pspp.csv $tempdir/in.txt");
run_pspp_syntax ($tempdir, <<SYNTAX);
get file='$tempdir/out.sav'.
SYNTAX
- ok (! diff ("$tempdir/pspp.list", "$tempdir/in.txt"), "Streaming of files");
+ ok (! diff ("$tempdir/pspp.csv", "$tempdir/in.txt"), "Streaming of files");
}
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 "Error opening `$tempdir/no-such-file.sav' for reading as a system file: 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");
}