Rewrite expression code.
[pspp-builds.git] / tests / expressions / epoch.sh
1 #!/bin/sh
2
3 # This program tests epochs by running DEBUG EPOCH.
4
5 TEMPDIR=/tmp/pspp-tst-$$
6
7 here=`pwd`;
8
9 # ensure that top_srcdir is absolute
10 cd $top_srcdir; top_srcdir=`pwd`
11
12 export STAT_CONFIG_PATH=$top_srcdir/config
13
14
15 cleanup()
16 {
17      rm -rf $TEMPDIR
18 }
19
20
21 fail()
22 {
23     echo $activity
24     echo FAILED
25     cleanup;
26     exit 1;
27 }
28
29
30 no_result()
31 {
32     echo $activity
33     echo NO RESULT;
34     cleanup;
35     exit 2;
36 }
37
38 pass()
39 {
40     cleanup;
41     exit 0;
42 }
43
44 mkdir -p $TEMPDIR
45
46 cd $TEMPDIR
47
48 activity="create program"
49 cat > $TEMPDIR/epoch.stat <<EOF
50 SET MXERR 1000.
51 SET MXWARN 1000.
52
53 SET EPOCH 1900.
54 DEBUG EVALUATE/YRMODA(0,1,1) = YRMODA(1900,1,1).
55 DEBUG EVALUATE/YRMODA(1,1,1) = YRMODA(1901,1,1).
56 DEBUG EVALUATE/YRMODA(12,1,1) = YRMODA(1912,1,1).
57 DEBUG EVALUATE/YRMODA(70,1,1) = YRMODA(1970,1,1).
58 DEBUG EVALUATE/YRMODA(87,1,1) = YRMODA(1987,1,1).
59 DEBUG EVALUATE/YRMODA(99,1,1) = YRMODA(1999,1,1).
60 DEBUG EVALUATE/YRMODA(100,1,1).
61 DEBUG EVALUATE/DATE.DMY(1,1,0) = DATE.DMY(1,1,1900).
62 DEBUG EVALUATE/DATE.DMY(1,1,1) = DATE.DMY(1,1,1901).
63 DEBUG EVALUATE/DATE.DMY(1,1,12) = DATE.DMY(1,1,1912).
64 DEBUG EVALUATE/DATE.DMY(1,1,70) = DATE.DMY(1,1,1970).
65 DEBUG EVALUATE/DATE.DMY(1,1,87) = DATE.DMY(1,1,1987).
66 DEBUG EVALUATE/DATE.DMY(1,1,99) = DATE.DMY(1,1,1999).
67 DEBUG EVALUATE/DATE.DMY(1,1,100).
68
69 SET EPOCH 1901.
70 DEBUG EVALUATE/YRMODA(0,1,1) = YRMODA(1900,1,1).
71 DEBUG EVALUATE/YRMODA(1,1,1) = YRMODA(1901,1,1).
72 DEBUG EVALUATE/YRMODA(12,1,1) = YRMODA(1912,1,1).
73 DEBUG EVALUATE/YRMODA(70,1,1) = YRMODA(1970,1,1).
74 DEBUG EVALUATE/YRMODA(87,1,1) = YRMODA(1987,1,1).
75 DEBUG EVALUATE/YRMODA(99,1,1) = YRMODA(1999,1,1).
76 DEBUG EVALUATE/YRMODA(100,1,1).
77 DEBUG EVALUATE/DATE.DMY(1,1,0) = DATE.DMY(1,1,2000).
78 DEBUG EVALUATE/DATE.DMY(1,1,1) = DATE.DMY(1,1,1901).
79 DEBUG EVALUATE/DATE.DMY(1,1,12) = DATE.DMY(1,1,1912).
80 DEBUG EVALUATE/DATE.DMY(1,1,70) = DATE.DMY(1,1,1970).
81 DEBUG EVALUATE/DATE.DMY(1,1,87) = DATE.DMY(1,1,1987).
82 DEBUG EVALUATE/DATE.DMY(1,1,99) = DATE.DMY(1,1,1999).
83 DEBUG EVALUATE/DATE.DMY(1,1,100).
84
85 SET EPOCH 1911.
86 DEBUG EVALUATE/YRMODA(0,1,1) = YRMODA(1900,1,1).
87 DEBUG EVALUATE/YRMODA(1,1,1) = YRMODA(1901,1,1).
88 DEBUG EVALUATE/YRMODA(12,1,1) = YRMODA(1912,1,1).
89 DEBUG EVALUATE/YRMODA(70,1,1) = YRMODA(1970,1,1).
90 DEBUG EVALUATE/YRMODA(87,1,1) = YRMODA(1987,1,1).
91 DEBUG EVALUATE/YRMODA(99,1,1) = YRMODA(1999,1,1).
92 DEBUG EVALUATE/YRMODA(100,1,1).
93 DEBUG EVALUATE/DATE.DMY(1,1,0) = DATE.DMY(1,1,2000).
94 DEBUG EVALUATE/DATE.DMY(1,1,1) = DATE.DMY(1,1,2001).
95 DEBUG EVALUATE/DATE.DMY(1,1,12) = DATE.DMY(1,1,1912).
96 DEBUG EVALUATE/DATE.DMY(1,1,70) = DATE.DMY(1,1,1970).
97 DEBUG EVALUATE/DATE.DMY(1,1,87) = DATE.DMY(1,1,1987).
98 DEBUG EVALUATE/DATE.DMY(1,1,99) = DATE.DMY(1,1,1999).
99 DEBUG EVALUATE/DATE.DMY(1,1,100).
100
101 SET EPOCH 1912.
102 DEBUG EVALUATE/YRMODA(0,1,1) = YRMODA(1900,1,1).
103 DEBUG EVALUATE/YRMODA(1,1,1) = YRMODA(1901,1,1).
104 DEBUG EVALUATE/YRMODA(12,1,1) = YRMODA(1912,1,1).
105 DEBUG EVALUATE/YRMODA(70,1,1) = YRMODA(1970,1,1).
106 DEBUG EVALUATE/YRMODA(87,1,1) = YRMODA(1987,1,1).
107 DEBUG EVALUATE/YRMODA(99,1,1) = YRMODA(1999,1,1).
108 DEBUG EVALUATE/YRMODA(100,1,1).
109 DEBUG EVALUATE/DATE.DMY(1,1,0) = DATE.DMY(1,1,2000).
110 DEBUG EVALUATE/DATE.DMY(1,1,1) = DATE.DMY(1,1,2001).
111 DEBUG EVALUATE/DATE.DMY(1,1,12) = DATE.DMY(1,1,1912).
112 DEBUG EVALUATE/DATE.DMY(1,1,70) = DATE.DMY(1,1,1970).
113 DEBUG EVALUATE/DATE.DMY(1,1,87) = DATE.DMY(1,1,1987).
114 DEBUG EVALUATE/DATE.DMY(1,1,99) = DATE.DMY(1,1,1999).
115 DEBUG EVALUATE/DATE.DMY(1,1,100).
116
117 SET EPOCH 2012.
118 DEBUG EVALUATE/YRMODA(0,1,1) = YRMODA(1900,1,1).
119 DEBUG EVALUATE/YRMODA(1,1,1) = YRMODA(1901,1,1).
120 DEBUG EVALUATE/YRMODA(12,1,1) = YRMODA(1912,1,1).
121 DEBUG EVALUATE/YRMODA(70,1,1) = YRMODA(1970,1,1).
122 DEBUG EVALUATE/YRMODA(87,1,1) = YRMODA(1987,1,1).
123 DEBUG EVALUATE/YRMODA(99,1,1) = YRMODA(1999,1,1).
124 DEBUG EVALUATE/YRMODA(100,1,1).
125 DEBUG EVALUATE/DATE.DMY(1,1,0) = DATE.DMY(1,1,2100).
126 DEBUG EVALUATE/DATE.DMY(1,1,1) = DATE.DMY(1,1,2101).
127 DEBUG EVALUATE/DATE.DMY(1,1,12) = DATE.DMY(1,1,2012).
128 DEBUG EVALUATE/DATE.DMY(1,1,70) = DATE.DMY(1,1,2070).
129 DEBUG EVALUATE/DATE.DMY(1,1,87) = DATE.DMY(1,1,2087).
130 DEBUG EVALUATE/DATE.DMY(1,1,99) = DATE.DMY(1,1,2099).
131 DEBUG EVALUATE/DATE.DMY(1,1,100).
132 EOF
133 if [ $? -ne 0 ] ; then no_result ; fi
134
135 activity="run program"
136 $SUPERVISOR $here/../src/pspp $TEMPDIR/epoch.stat > $TEMPDIR/epoch.err 2> $TEMPDIR/epoch.out
137
138 activity="compare results"
139 diff -b -B $TEMPDIR/epoch.out - <<EOF
140 YRMODA(0,1,1) = YRMODA(1900,1,1) => true
141 YRMODA(1,1,1) = YRMODA(1901,1,1) => true
142 YRMODA(12,1,1) = YRMODA(1912,1,1) => true
143 YRMODA(70,1,1) = YRMODA(1970,1,1) => true
144 YRMODA(87,1,1) = YRMODA(1987,1,1) => true
145 YRMODA(99,1,1) = YRMODA(1999,1,1) => true
146 YRMODA(100,1,1) => sysmis
147 DATE.DMY(1,1,0) = DATE.DMY(1,1,1900) => true
148 DATE.DMY(1,1,1) = DATE.DMY(1,1,1901) => true
149 DATE.DMY(1,1,12) = DATE.DMY(1,1,1912) => true
150 DATE.DMY(1,1,70) = DATE.DMY(1,1,1970) => true
151 DATE.DMY(1,1,87) = DATE.DMY(1,1,1987) => true
152 DATE.DMY(1,1,99) = DATE.DMY(1,1,1999) => true
153 DATE.DMY(1,1,100) => sysmis
154
155 YRMODA(0,1,1) = YRMODA(1900,1,1) => true
156 YRMODA(1,1,1) = YRMODA(1901,1,1) => true
157 YRMODA(12,1,1) = YRMODA(1912,1,1) => true
158 YRMODA(70,1,1) = YRMODA(1970,1,1) => true
159 YRMODA(87,1,1) = YRMODA(1987,1,1) => true
160 YRMODA(99,1,1) = YRMODA(1999,1,1) => true
161 YRMODA(100,1,1) => sysmis
162 DATE.DMY(1,1,0) = DATE.DMY(1,1,2000) => true
163 DATE.DMY(1,1,1) = DATE.DMY(1,1,1901) => true
164 DATE.DMY(1,1,12) = DATE.DMY(1,1,1912) => true
165 DATE.DMY(1,1,70) = DATE.DMY(1,1,1970) => true
166 DATE.DMY(1,1,87) = DATE.DMY(1,1,1987) => true
167 DATE.DMY(1,1,99) = DATE.DMY(1,1,1999) => true
168 DATE.DMY(1,1,100) => sysmis
169
170 YRMODA(0,1,1) = YRMODA(1900,1,1) => true
171 YRMODA(1,1,1) = YRMODA(1901,1,1) => true
172 YRMODA(12,1,1) = YRMODA(1912,1,1) => true
173 YRMODA(70,1,1) = YRMODA(1970,1,1) => true
174 YRMODA(87,1,1) = YRMODA(1987,1,1) => true
175 YRMODA(99,1,1) = YRMODA(1999,1,1) => true
176 YRMODA(100,1,1) => sysmis
177 DATE.DMY(1,1,0) = DATE.DMY(1,1,2000) => true
178 DATE.DMY(1,1,1) = DATE.DMY(1,1,2001) => true
179 DATE.DMY(1,1,12) = DATE.DMY(1,1,1912) => true
180 DATE.DMY(1,1,70) = DATE.DMY(1,1,1970) => true
181 DATE.DMY(1,1,87) = DATE.DMY(1,1,1987) => true
182 DATE.DMY(1,1,99) = DATE.DMY(1,1,1999) => true
183 DATE.DMY(1,1,100) => sysmis
184
185 YRMODA(0,1,1) = YRMODA(1900,1,1) => true
186 YRMODA(1,1,1) = YRMODA(1901,1,1) => true
187 YRMODA(12,1,1) = YRMODA(1912,1,1) => true
188 YRMODA(70,1,1) = YRMODA(1970,1,1) => true
189 YRMODA(87,1,1) = YRMODA(1987,1,1) => true
190 YRMODA(99,1,1) = YRMODA(1999,1,1) => true
191 YRMODA(100,1,1) => sysmis
192 DATE.DMY(1,1,0) = DATE.DMY(1,1,2000) => true
193 DATE.DMY(1,1,1) = DATE.DMY(1,1,2001) => true
194 DATE.DMY(1,1,12) = DATE.DMY(1,1,1912) => true
195 DATE.DMY(1,1,70) = DATE.DMY(1,1,1970) => true
196 DATE.DMY(1,1,87) = DATE.DMY(1,1,1987) => true
197 DATE.DMY(1,1,99) = DATE.DMY(1,1,1999) => true
198 DATE.DMY(1,1,100) => sysmis
199
200 YRMODA(0,1,1) = YRMODA(1900,1,1) => true
201 YRMODA(1,1,1) = YRMODA(1901,1,1) => true
202 YRMODA(12,1,1) = YRMODA(1912,1,1) => true
203 YRMODA(70,1,1) = YRMODA(1970,1,1) => true
204 YRMODA(87,1,1) = YRMODA(1987,1,1) => true
205 YRMODA(99,1,1) = YRMODA(1999,1,1) => true
206 YRMODA(100,1,1) => sysmis
207 DATE.DMY(1,1,0) = DATE.DMY(1,1,2100) => true
208 DATE.DMY(1,1,1) = DATE.DMY(1,1,2101) => true
209 DATE.DMY(1,1,12) = DATE.DMY(1,1,2012) => true
210 DATE.DMY(1,1,70) = DATE.DMY(1,1,2070) => true
211 DATE.DMY(1,1,87) = DATE.DMY(1,1,2087) => true
212 DATE.DMY(1,1,99) = DATE.DMY(1,1,2099) => true
213 DATE.DMY(1,1,100) => sysmis
214 EOF
215
216 if [ $? -ne 0 ] ; then no_result ; fi
217
218
219 if [ $? -ne 0 ] ; then fail ; fi
220
221
222
223 pass;