From 22c3b7ae0807d55ac6714d1f7ca9c5a5be6cc515 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Mon, 23 Jun 2014 21:01:22 +0200 Subject: [PATCH] Fixed crash in REGRESSION when only one SAVE parameter present. The REGRESSION command crashed when /SAVE=resid or /SAVE=pred (but not both) was given. This change fixes this. Reported by: Bob Earl --- src/language/stats/regression.c | 2 + tests/language/stats/regression.at | 72 ++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/src/language/stats/regression.c b/src/language/stats/regression.c index cbffb7d45e..52009e2968 100644 --- a/src/language/stats/regression.c +++ b/src/language/stats/regression.c @@ -335,6 +335,8 @@ cmd_regression (struct lexer *lexer, struct dataset *ds) workspace.pred_idx = -1; workspace.writer = NULL; workspace.reader = NULL; + workspace.residvars = NULL; + workspace.predvars = NULL; if (save) { int i; diff --git a/tests/language/stats/regression.at b/tests/language/stats/regression.at index d194d73bfb..7548160079 100644 --- a/tests/language/stats/regression.at +++ b/tests/language/stats/regression.at @@ -54,6 +54,78 @@ v0,v1,v2,RES1,PRED1 AT_CLEANUP +AT_SETUP([LINEAR REGRESSION - one save]) +AT_DATA([regression.sps], [dnl +set format = F22.3. +data list notable list / v0 to v2. +begin data + 0.65377128 7.735648 -23.97588 +-0.13087553 6.142625 -19.63854 + 0.34880368 7.651430 -25.26557 + 0.69249021 6.125125 -16.57090 +-0.07368178 8.245789 -25.80001 +-0.34404919 6.031540 -17.56743 + 0.75981559 9.832291 -28.35977 +-0.46958313 5.343832 -16.79548 +-0.06108490 8.838262 -29.25689 + 0.56154863 6.200189 -18.58219 +end data +regression /variables=v0 v1 v2 /statistics defaults /dependent=v2 /method=enter /save=resid. +regression /variables=v0 v1 v2 /statistics defaults /dependent=v2 /method=enter /save=pred. +list. +]) + +AT_CHECK([pspp -O format=csv regression.sps], [0], [dnl +Table: Model Summary (v2) +,R,R Square,Adjusted R Square,Std. Error of the Estimate +,.971,.942,.925,1.337 + +Table: ANOVA (v2) +,,Sum of Squares,df,Mean Square,F,Sig. +,Regression,202.753,2,101.376,56.754,.000 +,Residual,12.504,7,1.786,, +,Total,215.256,9,,, + +Table: Coefficients (v2) +,,Unstandardized Coefficients,,Standardized Coefficients,, +,,B,Std. Error,Beta,t,Sig. +,(Constant),2.191,2.357,.000,.930,.380 +,v0,1.813,1.053,.171,1.722,.129 +,v1,-3.427,.332,-1.026,-10.334,.000 + +Table: Model Summary (v2) +,R,R Square,Adjusted R Square,Std. Error of the Estimate +,.971,.942,.925,1.337 + +Table: ANOVA (v2) +,,Sum of Squares,df,Mean Square,F,Sig. +,Regression,202.753,2,101.376,56.754,.000 +,Residual,12.504,7,1.786,, +,Total,215.256,9,,, + +Table: Coefficients (v2) +,,Unstandardized Coefficients,,Standardized Coefficients,, +,,B,Std. Error,Beta,t,Sig. +,(Constant),2.191,2.357,.000,.930,.380 +,v0,1.813,1.053,.171,1.722,.129 +,v1,-3.427,.332,-1.026,-10.334,.000 + +Table: Data List +v0,v1,v2,RES1,PRED1 +.654,7.736,-23.976,-.84,-23.13 +-.131,6.143,-19.639,-.54,-19.10 +.349,7.651,-25.266,-1.87,-23.40 +.692,6.125,-16.571,.97,-17.54 +-.074,8.246,-25.800,.40,-26.20 +-.344,6.032,-17.567,1.53,-19.10 +.760,9.832,-28.360,1.77,-30.13 +-.470,5.344,-16.795,.18,-16.97 +-.061,8.838,-29.257,-1.05,-28.21 +.562,6.200,-18.582,-.54,-18.04 +]) +AT_CLEANUP + + # Test to ensure that the /SAVE subcommand works properly when SPLIT is active AT_SETUP([LINEAR REGRESSION - SAVE vs SPLITS]) -- 2.30.2