Fix assertion for proper Huffman merge pattern: 0 == 1 modulo 1.
[pspp] / tests / data-fmts.stat
1 set echo off.
2 title 'Test non-binary data input formats'.
3
4 data list /a 1-8(a)                     /* 1
5            ahex 9-16(ahex)              /* 2
6            comma 17-24(comma)           /* 3
7            dollar 25-32(dollar)         /* 4
8            f 33-40(f)                   /* 5
9            pibhex 41-48(pibhex)         /* 6
10            n 49-56(n)                   /* 7
11            e 57-64(e).                  /* 8
12 formats comma(comma8.2) dollar(dollar8.2).
13 print /a ahex comma dollar f pibhex n e.
14
15 /* This set of data should produce errors:
16 /*
17 /*  - First line should be error-free.
18 /*  - Second line should have errors for F, PIBHEX, and N fields.
19 /*  - Third line should have errors for COMMA, DOLLAR, F, and N fields.
20 /*  - Fourth line should have errors for F and N fields.
21 /*
22 /*      2       3       4       5       6       7       8       .
23 begin data.
24 abcdefgh414243441,2,3.4,$1,2,3.4123456.6100023451234567812345678
25         4a4b4c4d1,234.56$1234.56  abcd    ghjk  -12345671234+56
26         4C4D4E4F1234+56 $1234+56   0 1    abcd  12345e671234e+56
27         555657581234e+561234e+56 1.2 3  000000001234e67 1234-5
28 end data.
29
30 data list /date 1-32(date)              /* 1
31            time 33-64(time,4).          /* 2
32 print /date time.
33
34 /* This set of data should produce errors:
35 /*
36 /*                              2               
37 begin data.
38 11-july-1982                    12:10:55.59     
39 8-xii-23                        55:56:75.105    
40 end data.
41
42 data list /datetime 1-32(datetime,4)    /* 1
43            adate 33-64(adate).          /* 2
44 print /datetime adate.
45 /*                              2
46 begin data.
47 7-7-8 12:10:55.5                10/15/1582
48 11-jul-1982 9:00                10/01/78
49 end data.
50
51 data list /jdate 1-32(jdate)            /* 1
52            dtime 33-64(dtime).          /* 2
53 print /jdate dtime.
54 /*                              2
55 begin data.
56 1582365                         10 15:30:00.32
57 1996001                         0 8:23:59.99
58 end data.
59
60 data list /wkday 1-32(wkday)            /* 1
61            month 33-64(month).          /* 2
62 print /wkday month.
63 /*                              2
64 begin data.
65 mon                             xii
66 Saturday                        12
67 thursday                        march
68                                 ixiii
69 end data.
70
71 data list /moyr 1-32(moyr)              /* 1
72            qyr 33-64(qyr).              /* 2
73 print /moyr qyr.
74 /*                              2
75 begin data.
76 jan 96                          4 q 1986
77 mar 1896                        1q1600
78 end data.
79
80 data list /wkyr 1-32(wkyr)              /* 1
81            pct 33-64(pct).              /* 2
82 print /wkyr pct.
83 /*                              2
84 begin data.
85 4 wk 97                         105%
86 52 wk 1996                      55.5%
87 end data.
88
89 data list /dot 1-32(dot)                /* 1
90            edate 33-64(edate).          /* 2
91 formats dot(dot32.3).
92 print /dot edate.
93 /*                              2
94 begin data.
95 123.456.789,348                 1.10.1978
96                                 30.12.1996
97 end data.
98
99 formats dot (comma32.3).
100 set decimal comma.
101 print /dot.
102 execute.
103
104 set decimal dot.
105 print /dot.
106 execute.
107
108 data list /sdate 1-32(sdate).           /* 1
109 print /sdate.
110 begin data.
111 1923/7/3
112 1992.5.2
113 end data.
114
115 data list /date 1-32.
116 compute date = date * 86400.
117 print /date (date32).
118 begin data.
119 1
120 50000
121 102
122 1157
123 14288
124 87365
125 109623
126 153211
127 152371
128 144623
129 end data.
130
131 data list /date 1-32(date).
132 compute jdate = date / 86400.
133 print /jdate.
134 begin data.
135 15-OCT-1582
136 06-SEP-1719
137 24-JAN-1583
138 14-DEC-1585
139 26-NOV-1621
140 25-DEC-1821
141 03-DEC-1882
142 06-APR-2002
143 18-DEC-1999
144 01-OCT-1978
145 end data.
146
147 set cca 'NPX,PFX,SFX,NSX'.
148 set ccb 'NPX.PFX.SFX.NSX'.
149 set ccc '-,$,,'.
150 set ccd '(.SFR..)'.
151 set cce 'asld,adl,lfj,lfs'.
152
153 data list /cc 1-32(f).
154 print /'cca: ' cc (cca32.2).
155 print /'ccb: ' cc (ccb32.2).
156 print /'ccc: ' cc (ccc32.2).
157 print /'ccd: ' cc (ccd32.2).
158 print /'cce: ' cc (cce32.2).
159 begin data.
160 78.19
161 -78.19
162 123456789.12
163 1e23
164 end data.
165
166 print /'cca: ' cc (cca16.2).
167 print /'ccb: ' cc (ccb16.2).
168 print /'ccc: ' cc (ccc16.2).
169 print /'ccd: ' cc (ccd16.2).
170 print /'cce: ' cc (cce16.2).
171 execute.
172
173 print /'cca: ' cc (cca8.2).
174 print /'ccb: ' cc (ccb8.2).
175 print /'ccc: ' cc (ccc8.2).
176 print /'ccd: ' cc (ccd8.2).
177 print /'cce: ' cc (cce8.2).
178 execute.
179