Pspp.t: Sort value labels before comparing them.
[pspp] / perl-module / t / Pspp.t
index fce5b74dd2eede1a4d472563cbb4413b359772fa..495064174ed6fc12b419fbd2346cfd8e6915e838 100644 (file)
@@ -8,7 +8,7 @@
 
 # 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') };
@@ -72,7 +72,7 @@ sub run_pspp_syntax_cmp
   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
 
@@ -130,7 +130,7 @@ sub run_pspp_syntax_cmp
                          )
                         );
 
-  $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");
 
@@ -185,11 +185,9 @@ name,Format: A20,,2
 ,Display Alignment: Left,,
 ,Display Width: 20,,
 
-File label:
+File label: This is the file label
 
-This is the file label
-
-Documents in the active file:
+Documents in the active dataset:
 
 This is a document line
 
@@ -252,7 +250,7 @@ GET FILE='$tempfile'.
 DISPLAY DICTIONARY.
 SYNTAX
 Variable,Description,,Position
-integer,My Integer,,1
+integer,Label: My Integer,,1
 ,Format: F8.0,,
 ,Measure: Scale,,
 ,Display Alignment: Right,,
@@ -261,7 +259,7 @@ integer,My Integer,,1
 ,0,Zero,
 ,1,Unity,
 ,2,Duality,
-string,My String,,2
+string,Label: My String,,2
 ,Format: A8,,
 ,Measure: Nominal,,
 ,Display Alignment: Left,,
@@ -269,7 +267,7 @@ string,My String,,2
 ,"Missing Values: ""this    ""; ""that    """,,
 ,xx      ,foo,
 ,yy      ,bar,
-longstring,My Long String,,3
+longstring,Label: My Long String,,3
 ,Format: A9,,
 ,Measure: Nominal,,
 ,Display Alignment: Left,,
@@ -376,7 +374,7 @@ 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 () )
@@ -393,16 +391,16 @@ RESULT
 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"
@@ -593,7 +591,7 @@ SYNTAX
 
     open (MYFILE, ">$tempdir/out.txt");
 
-    foreach $k (keys %$attr)
+    foreach $k (sort (keys (%$attr)))
     {
        my $ll = $attr->{$k};
        print MYFILE "$k =>";
@@ -602,10 +600,24 @@ SYNTAX
 
     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");
 }