SYSFILE INFO: Improve output formatting by using nested tables.
[pspp] / tests / language / dictionary / value-labels.at
1 AT_BANNER([VALUE LABELS])
2
3 AT_SETUP([VALUE LABELS date formats])
4 AT_DATA([value-labels.sps], [dnl
5 DATA LIST LIST NOTABLE /ad (adate10) dt (datetime20).
6 VALUE LABELS ad 'july 10, 1982' 'label 1'
7                 '1-2-93' 'label 2'
8                 '5-4-2003' 'label 3'
9             /dt '12 Apr 2011 06:09:56' 'label 4'.
10 DISPLAY DICTIONARY.
11 ])
12 AT_CHECK([pspp -O format=csv value-labels.sps], [0], [dnl
13 Variable,Description,Position
14 ad,"Format: ADATE10
15
16 Value,Label
17 07/10/1982,label 1
18 01/02/1993,label 2
19 05/04/2003,label 3",1
20 dt,"Format: DATETIME20.0
21
22 Value,Label
23 12-APR-2011 06:09:56,label 4",2
24 ])
25 AT_CLEANUP
26
27 AT_SETUP([VALUE LABELS with new-line])
28 AT_DATA([value-labels.sps], [dnl
29 DATA LIST LIST NOTABLE /x.
30 VALUE LABELS x 1 'one' 2 'first line\nsecond line' 3 'three'.
31 BEGIN DATA.
32 1
33 2
34 3
35 END DATA.
36 DISPLAY DICTIONARY.
37 FREQUENCIES x/STAT=NONE.
38 ])
39 AT_CHECK([pspp -O format=csv value-labels.sps], [0], [dnl
40 Variable,Description,Position
41 x,"Format: F8.2
42
43 Value,Label
44 1.00,one
45 2.00,first line\nsecond line
46 3.00,three",1
47
48 Table: x
49 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
50 one,1.00,1,33.33,33.33,33.33
51 "first line
52 second line",2.00,1,33.33,33.33,66.67
53 three,3.00,1,33.33,33.33,100.00
54 Total,,3,100.0,100.0,
55 ])
56 AT_CLEANUP
57
58 AT_SETUP([VALUE LABELS with new-line in system file])
59 AT_DATA([save.sps], [dnl
60 DATA LIST LIST NOTABLE /x.
61 VALUE LABELS x 1 'one' 2 'first line\nsecond line' 3 'three'.
62 BEGIN DATA.
63 1
64 2
65 3
66 END DATA.
67 SAVE OUTFILE='value-labels.sav'.
68 ])
69 AT_CHECK([pspp -O format=csv save.sps])
70 AT_DATA([get.sps], [dnl
71 GET FILE='value-labels.sav'.
72 DISPLAY DICTIONARY.
73 FREQUENCIES x/STAT=NONE.
74 ])
75 AT_CHECK([pspp -O format=csv get.sps], [0], [dnl
76 Variable,Description,Position
77 x,"Format: F8.2
78
79 Value,Label
80 1.00,one
81 2.00,first line\nsecond line
82 3.00,three",1
83
84 Table: x
85 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
86 one,1.00,1,33.33,33.33,33.33
87 "first line
88 second line",2.00,1,33.33,33.33,66.67
89 three,3.00,1,33.33,33.33,100.00
90 Total,,3,100.0,100.0,
91 ])
92 AT_CLEANUP
93
94 dnl Tests for a bug which caused VALUE LABELS to 
95 dnl crash when given invalid syntax.
96 AT_SETUP([VALUE LABELS invalid syntax bug])
97 AT_DATA([value-labels.sps], [dnl
98 DATA LIST LIST NOTABLE /a * pref * .
99 BEGIN DATA.
100     1.00     1.00    
101     1.00     2.00    
102     2.00     1.00    
103     2.00     2.00    
104 END DATA.
105
106 VALUE LABELS /var=a 'label for a'.
107 ])
108 AT_CHECK([pspp -O format=csv value-labels.sps], [1], [dnl
109 value-labels.sps:9: error: VALUE LABELS: var is not a variable name.
110 ])
111 AT_CLEANUP
112
113 # Tests for a bug which caused a crash if VALUE LABELS had a trailing /.
114 AT_SETUP([VALUE LABELS trailing `/' bug])
115 AT_DATA([value-labels.sps], [dnl
116 DATA LIST LIST NOTABLE /X * .
117 BEGIN DATA.
118
119 2
120 3
121 4
122 END DATA.
123
124
125 VALUE LABELS X 1 'one' 2 'two' 3 'three'/
126
127
128 LIST VARIABLES=X.
129 ])
130 AT_CHECK([pspp -O format=csv value-labels.sps], [0], [dnl
131 Table: Data List
132 X
133 1.00
134 2.00
135 3.00
136 4.00
137 ])
138 AT_CLEANUP