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