data-in: Convert tests for binary and hexadecimal formats to Autotest.
[pspp-builds.git] / tests / data / data-in.at
1 AT_BANNER([data input (data-in)])
2
3 dnl Some very old version of PSPP crashed reading big numbers,
4 dnl so this checks for regressions.
5 AT_SETUP([reading big numbers])
6 AT_KEYWORDS([data-in])
7 AT_DATA([bignum.txt], [dnl
8 0
9 0.1
10 0.5
11 0.8
12 0.9
13 0.999
14 1
15 2
16 3
17 4
18 5
19 12
20 123
21 1234
22 12345
23 123456
24 1234567
25 12345678
26 123456789
27 1234567890
28 19999999999
29 199999999999
30 1234567890123
31 19999999999999
32 199999999999999
33 1234567890123456
34 19999999999999999
35 123456789012345678
36 1999999999999999999
37 12345678901234567890
38 199999999999999999999
39 1234567890123456789012
40 19999999999999999999999
41 123456789012345678901234
42 1999999999999999999999999
43 12345678901234567890123456
44 199999999999999999999999999
45 1234567890123456789012345678
46 19999999999999999999999999999
47 123456789012345678901234567890
48 1999999999999999999999999999999
49 12345678901234567890123456789012
50 199999999999999999999999999999999
51 1234567890123456789012345678901234
52 19999999999999999999999999999999999
53 123456789012345678901234567890123456
54 1999999999999999999999999999999999999
55 12345678901234567890123456789012345678
56 199999999999999999999999999999999999999
57 1234567890123456789012345678901234567890
58 1999999999999999999999999999999999999999
59 1e40
60 1.1e40
61 1.5e40
62 1e41
63 1e50
64 1e100
65 1e150
66 1e200
67 1e250
68 1e300
69 1.79641e308
70 wizzah
71 ])
72 AT_DATA([bignum.sps], [dnl
73 title 'Test use of big numbers'.
74
75 *** Do the portable output.
76 data list file='bignum.txt'/BIGNUM 1-40.
77 list.
78
79 *** Do the nonportable output for fun. 
80 descriptives BIGNUM.
81 ])
82 AT_CHECK([pspp -o pspp.csv bignum.sps], [0], [ignore])
83 AT_CLEANUP
84
85 AT_SETUP([binary and hexadecimal input (IB, PIB, and PIBHEX formats)])
86 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > binhex-in.data])
87 AT_CHECK([wc -c < binhex-in.data], [0], [131072
88 ])
89 AT_DATA([binhex-in.sps], [dnl
90 SET RIB=MSBFIRST.
91 SET ERRORS=NONE.
92 SET MXWARNS=10000000.
93 SET MXERRS=10000000.
94 FILE HANDLE data/NAME='binhex-in.data'/MODE=IMAGE/LRECL=2.
95 DATA LIST FILE=data NOTABLE/ib 1-2 (IB) pib 1-2 (PIB) pibhex 1-2 (PIBHEX).
96 COMPUTE x=$CASENUM - 1.
97 PRINT OUTFILE='binhex-in.out'/x (PIBHEX4) ' ' ib pib pibhex.
98 EXECUTE.
99 ])
100 AT_CHECK([gzip -cd < $top_srcdir/tests/data/binhex-in.expected.cmp.gz | \
101             $PERL -pe "printf ' %04X ', $.-1" > expout])
102 AT_CHECK([pspp -O format=csv binhex-in.sps], [0])
103 AT_CHECK([cat binhex-in.out], [0], [expout])
104 AT_CLEANUP
105
106 AT_SETUP([BCD input (P and PK formats)])
107 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > bcd-in.data])
108 AT_CHECK([wc -c < bcd-in.data], [0], [131072
109 ])
110 AT_DATA([bcd-in.sps], [dnl
111 SET ERRORS=NONE.
112 SET MXWARNS=10000000.
113 SET MXERRS=10000000.
114 FILE HANDLE data/NAME='bcd-in.data'/MODE=IMAGE/LRECL=2.
115 DATA LIST FILE=data NOTABLE/p 1-2 (P) pk 1-2 (PK).
116 COMPUTE x=$CASENUM - 1.
117 PRINT OUTFILE='bcd-in.out'/x (PIBHEX4) ' ' P PK.
118 EXECUTE.
119 ])
120 AT_CHECK([gzip -cd < $top_srcdir/tests/data/bcd-in.expected.cmp.gz | \
121             $PERL -pe "printf ' %04X ', $.-1" > expout])
122 AT_CHECK([pspp -O format=csv bcd-in.sps])
123 AT_CHECK([cat bcd-in.out], [0], [expout])
124 AT_CLEANUP
125
126 AT_SETUP([legacy input (N and Z formats)])
127 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > legacy-in.data])
128 AT_CHECK([wc -c < legacy-in.data], [0], [131072
129 ])
130 AT_DATA([legacy-in.sps], [dnl
131 SET ERRORS=NONE.
132 SET MXWARNS=10000000.
133 SET MXERRS=10000000.
134 FILE HANDLE data/NAME='legacy-in.data'/MODE=IMAGE/LRECL=2.
135 DATA LIST NOTABLE FILE=data/n 1-2 (N) z 1-2 (z).
136 COMPUTE x=$CASENUM - 1.
137 PRINT OUTFILE='legacy-in.out'/x (PIBHEX4) ' ' N Z.
138 EXECUTE.
139 ])
140 AT_CHECK([gzip -cd < $top_srcdir/tests/data/legacy-in.expected.cmp.gz | \
141             $PERL -pe "printf ' %04X ', $.-1" > expout])
142 AT_CHECK([pspp -O format=csv legacy-in.sps])
143 AT_CHECK([cat legacy-in.out], [0], [expout])
144 AT_CLEANUP