FREQUENCIES: Fix treatment of string variables.
authorBen Pfaff <blp@cs.stanford.edu>
Tue, 16 Sep 2014 03:56:20 +0000 (20:56 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 16 Sep 2014 03:56:20 +0000 (20:56 -0700)
Reported by Richard Lee Rogers on pspp-users:
http://lists.gnu.org/archive/html/pspp-users/2014-09/msg00003.html

src/language/stats/frequencies.c
tests/language/stats/frequencies.at

index b4d1ee69612fba7447001dcd065a718b0d28a8ab..d7929d580d4c672d09bfd372d58c80dd85506798 100644 (file)
@@ -626,6 +626,7 @@ cmd_frequencies (struct lexer *lexer, struct dataset *ds)
   for (i = 0; i < frq.n_vars; ++i)
     {
       frq.vars[i].var = vars[i];
+      frq.vars[i].width = var_get_width (vars[i]);
     }
 
   while (lex_token (lexer) != T_ENDCMD)
index 469ba82d185dd9c72199676b25528c55c93fd534..d321e576a0c9a11ffa0040de2dc5d31ef005164b 100644 (file)
@@ -1,21 +1,33 @@
 AT_BANNER([FREQUENCIES procedure])
 
-AT_SETUP([FREQUENCIES string variable crash])
+AT_SETUP([FREQUENCIES string variable])
 AT_DATA([frequencies.sps],
   [DATA LIST FREE/
    name  (A8) value * quantity .
 BEGIN DATA.
-Cables 829 3 
+foo 1 5
+bar 2 6
+baz 1 9
+quux 3 1
+bar 1 2
+baz 4 3
+baz 1 4
+baz 1 1
+foo 6 0
+quux 5 8
 END DATA.
 EXECUTE.
 
 FREQUENCIES /VAR = name.
 ])
-AT_CHECK([pspp -O format=csv frequencies.sps], [0],
-  [Table: name
+AT_CHECK([pspp -O format=csv frequencies.sps], [0], [dnl
+Table: name
 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
-,Cables  ,1,100.00,100.00,100.00
-Total,,1,100.0,100.0,
+,bar     ,2,20.00,20.00,20.00
+,baz     ,4,40.00,40.00,60.00
+,foo     ,2,20.00,20.00,80.00
+,quux    ,2,20.00,20.00,100.00
+Total,,10,100.0,100.0,
 ])
 AT_CLEANUP