Merge remote-tracking branch 'origin/master' into sheet
[pspp] / tests / language / dictionary / formats.at
1 dnl PSPP - a program for statistical analysis.
2 dnl Copyright (C) 2017 Free Software Foundation, Inc.
3 dnl 
4 dnl This program is free software: you can redistribute it and/or modify
5 dnl it under the terms of the GNU General Public License as published by
6 dnl the Free Software Foundation, either version 3 of the License, or
7 dnl (at your option) any later version.
8 dnl 
9 dnl This program is distributed in the hope that it will be useful,
10 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 dnl GNU General Public License for more details.
13 dnl 
14 dnl You should have received a copy of the GNU General Public License
15 dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 dnl
17 AT_BANNER([FORMATS])
18
19 AT_SETUP([FORMATS positive tests])
20 AT_DATA([formats.sps], [dnl
21 DATA LIST LIST /a b c * x (A1) y (A2) z (A3).
22 DISPLAY VARIABLES.
23 FORMATS /a (COMMA10) b (N4).
24 DISPLAY VARIABLES.
25 FORMATS c (E8.1) x (A1) /y (AHEX4) z (A3).
26 DISPLAY VARIABLES.
27 ])
28 AT_CHECK([pspp -o pspp.csv formats.sps])
29 AT_CHECK([grep -E -v 'Measure|Display' pspp.csv], [0], [dnl
30 Table: Reading free-form data from INLINE.
31 Variable,Format
32 a,F8.0
33 b,F8.0
34 c,F8.0
35 x,A1
36 y,A2
37 z,A3
38
39 Variable,Description,Position
40 a,Format: F8.2,1
41 b,Format: F8.2,2
42 c,Format: F8.2,3
43 x,Format: A1,4
44 y,Format: A2,5
45 z,Format: A3,6
46
47 Variable,Description,Position
48 a,Format: COMMA10.0,1
49 b,Format: N4.0,2
50 c,Format: F8.2,3
51 x,Format: A1,4
52 y,Format: A2,5
53 z,Format: A3,6
54
55 Variable,Description,Position
56 a,Format: COMMA10.0,1
57 b,Format: N4.0,2
58 c,Format: E8.1,3
59 x,Format: A1,4
60 y,Format: AHEX4,5
61 z,Format: A3,6
62 ])
63 AT_CLEANUP
64
65 AT_SETUP([FORMATS negative tests])
66 AT_DATA([formats.sps], [dnl
67 DATA LIST LIST /a b c * x (A1) y (A2) z (A3).
68 FORMATS a (E6.1).
69 FORMATS a y (F4).
70 FORMATS x (A2).
71 FORMATS y (AHEX2).
72 FORMATS x y (A2).
73 ])
74 AT_CHECK([pspp -O format=csv formats.sps], [1], [dnl
75 Table: Reading free-form data from INLINE.
76 Variable,Format
77 a,F8.0
78 b,F8.0
79 c,F8.0
80 x,A1
81 y,A2
82 z,A3
83
84 "formats.sps:2: error: FORMATS: Output format E6.1 specifies 1 decimal place, but the given width does not allow for any decimals."
85
86 formats.sps:3: error: FORMATS: a and y are not the same type.  All variables in this variable list must be of the same type.  y will be omitted from the list.
87
88 formats.sps:4: error: FORMATS: String variable with width 1 is not compatible with format A2.
89
90 formats.sps:5: error: FORMATS: String variable with width 2 is not compatible with format AHEX2.
91
92 formats.sps:6: error: FORMATS: x and y are string variables with different widths.  All variables in this variable list must have the same width.  y will be omitted from the list.
93
94 formats.sps:6: error: FORMATS: String variable with width 1 is not compatible with format A2.
95 ])
96 AT_CLEANUP