From: John Darrington Date: Tue, 2 Jul 2013 17:44:57 +0000 (+0200) Subject: Added a test to ensure that SPLITS vs REGRESSION/SAVE works ok X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e413bbdf7b01f2ff0153c8cbf79c2e4fa71f4d5;p=pspp Added a test to ensure that SPLITS vs REGRESSION/SAVE works ok --- diff --git a/tests/language/stats/regression.at b/tests/language/stats/regression.at index db2b6bdf98..a3f5e62f85 100644 --- a/tests/language/stats/regression.at +++ b/tests/language/stats/regression.at @@ -53,6 +53,99 @@ v0,v1,v2,RES1,PRED1 ]) AT_CLEANUP + +# Test to ensure that the /SAVE subcommand works properly when SPLIT is active +AT_SETUP([LINEAR REGRESSION - SAVE vs SPLITS]) + +# Generate some test data based on a linear model +AT_DATA([gen-data.sps], [dnl +set seed = 1. +input program. +loop #c = 1 to 20. + compute x0 = rv.normal (0,1). + compute x1 = rv.normal (0,2). + compute err = rv.normal (0,0.1). + compute y = 4 - 2 * x0 + 3 * x1 + err. + compute g = (#c > 10). + end case. +end loop. +end file. +end input program. + +print outfile='regdata.txt' /g x0 x1 y err *. +execute. +]) + +AT_CHECK([pspp -O format=csv gen-data.sps], [0], [ignore]) + +# Use our test data to create a predictor and a residual variable +# for G == 0 +AT_DATA([regression0.sps], [dnl +data list notable file='regdata.txt' list /g x0 x1 y err *. + +select if (g = 0). + +regression + /variables = x0 x1 + /dependent = y + /statistics = all + /save = pred resid. + . + +print outfile='outdata-g0.txt' /g x0 x1 y err res1 pred1 *. +execute. +]) + + +AT_CHECK([pspp -O format=csv regression0.sps], [0], [ignore]) + +# Use our test data to create a predictor and a residual variable +# for G == 1 +AT_DATA([regression1.sps], [dnl +data list notable file='regdata.txt' list /g x0 x1 y err *. + +select if (g = 1). + +regression + /variables = x0 x1 + /dependent = y + /statistics = all + /save = pred resid. + . + +print outfile='outdata-g1.txt' /g x0 x1 y err res1 pred1 *. +execute. +]) + + +AT_CHECK([pspp -O format=csv regression1.sps], [0], [ignore]) + +# Use our test data to create a predictor and a residual variable +# The data is split on G +AT_DATA([regression-split.sps], [dnl +data list notable file='regdata.txt' list /g x0 x1 y err *. + +split file by g. + +regression + /variables = x0 x1 + /dependent = y + /statistics = all + /save = pred resid. + . + +print outfile='outdata-split.txt' /g x0 x1 y err res1 pred1 *. +execute. +]) + +AT_CHECK([pspp -O format=csv regression-split.sps], [0], [ignore]) + +# The concatenation of G==0 and G==1 should be identical to the SPLIT data +AT_CHECK([cat outdata-g0.txt outdata-g1.txt | diff outdata-split.txt - ], [0], []) + +AT_CLEANUP + + # Tests the QR decomposition used by the REGRESSION command. AT_SETUP([LINEAR REGRESSION test of QR decomposition]) AT_DATA([regression.sps], [dnl