AT_BANNER([SET])

# This crashed older versions of PSPP (bug #30682).
AT_SETUP([SET FORMAT to invalid output format])
AT_DATA([set.pspp], [dnl
DATA LIST LIST NOTABLE /x.
BEGIN DATA.
1
2
3
END DATA.
SET FORMAT F41.
DESCRIPTIVES /x.
])
AT_CHECK([pspp -O format=csv set.pspp], [1], [dnl
"set.pspp:7: error: SET: Output format F41.0 specifies width 41, but F requires a width between 1 and 40."

Table: Valid cases = 3; cases with missing value(s) = 0.
Variable,N,Mean,Std Dev,Minimum,Maximum
x,3,2.00,1.00,1.00,3.00
])
AT_CLEANUP



AT_SETUP([SET MXWARNS])
dnl Make sure that syntax processing stops and that
dnl a warning is issued when the MXWARNS figure is
dnl exceeded.
AT_DATA([set.pspp], [dnl
set mxwarns=2.
data list notable list /x (f8.2) y (f8.2).
begin data
1 2
3 r
5 x
q 8
9 9
3 x
w w
end data.

comment The following line should not be executed.
list.
])

AT_CHECK([pspp -O format=csv set.pspp], [0], [dnl
set.pspp:5.3: warning: Data for variable y is not valid as format F: Field contents are not numeric.

set.pspp:6.3: warning: Data for variable y is not valid as format F: Field contents are not numeric.

set.pspp:7.1: warning: Data for variable x is not valid as format F: Field contents are not numeric.

note: Warnings (3) exceed limit (2).  Syntax processing will be halted.
])

AT_CLEANUP




AT_SETUP([SET MXWARNS special case zero])
dnl Make sure that MXWARNS interprets zero as infinity.
AT_DATA([mxwarns.pspp], [dnl
set mxwarns=0.
data list notable list /x (f8.2) y (f8.2) z *.
begin data
1 2 3
3 r 3
5 x 3
q 8 4
9 9 4
3 x 4
w w 4
end data.

list.
])

AT_CHECK([pspp -O format=csv mxwarns.pspp], [0],
[warning: MXWARNS set to zero.  No further warnings will be given even when potentially problematic situations are encountered.

Table: Data List
x,y,z
1.00,2.00,3.00
3.00,.  ,3.00
5.00,.  ,3.00
.  ,8.00,4.00
9.00,9.00,4.00
3.00,.  ,4.00
.  ,.  ,4.00
])

AT_CLEANUP

AT_BANNER([PRESERVE and RESTORE])

AT_SETUP([PRESERVE of SET FORMAT])
AT_DATA([set.pspp], [dnl
SHOW FORMAT.
PRESERVE.
SET FORMAT F10.0.
SHOW FORMAT
RESTORE.
SHOW FORMAT.
])
AT_CHECK([pspp -O format=csv set.pspp], [0], [dnl
set.pspp:1: note: SHOW: FORMAT is F8.2.

set.pspp:5: note: SHOW: FORMAT is F10.0.

set.pspp:6: note: SHOW: FORMAT is F8.2.
])
AT_CLEANUP
