dnl PSPP - a program for statistical analysis.
dnl Copyright (C) 2017, 2020 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([Variable parser])

dnl This program tests that both long and short variable names are parsed OK.
dnl It use CROSSTABS, since its TABLES subcommand exercises the array var set
dnl feature.
AT_SETUP([Long variable names])
AT_DATA([longvars.sps], [dnl
DATA LIST LIST /AlphaBetaGamma * B * X * Yabbadabbadoo * .
BEGIN DATA.
2 3 4 5
END DATA.

LIST.

CROSSTABS
	VARIABLES X (1,7) Yabbadabbadoo (1,7)
	/TABLES X BY Yabbadabbadoo.
])
AT_CHECK([pspp -o pspp.csv longvars.sps])
AT_CHECK([cat pspp.csv], [0], [dnl
Table: Reading free-form data from INLINE.
Variable,Format
AlphaBetaGamma,F8.0
B,F8.0
X,F8.0
Yabbadabbadoo,F8.0

Table: Data List
AlphaBetaGamma,B,X,Yabbadabbadoo
2.00,3.00,4.00,5.00

Table: Summary
,Cases,,,,,
,Valid,,Missing,,Total,
,N,Percent,N,Percent,N,Percent
X × Yabbadabbadoo,1,100.0%,0,.0%,1,100.0%

Table: X × Yabbadabbadoo
,,,Yabbadabbadoo,,,,,,,Total
,,,1.00,2.00,3.00,4.00,5.00,6.00,7.00,
X,1.00,Count,0,0,0,0,0,0,0,0
,2.00,Count,0,0,0,0,0,0,0,0
,3.00,Count,0,0,0,0,0,0,0,0
,4.00,Count,0,0,0,0,1,0,0,1
,5.00,Count,0,0,0,0,0,0,0,0
,6.00,Count,0,0,0,0,0,0,0,0
,7.00,Count,0,0,0,0,0,0,0,0
Total,,Count,0,0,0,0,1,0,0,1
])
AT_CLEANUP


AT_SETUP([variable parser crash])

AT_DATA([crash.sps], [dnl
INPUT PROGRAM.
FORMATS ALL(F1).$
END FILE.
END INPUT PROGRAM.
])

AT_CHECK([pspp -O format=txt crash.sps], [1], [ignore])

AT_CLEANUP