New top level menu for Graphs.
[pspp] / tests / language / stats / graph.at
1 AT_BANNER([GRAPH])
2
3 AT_SETUP([GRAPH simple scatterplot])
4 AT_DATA([scatterplot.sps],[
5 * Simple Scatterplot test
6 NEW FILE.
7 INPUT PROGRAM.
8 LOOP #i = 1 to 100.
9 COMPUTE Age = RV.NORMAL(40,10).
10 END CASE.
11 END LOOP.
12 END FILE.
13 END INPUT PROGRAM.
14
15 COMPUTE Size = Age * 3 + 50.
16
17 GRAPH
18     /SCATTERPLOT(BIVARIATE) = Age WITH Size. 
19
20 ])
21
22 AT_CHECK([pspp -O format=csv scatterplot.sps], [0], [ignore])
23
24 AT_CLEANUP
25
26
27 AT_SETUP([GRAPH Scatter and Histogram])
28 AT_DATA([scatterlong.sps],[
29 NEW FILE.
30 INPUT PROGRAM.
31 LOOP #i = 1 to 10000.
32 COMPUTE Age = RV.NORMAL(40,10).
33 COMPUTE CityNum = TRUNC(UNIFORM(2.95)).
34 END CASE.
35 END LOOP.
36 END FILE.
37 END INPUT PROGRAM.
38
39 COMPUTE Size = Age * 3 + 50 + 50*CityNum.
40
41 STRING City (a20).
42
43 Recode CityNum 
44        (0 = "Madrid")
45        (1 = "Paris")
46        (ELSE = "Stockholm")
47        into City.
48
49  GRAPH
50     /SCATTERPLOT(BIVARIATE) = Age WITH Size 
51
52  GRAPH
53     /SCATTERPLOT(BIVARIATE) = Age WITH CityNum
54  
55  GRAPH
56     /SCATTERPLOT = CityNum WITH Age
57
58  GRAPH
59     /SCATTERPLOT = CityNum WITH Size
60
61  GRAPH
62     /SCATTERPLOT(BIVARIATE) = Age WITH Size BY City
63
64  GRAPH
65     /SCATTERPLOT(BIVARIATE) = Age WITH Size BY CityNum
66
67  ADD VALUE LABELS 
68     /CityNum 1 'Rio' 2 'Tokyo' 0 'Mumbai'.
69
70  GRAPH
71     /SCATTERPLOT(BIVARIATE) = Age WITH Size BY CityNum
72
73  GRAPH
74     /HISTOGRAM = Age.
75
76 ])
77
78 AT_CHECK([pspp -O format=pdf scatterlong.sps], [0], [ignore])
79 AT_CLEANUP
80
81 AT_SETUP([GRAPH missing values don't crash])
82 AT_DATA([scatter.sps], [dnl
83 data list list /x * y *.
84 begin data.
85 1 0
86 2 0
87 . 0
88 3 1
89 4 1
90 5 .
91 6 1
92 end data.
93 graph 
94       /scatterplot = x with y.
95 graph
96       /histogram = x. 
97 ])
98 AT_CHECK([pspp -o pspp.pdf scatter.sps])
99 dnl Ignore output -- this is just a no-crash check.
100 AT_CLEANUP
101
102 AT_SETUP([GRAPH missing=VARIABLE no crash])
103 AT_DATA([scatter.sps], [dnl
104 data list list /x * y *.
105 begin data.
106 1 0
107 2 0
108 . 0
109 3 1
110 4 1
111 5 .
112 6 1
113 end data.
114 graph 
115       /scatterplot = x with y
116       /missing = VARIABLE.
117 graph
118       /histogram = x
119       /missing = VARIABLE.
120 ])
121 AT_CHECK([pspp -o pspp.pdf scatter.sps])
122 dnl Ignore output -- this is just a no-crash check.
123 AT_CLEANUP
124
125 AT_SETUP([GRAPH missing value in by variable])
126 AT_DATA([scatter.sps], [dnl
127 data list list /x * y * z *.
128 begin data.
129 1 0 9
130 2 0 9
131 . 0 9
132 3 1 .
133 4 1 8
134 5 . 8
135 6 1 8
136 end data.
137 graph 
138       /scatterplot = x with y by z
139       /missing = VARIABLE.
140
141 graph 
142       /scatterplot = x with y by z.
143
144 ])
145 AT_CHECK([pspp -o pspp.pdf scatter.sps])
146 dnl Ignore output -- this is just a no-crash check.
147 AT_CLEANUP
148
149
150 AT_SETUP([GRAPH histogram with null data])
151 AT_DATA([null-hist.sps], [dnl
152 data list list /x *.
153 begin data.
154 1109 
155
156 end data.
157
158 graph 
159       /histogram = x.
160
161 ])
162
163 AT_CHECK([pspp -o pspp.pdf null-hist.sps], [0], [ignore])
164 dnl Ignore output -- this is just a no-crash check.
165 AT_CLEANUP
166
167
168
169
170 AT_SETUP([GRAPH barcharts])
171 AT_CHECK([ln -s $top_srcdir/examples/physiology.sav .], [0])
172 AT_CHECK([ln -s $top_srcdir/examples/repairs.sav .], [0])
173
174 AT_DATA([barchart.sps], [dnl
175 GET FILE="physiology.sav".
176
177 GRAPH /BAR = COUNT BY SEX.
178
179 GRAPH /BAR = MEAN(height) BY SEX.
180
181 NEW FILE.
182
183 GET FILE="repairs.sav".
184
185 GRAPH /BAR = MEAN (mtbf) BY factory.
186
187 COMPUTE  R = TRUNC(RV.UNIFORM(1,5)).
188
189 GRAPH /BAR = MEAN (mtbf) BY factory BY R.
190 ])
191
192 AT_CHECK([pspp -o pspp.pdf barchart.sps], [0], [ignore])
193 dnl Ignore output -- this is just a no-crash check.
194
195 AT_CLEANUP
196
197
198
199 AT_SETUP([GRAPH barchart arity])
200
201 AT_DATA([barchart.sps], [dnl
202 data list notable list /x y z*.
203 begin data
204 1  1  3
205 2  1  4
206 3  1  3
207 4  1  4
208 5  .  3
209 6  2  4
210 7  2  3
211 8  2  4
212 9  2  3
213 10  2  4
214 end data.
215
216 * This line is invalid
217 GRAPH /BAR = COUNT(x) BY y.
218 ])
219
220 AT_CHECK([pspp -o pspp.pdf barchart.sps], [1], [ignore])
221 dnl Ignore output -- this is just a no-crash check.
222
223 AT_CLEANUP
224
225
226
227
228 AT_SETUP([GRAPH barchart bad syntax])
229
230 AT_DATA([barchart.sps], [dnl
231 data list notable list /x y z*.
232 begin data
233 1  1  3
234 2  1  4
235 3  1  3
236 4  1  4
237 5  .  3
238 6  2  4
239 7  2  3
240 8  2  4
241 9  2  3
242 10  2  4
243 end data.
244
245 * This line is invalid
246 GRAPH /BAR = SCROD BY y.
247 ])
248
249 AT_CHECK([pspp -o pspp.pdf barchart.sps], [1], [ignore])
250 dnl Ignore output -- this is just a no-crash check.
251
252 AT_CLEANUP
253
254
255
256 AT_SETUP([GRAPH barchart full])
257
258 AT_DATA([barchart.sps], [dnl
259 data list notable list /x y z*.
260 begin data
261 1  1  3
262 2  1  4
263 3  1  3
264 4  1  4
265 5  .  3
266 6  2  4
267 7  2  3
268 8  2  4
269 9  2  3
270 10  2  4
271 end data.
272
273 * This line is invalid
274 GRAPH /BAR = COUNT by z.
275 GRAPH /BAR = CUFREQ by z.
276 GRAPH /BAR = PCT by z.
277 GRAPH /BAR = CUPCT by z.
278
279 GRAPH /BAR = MEAN(y) BY z.
280 GRAPH /BAR = SUM(y) BY z.
281 GRAPH /BAR = MAXIMUM(y) BY z.
282 GRAPH /BAR = MINIMUM(y) BY z.
283
284 GRAPH /BAR = MEAN(y) BY z BY y.
285 GRAPH /BAR = SUM(y) BY z BY y.
286 GRAPH /BAR = MAXIMUM(y) BY z BY y.
287 GRAPH /BAR = MINIMUM(y) BY z BY y.
288 ])
289
290 AT_CHECK([pspp -o pspp.pdf barchart.sps], [0], [ignore])
291 dnl Ignore output -- this is just a no-crash check.
292
293 AT_CLEANUP