From a33e8056b09457b35ef25605c7f097058637da59 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Mon, 15 Sep 2014 20:56:20 -0700 Subject: [PATCH] FREQUENCIES: Fix treatment of string variables. 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 | 1 + tests/language/stats/frequencies.at | 24 ++++++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/language/stats/frequencies.c b/src/language/stats/frequencies.c index b4d1ee6961..d7929d580d 100644 --- a/src/language/stats/frequencies.c +++ b/src/language/stats/frequencies.c @@ -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) diff --git a/tests/language/stats/frequencies.at b/tests/language/stats/frequencies.at index 469ba82d18..d321e576a0 100644 --- a/tests/language/stats/frequencies.at +++ b/tests/language/stats/frequencies.at @@ -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 -- 2.30.2