X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flanguage%2Fcontrol%2Fdo-repeat.at;h=91f6b4bd1bb91c8c1e838ad827404baa4c07a701;hb=69bf3f901b0a949cfa957950f55df78d0c86a765;hp=a0b29d93a10a6ee83d4ab1b00dcb7f5778412e76;hpb=a258e53c63a08b0ec48aea8f03808eb651729424;p=pspp diff --git a/tests/language/control/do-repeat.at b/tests/language/control/do-repeat.at index a0b29d93a1..91f6b4bd1b 100644 --- a/tests/language/control/do-repeat.at +++ b/tests/language/control/do-repeat.at @@ -1,6 +1,111 @@ +dnl PSPP - a program for statistical analysis. +dnl Copyright (C) 2017 Free Software Foundation, Inc. +dnl +dnl This program is free software: you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation, either version 3 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program. If not, see . +dnl AT_BANNER([DO REPEAT]) -AT_SETUP([DO REPEAT -- ordinary]) +AT_SETUP([DO REPEAT -- simple]) +AT_DATA([do-repeat.sps], [dnl +INPUT PROGRAM. +STRING y(A1). +DO REPEAT xval = 1 2 3 / yval = 'a' 'b' 'c' / var = a b c. +COMPUTE x=xval. +COMPUTE y=yval. +COMPUTE var=xval. +END CASE. +END REPEAT. +END FILE. +END INPUT PROGRAM. +LIST. +]) +AT_CHECK([pspp -o pspp.csv do-repeat.sps]) +AT_CHECK([cat pspp.csv], [0], [dnl +Table: Data List +y,x,a,b,c +a,1.00,1.00,. ,. @&t@ +b,2.00,. ,2.00,. @&t@ +c,3.00,. ,. ,3.00 +]) +AT_CLEANUP + +AT_SETUP([DO REPEAT -- containing BEGIN DATA]) +AT_DATA([do-repeat.sps], [dnl +DO REPEAT offset = 1 2 3. +DATA LIST NOTABLE /x 1-2. +BEGIN DATA. +10 +20 +30 +END DATA. +COMPUTE x = x + offset. +LIST. +END REPEAT. +]) +AT_CHECK([pspp -o pspp.csv do-repeat.sps]) +AT_CHECK([cat pspp.csv], [0], [dnl +Table: Data List +x +11 +21 +31 + +Table: Data List +x +12 +22 +32 + +Table: Data List +x +13 +23 +33 +]) +AT_CLEANUP + +AT_SETUP([DO REPEAT -- dummy vars not expanded in include files]) +AT_DATA([include.sps], [dnl +COMPUTE y = y + x + 10. +]) +AT_DATA([do-repeat.sps], [dnl +INPUT PROGRAM. +COMPUTE x = 0. +COMPUTE y = 0. +END CASE. +END FILE. +END INPUT PROGRAM. + +DO REPEAT x = 1 2 3. +INCLUDE include.sps. +END REPEAT. + +LIST. +]) +AT_CHECK([pspp -o pspp.csv do-repeat.sps], [0], [dnl +do-repeat.sps:8: warning: DO REPEAT: Dummy variable name `x' hides dictionary variable `x'. +]) +AT_CHECK([cat pspp.csv], [0], [dnl +do-repeat.sps:8: warning: DO REPEAT: Dummy variable name `x' hides dictionary variable `x'. + +Table: Data List +x,y +.00,30.00 +]) +AT_CLEANUP + +AT_SETUP([DO REPEAT -- nested]) AT_DATA([do-repeat.sps], [dnl DATA LIST NOTABLE /a 1. BEGIN DATA. @@ -55,13 +160,7 @@ AT_DATA([do-repeat.sps], [dnl DATA LIST NOTABLE /x 1. DO REPEAT y = 1 TO 10. ]) -AT_CHECK([pspp -o pspp.csv do-repeat.sps], [1], [dnl -error: DO REPEAT: DO REPEAT without END REPEAT. -error: Stopping syntax file processing here to avoid a cascade of dependent command failures. -]) -AT_CHECK([cat pspp.csv], [0], [dnl -error: DO REPEAT: DO REPEAT without END REPEAT. - -error: Stopping syntax file processing here to avoid a cascade of dependent command failures. +AT_CHECK([pspp -O format=csv do-repeat.sps], [1], [dnl +error: DO REPEAT: Syntax error at end of input: expecting END. ]) AT_CLEANUP