X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=perl-module%2Ft%2FPspp.t;h=e9d4e613e26bfe0eaa5b3f0c96fe6b5e5425865c;hb=033449d465fb54526d3984d55772e6a38e7d922c;hp=495064174ed6fc12b419fbd2346cfd8e6915e838;hpb=9f3aceccf7a1f7c08312be6cb34aa688bd958677;p=pspp diff --git a/perl-module/t/Pspp.t b/perl-module/t/Pspp.t index 495064174e..e9d4e613e2 100644 --- a/perl-module/t/Pspp.t +++ b/perl-module/t/Pspp.t @@ -1,4 +1,21 @@ -# -*-perl-*- +## -*-perl-*- + +## PSPP - a program for statistical analysis. +## Copyright (C) 2019, 2020 Free Software Foundation, Inc. +## +## This program is free software: you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program. If not, see . + # 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 @@ -88,8 +105,8 @@ sub run_pspp_syntax_cmp ok (!ref $var1, "Trap duplicate variable name"); ok ($d->get_var_cnt () == 1); - $var1 = PSPP::Var->new ($d, "money", - (fmt=>PSPP::Fmt::DOLLAR, + $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); @@ -117,16 +134,16 @@ sub run_pspp_syntax_cmp my $d = PSPP::Dict->new(); PSPP::Var->new ($d, "id", ( - fmt=>PSPP::Fmt::F, - width=>2, + fmt=>PSPP::Fmt::F, + width=>2, decimals=>0 ) ); PSPP::Var->new ($d, "name", ( - fmt=>PSPP::Fmt::A, - width=>20, + fmt=>PSPP::Fmt::A, + width=>20, ) ); @@ -162,8 +179,8 @@ sub run_pspp_syntax_cmp my $res = $sysfile->append_case ( [21, "wheelbarrow"]); ok ($res, "Append Case 2"); - # Don't close. We want to test that the destructor does that - # automatically + # Don't close. We want to test that the destructor does that + # automatically } ok (-s "$tempfile", "existance2"); @@ -175,51 +192,46 @@ sub run_pspp_syntax_cmp 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,, - -File label: This is the file label +Table: Variables +Name,Position,Measurement Level,Role,Width,Alignment,Print Format,Write Format +id,1,Scale,Input,8,Right,F2.0,F2.0 +name,2,Nominal,Input,20,Left,A20,A20 -Documents in the active dataset: +Table: File Label +Label,This is the file label +Table: Documents This is a document line Table: Data List id,name -21,wheelbarrow +21,wheelbarrow RESULT } - # Now do some tests to make sure all the variable parameters + # Now do some tests to make sure all the variable parameters # can be written properly. { my $tempdir = tempdir( CLEANUP => 1 ); - my $tempfile = "$tempdir/testfile.sav"; + my $tempfile = "$tempdir/testfile.sav"; my $dict = PSPP::Dict->new(); ok (ref $dict, "Dictionary Creation 2"); - my $int = PSPP::Var->new ($dict, "integer", + my $int = PSPP::Var->new ($dict, "integer", (width=>8, decimals=>0) ); $int->set_label ("My Integer"); - + $int->add_value_label (99, "Silly"); $int->clear_value_labels (); $int->add_value_label (0, "Zero"); $int->add_value_label (1, "Unity"); $int->add_value_label (2, "Duality"); - my $str = PSPP::Var->new ($dict, "string", + my $str = PSPP::Var->new ($dict, "string", (fmt=>PSPP::Fmt::A, width=>8) ); @@ -230,7 +242,7 @@ RESULT $str->set_missing_values ("this", "that"); - my $longstr = PSPP::Var->new ($dict, "longstring", + my $longstr = PSPP::Var->new ($dict, "longstring", (fmt=>PSPP::Fmt::A, width=>9) ); @@ -249,37 +261,27 @@ RESULT GET FILE='$tempfile'. DISPLAY DICTIONARY. SYNTAX -Variable,Description,,Position -integer,Label: 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,Label: My String,,2 -,Format: A8,, -,Measure: Nominal,, -,Display Alignment: Left,, -,Display Width: 8,, -,"Missing Values: ""this ""; ""that """,, -,xx ,foo, -,yy ,bar, -longstring,Label: 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 +My Integer,0,Zero +,1,Unity +,2,Duality +My String,xx,foo +,yy,bar +My Long String,xxx,xfoo RESULT } } -sub generate_sav_file +sub generate_sav_file { my $filename = shift; my $tempdir = shift; @@ -337,8 +339,8 @@ RESULT PSPP::Var->new ($d, "id", ( - fmt=>PSPP::Fmt::F, - width=>2, + fmt=>PSPP::Fmt::F, + width=>2, decimals=>0 ) ); @@ -370,7 +372,7 @@ RESULT my $label = $var->get_label (); print MYFILE "Variable $v is \"$name\", label is \"$label\"\n"; - + my $vl = $var->get_value_labels (); print MYFILE "Value Labels:\n"; @@ -484,7 +486,7 @@ SYNTAX list. SYNTAX - + ok (! diff ("$tempdir/pspp.csv", "$tempdir/in.txt"), "Streaming of files"); } @@ -531,12 +533,12 @@ SYNTAX 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"); } -# Missing value tests. +# Missing value tests. { my $tempdir = tempdir( CLEANUP => 1 ); @@ -559,17 +561,17 @@ SYNTAX ok ( !PSPP::value_is_missing ($val, $numericvar), "Missing Value Negative Num"); - @c = $sf->get_next_case (); - @c = $sf->get_next_case (); + @c = $sf->get_next_case (); + @c = $sf->get_next_case (); $val = $c[0]; ok ( PSPP::value_is_missing ($val, $stringvar), "Missing Value Positive"); - @c = $sf->get_next_case (); + @c = $sf->get_next_case (); $val = $c[2]; ok ( PSPP::value_is_missing ($val, $numericvar), "Missing Value Positive SYS"); - @c = $sf->get_next_case (); + @c = $sf->get_next_case (); $val = $c[2]; ok ( PSPP::value_is_missing ($val, $numericvar), "Missing Value Positive Num"); }