Move all command implementations into a single 'commands' directory.
[pspp] / tests / language / commands / split-file.at
diff --git a/tests/language/commands/split-file.at b/tests/language/commands/split-file.at
new file mode 100644 (file)
index 0000000..efdf3dc
--- /dev/null
@@ -0,0 +1,147 @@
+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 <http://www.gnu.org/licenses/>.
+dnl
+AT_BANNER([SPLIT FILE])
+
+AT_SETUP([SPLIT FILE - basic test])
+AT_DATA([split-file.sps], [dnl
+title 'Test SPLIT FILE utility'.
+
+data list notable /X 1 Y 2.
+begin data.
+12
+16
+17
+19
+15
+14
+27
+20
+26
+25
+28
+29
+24
+end data.
+split file by x.
+list.
+])
+AT_CHECK([pspp -o pspp.csv split-file.sps])
+AT_CHECK([cat pspp.csv], [0], [dnl
+Table: Split Values
+Variable,Value
+X,1
+
+Table: Data List
+X,Y
+1,2
+1,6
+1,7
+1,9
+1,5
+1,4
+
+Table: Split Values
+Variable,Value
+X,2
+
+Table: Data List
+X,Y
+2,7
+2,0
+2,6
+2,5
+2,8
+2,9
+2,4
+])
+AT_CLEANUP
+
+AT_SETUP([SPLIT FILE  - vs procedures])
+AT_DATA([split-file.sps], [dnl
+
+* This test is a compendium of those procedures which might
+* have problems when run in conjunction with SPLITS.
+
+data list list /a b c q g *.
+begin data.
+1 2 3     1  0
+4 5 6     0  0
+7 8 9     1  0
+10 11 12  0  1
+13 14 15  1  1
+end data.
+
+split file by g.
+
+
+* The commented out lines are ones which currently fail.
+
+AGGREGATE outfile='foo' /break=c /X=sum(a).
+AUTORECODE variables = c into d .
+COUNT e = c (1 2 3 4 5 6 7).
+CROSSTABS a by b.
+CORRELATIONS /VARIABLES = a b.
+DELETE VARIABLES a.
+DESCRIPTIVES e .
+EXAMINE c by b.
+EXPORT outfile='xxx'.
+FACTOR /VARIABLES = b c d.
+FILTER BY c.
+FREQUENCIES b.
+GLM c BY b.
+GRAPH /HISTOGRAM = b .
+GRAPH /SCATTERPLOT(BIVARIATE) = b with c by e .
+*GRAPH /BAR (GROUPED) = MEAN(b) by c by e.
+GRAPH /BAR = COUNT BY  b.
+LIST.
+LOGISTIC REGRESSION q WITH b.
+MEANS c b.
+NPAR TESTS /MCNEMAR q.
+ONEWAY c BY b.
+QUICK CLUSTER b c.
+RANK b c.
+REGRESSION /VARIABLES = c /DEPENDENT = q.
+RELIABILITY /VARIABLES = c b d.
+RENAME VARIABLES (b = bb).
+ROC bb by q(1).
+SAMPLE 0.9 .
+SAVE outfile='xx.sav'.
+SORT CASES by bb.
+T-TEST /GROUP=q(0,1) /VARIABLES=bb.
+USE ALL.
+FLIP /VARIABLES = bb, c .
+
+execute.
+finish.
+])
+
+AT_CHECK([pspp -O format=csv split-file.sps], [0],[ignore])
+
+AT_CLEANUP
+
+AT_SETUP([SPLIT FILE - split variable limit])
+AT_DATA([split-file.sps], [dnl
+DATA LIST LIST NOTABLE /V1 TO V9.
+SPLIT FILE BY V1 TO V9.
+])
+AT_CHECK([pspp split-file.sps], [1], [dnl
+split-file.sps:2.15-2.22: error: SPLIT FILE: At most 8 split variables may be
+specified.
+    2 | SPLIT FILE BY V1 TO V9.
+      |               ^~~~~~~~
+])
+AT_CLEANUP