1 dnl PSPP - a program for statistical analysis.
2 dnl Copyright (C) 2017 Free Software Foundation, Inc.
4 dnl This program is free software: you can redistribute it and/or modify
5 dnl it under the terms of the GNU General Public License as published by
6 dnl the Free Software Foundation, either version 3 of the License, or
7 dnl (at your option) any later version.
9 dnl This program is distributed in the hope that it will be useful,
10 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 dnl GNU General Public License for more details.
14 dnl You should have received a copy of the GNU General Public License
15 dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
16 AT_BANNER([expressions])
18 AT_SETUP([expressions - numeric syntax])
19 AT_KEYWORDS([expression expressions evaluate])
20 AT_DATA([evaluate-base.sps], [
21 DEBUG EVALUATE SET opt.
25 DEBUG EVALUATE /1e-99.
28 for opt in OPT NOOPT; do
30 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
31 AT_CHECK([pspp --testing-mode evaluate.sps], [0], [dnl
43 AT_SETUP([expressions - coercion to and from Boolean])
44 AT_KEYWORDS([expression expressions evaluate])
45 AT_DATA([evaluate-base.sps], [
46 DEBUG EVALUATE SET opt.
47 DEBUG EVALUATE/0 AND 1.
48 DEBUG EVALUATE/$true AND 1.
49 DEBUG EVALUATE/1 OR $false.
50 DEBUG EVALUATE/1 OR $sysmis.
51 DEBUG EVALUATE/2 OR $sysmis.
52 DEBUG EVALUATE/1 AND 3.
55 for opt in OPT NOOPT; do
57 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
58 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
67 evaluate.sps:7.16-7.27: error: DEBUG EVALUATE: The operands of OR must have
69 7 | DEBUG EVALUATE/2 OR $sysmis.
72 evaluate.sps:7.16: note: DEBUG EVALUATE: This operand with unexpected value 2
74 7 | DEBUG EVALUATE/2 OR $sysmis.
77 2 OR $sysmis => sysmis
79 evaluate.sps:8.16-8.22: error: DEBUG EVALUATE: The operands of AND must have
81 8 | DEBUG EVALUATE/1 AND 3.
84 evaluate.sps:8.22: note: DEBUG EVALUATE: This operand with unexpected value 3
86 8 | DEBUG EVALUATE/1 AND 3.
94 AT_SETUP([expressions - addition and subtraction])
95 AT_KEYWORDS([expression expressions evaluate])
96 AT_DATA([evaluate-base.sps], [
97 DEBUG EVALUATE SET opt.
98 DEBUG EVALUATE /1 + $true.
99 DEBUG EVALUATE /$sysmis + 1.
100 DEBUG EVALUATE /7676 + $sysmis.
101 DEBUG EVALUATE /1 +3 - 2 +4 - 5.
102 DEBUG EVALUATE /$true - 4/3.
103 DEBUG EVALUATE /1 - 2.
104 DEBUG EVALUATE /52 -23.
106 DEBUG EVALUATE /('foo') + 5.
107 DEBUG EVALUATE /('foo') + ('bar'). /* Concatenation requires CONCAT.
108 DEBUG EVALUATE /'foo' + 'bar'. /* Lexical concatenation succeeds.
110 DEBUG EVALUATE /'string' - 1e10.
111 DEBUG EVALUATE /9.5 - ''.
113 DEBUG EVALUATE /F2.0 + 3.
116 for opt in OPT NOOPT; do
118 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
119 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
122 $sysmis + 1 => sysmis
124 7676 + $sysmis => sysmis
126 1 +3 - 2 +4 - 5 => 1.00
134 evaluate.sps:11.18-11.27: error: DEBUG EVALUATE: Both operands of + must be
136 11 | DEBUG EVALUATE /('foo') + 5.
139 evaluate.sps:11.18-11.22: note: DEBUG EVALUATE: This operand has type 'string'.
140 11 | DEBUG EVALUATE /('foo') + 5.
143 evaluate.sps:11.27: note: DEBUG EVALUATE: This operand has type 'number'.
144 11 | DEBUG EVALUATE /('foo') + 5.
149 evaluate.sps:12.18-12.32: error: DEBUG EVALUATE: Both operands of + must be
151 12 | DEBUG EVALUATE /('foo') + ('bar'). /* Concatenation requires CONCAT.
154 evaluate.sps:12.18-12.22: note: DEBUG EVALUATE: This operand has type 'string'.
155 12 | DEBUG EVALUATE /('foo') + ('bar'). /* Concatenation requires CONCAT.
158 evaluate.sps:12.28-12.32: note: DEBUG EVALUATE: This operand has type 'string'.
159 12 | DEBUG EVALUATE /('foo') + ('bar'). /* Concatenation requires CONCAT.
162 ('foo') + ('bar') => error
164 'foo' + 'bar' => "foobar"
166 evaluate.sps:15.17-15.31: error: DEBUG EVALUATE: Both operands of - must be
168 15 | DEBUG EVALUATE /'string' - 1e10.
171 evaluate.sps:15.17-15.24: note: DEBUG EVALUATE: This operand has type 'string'.
172 15 | DEBUG EVALUATE /'string' - 1e10.
175 evaluate.sps:15.26-15.31: note: DEBUG EVALUATE: This operand has type 'number'.
176 15 | DEBUG EVALUATE /'string' - 1e10.
179 'string' - 1e10 => error
181 evaluate.sps:16.17-16.24: error: DEBUG EVALUATE: Both operands of - must be
183 16 | DEBUG EVALUATE /9.5 - ''.
186 evaluate.sps:16.17-16.19: note: DEBUG EVALUATE: This operand has type 'number'.
187 16 | DEBUG EVALUATE /9.5 - ''.
190 evaluate.sps:16.23-16.24: note: DEBUG EVALUATE: This operand has type 'string'.
191 16 | DEBUG EVALUATE /9.5 - ''.
196 evaluate.sps:18.17-18.24: error: DEBUG EVALUATE: Both operands of + must be
198 18 | DEBUG EVALUATE /F2.0 + 3.
201 evaluate.sps:18.17-18.20: note: DEBUG EVALUATE: This operand has type 'format'.
202 18 | DEBUG EVALUATE /F2.0 + 3.
205 evaluate.sps:18.24: note: DEBUG EVALUATE: This operand has type 'number'.
206 18 | DEBUG EVALUATE /F2.0 + 3.
214 AT_SETUP([expressions - multiplication and division])
215 AT_KEYWORDS([expression expressions evaluate])
216 AT_DATA([evaluate-base.sps], [
217 DEBUG EVALUATE SET opt.
218 DEBUG EVALUATE /5 * 10.
219 DEBUG EVALUATE /10 * $true.
220 DEBUG EVALUATE /$true * 5.
221 DEBUG EVALUATE /1.5 * $true.
222 DEBUG EVALUATE /$sysmis * 15.
223 DEBUG EVALUATE /8.5 / $sysmis.
224 DEBUG EVALUATE /2 * 5 / 10.
225 DEBUG EVALUATE /1 / 2.
226 DEBUG EVALUATE /2 / 5.
227 DEBUG EVALUATE /12 / 3 / 2.
229 DEBUG EVALUATE /'x' * 1.
230 DEBUG EVALUATE /2 / 'x'.
233 for opt in OPT NOOPT; do
235 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
236 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
245 $sysmis * 15 => sysmis
247 8.5 / $sysmis => sysmis
257 evaluate.sps:14.17-14.23: error: DEBUG EVALUATE: Both operands of * must be
259 14 | DEBUG EVALUATE /'x' * 1.
262 evaluate.sps:14.17-14.19: note: DEBUG EVALUATE: This operand has type 'string'.
263 14 | DEBUG EVALUATE /'x' * 1.
266 evaluate.sps:14.23: note: DEBUG EVALUATE: This operand has type 'number'.
267 14 | DEBUG EVALUATE /'x' * 1.
272 evaluate.sps:15.17-15.23: error: DEBUG EVALUATE: Both operands of / must be
274 15 | DEBUG EVALUATE /2 / 'x'.
277 evaluate.sps:15.17: note: DEBUG EVALUATE: This operand has type 'number'.
278 15 | DEBUG EVALUATE /2 / 'x'.
281 evaluate.sps:15.21-15.23: note: DEBUG EVALUATE: This operand has type 'string'.
282 15 | DEBUG EVALUATE /2 / 'x'.
290 AT_SETUP([expressions - exponentiation])
291 AT_KEYWORDS([expression expressions evaluate])
292 AT_DATA([evaluate-base.sps], [
293 DEBUG EVALUATE SET opt.
294 DEBUG EVALUATE /2**8.
295 DEBUG EVALUATE /(2**3)**4.
296 DEBUG EVALUATE /2**3**4.
297 DEBUG EVALUATE /-2**2.
298 DEBUG EVALUATE /-2**-3**-4.
299 DEBUG EVALUATE /-((2**-3)**-4).
302 for opt in OPT NOOPT; do
304 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
305 AT_CHECK([pspp --testing-mode evaluate.sps], [0], [dnl
310 evaluate.sps:5.17-5.23: warning: DEBUG EVALUATE: The exponentiation operator
311 (`**') is left-associative: `a**b**c' equals `(a**b)**c', not `a**(b**c)'. To
312 disable this warning, insert parentheses.
313 5 | DEBUG EVALUATE /2**3**4.
320 evaluate.sps:7.17-7.26: warning: DEBUG EVALUATE: The exponentiation operator
321 (`**') is left-associative: `a**b**c' equals `(a**b)**c', not `a**(b**c)'. To
322 disable this warning, insert parentheses.
323 7 | DEBUG EVALUATE /-2**-3**-4.
326 -2**-3**-4 => -4096.00
328 -((2**-3)**-4) => -4096.00
333 AT_SETUP([expressions - unary minus])
334 AT_KEYWORDS([expression expressions evaluate])
335 AT_DATA([evaluate-base.sps], [
336 DEBUG EVALUATE SET opt.
337 DEBUG EVALUATE /2+-3.
338 DEBUG EVALUATE /2*-3.
339 DEBUG EVALUATE /-3**2.
340 DEBUG EVALUATE /(-3)**2.
341 DEBUG EVALUATE /-(3**2).
342 DEBUG EVALUATE /2**-1.
343 DEBUG EVALUATE /0**0.
344 DEBUG EVALUATE /0**-1.
345 DEBUG EVALUATE /(-3)**1.5.
348 for opt in OPT NOOPT; do
349 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
350 AT_CHECK([pspp --testing-mode evaluate.sps], [0], [dnl
372 AT_SETUP([expressions - AND truth table])
373 AT_KEYWORDS([expression expressions evaluate])
374 AT_DATA([evaluate-base.sps], [
375 DEBUG EVALUATE SET opt.
376 DEBUG EVALUATE /$false AND $false.
377 DEBUG EVALUATE /$false AND $true.
378 DEBUG EVALUATE /$false AND $sysmis.
379 DEBUG EVALUATE /$true AND $false.
380 DEBUG EVALUATE /$true AND $true.
381 DEBUG EVALUATE /$true AND $sysmis.
382 DEBUG EVALUATE /$sysmis AND $false.
383 DEBUG EVALUATE /$sysmis AND $true.
384 DEBUG EVALUATE /$sysmis AND $sysmis.
385 DEBUG EVALUATE /$false & $false.
386 DEBUG EVALUATE /$false & $true.
387 DEBUG EVALUATE /$false & $sysmis.
388 DEBUG EVALUATE /$true & $false.
389 DEBUG EVALUATE /$true & $true.
390 DEBUG EVALUATE /$true & $sysmis.
391 DEBUG EVALUATE /$sysmis & $false.
392 DEBUG EVALUATE /$sysmis & $true.
393 DEBUG EVALUATE /$sysmis & $sysmis.
396 for opt in OPT NOOPT; do
398 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
399 AT_CHECK([pspp --testing-mode evaluate.sps], [0], [dnl
400 $false AND $false => false
402 $false AND $true => false
404 $false AND $sysmis => false
406 $true AND $false => false
408 $true AND $true => true
410 $true AND $sysmis => sysmis
412 $sysmis AND $false => false
414 $sysmis AND $true => sysmis
416 $sysmis AND $sysmis => sysmis
418 $false & $false => false
420 $false & $true => false
422 $false & $sysmis => false
424 $true & $false => false
426 $true & $true => true
428 $true & $sysmis => sysmis
430 $sysmis & $false => false
432 $sysmis & $true => sysmis
434 $sysmis & $sysmis => sysmis
439 AT_SETUP([expressions - OR truth table])
440 AT_KEYWORDS([expression expressions evaluate])
441 AT_DATA([evaluate-base.sps], [
442 DEBUG EVALUATE SET opt.
443 DEBUG EVALUATE /$false OR $false.
444 DEBUG EVALUATE /$false OR $true.
445 DEBUG EVALUATE /$false OR $sysmis.
446 DEBUG EVALUATE /$true OR $false.
447 DEBUG EVALUATE /$true OR $true.
448 DEBUG EVALUATE /$true OR $sysmis.
449 DEBUG EVALUATE /$sysmis OR $false.
450 DEBUG EVALUATE /$sysmis OR $true.
451 DEBUG EVALUATE /$sysmis OR $sysmis.
452 DEBUG EVALUATE /$false | $false.
453 DEBUG EVALUATE /$false | $true.
454 DEBUG EVALUATE /$false | $sysmis.
455 DEBUG EVALUATE /$true | $false.
456 DEBUG EVALUATE /$true | $true.
457 DEBUG EVALUATE /$true | $sysmis.
458 DEBUG EVALUATE /$sysmis | $false.
459 DEBUG EVALUATE /$sysmis | $true.
460 DEBUG EVALUATE /$sysmis | $sysmis.
463 for opt in OPT NOOPT; do
465 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
466 AT_CHECK([pspp --testing-mode evaluate.sps], [0], [dnl
467 $false OR $false => false
469 $false OR $true => true
471 $false OR $sysmis => sysmis
473 $true OR $false => true
475 $true OR $true => true
477 $true OR $sysmis => true
479 $sysmis OR $false => sysmis
481 $sysmis OR $true => true
483 $sysmis OR $sysmis => sysmis
485 $false | $false => false
487 $false | $true => true
489 $false | $sysmis => sysmis
491 $true | $false => true
493 $true | $true => true
495 $true | $sysmis => true
497 $sysmis | $false => sysmis
499 $sysmis | $true => true
501 $sysmis | $sysmis => sysmis
506 AT_SETUP([expressions - NOT truth table])
507 AT_KEYWORDS([expression expressions evaluate])
508 AT_DATA([evaluate-base.sps], [
509 DEBUG EVALUATE SET opt.
510 DEBUG EVALUATE /not $false.
511 DEBUG EVALUATE /not 0.
512 DEBUG EVALUATE /not 2.5.
513 DEBUG EVALUATE /not $true.
514 DEBUG EVALUATE /not 1.
515 DEBUG EVALUATE /not $sysmis.
516 DEBUG EVALUATE /~ $false.
518 DEBUG EVALUATE /~ 2.5.
519 DEBUG EVALUATE /~ $true.
521 DEBUG EVALUATE /~ $sysmis.
524 for opt in OPT NOOPT; do
526 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
527 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
532 evaluate.sps:5.17-5.23: error: DEBUG EVALUATE: The operand of NOT must have
534 5 | DEBUG EVALUATE /not 2.5.
537 evaluate.sps:5.21-5.23: note: DEBUG EVALUATE: This operand with unexpected
538 value 2.5 will be treated as 0.
539 5 | DEBUG EVALUATE /not 2.5.
548 not $sysmis => sysmis
554 evaluate.sps:11.17-11.21: error: DEBUG EVALUATE: The operand of NOT must have
556 11 | DEBUG EVALUATE /~ 2.5.
559 evaluate.sps:11.19-11.21: note: DEBUG EVALUATE: This operand with unexpected
560 value 2.5 will be treated as 0.
561 11 | DEBUG EVALUATE /~ 2.5.
575 AT_SETUP([expressions - = <= <])
576 AT_KEYWORDS([expression expressions evaluate eq le lt])
577 AT_DATA([evaluate-base.sps], [
578 DEBUG EVALUATE SET opt.
579 DEBUG EVALUATE /1 eq 1.
580 DEBUG EVALUATE /1 = 1.
581 DEBUG EVALUATE /1 eq 2.
582 DEBUG EVALUATE /2 = 3.
583 DEBUG EVALUATE /1 eq 'foobar'.
584 DEBUG EVALUATE /'baz' = 10.
585 DEBUG EVALUATE /'baz' = f8.2.
586 DEBUG EVALUATE /'baz' = 'baz'.
587 DEBUG EVALUATE /'quux' = 'bar'.
588 DEBUG EVALUATE /'bar ' = 'bar'.
589 DEBUG EVALUATE /'asdf ' = 'asdf '.
590 DEBUG EVALUATE /'asdfj ' = 'asdf'.
591 DEBUG EVALUATE /1 + 2 = 3.
592 DEBUG EVALUATE /1 >= 2 = 2 ge 3.
593 DEBUG EVALUATE /3 ne 2 != 1.
594 DEBUG EVALUATE /3 > 2 > 1.
596 DEBUG EVALUATE /1 <= 2.
597 DEBUG EVALUATE /2.5 <= 1.5.
598 DEBUG EVALUATE /1 le 2.
599 DEBUG EVALUATE /2 <= 2.
600 DEBUG EVALUATE /2 le 2.
601 DEBUG EVALUATE /2 < = 2.
602 DEBUG EVALUATE /1 <= 'foobar'.
603 DEBUG EVALUATE /'baz' <= 10.
604 DEBUG EVALUATE /'quux' <= 5.55.
605 DEBUG EVALUATE /'0123' <= '0123'.
606 DEBUG EVALUATE /'0123' <= '0124'.
607 DEBUG EVALUATE /'0124' le '0123'.
608 DEBUG EVALUATE /'0123 ' <= '0123'.
609 DEBUG EVALUATE /'0123' le '0123 '.
611 DEBUG EVALUATE /1 < 2.
612 DEBUG EVALUATE /2.5 < 1.5.
613 DEBUG EVALUATE /3.5 lt 4.
614 DEBUG EVALUATE /4 lt 3.5
615 DEBUG EVALUATE /1 lt 'foobar'.
616 DEBUG EVALUATE /5 lt 'foobar'.
617 DEBUG EVALUATE /'baz' < 10.
618 DEBUG EVALUATE /'quux' < 5.55.
619 DEBUG EVALUATE /'0123' lt '0123'.
620 DEBUG EVALUATE /'0123' < '0124'.
621 DEBUG EVALUATE /'0124' lt '0123'.
622 DEBUG EVALUATE /'0123 ' < '0123'.
623 DEBUG EVALUATE /'0123' lt '0123 '.
626 for opt in OPT NOOPT; do
628 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
629 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
638 evaluate.sps:7.17-7.29: error: DEBUG EVALUATE: Both operands of EQ must have
640 7 | DEBUG EVALUATE /1 eq 'foobar'.
643 evaluate.sps:7.17: note: DEBUG EVALUATE: This operand has type 'number'.
644 7 | DEBUG EVALUATE /1 eq 'foobar'.
647 evaluate.sps:7.22-7.29: note: DEBUG EVALUATE: This operand has type 'string'.
648 7 | DEBUG EVALUATE /1 eq 'foobar'.
651 1 eq 'foobar' => error
653 evaluate.sps:8.17-8.26: error: DEBUG EVALUATE: Both operands of = must have the
655 8 | DEBUG EVALUATE /'baz' = 10.
658 evaluate.sps:8.17-8.21: note: DEBUG EVALUATE: This operand has type 'string'.
659 8 | DEBUG EVALUATE /'baz' = 10.
662 evaluate.sps:8.25-8.26: note: DEBUG EVALUATE: This operand has type 'number'.
663 8 | DEBUG EVALUATE /'baz' = 10.
668 evaluate.sps:9.17-9.28: error: DEBUG EVALUATE: Both operands of = must have the
670 9 | DEBUG EVALUATE /'baz' = f8.2.
673 evaluate.sps:9.17-9.21: note: DEBUG EVALUATE: This operand has type 'string'.
674 9 | DEBUG EVALUATE /'baz' = f8.2.
677 evaluate.sps:9.25-9.28: note: DEBUG EVALUATE: This operand has type 'format'.
678 9 | DEBUG EVALUATE /'baz' = f8.2.
681 'baz' = f8.2 => error
683 'baz' = 'baz' => true
685 'quux' = 'bar' => false
687 'bar ' = 'bar' => true
689 'asdf ' = 'asdf ' => true
691 'asdfj ' = 'asdf' => false
695 evaluate.sps:16.17-16.31: warning: DEBUG EVALUATE: Chaining relational
696 operators (e.g. `a < b < c') will not produce the mathematically expected
697 result. Use the AND logical operator to fix the problem (e.g. `a < b AND b <
698 c'). To disable this warning, insert parentheses.
699 16 | DEBUG EVALUATE /1 >= 2 = 2 ge 3.
702 1 >= 2 = 2 ge 3 => false
704 evaluate.sps:17.24: error: DEBUG EVALUATE: Syntax error at `!': expecting end
709 evaluate.sps:18.17-18.25: warning: DEBUG EVALUATE: Chaining relational
710 operators (e.g. `a < b < c') will not produce the mathematically expected
711 result. Use the AND logical operator to fix the problem (e.g. `a < b AND b <
712 c'). To disable this warning, insert parentheses.
713 18 | DEBUG EVALUATE /3 > 2 > 1.
728 evaluate.sps:25.21: error: DEBUG EVALUATE: Syntax error at `='.
732 evaluate.sps:26.17-26.29: error: DEBUG EVALUATE: Both operands of <= must have
734 26 | DEBUG EVALUATE /1 <= 'foobar'.
737 evaluate.sps:26.17: note: DEBUG EVALUATE: This operand has type 'number'.
738 26 | DEBUG EVALUATE /1 <= 'foobar'.
741 evaluate.sps:26.22-26.29: note: DEBUG EVALUATE: This operand has type 'string'.
742 26 | DEBUG EVALUATE /1 <= 'foobar'.
745 1 <= 'foobar' => error
747 evaluate.sps:27.17-27.27: error: DEBUG EVALUATE: Both operands of <= must have
749 27 | DEBUG EVALUATE /'baz' <= 10.
752 evaluate.sps:27.17-27.21: note: DEBUG EVALUATE: This operand has type 'string'.
753 27 | DEBUG EVALUATE /'baz' <= 10.
756 evaluate.sps:27.26-27.27: note: DEBUG EVALUATE: This operand has type 'number'.
757 27 | DEBUG EVALUATE /'baz' <= 10.
762 evaluate.sps:28.17-28.30: error: DEBUG EVALUATE: Both operands of <= must have
764 28 | DEBUG EVALUATE /'quux' <= 5.55.
767 evaluate.sps:28.17-28.22: note: DEBUG EVALUATE: This operand has type 'string'.
768 28 | DEBUG EVALUATE /'quux' <= 5.55.
771 evaluate.sps:28.27-28.30: note: DEBUG EVALUATE: This operand has type 'number'.
772 28 | DEBUG EVALUATE /'quux' <= 5.55.
775 'quux' <= 5.55 => error
777 '0123' <= '0123' => true
779 '0123' <= '0124' => true
781 '0124' le '0123' => false
783 '0123 ' <= '0123' => true
785 '0123' le '0123 ' => true
795 evaluate.sps:39.17-39.29: error: DEBUG EVALUATE: Both operands of < must have
797 39 | DEBUG EVALUATE /1 lt 'foobar'.
800 evaluate.sps:39.17: note: DEBUG EVALUATE: This operand has type 'number'.
801 39 | DEBUG EVALUATE /1 lt 'foobar'.
804 evaluate.sps:39.22-39.29: note: DEBUG EVALUATE: This operand has type 'string'.
805 39 | DEBUG EVALUATE /1 lt 'foobar'.
808 1 lt 'foobar' => error
810 evaluate.sps:40.17-40.29: error: DEBUG EVALUATE: Both operands of < must have
812 40 | DEBUG EVALUATE /5 lt 'foobar'.
815 evaluate.sps:40.17: note: DEBUG EVALUATE: This operand has type 'number'.
816 40 | DEBUG EVALUATE /5 lt 'foobar'.
819 evaluate.sps:40.22-40.29: note: DEBUG EVALUATE: This operand has type 'string'.
820 40 | DEBUG EVALUATE /5 lt 'foobar'.
823 5 lt 'foobar' => error
825 evaluate.sps:41.17-41.26: error: DEBUG EVALUATE: Both operands of < must have
827 41 | DEBUG EVALUATE /'baz' < 10.
830 evaluate.sps:41.17-41.21: note: DEBUG EVALUATE: This operand has type 'string'.
831 41 | DEBUG EVALUATE /'baz' < 10.
834 evaluate.sps:41.25-41.26: note: DEBUG EVALUATE: This operand has type 'number'.
835 41 | DEBUG EVALUATE /'baz' < 10.
840 evaluate.sps:42.17-42.29: error: DEBUG EVALUATE: Both operands of < must have
842 42 | DEBUG EVALUATE /'quux' < 5.55.
845 evaluate.sps:42.17-42.22: note: DEBUG EVALUATE: This operand has type 'string'.
846 42 | DEBUG EVALUATE /'quux' < 5.55.
849 evaluate.sps:42.26-42.29: note: DEBUG EVALUATE: This operand has type 'number'.
850 42 | DEBUG EVALUATE /'quux' < 5.55.
853 'quux' < 5.55 => error
855 '0123' lt '0123' => false
857 '0123' < '0124' => true
859 '0124' lt '0123' => false
861 '0123 ' < '0123' => false
863 '0123' lt '0123 ' => false
868 AT_SETUP([expressions - >= > <>])
869 AT_KEYWORDS([expression expressions evaluate ge gt ne])
870 AT_DATA([evaluate-base.sps], [
871 DEBUG EVALUATE SET opt.
872 DEBUG EVALUATE /1 >= 2.
873 DEBUG EVALUATE /2.5 >= 1.5
874 DEBUG EVALUATE /1 ge 2.
875 DEBUG EVALUATE /2 >= 2.
876 DEBUG EVALUATE /2 ge 2.
877 DEBUG EVALUATE /2 > = 2.
878 DEBUG EVALUATE /1 >= 'foobar'.
879 DEBUG EVALUATE /5 ge 'foobar'.
880 DEBUG EVALUATE /'baz' ge 10.
881 DEBUG EVALUATE /'0123' ge '0123'.
882 DEBUG EVALUATE /'0123' >= '0124'.
883 DEBUG EVALUATE /'0124' >= '0123'.
884 DEBUG EVALUATE /'0123 ' ge '0123'.
885 DEBUG EVALUATE /'0123' >= '0123 '.
887 DEBUG EVALUATE /1 > 2.
888 DEBUG EVALUATE /2.5 > 1.5
889 DEBUG EVALUATE /3.5 gt 4.
890 DEBUG EVALUATE /4 gt 3.5
891 DEBUG EVALUATE /1 gt 'foobar'.
892 DEBUG EVALUATE /'baz' > 10.
893 DEBUG EVALUATE /'0123' > '0123'.
894 DEBUG EVALUATE /'0123' > '0124'.
895 DEBUG EVALUATE /'0124' > '0123'.
896 DEBUG EVALUATE /'0123 ' > '0123'.
897 DEBUG EVALUATE /'0123 ' > '0123 '.
899 DEBUG EVALUATE /1 ne 1.
900 DEBUG EVALUATE /1 ~= 1.
901 DEBUG EVALUATE /1 <> 2.
902 DEBUG EVALUATE /2 ne 3.
903 DEBUG EVALUATE /1 ~= 'foobar'.
904 DEBUG EVALUATE /'baz' ne 10.
905 DEBUG EVALUATE /'quux' ~= 5.55.
906 DEBUG EVALUATE /'foobar' <> 'foobar'.
907 DEBUG EVALUATE /'quux' ne 'bar'.
908 DEBUG EVALUATE /'bar ' <> 'bar'.
909 DEBUG EVALUATE /'asdf ' ~= "asdf ".
910 DEBUG EVALUATE /1 < > 1.
911 DEBUG EVALUATE /1 ~ = 1.
914 for opt in OPT NOOPT; do
916 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
917 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
928 evaluate.sps:8.21: error: DEBUG EVALUATE: Syntax error at `='.
932 evaluate.sps:9.17-9.29: error: DEBUG EVALUATE: Both operands of >= must have
934 9 | DEBUG EVALUATE /1 >= 'foobar'.
937 evaluate.sps:9.17: note: DEBUG EVALUATE: This operand has type 'number'.
938 9 | DEBUG EVALUATE /1 >= 'foobar'.
941 evaluate.sps:9.22-9.29: note: DEBUG EVALUATE: This operand has type 'string'.
942 9 | DEBUG EVALUATE /1 >= 'foobar'.
945 1 >= 'foobar' => error
947 evaluate.sps:10.17-10.29: error: DEBUG EVALUATE: Both operands of >= must have
949 10 | DEBUG EVALUATE /5 ge 'foobar'.
952 evaluate.sps:10.17: note: DEBUG EVALUATE: This operand has type 'number'.
953 10 | DEBUG EVALUATE /5 ge 'foobar'.
956 evaluate.sps:10.22-10.29: note: DEBUG EVALUATE: This operand has type 'string'.
957 10 | DEBUG EVALUATE /5 ge 'foobar'.
960 5 ge 'foobar' => error
962 evaluate.sps:11.17-11.27: error: DEBUG EVALUATE: Both operands of >= must have
964 11 | DEBUG EVALUATE /'baz' ge 10.
967 evaluate.sps:11.17-11.21: note: DEBUG EVALUATE: This operand has type 'string'.
968 11 | DEBUG EVALUATE /'baz' ge 10.
971 evaluate.sps:11.26-11.27: note: DEBUG EVALUATE: This operand has type 'number'.
972 11 | DEBUG EVALUATE /'baz' ge 10.
977 '0123' ge '0123' => true
979 '0123' >= '0124' => false
981 '0124' >= '0123' => true
983 '0123 ' ge '0123' => true
985 '0123' >= '0123 ' => true
995 evaluate.sps:22.17-22.29: error: DEBUG EVALUATE: Both operands of > must have
997 22 | DEBUG EVALUATE /1 gt 'foobar'.
1000 evaluate.sps:22.17: note: DEBUG EVALUATE: This operand has type 'number'.
1001 22 | DEBUG EVALUATE /1 gt 'foobar'.
1004 evaluate.sps:22.22-22.29: note: DEBUG EVALUATE: This operand has type 'string'.
1005 22 | DEBUG EVALUATE /1 gt 'foobar'.
1008 1 gt 'foobar' => error
1010 evaluate.sps:23.17-23.26: error: DEBUG EVALUATE: Both operands of > must have
1012 23 | DEBUG EVALUATE /'baz' > 10.
1015 evaluate.sps:23.17-23.21: note: DEBUG EVALUATE: This operand has type 'string'.
1016 23 | DEBUG EVALUATE /'baz' > 10.
1019 evaluate.sps:23.25-23.26: note: DEBUG EVALUATE: This operand has type 'number'.
1020 23 | DEBUG EVALUATE /'baz' > 10.
1025 '0123' > '0123' => false
1027 '0123' > '0124' => false
1029 '0124' > '0123' => true
1031 '0123 ' > '0123' => false
1033 '0123 ' > '0123 ' => false
1043 evaluate.sps:34.17-34.29: error: DEBUG EVALUATE: Both operands of ~= must have
1045 34 | DEBUG EVALUATE /1 ~= 'foobar'.
1048 evaluate.sps:34.17: note: DEBUG EVALUATE: This operand has type 'number'.
1049 34 | DEBUG EVALUATE /1 ~= 'foobar'.
1052 evaluate.sps:34.22-34.29: note: DEBUG EVALUATE: This operand has type 'string'.
1053 34 | DEBUG EVALUATE /1 ~= 'foobar'.
1056 1 ~= 'foobar' => error
1058 evaluate.sps:35.17-35.27: error: DEBUG EVALUATE: Both operands of ~= must have
1060 35 | DEBUG EVALUATE /'baz' ne 10.
1063 evaluate.sps:35.17-35.21: note: DEBUG EVALUATE: This operand has type 'string'.
1064 35 | DEBUG EVALUATE /'baz' ne 10.
1067 evaluate.sps:35.26-35.27: note: DEBUG EVALUATE: This operand has type 'number'.
1068 35 | DEBUG EVALUATE /'baz' ne 10.
1071 'baz' ne 10 => error
1073 evaluate.sps:36.17-36.30: error: DEBUG EVALUATE: Both operands of ~= must have
1075 36 | DEBUG EVALUATE /'quux' ~= 5.55.
1078 evaluate.sps:36.17-36.22: note: DEBUG EVALUATE: This operand has type 'string'.
1079 36 | DEBUG EVALUATE /'quux' ~= 5.55.
1082 evaluate.sps:36.27-36.30: note: DEBUG EVALUATE: This operand has type 'number'.
1083 36 | DEBUG EVALUATE /'quux' ~= 5.55.
1086 'quux' ~= 5.55 => error
1088 'foobar' <> 'foobar' => false
1090 'quux' ne 'bar' => true
1092 'bar ' <> 'bar' => false
1094 'asdf ' ~= "asdf " => false
1096 evaluate.sps:41.21: error: DEBUG EVALUATE: Syntax error at `>'.
1100 evaluate.sps:42.19: error: DEBUG EVALUATE: Syntax error at `~': expecting end
1108 AT_SETUP([expressions - EXP LG10 LN SQRT ABS MOD MOD10 RND TRUNC])
1109 AT_KEYWORDS([expression expressions evaluate])
1110 AT_DATA([evaluate-base.sps], [
1111 DEBUG EVALUATE SET opt.
1112 DEBUG EVALUATE /EXP(10).
1113 DEBUG EVALUATE /EXP('x').
1115 DEBUG EVALUATE /LG10(500).
1116 DEBUG EVALUATE /LG10('x').
1118 DEBUG EVALUATE /SQRT(500).
1119 DEBUG EVALUATE /SQRT(-1).
1121 DEBUG EVALUATE /ABS(-10.5).
1122 DEBUG EVALUATE /ABS(55.79).
1123 DEBUG EVALUATE /ABS(0).
1124 DEBUG EVALUATE /ABS(-0).
1126 DEBUG EVALUATE /MOD(55.5, 2).
1127 DEBUG EVALUATE /MOD(-55.5, 2).
1128 DEBUG EVALUATE /MOD(55.5, -2).
1129 DEBUG EVALUATE /MOD(-55.5, -2).
1130 DEBUG EVALUATE /MOD('a', 2).
1131 DEBUG EVALUATE /MOD(2, 'a').
1132 DEBUG EVALUATE /MOD('a', 'b').
1134 DEBUG EVALUATE /MOD10(55.5).
1135 DEBUG EVALUATE /MOD10(-55.5).
1137 DEBUG EVALUATE /RND(5.4).
1138 DEBUG EVALUATE /RND(5.6).
1139 DEBUG EVALUATE /RND(-5.4).
1140 DEBUG EVALUATE /RND(-5.6).
1141 DEBUG EVALUATE /RND(5.56, .1).
1142 DEBUG EVALUATE /RND(-5.56, .1)
1143 DEBUG EVALUATE /RND(.5).
1144 DEBUG EVALUATE /RND(.5 - 2**-53).
1145 DEBUG EVALUATE /RND(.5 - 2**-52).
1146 DEBUG EVALUATE /RND(.5 - 2**-51).
1147 DEBUG EVALUATE /RND(.5 - 2**-45).
1148 DEBUG EVALUATE /RND(.5 - 2**-45, 1, 10).
1149 DEBUG EVALUATE /RND('x').
1151 DEBUG EVALUATE /TRUNC(1.2).
1152 DEBUG EVALUATE /TRUNC(1.9).
1153 DEBUG EVALUATE /TRUNC(-1.2).
1154 DEBUG EVALUATE /TRUNC(-1.9).
1155 DEBUG EVALUATE /TRUNC(5.06, .1).
1156 DEBUG EVALUATE /TRUNC(-5.06, .1).
1157 DEBUG EVALUATE /TRUNC(1).
1158 DEBUG EVALUATE /TRUNC(1 - 2**-53).
1159 DEBUG EVALUATE /TRUNC(1 - 2**-52).
1160 DEBUG EVALUATE /TRUNC(1 - 2**-51).
1161 DEBUG EVALUATE /TRUNC(1 - 2**-45).
1162 DEBUG EVALUATE /TRUNC(1 - 2**-45, 1, 10).
1163 DEBUG EVALUATE /TRUNC('x').
1166 for opt in OPT NOOPT; do
1168 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
1169 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
1172 evaluate.sps:4.17-4.24: error: DEBUG EVALUATE: Type mismatch invoking
1173 EXP(number) as EXP(string).
1174 4 | DEBUG EVALUATE /EXP('x').
1181 evaluate.sps:7.17-7.25: error: DEBUG EVALUATE: Type mismatch invoking
1182 LG10(number) as LG10(string).
1183 7 | DEBUG EVALUATE /LG10('x').
1200 MOD(55.5, 2) => 1.50
1202 MOD(-55.5, 2) => -1.50
1204 MOD(55.5, -2) => 1.50
1206 MOD(-55.5, -2) => -1.50
1208 evaluate.sps:21.17-21.27: error: DEBUG EVALUATE: Type mismatch invoking
1209 MOD(number, number) as MOD(string, number).
1210 21 | DEBUG EVALUATE /MOD('a', 2).
1213 MOD('a', 2) => error
1215 evaluate.sps:22.17-22.27: error: DEBUG EVALUATE: Type mismatch invoking
1216 MOD(number, number) as MOD(number, string).
1217 22 | DEBUG EVALUATE /MOD(2, 'a').
1220 MOD(2, 'a') => error
1222 evaluate.sps:23.17-23.29: error: DEBUG EVALUATE: Type mismatch invoking
1223 MOD(number, number) as MOD(string, string).
1224 23 | DEBUG EVALUATE /MOD('a', 'b').
1227 MOD('a', 'b') => error
1231 MOD10(-55.5) => -5.50
1241 RND(5.56, .1) => 5.60
1243 RND(-5.56, .1) => -5.60
1247 RND(.5 - 2**-53) => 1.00
1249 RND(.5 - 2**-52) => 1.00
1251 RND(.5 - 2**-51) => 1.00
1253 RND(.5 - 2**-45) => 0.00
1255 RND(.5 - 2**-45, 1, 10) => 1.00
1257 evaluate.sps:40.17-40.24: error: DEBUG EVALUATE: Function invocation
1258 RND(string) does not match any known function. Candidates are:
1261 RND(number, number, number).
1262 40 | DEBUG EVALUATE /RND('x').
1271 TRUNC(-1.2) => -1.00
1273 TRUNC(-1.9) => -1.00
1275 TRUNC(5.06, .1) => 5.00
1277 TRUNC(-5.06, .1) => -5.00
1281 TRUNC(1 - 2**-53) => 1.00
1283 TRUNC(1 - 2**-52) => 1.00
1285 TRUNC(1 - 2**-51) => 1.00
1287 TRUNC(1 - 2**-45) => 0.00
1289 TRUNC(1 - 2**-45, 1, 10) => 1.00
1291 evaluate.sps:54.17-54.26: error: DEBUG EVALUATE: Function invocation
1292 TRUNC(string) does not match any known function. Candidates are:
1294 TRUNC(number, number)
1295 TRUNC(number, number, number).
1296 54 | DEBUG EVALUATE /TRUNC('x').
1304 AT_SETUP([expressions - ACOS ARSIN ARTAN COS SIN TAN])
1305 AT_KEYWORDS([expression expressions evaluate])
1306 AT_DATA([evaluate-base.sps], [
1307 DEBUG EVALUATE SET opt.
1308 DEBUG EVALUATE /ACOS(.5) / 3.14159 * 180.
1309 DEBUG EVALUATE /ARCOS(.75) / 3.14159 * 180.
1310 DEBUG EVALUATE /ARCOS(-.5) / 3.14159 * 180.
1311 DEBUG EVALUATE /ACOS(-.75) / 3.14159 * 180.
1312 DEBUG EVALUATE /ACOS(-1) / 3.14159 * 180.
1313 DEBUG EVALUATE /ARCOS(1) / 3.14159 * 180.
1314 DEBUG EVALUATE /ACOS(-1.01) / 3.14159 * 180.
1315 DEBUG EVALUATE /ARCOS(1.01) / 3.14159 * 180.
1316 DEBUG EVALUATE /ACOS('x') / 3.14159 * 180.
1318 DEBUG EVALUATE /ASIN(.5) / 3.14159 * 180.
1319 DEBUG EVALUATE /ARSIN(.25) / 3.14159 * 180.
1320 DEBUG EVALUATE /ARSIN(-.5) / 3.14159 * 180.
1321 DEBUG EVALUATE /ASIN(-.25) / 3.14159 * 180.
1322 DEBUG EVALUATE /ASIN(-1.01) / 3.14159 * 180.
1323 DEBUG EVALUATE /ARSIN(1.01) / 3.14159 * 180.
1324 DEBUG EVALUATE /ASIN('x') / 3.14159 * 180.
1326 DEBUG EVALUATE /ATAN(1) / 3.14159 * 180.
1327 DEBUG EVALUATE /ARTAN(10) / 3.14159 * 180.
1328 DEBUG EVALUATE /ARTAN(-1) / 3.14159 * 180.
1329 DEBUG EVALUATE /ATAN(-10) / 3.14159 * 180.
1330 DEBUG EVALUATE /ATAN('x') / 3.14159 * 180.
1332 DEBUG EVALUATE /COS(60 / 180 * 3.14159).
1333 DEBUG EVALUATE /COS(45 / 180 * 3.14159).
1334 DEBUG EVALUATE /COS(30 / 180 * 3.14159).
1335 DEBUG EVALUATE /COS(15 / 180 * 3.14159).
1336 DEBUG EVALUATE /COS(-60 / 180 * 3.14159).
1337 DEBUG EVALUATE /COS(-45 / 180 * 3.14159).
1338 DEBUG EVALUATE /COS(-30 / 180 * 3.14159).
1339 DEBUG EVALUATE /COS(-15 / 180 * 3.14159).
1340 DEBUG EVALUATE /COS(123 / 180 * 3.14159).
1341 DEBUG EVALUATE /COS(321 / 180 * 3.14159).
1342 DEBUG EVALUATE /COS('x').
1344 DEBUG EVALUATE /SIN(60 / 180 * 3.14159).
1345 DEBUG EVALUATE /SIN(45 / 180 * 3.14159).
1346 DEBUG EVALUATE /SIN(30 / 180 * 3.14159).
1347 DEBUG EVALUATE /SIN(15 / 180 * 3.14159).
1348 DEBUG EVALUATE /SIN(-60 / 180 * 3.14159).
1349 DEBUG EVALUATE /SIN(-45 / 180 * 3.14159).
1350 DEBUG EVALUATE /SIN(-30 / 180 * 3.14159).
1351 DEBUG EVALUATE /SIN(-15 / 180 * 3.14159).
1352 DEBUG EVALUATE /SIN(123 / 180 * 3.14159).
1353 DEBUG EVALUATE /SIN(321 / 180 * 3.14159).
1354 DEBUG EVALUATE /SIN('x').
1356 DEBUG EVALUATE /TAN(60 / 180 * 3.14159).
1357 DEBUG EVALUATE /TAN(45 / 180 * 3.14159).
1358 DEBUG EVALUATE /TAN(30 / 180 * 3.14159).
1359 DEBUG EVALUATE /TAN(15 / 180 * 3.14159).
1360 DEBUG EVALUATE /TAN(-60 / 180 * 3.14159).
1361 DEBUG EVALUATE /TAN(-45 / 180 * 3.14159).
1362 DEBUG EVALUATE /TAN(-30 / 180 * 3.14159).
1363 DEBUG EVALUATE /TAN(-15 / 180 * 3.14159).
1364 DEBUG EVALUATE /TAN(123 / 180 * 3.14159).
1365 DEBUG EVALUATE /TAN(321 / 180 * 3.14159).
1366 DEBUG EVALUATE /TAN('x').
1369 for opt in OPT NOOPT; do
1371 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
1372 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
1373 ACOS(.5) / 3.14159 * 180 => 60.00
1375 ARCOS(.75) / 3.14159 * 180 => 41.41
1377 ARCOS(-.5) / 3.14159 * 180 => 120.00
1379 ACOS(-.75) / 3.14159 * 180 => 138.59
1381 ACOS(-1) / 3.14159 * 180 => 180.00
1383 ARCOS(1) / 3.14159 * 180 => 0.00
1385 ACOS(-1.01) / 3.14159 * 180 => sysmis
1387 ARCOS(1.01) / 3.14159 * 180 => sysmis
1389 evaluate.sps:11.17-11.25: error: DEBUG EVALUATE: Type mismatch invoking
1390 ACOS(number) as ACOS(string).
1391 11 | DEBUG EVALUATE /ACOS('x') / 3.14159 * 180.
1394 ACOS('x') / 3.14159 * 180 => error
1396 ASIN(.5) / 3.14159 * 180 => 30.00
1398 ARSIN(.25) / 3.14159 * 180 => 14.48
1400 ARSIN(-.5) / 3.14159 * 180 => -30.00
1402 ASIN(-.25) / 3.14159 * 180 => -14.48
1404 ASIN(-1.01) / 3.14159 * 180 => sysmis
1406 ARSIN(1.01) / 3.14159 * 180 => sysmis
1408 evaluate.sps:19.17-19.25: error: DEBUG EVALUATE: Type mismatch invoking
1409 ASIN(number) as ASIN(string).
1410 19 | DEBUG EVALUATE /ASIN('x') / 3.14159 * 180.
1413 ASIN('x') / 3.14159 * 180 => error
1415 ATAN(1) / 3.14159 * 180 => 45.00
1417 ARTAN(10) / 3.14159 * 180 => 84.29
1419 ARTAN(-1) / 3.14159 * 180 => -45.00
1421 ATAN(-10) / 3.14159 * 180 => -84.29
1423 evaluate.sps:25.17-25.25: error: DEBUG EVALUATE: Type mismatch invoking
1424 ATAN(number) as ATAN(string).
1425 25 | DEBUG EVALUATE /ATAN('x') / 3.14159 * 180.
1428 ATAN('x') / 3.14159 * 180 => error
1430 COS(60 / 180 * 3.14159) => 0.50
1432 COS(45 / 180 * 3.14159) => 0.71
1434 COS(30 / 180 * 3.14159) => 0.87
1436 COS(15 / 180 * 3.14159) => 0.97
1438 COS(-60 / 180 * 3.14159) => 0.50
1440 COS(-45 / 180 * 3.14159) => 0.71
1442 COS(-30 / 180 * 3.14159) => 0.87
1444 COS(-15 / 180 * 3.14159) => 0.97
1446 COS(123 / 180 * 3.14159) => -0.54
1448 COS(321 / 180 * 3.14159) => 0.78
1450 evaluate.sps:37.17-37.24: error: DEBUG EVALUATE: Type mismatch invoking
1451 COS(number) as COS(string).
1452 37 | DEBUG EVALUATE /COS('x').
1457 SIN(60 / 180 * 3.14159) => 0.87
1459 SIN(45 / 180 * 3.14159) => 0.71
1461 SIN(30 / 180 * 3.14159) => 0.50
1463 SIN(15 / 180 * 3.14159) => 0.26
1465 SIN(-60 / 180 * 3.14159) => -0.87
1467 SIN(-45 / 180 * 3.14159) => -0.71
1469 SIN(-30 / 180 * 3.14159) => -0.50
1471 SIN(-15 / 180 * 3.14159) => -0.26
1473 SIN(123 / 180 * 3.14159) => 0.84
1475 SIN(321 / 180 * 3.14159) => -0.63
1477 evaluate.sps:49.17-49.24: error: DEBUG EVALUATE: Type mismatch invoking
1478 SIN(number) as SIN(string).
1479 49 | DEBUG EVALUATE /SIN('x').
1484 TAN(60 / 180 * 3.14159) => 1.73
1486 TAN(45 / 180 * 3.14159) => 1.00
1488 TAN(30 / 180 * 3.14159) => 0.58
1490 TAN(15 / 180 * 3.14159) => 0.27
1492 TAN(-60 / 180 * 3.14159) => -1.73
1494 TAN(-45 / 180 * 3.14159) => -1.00
1496 TAN(-30 / 180 * 3.14159) => -0.58
1498 TAN(-15 / 180 * 3.14159) => -0.27
1500 TAN(123 / 180 * 3.14159) => -1.54
1502 TAN(321 / 180 * 3.14159) => -0.81
1504 evaluate.sps:61.17-61.24: error: DEBUG EVALUATE: Type mismatch invoking
1505 TAN(number) as TAN(string).
1506 61 | DEBUG EVALUATE /TAN('x').
1514 AT_SETUP([expressions - vector indexing])
1515 AT_KEYWORDS([expression expressions evaluate])
1516 AT_DATA([evaluate-base.sps], [
1517 DEBUG EVALUATE SET opt.
1519 DEBUG EVALUATE (a=11)(b=22)(c=33) VECTOR/v(1).
1520 DEBUG EVALUATE (a=11)(b=22)(c=33) VECTOR/v(2).
1521 DEBUG EVALUATE (a=11)(b=22)(c=33) VECTOR/v(3).
1522 DEBUG EVALUATE (a=11)(b=22)(c=33) VECTOR/v($sysmis).
1523 DEBUG EVALUATE (a=11)(b=22)(c=33) VECTOR/v(0).
1524 DEBUG EVALUATE (a=11)(b=22)(c=33) VECTOR/v(4).
1526 DEBUG EVALUATE (a='abc')(b='def')(c='ghi') VECTOR/v(1).
1527 DEBUG EVALUATE (a='abc')(b='def')(c='ghi') VECTOR/v(2).
1528 DEBUG EVALUATE (a='abc')(b='def')(c='ghi') VECTOR/v(3).
1529 DEBUG EVALUATE (a='abc')(b='def')(c='ghi') VECTOR/v($sysmis).
1530 DEBUG EVALUATE (a='abc')(b='def')(c='ghi') VECTOR/v(0).
1531 DEBUG EVALUATE (a='abc')(b='def')(c='ghi') VECTOR/v(4).
1535 for opt in OPT NOOPT; do
1537 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
1538 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
1545 evaluate.sps:7.42-7.51: error: DEBUG EVALUATE: Index outside valid range 1 to
1546 3, inclusive, for vector V. The value will be treated as system-missing.
1547 7 | DEBUG EVALUATE (a=11)(b=22)(c=33) VECTOR/v($sysmis).
1550 evaluate.sps:7.44-7.50: note: DEBUG EVALUATE: The index is system-missing.
1551 7 | DEBUG EVALUATE (a=11)(b=22)(c=33) VECTOR/v($sysmis).
1554 v($sysmis) => sysmis
1556 evaluate.sps:8.42-8.45: error: DEBUG EVALUATE: Index outside valid range 1 to
1557 3, inclusive, for vector V. The value will be treated as system-missing.
1558 8 | DEBUG EVALUATE (a=11)(b=22)(c=33) VECTOR/v(0).
1561 evaluate.sps:8.44: note: DEBUG EVALUATE: The index has value 0.
1562 8 | DEBUG EVALUATE (a=11)(b=22)(c=33) VECTOR/v(0).
1567 evaluate.sps:9.42-9.45: error: DEBUG EVALUATE: Index outside valid range 1 to
1568 3, inclusive, for vector V. The value will be treated as system-missing.
1569 9 | DEBUG EVALUATE (a=11)(b=22)(c=33) VECTOR/v(4).
1572 evaluate.sps:9.44: note: DEBUG EVALUATE: The index has value 4.
1573 9 | DEBUG EVALUATE (a=11)(b=22)(c=33) VECTOR/v(4).
1584 evaluate.sps:14.51-14.60: error: DEBUG EVALUATE: Index outside valid range 1 to
1585 3, inclusive, for vector V. The value will be treated as system-missing.
1586 14 | DEBUG EVALUATE (a='abc')(b='def')(c='ghi') VECTOR/v($sysmis).
1589 evaluate.sps:14.53-14.59: note: DEBUG EVALUATE: The index is system-missing.
1590 14 | DEBUG EVALUATE (a='abc')(b='def')(c='ghi') VECTOR/v($sysmis).
1595 evaluate.sps:15.51-15.54: error: DEBUG EVALUATE: Index outside valid range 1 to
1596 3, inclusive, for vector V. The value will be treated as system-missing.
1597 15 | DEBUG EVALUATE (a='abc')(b='def')(c='ghi') VECTOR/v(0).
1600 evaluate.sps:15.53: note: DEBUG EVALUATE: The index has value 0.
1601 15 | DEBUG EVALUATE (a='abc')(b='def')(c='ghi') VECTOR/v(0).
1606 evaluate.sps:16.51-16.54: error: DEBUG EVALUATE: Index outside valid range 1 to
1607 3, inclusive, for vector V. The value will be treated as system-missing.
1608 16 | DEBUG EVALUATE (a='abc')(b='def')(c='ghi') VECTOR/v(4).
1611 evaluate.sps:16.53: note: DEBUG EVALUATE: The index has value 4.
1612 16 | DEBUG EVALUATE (a='abc')(b='def')(c='ghi') VECTOR/v(4).
1620 AT_SETUP([expressions - MISSING NMISS NVALID SYSMIS])
1621 AT_KEYWORDS([expression expressions evaluate])
1622 AT_DATA([evaluate-base.sps], [
1623 DEBUG EVALUATE SET opt.
1624 DEBUG EVALUATE /MISSING(10).
1625 DEBUG EVALUATE /MISSING($SYSMIS).
1626 DEBUG EVALUATE /MISSING(ASIN(1.01)).
1627 DEBUG EVALUATE /MISSING(ASIN(.5)).
1628 DEBUG EVALUATE /MISSING(' ').
1630 DEBUG EVALUATE (x=5)/x.
1631 DEBUG EVALUATE (x=5 MISSING)/x.
1632 DEBUG EVALUATE (x=5 MISSING)/x + 1.
1633 DEBUG EVALUATE (x=SYSMIS)/x.
1635 DEBUG EVALUATE (x=5) VECTOR/v(1).
1636 DEBUG EVALUATE (x=5 MISSING) VECTOR/v(1).
1637 DEBUG EVALUATE (x=5 MISSING) VECTOR/v(1) + 1.
1638 DEBUG EVALUATE (x=SYSMIS) VECTOR/v(1).
1640 DEBUG EVALUATE (x=5)/VALUE(x).
1641 DEBUG EVALUATE (x=5 MISSING)/VALUE(x).
1642 DEBUG EVALUATE (x=SYSMIS)/VALUE(x).
1644 DEBUG EVALUATE (x=5) VECTOR/VALUE(v(1)).
1645 DEBUG EVALUATE (x=5 MISSING) VECTOR/VALUE(v(1)).
1646 DEBUG EVALUATE (x=SYSMIS) VECTOR/VALUE(v(1)).
1648 DEBUG EVALUATE (x=5)/MISSING(x).
1649 DEBUG EVALUATE (x=5 MISSING)/MISSING(x).
1650 DEBUG EVALUATE (x=SYSMIS)/MISSING(x).
1652 DEBUG EVALUATE (x=5)/SYSMIS(x).
1653 DEBUG EVALUATE (x=5 MISSING)/SYSMIS(x).
1654 DEBUG EVALUATE (x=SYSMIS)/SYSMIS(x).
1656 DEBUG EVALUATE /NMISS($sysmis).
1657 DEBUG EVALUATE /NMISS(0).
1658 DEBUG EVALUATE /NMISS($sysmis, $sysmis, $sysmis).
1659 DEBUG EVALUATE /NMISS(1, 2, 3, 4).
1660 DEBUG EVALUATE /NMISS(1, $sysmis, $sysmis, 2, 2, $sysmis, $sysmis, 3, 4).
1661 DEBUG EVALUATE (a=1 MISSING) (b=2) (c=3 MISSING) (d=4)/NMISS(a, b, c, d).
1663 DEBUG EVALUATE /NVALID($sysmis).
1664 DEBUG EVALUATE /NVALID(0).
1665 DEBUG EVALUATE /NVALID($sysmis, $sysmis, $sysmis).
1666 DEBUG EVALUATE /NVALID(1, 2, 3, 4).
1667 DEBUG EVALUATE /NVALID(1, $sysmis, $sysmis, 2, 2, $sysmis, $sysmis, 3, 4).
1668 DEBUG EVALUATE (a=1 MISSING) (b=2) (c=3 MISSING) (d=4)/NVALID(a, b, c, d).
1670 DEBUG EVALUATE /SYSMIS(1).
1671 DEBUG EVALUATE /SYSMIS($SYSMIS).
1672 DEBUG EVALUATE /SYSMIS(1 + $SYSMIS).
1675 for opt in OPT NOOPT; do
1677 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
1678 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
1679 MISSING(10) => false
1681 MISSING($SYSMIS) => true
1683 MISSING(ASIN(1.01)) => true
1685 MISSING(ASIN(.5)) => false
1687 evaluate.sps:7.17-7.31: error: DEBUG EVALUATE: Type mismatch invoking
1688 MISSING(number) as MISSING(string).
1689 7 | DEBUG EVALUATE /MISSING(' ').
1692 MISSING(' ') => error
1720 VALUE(v(1)) => sysmis
1734 NMISS($sysmis) => 1.00
1738 NMISS($sysmis, $sysmis, $sysmis) => 3.00
1740 NMISS(1, 2, 3, 4) => 0.00
1742 NMISS(1, $sysmis, $sysmis, 2, 2, $sysmis, $sysmis, 3, 4) => 4.00
1744 NMISS(a, b, c, d) => 2.00
1746 NVALID($sysmis) => 0.00
1750 NVALID($sysmis, $sysmis, $sysmis) => 0.00
1752 NVALID(1, 2, 3, 4) => 4.00
1754 NVALID(1, $sysmis, $sysmis, 2, 2, $sysmis, $sysmis, 3, 4) => 5.00
1756 NVALID(a, b, c, d) => 2.00
1760 SYSMIS($SYSMIS) => true
1762 SYSMIS(1 + $SYSMIS) => true
1767 AT_SETUP([expressions - ANY])
1768 AT_KEYWORDS([expression expressions evaluate])
1769 AT_DATA([evaluate-base.sps], [
1770 DEBUG EVALUATE SET opt.
1772 DEBUG EVALUATE /any(1, 1, 2, 3).
1773 DEBUG EVALUATE /any(1, $true, 2, 3).
1774 DEBUG EVALUATE /any(1, $false, 2, 3).
1775 DEBUG EVALUATE /any(2, 1, 2, 3).
1776 DEBUG EVALUATE /any(3, 1, 2, 3).
1777 DEBUG EVALUATE /any(5, 1, 2, 3).
1778 DEBUG EVALUATE /any(1, 1, 1, 1).
1779 DEBUG EVALUATE /any($sysmis, 1, 1, 1).
1780 DEBUG EVALUATE /any($sysmis, 1, $sysmis, 3).
1781 DEBUG EVALUATE /any(1, 1, $sysmis, $sysmis).
1782 DEBUG EVALUATE /any(1, $sysmis, $sysmis, $sysmis).
1783 DEBUG EVALUATE /any($sysmis, $sysmis, $sysmis, $sysmis).
1785 DEBUG EVALUATE /any(1).
1786 DEBUG EVALUATE /any('1', 2, 3, 4).
1787 DEBUG EVALUATE /any(1, '2', 3, 4).
1788 DEBUG EVALUATE /any(1, 2, '3', 4).
1789 DEBUG EVALUATE /any(1, 2, 3, '4').
1791 DEBUG EVALUATE /any('', 'a', '', 'c').
1792 DEBUG EVALUATE /any('a', 'a', 'b', 'c').
1793 DEBUG EVALUATE /any('b', 'a', 'b', 'c').
1794 DEBUG EVALUATE /any('c', 'a', 'b', 'c').
1795 DEBUG EVALUATE /any('e', 'a', 'b', 'c').
1796 DEBUG EVALUATE /any('a', 'a', 'a', 'a').
1797 DEBUG EVALUATE /any('', 'a', 'a', 'a').
1798 DEBUG EVALUATE /any('a', '', '', '').
1799 DEBUG EVALUATE /any('a').
1801 DEBUG EVALUATE /any('a', 'a ', 'b', 'c').
1802 DEBUG EVALUATE /any('b ', 'a', 'b', 'c').
1803 DEBUG EVALUATE /any('c ', 'a', 'b', 'c ').
1804 DEBUG EVALUATE /any(a10, 'b', 'c', 'd').
1805 DEBUG EVALUATE /any('a', b, 'c', 'd').
1806 DEBUG EVALUATE /any('a', 'b', c, 'd').
1807 DEBUG EVALUATE /any('a', 'b', 'c', d).
1810 for opt in OPT NOOPT; do
1812 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
1813 AT_CHECK([pspp --testing-mode evaluate.sps], [1],
1814 [[any(1, 1, 2, 3) => true
1816 any(1, $true, 2, 3) => true
1818 any(1, $false, 2, 3) => false
1820 any(2, 1, 2, 3) => true
1822 any(3, 1, 2, 3) => true
1824 any(5, 1, 2, 3) => false
1826 any(1, 1, 1, 1) => true
1828 any($sysmis, 1, 1, 1) => sysmis
1830 any($sysmis, 1, $sysmis, 3) => sysmis
1832 any(1, 1, $sysmis, $sysmis) => true
1834 any(1, $sysmis, $sysmis, $sysmis) => sysmis
1836 any($sysmis, $sysmis, $sysmis, $sysmis) => sysmis
1838 evaluate.sps:17.17-17.22: error: DEBUG EVALUATE: Function invocation
1839 any(number) does not match any known function. Candidates are:
1840 ANY(number, number[, number]...)
1841 ANY(string, string[, string]...).
1842 17 | DEBUG EVALUATE /any(1).
1847 evaluate.sps:18.17-18.33: error: DEBUG EVALUATE: Function invocation
1848 any(string, number, number, number) does not match any known function.
1850 ANY(number, number[, number]...)
1851 ANY(string, string[, string]...).
1852 18 | DEBUG EVALUATE /any('1', 2, 3, 4).
1855 any('1', 2, 3, 4) => error
1857 evaluate.sps:19.17-19.33: error: DEBUG EVALUATE: Function invocation
1858 any(number, string, number, number) does not match any known function.
1860 ANY(number, number[, number]...)
1861 ANY(string, string[, string]...).
1862 19 | DEBUG EVALUATE /any(1, '2', 3, 4).
1865 any(1, '2', 3, 4) => error
1867 evaluate.sps:20.17-20.33: error: DEBUG EVALUATE: Function invocation
1868 any(number, number, string, number) does not match any known function.
1870 ANY(number, number[, number]...)
1871 ANY(string, string[, string]...).
1872 20 | DEBUG EVALUATE /any(1, 2, '3', 4).
1875 any(1, 2, '3', 4) => error
1877 evaluate.sps:21.17-21.33: error: DEBUG EVALUATE: Function invocation
1878 any(number, number, number, string) does not match any known function.
1880 ANY(number, number[, number]...)
1881 ANY(string, string[, string]...).
1882 21 | DEBUG EVALUATE /any(1, 2, 3, '4').
1885 any(1, 2, 3, '4') => error
1887 any('', 'a', '', 'c') => true
1889 any('a', 'a', 'b', 'c') => true
1891 any('b', 'a', 'b', 'c') => true
1893 any('c', 'a', 'b', 'c') => true
1895 any('e', 'a', 'b', 'c') => false
1897 any('a', 'a', 'a', 'a') => true
1899 any('', 'a', 'a', 'a') => false
1901 any('a', '', '', '') => false
1903 evaluate.sps:31.17-31.24: error: DEBUG EVALUATE: Function invocation
1904 any(string) does not match any known function. Candidates are:
1905 ANY(number, number[, number]...)
1906 ANY(string, string[, string]...).
1907 31 | DEBUG EVALUATE /any('a').
1912 any('a', 'a ', 'b', 'c') => true
1914 any('b ', 'a', 'b', 'c') => true
1916 any('c ', 'a', 'b', 'c ') => true
1918 evaluate.sps:36.17-36.39: error: DEBUG EVALUATE: Function invocation
1919 any(format, string, string, string) does not match any known function.
1921 ANY(number, number[, number]...)
1922 ANY(string, string[, string]...).
1923 36 | DEBUG EVALUATE /any(a10, 'b', 'c', 'd').
1924 | ^~~~~~~~~~~~~~~~~~~~~~~
1926 any(a10, 'b', 'c', 'd') => error
1928 evaluate.sps:37: error: DEBUG EVALUATE: Unknown identifier b.
1930 any('a', b, 'c', 'd') => error
1932 evaluate.sps:38: error: DEBUG EVALUATE: Unknown identifier c.
1934 any('a', 'b', c, 'd') => error
1936 evaluate.sps:39: error: DEBUG EVALUATE: Unknown identifier d.
1938 any('a', 'b', 'c', d) => error
1943 AT_SETUP([expressions - RANGE])
1944 AT_KEYWORDS([expression expressions evaluate])
1945 AT_DATA([evaluate-base.sps], [
1946 DEBUG EVALUATE SET opt.
1948 DEBUG EVALUATE /range(5, 1, 10).
1949 DEBUG EVALUATE /range(1, 1, 10).
1950 DEBUG EVALUATE /range(10, 1, 10).
1951 DEBUG EVALUATE /range(-1, 1, 10).
1952 DEBUG EVALUATE /range(12, 1, 10).
1954 DEBUG EVALUATE /range(5, $sysmis, 6, 1, 10).
1955 DEBUG EVALUATE /range(5, $sysmis, $sysmis, 1, 10).
1956 DEBUG EVALUATE /range(1, 1, 10, 6, $sysmis).
1957 DEBUG EVALUATE /range(1, 1, 10, $sysmis, $sysmis).
1959 DEBUG EVALUATE /range(5, 5, 10, 3, 7).
1960 DEBUG EVALUATE /range(5, 10, 5, 3, 7).
1961 DEBUG EVALUATE /range(5, 3, 7, 5, 10).
1962 DEBUG EVALUATE /range(5, 3, 7, 10, 5).
1964 DEBUG EVALUATE /range($sysmis, 1, 10).
1965 DEBUG EVALUATE /range(5, 1, $sysmis).
1966 DEBUG EVALUATE /range(5, $sysmis, 10).
1967 DEBUG EVALUATE /range(1, 1, $sysmis).
1968 DEBUG EVALUATE /range(10, $sysmis, 10).
1969 DEBUG EVALUATE /range(5, 10, 5).
1970 DEBUG EVALUATE /range($sysmis, $sysmis, 10).
1971 DEBUG EVALUATE /range($sysmis, 1, $sysmis).
1972 DEBUG EVALUATE /range($sysmis, $sysmis, $sysmis).
1974 DEBUG EVALUATE /range(0, 1, 8, 10, 18).
1975 DEBUG EVALUATE /range(1, 1, 8, 10, 18).
1976 DEBUG EVALUATE /range(6, 1, 8, 10, 18).
1977 DEBUG EVALUATE /range(8, 1, 8, 10, 18).
1978 DEBUG EVALUATE /range(9, 1, 8, 10, 18).
1979 DEBUG EVALUATE /range(10, 1, 8, 10, 18).
1980 DEBUG EVALUATE /range(13, 1, 8, 10, 18).
1981 DEBUG EVALUATE /range(16, 1, 8, 10, 18).
1982 DEBUG EVALUATE /range(18, 1, 8, 10, 18).
1983 DEBUG EVALUATE /range(20, 1, 8, 10, 18).
1984 DEBUG EVALUATE /range(1).
1985 DEBUG EVALUATE /range(1, 2).
1986 DEBUG EVALUATE /range(1, 2, 3, 4).
1987 DEBUG EVALUATE /range(1, 2, 3, 4, 5, 6).
1988 DEBUG EVALUATE /range('1', 2, 3).
1989 DEBUG EVALUATE /range(1, '2', 3).
1990 DEBUG EVALUATE /range(1, 2, '3').
1992 DEBUG EVALUATE /range('123', '111', '888').
1993 DEBUG EVALUATE /range('111', '111', '888').
1994 DEBUG EVALUATE /range('888', '111', '888').
1995 DEBUG EVALUATE /range('110', '111', '888').
1996 DEBUG EVALUATE /range('889', '111', '888').
1997 DEBUG EVALUATE /range('000', '111', '888').
1998 DEBUG EVALUATE /range('999', '111', '888').
2000 DEBUG EVALUATE /range('123 ', '111', '888').
2001 DEBUG EVALUATE /range('123', '111 ', '888').
2002 DEBUG EVALUATE /range('123', '111', '888 ').
2003 DEBUG EVALUATE /range('123', '111 ', '888 ').
2005 DEBUG EVALUATE /range('00', '01', '08', '10', '18').
2006 DEBUG EVALUATE /range('01', '01', '08', '10', '18').
2007 DEBUG EVALUATE /range('06', '01', '08', '10', '18').
2008 DEBUG EVALUATE /range('08', '01', '08', '10', '18').
2009 DEBUG EVALUATE /range('09', '01', '08', '10', '18').
2010 DEBUG EVALUATE /range('10', '01', '08', '10', '18').
2011 DEBUG EVALUATE /range('15', '01', '08', '10', '18').
2012 DEBUG EVALUATE /range('18', '01', '08', '10', '18').
2013 DEBUG EVALUATE /range('19', '01', '08', '10', '18').
2015 DEBUG EVALUATE /range('07', '01', '08', '18', '10').
2016 DEBUG EVALUATE /range('12', '08', '01', '10', '18').
2018 DEBUG EVALUATE /range('1').
2019 DEBUG EVALUATE /range('1', '2').
2020 DEBUG EVALUATE /range('1', '2', '3', '4').
2021 DEBUG EVALUATE /range('1', '2', '3', '4', '5', '6').
2022 DEBUG EVALUATE /range(1, '2', '3').
2023 DEBUG EVALUATE /range('1', 2, '3').
2024 DEBUG EVALUATE /range('1', '2', 3).
2027 for opt in OPT NOOPT; do
2029 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
2030 AT_CHECK([pspp --testing-mode evaluate.sps], [1],
2031 [[range(5, 1, 10) => true
2033 range(1, 1, 10) => true
2035 range(10, 1, 10) => true
2037 range(-1, 1, 10) => false
2039 range(12, 1, 10) => false
2041 range(5, $sysmis, 6, 1, 10) => true
2043 range(5, $sysmis, $sysmis, 1, 10) => true
2045 range(1, 1, 10, 6, $sysmis) => true
2047 range(1, 1, 10, $sysmis, $sysmis) => true
2049 range(5, 5, 10, 3, 7) => true
2051 range(5, 10, 5, 3, 7) => sysmis
2053 range(5, 3, 7, 5, 10) => true
2055 range(5, 3, 7, 10, 5) => sysmis
2057 range($sysmis, 1, 10) => sysmis
2059 range(5, 1, $sysmis) => sysmis
2061 range(5, $sysmis, 10) => sysmis
2063 range(1, 1, $sysmis) => sysmis
2065 range(10, $sysmis, 10) => sysmis
2067 range(5, 10, 5) => sysmis
2069 range($sysmis, $sysmis, 10) => sysmis
2071 range($sysmis, 1, $sysmis) => sysmis
2073 range($sysmis, $sysmis, $sysmis) => sysmis
2075 range(0, 1, 8, 10, 18) => false
2077 range(1, 1, 8, 10, 18) => true
2079 range(6, 1, 8, 10, 18) => true
2081 range(8, 1, 8, 10, 18) => true
2083 range(9, 1, 8, 10, 18) => false
2085 range(10, 1, 8, 10, 18) => true
2087 range(13, 1, 8, 10, 18) => true
2089 range(16, 1, 8, 10, 18) => true
2091 range(18, 1, 8, 10, 18) => true
2093 range(20, 1, 8, 10, 18) => false
2095 evaluate.sps:40.17-40.24: error: DEBUG EVALUATE: Function invocation
2096 range(number) does not match any known function. Candidates are:
2097 RANGE(number, number, number[, number, number]...)
2098 RANGE(string, string, string[, string, string]...).
2099 40 | DEBUG EVALUATE /range(1).
2104 evaluate.sps:41.17-41.27: error: DEBUG EVALUATE: RANGE(number, number, number[,
2105 number, number]...) must have an odd number of arguments.
2106 41 | DEBUG EVALUATE /range(1, 2).
2109 range(1, 2) => error
2111 evaluate.sps:42.17-42.33: error: DEBUG EVALUATE: RANGE(number, number, number[,
2112 number, number]...) must have an odd number of arguments.
2113 42 | DEBUG EVALUATE /range(1, 2, 3, 4).
2116 range(1, 2, 3, 4) => error
2118 evaluate.sps:43.17-43.39: error: DEBUG EVALUATE: RANGE(number, number, number[,
2119 number, number]...) must have an odd number of arguments.
2120 43 | DEBUG EVALUATE /range(1, 2, 3, 4, 5, 6).
2121 | ^~~~~~~~~~~~~~~~~~~~~~~
2123 range(1, 2, 3, 4, 5, 6) => error
2125 evaluate.sps:44.17-44.32: error: DEBUG EVALUATE: Function invocation
2126 range(string, number, number) does not match any known function. Candidates
2128 RANGE(number, number, number[, number, number]...)
2129 RANGE(string, string, string[, string, string]...).
2130 44 | DEBUG EVALUATE /range('1', 2, 3).
2133 range('1', 2, 3) => error
2135 evaluate.sps:45.17-45.32: error: DEBUG EVALUATE: Function invocation
2136 range(number, string, number) does not match any known function. Candidates
2138 RANGE(number, number, number[, number, number]...)
2139 RANGE(string, string, string[, string, string]...).
2140 45 | DEBUG EVALUATE /range(1, '2', 3).
2143 range(1, '2', 3) => error
2145 evaluate.sps:46.17-46.32: error: DEBUG EVALUATE: Function invocation
2146 range(number, number, string) does not match any known function. Candidates
2148 RANGE(number, number, number[, number, number]...)
2149 RANGE(string, string, string[, string, string]...).
2150 46 | DEBUG EVALUATE /range(1, 2, '3').
2153 range(1, 2, '3') => error
2155 range('123', '111', '888') => true
2157 range('111', '111', '888') => true
2159 range('888', '111', '888') => true
2161 range('110', '111', '888') => false
2163 range('889', '111', '888') => false
2165 range('000', '111', '888') => false
2167 range('999', '111', '888') => false
2169 range('123 ', '111', '888') => true
2171 range('123', '111 ', '888') => true
2173 range('123', '111', '888 ') => true
2175 range('123', '111 ', '888 ') => true
2177 range('00', '01', '08', '10', '18') => false
2179 range('01', '01', '08', '10', '18') => true
2181 range('06', '01', '08', '10', '18') => true
2183 range('08', '01', '08', '10', '18') => true
2185 range('09', '01', '08', '10', '18') => false
2187 range('10', '01', '08', '10', '18') => true
2189 range('15', '01', '08', '10', '18') => true
2191 range('18', '01', '08', '10', '18') => true
2193 range('19', '01', '08', '10', '18') => false
2195 range('07', '01', '08', '18', '10') => sysmis
2197 range('12', '08', '01', '10', '18') => sysmis
2199 evaluate.sps:74.17-74.26: error: DEBUG EVALUATE: Function invocation
2200 range(string) does not match any known function. Candidates are:
2201 RANGE(number, number, number[, number, number]...)
2202 RANGE(string, string, string[, string, string]...).
2203 74 | DEBUG EVALUATE /range('1').
2208 evaluate.sps:75.17-75.31: error: DEBUG EVALUATE: RANGE(string, string, string[,
2209 string, string]...) must have an odd number of arguments.
2210 75 | DEBUG EVALUATE /range('1', '2').
2213 range('1', '2') => error
2215 evaluate.sps:76.17-76.41: error: DEBUG EVALUATE: RANGE(string, string, string[,
2216 string, string]...) must have an odd number of arguments.
2217 76 | DEBUG EVALUATE /range('1', '2', '3', '4').
2218 | ^~~~~~~~~~~~~~~~~~~~~~~~~
2220 range('1', '2', '3', '4') => error
2222 evaluate.sps:77.17-77.51: error: DEBUG EVALUATE: RANGE(string, string, string[,
2223 string, string]...) must have an odd number of arguments.
2224 77 | DEBUG EVALUATE /range('1', '2', '3', '4', '5', '6').
2225 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2227 range('1', '2', '3', '4', '5', '6') => error
2229 evaluate.sps:78.17-78.34: error: DEBUG EVALUATE: Function invocation
2230 range(number, string, string) does not match any known function. Candidates
2232 RANGE(number, number, number[, number, number]...)
2233 RANGE(string, string, string[, string, string]...).
2234 78 | DEBUG EVALUATE /range(1, '2', '3').
2235 | ^~~~~~~~~~~~~~~~~~
2237 range(1, '2', '3') => error
2239 evaluate.sps:79.17-79.34: error: DEBUG EVALUATE: Function invocation
2240 range(string, number, string) does not match any known function. Candidates
2242 RANGE(number, number, number[, number, number]...)
2243 RANGE(string, string, string[, string, string]...).
2244 79 | DEBUG EVALUATE /range('1', 2, '3').
2245 | ^~~~~~~~~~~~~~~~~~
2247 range('1', 2, '3') => error
2249 evaluate.sps:80.17-80.34: error: DEBUG EVALUATE: Function invocation
2250 range(string, string, number) does not match any known function. Candidates
2252 RANGE(number, number, number[, number, number]...)
2253 RANGE(string, string, string[, string, string]...).
2254 80 | DEBUG EVALUATE /range('1', '2', 3).
2255 | ^~~~~~~~~~~~~~~~~~
2257 range('1', '2', 3) => error
2262 AT_SETUP([expressions - MAX MIN])
2263 AT_KEYWORDS([expression expressions evaluate])
2264 AT_DATA([evaluate-base.sps], [
2265 DEBUG EVALUATE SET opt.
2266 DEBUG EVALUATE /max(1, 2, 3, 4, 5).
2267 DEBUG EVALUATE /max(1, $sysmis, 2, 3, $sysmis, 4, 5).
2268 DEBUG EVALUATE /max(1, 2).
2269 DEBUG EVALUATE /max().
2270 DEBUG EVALUATE /max(1).
2271 DEBUG EVALUATE /max(1, $sysmis).
2272 DEBUG EVALUATE /max(1, 2, 3, $sysmis).
2273 DEBUG EVALUATE /max.4(1, 2, 3, $sysmis).
2274 DEBUG EVALUATE /max.4(1, 2, 3).
2276 DEBUG EVALUATE /max("2", "3", "5", "1", "4").
2277 DEBUG EVALUATE /max("1", "2").
2278 DEBUG EVALUATE /max("1").
2280 DEBUG EVALUATE /min(1, 2, 3, 4, 5).
2281 DEBUG EVALUATE /min(1, $sysmis, 2, 3, $sysmis, 4, 5).
2282 DEBUG EVALUATE /min(1, 2).
2283 DEBUG EVALUATE /min().
2284 DEBUG EVALUATE /min(1).
2285 DEBUG EVALUATE /min(1, $sysmis).
2286 DEBUG EVALUATE /min(1, 2, 3, $sysmis).
2287 DEBUG EVALUATE /min.4(1, 2, 3, $sysmis).
2288 DEBUG EVALUATE /min.4(1, 2, 3).
2290 DEBUG EVALUATE /min("2", "3", "5", "1", "4").
2291 DEBUG EVALUATE /min("1", "2").
2292 DEBUG EVALUATE /min("1").
2295 for opt in OPT NOOPT; do
2297 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
2298 AT_CHECK([pspp --testing-mode evaluate.sps], [1],
2299 [[max(1, 2, 3, 4, 5) => 5.00
2301 max(1, $sysmis, 2, 3, $sysmis, 4, 5) => 5.00
2305 evaluate.sps:6.17-6.20: error: DEBUG EVALUATE: Function invocation max() does
2306 not match any known function. Candidates are:
2307 MAX(number[, number]...)
2308 MAX(string[, string]...).
2309 6 | DEBUG EVALUATE /max().
2316 max(1, $sysmis) => 1.00
2318 max(1, 2, 3, $sysmis) => 3.00
2320 max.4(1, 2, 3, $sysmis) => sysmis
2322 evaluate.sps:11.17-11.30: error: DEBUG EVALUATE: For MAX(number[, number]...)
2323 with 3 arguments, at most 3 (not 4) may be required to be valid.
2324 11 | DEBUG EVALUATE /max.4(1, 2, 3).
2327 max.4(1, 2, 3) => error
2329 max("2", "3", "5", "1", "4") => "5"
2331 max("1", "2") => "2"
2335 min(1, 2, 3, 4, 5) => 1.00
2337 min(1, $sysmis, 2, 3, $sysmis, 4, 5) => 1.00
2341 evaluate.sps:20.17-20.20: error: DEBUG EVALUATE: Function invocation min() does
2342 not match any known function. Candidates are:
2343 MIN(number[, number]...)
2344 MIN(string[, string]...).
2345 20 | DEBUG EVALUATE /min().
2352 min(1, $sysmis) => 1.00
2354 min(1, 2, 3, $sysmis) => 1.00
2356 min.4(1, 2, 3, $sysmis) => sysmis
2358 evaluate.sps:25.17-25.30: error: DEBUG EVALUATE: For MIN(number[, number]...)
2359 with 3 arguments, at most 3 (not 4) may be required to be valid.
2360 25 | DEBUG EVALUATE /min.4(1, 2, 3).
2363 min.4(1, 2, 3) => error
2365 min("2", "3", "5", "1", "4") => "1"
2367 min("1", "2") => "1"
2374 AT_SETUP([expressions - CFVAR MEAN MEDIAN])
2375 AT_KEYWORDS([expression expressions evaluate])
2376 AT_DATA([evaluate-base.sps], [
2377 DEBUG EVALUATE SET opt.
2379 DEBUG EVALUATE /cfvar(1, 2, 3, 4, 5).
2380 DEBUG EVALUATE /cfvar(1, $sysmis, 2, 3, $sysmis, 4, 5).
2381 DEBUG EVALUATE /cfvar(1, 2).
2382 DEBUG EVALUATE /cfvar(1).
2383 DEBUG EVALUATE /cfvar(1, $sysmis).
2384 DEBUG EVALUATE /cfvar(1, 2, 3, $sysmis).
2385 DEBUG EVALUATE /cfvar.4(1, 2, 3, $sysmis).
2386 DEBUG EVALUATE /cfvar.4(1, 2, 3).
2387 DEBUG EVALUATE /cfvar('x').
2388 DEBUG EVALUATE /cfvar('x', 1, 2, 3).
2390 DEBUG EVALUATE /mean(1, 2, 3, 4, 5).
2391 DEBUG EVALUATE /mean(1, $sysmis, 2, 3, $sysmis, 4, 5).
2392 DEBUG EVALUATE /mean(1, 2).
2393 DEBUG EVALUATE /mean().
2394 DEBUG EVALUATE /mean(1).
2395 DEBUG EVALUATE /mean(1, $sysmis).
2396 DEBUG EVALUATE /mean(1, 2, 3, $sysmis).
2397 DEBUG EVALUATE /mean.4(1, 2, 3, $sysmis).
2398 DEBUG EVALUATE /mean.4(1, 2, 3).
2400 DEBUG EVALUATE /median(1, 2, 3, 4, 5).
2401 DEBUG EVALUATE /median(2, 3, 4, 5, 1).
2402 DEBUG EVALUATE /median(2, 3, 4, 1, 5).
2403 DEBUG EVALUATE /median(2, 1, 4, 5, 3).
2404 DEBUG EVALUATE /median(1, 2, 3, 4).
2405 DEBUG EVALUATE /median(2, 3, 1, 4).
2406 DEBUG EVALUATE /median(2, 3, 4, 1).
2407 DEBUG EVALUATE /median(2, 1, 4, 3).
2408 DEBUG EVALUATE /median(1, $sysmis, 3, 4, 5).
2409 DEBUG EVALUATE /median(2, 3, 4, 5, $sysmis, 1).
2410 DEBUG EVALUATE /median($sysmis, $sysmis, $sysmis, 2, 3, 4, 1, 5).
2411 DEBUG EVALUATE /median(1, 2, 3).
2412 DEBUG EVALUATE /median(1).
2413 DEBUG EVALUATE /median(1, 2).
2414 DEBUG EVALUATE /median(1, 2, $sysmis).
2415 DEBUG EVALUATE /median(1, $sysmis, $sysmis).
2416 DEBUG EVALUATE /median($sysmis, $sysmis, $sysmis).
2417 DEBUG EVALUATE /median.3(1, 2, $sysmis).
2418 DEBUG EVALUATE /median.2(1, $sysmis).
2421 for opt in OPT NOOPT; do
2423 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
2424 AT_CHECK([pspp --testing-mode evaluate.sps], [1],
2425 [[cfvar(1, 2, 3, 4, 5) => 0.53
2427 cfvar(1, $sysmis, 2, 3, $sysmis, 4, 5) => 0.53
2431 evaluate.sps:7.17-7.24: error: DEBUG EVALUATE: Type mismatch invoking
2432 CFVAR(number, number[, number]...) as cfvar(number).
2433 7 | DEBUG EVALUATE /cfvar(1).
2438 cfvar(1, $sysmis) => sysmis
2440 cfvar(1, 2, 3, $sysmis) => 0.50
2442 cfvar.4(1, 2, 3, $sysmis) => sysmis
2444 evaluate.sps:11.17-11.32: error: DEBUG EVALUATE: For CFVAR(number, number[,
2445 number]...) with 3 arguments, at most 3 (not 4) may be required to be valid.
2446 11 | DEBUG EVALUATE /cfvar.4(1, 2, 3).
2449 cfvar.4(1, 2, 3) => error
2451 evaluate.sps:12.17-12.26: error: DEBUG EVALUATE: Type mismatch invoking
2452 CFVAR(number, number[, number]...) as cfvar(string).
2453 12 | DEBUG EVALUATE /cfvar('x').
2458 evaluate.sps:13.17-13.35: error: DEBUG EVALUATE: Type mismatch invoking
2459 CFVAR(number, number[, number]...) as cfvar(string, number, number, number).
2460 13 | DEBUG EVALUATE /cfvar('x', 1, 2, 3).
2461 | ^~~~~~~~~~~~~~~~~~~
2463 cfvar('x', 1, 2, 3) => error
2465 mean(1, 2, 3, 4, 5) => 3.00
2467 mean(1, $sysmis, 2, 3, $sysmis, 4, 5) => 3.00
2471 evaluate.sps:18.17-18.21: error: DEBUG EVALUATE: Type mismatch invoking
2472 MEAN(number[, number]...) as mean().
2473 18 | DEBUG EVALUATE /mean().
2480 mean(1, $sysmis) => 1.00
2482 mean(1, 2, 3, $sysmis) => 2.00
2484 mean.4(1, 2, 3, $sysmis) => sysmis
2486 evaluate.sps:23.17-23.31: error: DEBUG EVALUATE: For MEAN(number[, number]...)
2487 with 3 arguments, at most 3 (not 4) may be required to be valid.
2488 23 | DEBUG EVALUATE /mean.4(1, 2, 3).
2491 mean.4(1, 2, 3) => error
2493 median(1, 2, 3, 4, 5) => 3.00
2495 median(2, 3, 4, 5, 1) => 3.00
2497 median(2, 3, 4, 1, 5) => 3.00
2499 median(2, 1, 4, 5, 3) => 3.00
2501 median(1, 2, 3, 4) => 2.50
2503 median(2, 3, 1, 4) => 2.50
2505 median(2, 3, 4, 1) => 2.50
2507 median(2, 1, 4, 3) => 2.50
2509 median(1, $sysmis, 3, 4, 5) => 3.50
2511 median(2, 3, 4, 5, $sysmis, 1) => 3.00
2513 median($sysmis, $sysmis, $sysmis, 2, 3, 4, 1, 5) => 3.00
2515 median(1, 2, 3) => 2.00
2519 median(1, 2) => 1.50
2521 median(1, 2, $sysmis) => 1.50
2523 median(1, $sysmis, $sysmis) => 1.00
2525 median($sysmis, $sysmis, $sysmis) => sysmis
2527 median.3(1, 2, $sysmis) => sysmis
2529 median.2(1, $sysmis) => sysmis
2534 AT_SETUP([expressions - SD SUM VARIANCE])
2535 AT_KEYWORDS([expression expressions evaluate])
2536 AT_DATA([evaluate-base.sps], [
2537 DEBUG EVALUATE SET opt.
2539 DEBUG EVALUATE /sd(1, 2, 3, 4, 5).
2540 DEBUG EVALUATE /sd(1, $sysmis, 2, 3, $sysmis, 4, 5).
2541 DEBUG EVALUATE /sd(1, 2).
2542 DEBUG EVALUATE /sd(1).
2543 DEBUG EVALUATE /sd(1, $sysmis).
2544 DEBUG EVALUATE /sd(1, 2, 3, $sysmis).
2545 DEBUG EVALUATE /sd.4(1, 2, 3, $sysmis).
2546 DEBUG EVALUATE /sd.4(1, 2, 3).
2547 DEBUG EVALUATE /sd('x').
2548 DEBUG EVALUATE /sd('x', 1, 2, 3).
2549 DEBUG EVALUATE (a=1)(b=2)(c=3)(d=4)(e=5)(f=6)(g=7)/sd(a TO c).
2551 DEBUG EVALUATE /sum(1, 2, 3, 4, 5).
2552 DEBUG EVALUATE /sum(1, $sysmis, 2, 3, $sysmis, 4, 5).
2553 DEBUG EVALUATE /sum(1, 2).
2554 DEBUG EVALUATE /sum().
2555 DEBUG EVALUATE /sum(1).
2556 DEBUG EVALUATE /sum(1, $sysmis).
2557 DEBUG EVALUATE /sum(1, 2, 3, $sysmis).
2558 DEBUG EVALUATE /sum.4(1, 2, 3, $sysmis).
2559 DEBUG EVALUATE /sum.4(1, 2, 3).
2560 DEBUG EVALUATE (a=1)(b=2)(c=3)(d=4)(e=5)(f=6)(g=7)/sum(b TO F).
2562 DEBUG EVALUATE /variance(1, 2, 3, 4, 5).
2563 DEBUG EVALUATE /variance(1, $sysmis, 2, 3, $sysmis, 4, 5).
2564 DEBUG EVALUATE /variance(1, 2).
2565 DEBUG EVALUATE /variance(1).
2566 DEBUG EVALUATE /variance(1, $sysmis).
2567 DEBUG EVALUATE /variance(1, 2, 3, $sysmis).
2568 DEBUG EVALUATE /variance.4(1, 2, 3, $sysmis).
2569 DEBUG EVALUATE /variance.4(1, 2, 3).
2570 DEBUG EVALUATE /variance('x').
2571 DEBUG EVALUATE /variance('x', 1, 2, 3).
2572 DEBUG EVALUATE (a=1)(b=2)(c=3)(d=4)(e=5)(f=6)(g=7)/variance(a TO e).
2575 for opt in OPT NOOPT; do
2577 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
2578 AT_CHECK([pspp --testing-mode evaluate.sps], [1],
2579 [[sd(1, 2, 3, 4, 5) => 1.58
2581 sd(1, $sysmis, 2, 3, $sysmis, 4, 5) => 1.58
2585 evaluate.sps:7.17-7.21: error: DEBUG EVALUATE: Type mismatch invoking
2586 SD(number, number[, number]...) as sd(number).
2587 7 | DEBUG EVALUATE /sd(1).
2592 sd(1, $sysmis) => sysmis
2594 sd(1, 2, 3, $sysmis) => 1.00
2596 sd.4(1, 2, 3, $sysmis) => sysmis
2598 evaluate.sps:11.17-11.29: error: DEBUG EVALUATE: For SD(number, number[,
2599 number]...) with 3 arguments, at most 3 (not 4) may be required to be valid.
2600 11 | DEBUG EVALUATE /sd.4(1, 2, 3).
2603 sd.4(1, 2, 3) => error
2605 evaluate.sps:12.17-12.23: error: DEBUG EVALUATE: Type mismatch invoking
2606 SD(number, number[, number]...) as sd(string).
2607 12 | DEBUG EVALUATE /sd('x').
2612 evaluate.sps:13.17-13.32: error: DEBUG EVALUATE: Type mismatch invoking
2613 SD(number, number[, number]...) as sd(string, number, number, number).
2614 13 | DEBUG EVALUATE /sd('x', 1, 2, 3).
2617 sd('x', 1, 2, 3) => error
2621 sum(1, 2, 3, 4, 5) => 15.00
2623 sum(1, $sysmis, 2, 3, $sysmis, 4, 5) => 15.00
2627 evaluate.sps:19.17-19.20: error: DEBUG EVALUATE: Type mismatch invoking
2628 SUM(number[, number]...) as sum().
2629 19 | DEBUG EVALUATE /sum().
2636 sum(1, $sysmis) => 1.00
2638 sum(1, 2, 3, $sysmis) => 6.00
2640 sum.4(1, 2, 3, $sysmis) => sysmis
2642 evaluate.sps:24.17-24.30: error: DEBUG EVALUATE: For SUM(number[, number]...)
2643 with 3 arguments, at most 3 (not 4) may be required to be valid.
2644 24 | DEBUG EVALUATE /sum.4(1, 2, 3).
2647 sum.4(1, 2, 3) => error
2649 sum(b TO F) => 20.00
2651 variance(1, 2, 3, 4, 5) => 2.50
2653 variance(1, $sysmis, 2, 3, $sysmis, 4, 5) => 2.50
2655 variance(1, 2) => 0.50
2657 evaluate.sps:30.17-30.27: error: DEBUG EVALUATE: Type mismatch invoking
2658 VARIANCE(number, number[, number]...) as variance(number).
2659 30 | DEBUG EVALUATE /variance(1).
2662 variance(1) => error
2664 variance(1, $sysmis) => sysmis
2666 variance(1, 2, 3, $sysmis) => 1.00
2668 variance.4(1, 2, 3, $sysmis) => sysmis
2670 evaluate.sps:34.17-34.35: error: DEBUG EVALUATE: For VARIANCE(number, number[,
2671 number]...) with 3 arguments, at most 3 (not 4) may be required to be valid.
2672 34 | DEBUG EVALUATE /variance.4(1, 2, 3).
2673 | ^~~~~~~~~~~~~~~~~~~
2675 variance.4(1, 2, 3) => error
2677 evaluate.sps:35.17-35.29: error: DEBUG EVALUATE: Type mismatch invoking
2678 VARIANCE(number, number[, number]...) as variance(string).
2679 35 | DEBUG EVALUATE /variance('x').
2682 variance('x') => error
2684 evaluate.sps:36.17-36.38: error: DEBUG EVALUATE: Type mismatch invoking
2685 VARIANCE(number, number[, number]...) as variance(string, number, number,
2687 36 | DEBUG EVALUATE /variance('x', 1, 2, 3).
2688 | ^~~~~~~~~~~~~~~~~~~~~~
2690 variance('x', 1, 2, 3) => error
2692 variance(a TO e) => 2.50
2697 AT_SETUP([expressions - CONCAT])
2698 AT_KEYWORDS([expression expressions evaluate])
2699 AT_DATA([evaluate-base.sps], [
2700 DEBUG EVALUATE SET opt.
2702 DEBUG EVALUATE /concat('').
2703 DEBUG EVALUATE /concat('a', 'b').
2704 DEBUG EVALUATE /concat('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h').
2705 DEBUG EVALUATE /concat('abcdefgh', 'ijklmnopq').
2706 DEBUG EVALUATE /concat('a', 1).
2707 DEBUG EVALUATE /concat(1, 2).
2710 for opt in OPT NOOPT; do
2712 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
2713 AT_CHECK([pspp --testing-mode evaluate.sps], [1],
2716 concat('a', 'b') => "ab"
2718 concat('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h') => "abcdefgh"
2720 concat('abcdefgh', 'ijklmnopq') => "abcdefghijklmnopq"
2722 evaluate.sps:8.17-8.30: error: DEBUG EVALUATE: Type mismatch invoking
2723 CONCAT(string[, string]...) as concat(string, number).
2724 8 | DEBUG EVALUATE /concat('a', 1).
2727 concat('a', 1) => error
2729 evaluate.sps:9.17-9.28: error: DEBUG EVALUATE: Type mismatch invoking
2730 CONCAT(string[, string]...) as concat(number, number).
2731 9 | DEBUG EVALUATE /concat(1, 2).
2734 concat(1, 2) => error
2739 AT_SETUP([expressions - INDEX])
2740 AT_KEYWORDS([expression expressions evaluate])
2741 AT_DATA([evaluate-base.sps], [
2742 DEBUG EVALUATE SET opt.
2744 DEBUG EVALUATE /index('abcbcde', 'bc').
2745 DEBUG EVALUATE /index('abcbcde', 'bcd').
2746 DEBUG EVALUATE /index('abcbcde', 'bcbc').
2747 DEBUG EVALUATE /index('abcdefgh', 'abc').
2748 DEBUG EVALUATE /index('abcdefgh', 'bcd').
2749 DEBUG EVALUATE /index('abcdefgh', 'cde').
2750 DEBUG EVALUATE /index('abcdefgh', 'def').
2751 DEBUG EVALUATE /index('abcdefgh', 'efg').
2752 DEBUG EVALUATE /index('abcdefgh', 'fgh').
2753 DEBUG EVALUATE /index('abcdefgh', 'fghi').
2754 DEBUG EVALUATE /index('abcdefgh', 'x').
2755 DEBUG EVALUATE /index('abcdefgh', 'abch').
2756 DEBUG EVALUATE /index('banana', 'na').
2757 DEBUG EVALUATE /index('banana', 'ana').
2758 DEBUG EVALUATE /index('', 'x').
2759 DEBUG EVALUATE /index('', '').
2760 DEBUG EVALUATE /index('abcdefgh', '').
2761 DEBUG EVALUATE /index('abcdefgh', 'alkjsfdjlskalkjfa').
2763 DEBUG EVALUATE /index('abcbcde', 'bc', 1).
2764 DEBUG EVALUATE /index('abcbcde', 'dc', 1).
2765 DEBUG EVALUATE /index('abcbcde', 'abc', 1).
2766 DEBUG EVALUATE /index('abcbcde', 'bc', 2).
2767 DEBUG EVALUATE /index('abcbcde', 'dc', 2).
2768 DEBUG EVALUATE /index('abcbcde', 'abc', 1).
2769 DEBUG EVALUATE /index('abcbcde', 'bccb', 2).
2770 DEBUG EVALUATE /index('abcbcde', 'bcbc', 2).
2771 DEBUG EVALUATE /index('abcbcde', 'bcbc', $sysmis).
2772 DEBUG EVALUATE /index('abcbcde', 'bcbc', 3).
2775 for opt in OPT NOOPT; do
2777 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
2778 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
2779 index('abcbcde', 'bc') => 2.00
2781 index('abcbcde', 'bcd') => 4.00
2783 index('abcbcde', 'bcbc') => 2.00
2785 index('abcdefgh', 'abc') => 1.00
2787 index('abcdefgh', 'bcd') => 2.00
2789 index('abcdefgh', 'cde') => 3.00
2791 index('abcdefgh', 'def') => 4.00
2793 index('abcdefgh', 'efg') => 5.00
2795 index('abcdefgh', 'fgh') => 6.00
2797 index('abcdefgh', 'fghi') => 0.00
2799 index('abcdefgh', 'x') => 0.00
2801 index('abcdefgh', 'abch') => 0.00
2803 index('banana', 'na') => 3.00
2805 index('banana', 'ana') => 2.00
2807 index('', 'x') => 0.00
2809 index('', '') => 1.00
2811 index('abcdefgh', '') => 1.00
2813 index('abcdefgh', 'alkjsfdjlskalkjfa') => 0.00
2815 index('abcbcde', 'bc', 1) => 2.00
2817 index('abcbcde', 'dc', 1) => 3.00
2819 index('abcbcde', 'abc', 1) => 1.00
2821 index('abcbcde', 'bc', 2) => 2.00
2823 index('abcbcde', 'dc', 2) => 0.00
2825 index('abcbcde', 'abc', 1) => 1.00
2827 index('abcbcde', 'bccb', 2) => 2.00
2829 index('abcbcde', 'bcbc', 2) => 2.00
2831 index('abcbcde', 'bcbc', $sysmis) => sysmis
2833 evaluate.sps:32.17-32.43: error: DEBUG EVALUATE: INDEX needle length argument
2834 must evenly divide the length of the needles argument.
2835 32 | DEBUG EVALUATE /index('abcbcde', 'bcbc', 3).
2836 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
2838 evaluate.sps:32.34-32.39: note: DEBUG EVALUATE: The needles argument has length
2840 32 | DEBUG EVALUATE /index('abcbcde', 'bcbc', 3).
2843 evaluate.sps:32.42: note: DEBUG EVALUATE: The needle length argument has value
2845 32 | DEBUG EVALUATE /index('abcbcde', 'bcbc', 3).
2848 index('abcbcde', 'bcbc', 3) => sysmis
2853 AT_SETUP([expressions - RINDEX])
2854 AT_KEYWORDS([expression expressions evaluate])
2855 AT_DATA([evaluate-base.sps], [
2856 DEBUG EVALUATE SET opt.
2858 DEBUG EVALUATE /rindex('abcbcde', 'bc').
2859 DEBUG EVALUATE /rindex('abcbcde', 'bcd').
2860 DEBUG EVALUATE /rindex('abcbcde', 'bcbc').
2861 DEBUG EVALUATE /rindex('abcdefgh', 'abc').
2862 DEBUG EVALUATE /rindex('abcdefgh', 'bcd').
2863 DEBUG EVALUATE /rindex('abcdefgh', 'cde').
2864 DEBUG EVALUATE /rindex('abcdefgh', 'def').
2865 DEBUG EVALUATE /rindex('abcdefgh', 'efg').
2866 DEBUG EVALUATE /rindex('abcdefgh', 'fgh').
2867 DEBUG EVALUATE /rindex('abcdefgh', 'fghi').
2868 DEBUG EVALUATE /rindex('abcdefgh', 'x').
2869 DEBUG EVALUATE /rindex('abcdefgh', 'abch').
2870 DEBUG EVALUATE /rindex('banana', 'na').
2871 DEBUG EVALUATE /rindex('banana', 'ana').
2872 DEBUG EVALUATE /rindex('', 'x').
2873 DEBUG EVALUATE /rindex('', '').
2874 DEBUG EVALUATE /rindex('abcdefgh', '').
2875 DEBUG EVALUATE /rindex('abcdefgh', 'alkjsfdjlskalkjfa').
2877 DEBUG EVALUATE /rindex('abcbcde', 'bc', 1).
2878 DEBUG EVALUATE /rindex('abcbcde', 'dc', 1).
2879 DEBUG EVALUATE /rindex('abcbcde', 'abc', 1).
2880 DEBUG EVALUATE /rindex('abcbcde', 'bc', 2).
2881 DEBUG EVALUATE /rindex('abcbcde', 'dc', 2).
2882 DEBUG EVALUATE /rindex('abcbcde', 'abc', 1).
2883 DEBUG EVALUATE /rindex('abcbcde', 'bccb', 2).
2884 DEBUG EVALUATE /rindex('abcbcde', 'bcbc', 2).
2885 DEBUG EVALUATE /rindex('abcbcde', 'bcbc', 0).
2886 DEBUG EVALUATE /rindex('abcbcde', 'bcbc', $sysmis).
2887 DEBUG EVALUATE /rindex('abcbcde', 'bcbcg', 2).
2888 DEBUG EVALUATE /rindex('abcbcde', 'bcbcg', $sysmis).
2889 DEBUG EVALUATE /rindex('abcbcde', 'bcbcg', 'x').
2890 DEBUG EVALUATE /rindex(1, 'bcdfkjl', 2).
2891 DEBUG EVALUATE /rindex('aksj', 2, 2).
2892 DEBUG EVALUATE /rindex(1, 2, 3).
2893 DEBUG EVALUATE /rindex(1, 2, '3').
2896 for opt in OPT NOOPT; do
2898 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
2899 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
2900 rindex('abcbcde', 'bc') => 4.00
2902 rindex('abcbcde', 'bcd') => 4.00
2904 rindex('abcbcde', 'bcbc') => 2.00
2906 rindex('abcdefgh', 'abc') => 1.00
2908 rindex('abcdefgh', 'bcd') => 2.00
2910 rindex('abcdefgh', 'cde') => 3.00
2912 rindex('abcdefgh', 'def') => 4.00
2914 rindex('abcdefgh', 'efg') => 5.00
2916 rindex('abcdefgh', 'fgh') => 6.00
2918 rindex('abcdefgh', 'fghi') => 0.00
2920 rindex('abcdefgh', 'x') => 0.00
2922 rindex('abcdefgh', 'abch') => 0.00
2924 rindex('banana', 'na') => 5.00
2926 rindex('banana', 'ana') => 4.00
2928 rindex('', 'x') => 0.00
2930 rindex('', '') => 1.00
2932 rindex('abcdefgh', '') => 9.00
2934 rindex('abcdefgh', 'alkjsfdjlskalkjfa') => 0.00
2936 rindex('abcbcde', 'bc', 1) => 5.00
2938 rindex('abcbcde', 'dc', 1) => 6.00
2940 rindex('abcbcde', 'abc', 1) => 5.00
2942 rindex('abcbcde', 'bc', 2) => 4.00
2944 rindex('abcbcde', 'dc', 2) => 0.00
2946 rindex('abcbcde', 'abc', 1) => 5.00
2948 rindex('abcbcde', 'bccb', 2) => 4.00
2950 rindex('abcbcde', 'bcbc', 2) => 4.00
2952 evaluate.sps:31.17-31.44: error: DEBUG EVALUATE: RINDEX needle length argument
2953 must evenly divide the length of the needles argument.
2954 31 | DEBUG EVALUATE /rindex('abcbcde', 'bcbc', 0).
2955 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
2957 evaluate.sps:31.35-31.40: note: DEBUG EVALUATE: The needles argument has length
2959 31 | DEBUG EVALUATE /rindex('abcbcde', 'bcbc', 0).
2962 evaluate.sps:31.43: note: DEBUG EVALUATE: The needle length argument has value
2964 31 | DEBUG EVALUATE /rindex('abcbcde', 'bcbc', 0).
2967 rindex('abcbcde', 'bcbc', 0) => sysmis
2969 rindex('abcbcde', 'bcbc', $sysmis) => sysmis
2971 evaluate.sps:33.17-33.45: error: DEBUG EVALUATE: RINDEX needle length argument
2972 must evenly divide the length of the needles argument.
2973 33 | DEBUG EVALUATE /rindex('abcbcde', 'bcbcg', 2).
2974 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2976 evaluate.sps:33.35-33.41: note: DEBUG EVALUATE: The needles argument has length
2978 33 | DEBUG EVALUATE /rindex('abcbcde', 'bcbcg', 2).
2981 evaluate.sps:33.44: note: DEBUG EVALUATE: The needle length argument has value
2983 33 | DEBUG EVALUATE /rindex('abcbcde', 'bcbcg', 2).
2986 rindex('abcbcde', 'bcbcg', 2) => sysmis
2988 rindex('abcbcde', 'bcbcg', $sysmis) => sysmis
2990 evaluate.sps:35.17-35.47: error: DEBUG EVALUATE: Function invocation
2991 rindex(string, string, string) does not match any known function. Candidates
2993 RINDEX(string, string)
2994 RINDEX(string, string, integer).
2995 35 | DEBUG EVALUATE /rindex('abcbcde', 'bcbcg', 'x').
2996 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2998 rindex('abcbcde', 'bcbcg', 'x') => error
3000 evaluate.sps:36.17-36.39: error: DEBUG EVALUATE: Function invocation
3001 rindex(number, string, number) does not match any known function. Candidates
3003 RINDEX(string, string)
3004 RINDEX(string, string, integer).
3005 36 | DEBUG EVALUATE /rindex(1, 'bcdfkjl', 2).
3006 | ^~~~~~~~~~~~~~~~~~~~~~~
3008 rindex(1, 'bcdfkjl', 2) => error
3010 evaluate.sps:37.17-37.36: error: DEBUG EVALUATE: Function invocation
3011 rindex(string, number, number) does not match any known function. Candidates
3013 RINDEX(string, string)
3014 RINDEX(string, string, integer).
3015 37 | DEBUG EVALUATE /rindex('aksj', 2, 2).
3016 | ^~~~~~~~~~~~~~~~~~~~
3018 rindex('aksj', 2, 2) => error
3020 evaluate.sps:38.17-38.31: error: DEBUG EVALUATE: Function invocation
3021 rindex(number, number, number) does not match any known function. Candidates
3023 RINDEX(string, string)
3024 RINDEX(string, string, integer).
3025 38 | DEBUG EVALUATE /rindex(1, 2, 3).
3028 rindex(1, 2, 3) => error
3030 evaluate.sps:39.17-39.33: error: DEBUG EVALUATE: Function invocation
3031 rindex(number, number, string) does not match any known function. Candidates
3033 RINDEX(string, string)
3034 RINDEX(string, string, integer).
3035 39 | DEBUG EVALUATE /rindex(1, 2, '3').
3038 rindex(1, 2, '3') => error
3043 AT_SETUP([expressions - LENGTH])
3044 AT_KEYWORDS([expression expressions evaluate])
3045 AT_DATA([evaluate-base.sps], [
3046 DEBUG EVALUATE SET opt.
3048 DEBUG EVALUATE /length('').
3049 DEBUG EVALUATE /length('a').
3050 DEBUG EVALUATE /length('xy').
3051 DEBUG EVALUATE /length('adsf ').
3052 DEBUG EVALUATE /length('abcdefghijkl').
3053 DEBUG EVALUATE /length(0).
3054 DEBUG EVALUATE /length($sysmis).
3057 for opt in OPT NOOPT; do
3059 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
3060 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
3065 length('xy') => 2.00
3067 length('adsf ') => 8.00
3069 length('abcdefghijkl') => 12.00
3071 evaluate.sps:9.17-9.25: error: DEBUG EVALUATE: Type mismatch invoking
3072 LENGTH(string) as length(number).
3073 9 | DEBUG EVALUATE /length(0).
3078 evaluate.sps:10.17-10.31: error: DEBUG EVALUATE: Type mismatch invoking
3079 LENGTH(string) as length(number).
3080 10 | DEBUG EVALUATE /length($sysmis).
3083 length($sysmis) => error
3088 AT_SETUP([expressions - LOWER])
3089 AT_KEYWORDS([expression expressions evaluate])
3090 AT_DATA([evaluate-base.sps], [
3091 DEBUG EVALUATE SET opt.
3093 DEBUG EVALUATE /lower('ABCDEFGHIJKLMNOPQRSTUVWXYZ!@%&*089').
3094 DEBUG EVALUATE /lower('').
3095 DEBUG EVALUATE /lower(1).
3098 for opt in OPT NOOPT; do
3100 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
3101 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
3102 lower('ABCDEFGHIJKLMNOPQRSTUVWXYZ!@%&*089') => "abcdefghijklmnopqrstuvwxyz!@
3107 evaluate.sps:6.17-6.24: error: DEBUG EVALUATE: Type mismatch invoking
3108 LOWER(string) as lower(number).
3109 6 | DEBUG EVALUATE /lower(1).
3117 AT_SETUP([expressions - REPLACE])
3118 AT_KEYWORDS([expression expressions evaluate])
3119 AT_DATA([evaluate-base.sps], [
3120 DEBUG EVALUATE SET opt.
3121 DEBUG EVALUATE /replace('banana', 'an', 'AN').
3122 DEBUG EVALUATE /replace('banana', 'an', 'a').
3123 DEBUG EVALUATE /replace('banana', 'an', '').
3124 DEBUG EVALUATE /replace('banana', 'na', '').
3125 DEBUG EVALUATE /replace('banana', 'ba', 'BA').
3126 DEBUG EVALUATE /replace('banana', 'na', 'xyzzy').
3127 DEBUG EVALUATE /replace('banana', 'an', 'xyzzy', 1).
3128 DEBUG EVALUATE /replace('banana', 'an', 'xyzzy', 1.5).
3129 DEBUG EVALUATE /replace('banana', 'bananana', 'xyzzy').
3130 DEBUG EVALUATE /replace('banana', '', 'xyzzy').
3131 DEBUG EVALUATE /replace('banana', 'ba', '', 0).
3132 DEBUG EVALUATE /replace('banana', 'ba', '', -1).
3133 DEBUG EVALUATE /replace('banana', 'ba', '', $sysmis).
3136 for opt in OPT NOOPT; do
3138 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
3139 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
3140 replace('banana', 'an', 'AN') => "bANANa"
3142 replace('banana', 'an', 'a') => "baaa"
3144 replace('banana', 'an', '') => "ba"
3146 replace('banana', 'na', '') => "ba"
3148 replace('banana', 'ba', 'BA') => "BAnana"
3150 replace('banana', 'na', 'xyzzy') => "baxyzzyxyzzy"
3152 replace('banana', 'an', 'xyzzy', 1) => "bxyzzyana"
3154 evaluate.sps:10.50-10.52: error: DEBUG EVALUATE: Treating unexpected non-
3155 integer value 1.5 as missing.
3156 10 | DEBUG EVALUATE /replace('banana', 'an', 'xyzzy', 1.5).
3159 replace('banana', 'an', 'xyzzy', 1.5) => "banana"
3161 replace('banana', 'bananana', 'xyzzy') => "banana"
3163 replace('banana', '', 'xyzzy') => "banana"
3165 replace('banana', 'ba', '', 0) => "banana"
3167 replace('banana', 'ba', '', -1) => "banana"
3169 replace('banana', 'ba', '', $sysmis) => "banana"
3174 AT_SETUP([expressions - LPAD])
3175 AT_KEYWORDS([expression expressions evaluate])
3176 AT_DATA([evaluate-base.sps], [dnl
3177 DEBUG EVALUATE SET opt.
3179 DEBUG EVALUATE /lpad('abc', 0).
3180 DEBUG EVALUATE /lpad('abc', 2).
3181 DEBUG EVALUATE /lpad('abc', 3).
3182 DEBUG EVALUATE /lpad('abc', 10).
3184 DEBUG EVALUATE /lpad('abc', -1).
3185 DEBUG EVALUATE /lpad('abc', 32768).
3186 DEBUG EVALUATE /lpad('abc', $sysmis).
3188 DEBUG EVALUATE /lpad('abc', -1, '*').
3189 DEBUG EVALUATE /lpad('abc', 0, '*').
3190 DEBUG EVALUATE /lpad('abc', 2, '*').
3191 DEBUG EVALUATE /lpad('abc', 3, '*').
3192 DEBUG EVALUATE /lpad('abc', 10, '*').
3194 DEBUG EVALUATE /lpad('abc', 5, 'de').
3195 DEBUG EVALUATE /lpad('abc', 6, 'de').
3196 DEBUG EVALUATE /lpad('abc', 7, 'de').
3197 DEBUG EVALUATE /lpad('abc', 8, 'de').
3198 DEBUG EVALUATE /lpad('abc', 9, 'de').
3200 DEBUG EVALUATE /lpad('abc', 32768, '*').
3201 DEBUG EVALUATE /lpad('abc', $sysmis, '*').
3202 DEBUG EVALUATE /lpad('abc', $sysmis, '').
3203 DEBUG EVALUATE /lpad('abc', $sysmis, 'xy').
3204 DEBUG EVALUATE /lpad(0, 10).
3205 DEBUG EVALUATE /lpad('abc', 'def').
3206 DEBUG EVALUATE /lpad(0, 10, ' ').
3207 DEBUG EVALUATE /lpad('abc', 'def', ' ').
3208 DEBUG EVALUATE /lpad('x', 5, 0).
3209 DEBUG EVALUATE /lpad('x', 5, 2).
3212 for opt in OPT NOOPT; do
3214 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
3215 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
3216 lpad('abc', 0) => "abc"
3218 lpad('abc', 2) => "abc"
3220 lpad('abc', 3) => "abc"
3222 lpad('abc', 10) => " abc"
3224 evaluate.sps:8.17-8.31: error: DEBUG EVALUATE: The length argument to LPAD must
3225 be between 0 and 32767.
3226 8 | DEBUG EVALUATE /lpad('abc', -1).
3229 evaluate.sps:8.29-8.30: note: DEBUG EVALUATE: The length argument is -1.
3230 8 | DEBUG EVALUATE /lpad('abc', -1).
3233 lpad('abc', -1) => "abc"
3235 evaluate.sps:9.17-9.34: error: DEBUG EVALUATE: The length argument to LPAD must
3236 be between 0 and 32767.
3237 9 | DEBUG EVALUATE /lpad('abc', 32768).
3238 | ^~~~~~~~~~~~~~~~~~
3240 evaluate.sps:9.29-9.33: note: DEBUG EVALUATE: The length argument is 32768.
3241 9 | DEBUG EVALUATE /lpad('abc', 32768).
3244 lpad('abc', 32768) => "abc"
3246 lpad('abc', $sysmis) => "abc"
3248 evaluate.sps:12.17-12.36: error: DEBUG EVALUATE: The length argument to LPAD
3249 must be between 0 and 32767.
3250 12 | DEBUG EVALUATE /lpad('abc', -1, '*').
3251 | ^~~~~~~~~~~~~~~~~~~~
3253 evaluate.sps:12.29-12.30: note: DEBUG EVALUATE: The length argument is -1.
3254 12 | DEBUG EVALUATE /lpad('abc', -1, '*').
3257 lpad('abc', -1, '*') => "abc"
3259 lpad('abc', 0, '*') => "abc"
3261 lpad('abc', 2, '*') => "abc"
3263 lpad('abc', 3, '*') => "abc"
3265 lpad('abc', 10, '*') => "*******abc"
3267 lpad('abc', 5, 'de') => "deabc"
3269 lpad('abc', 6, 'de') => "deabc"
3271 lpad('abc', 7, 'de') => "dedeabc"
3273 lpad('abc', 8, 'de') => "dedeabc"
3275 lpad('abc', 9, 'de') => "dededeabc"
3277 evaluate.sps:24.17-24.39: error: DEBUG EVALUATE: The length argument to LPAD
3278 must be between 0 and 32767.
3279 24 | DEBUG EVALUATE /lpad('abc', 32768, '*').
3280 | ^~~~~~~~~~~~~~~~~~~~~~~
3282 evaluate.sps:24.29-24.33: note: DEBUG EVALUATE: The length argument is 32768.
3283 24 | DEBUG EVALUATE /lpad('abc', 32768, '*').
3286 lpad('abc', 32768, '*') => "abc"
3288 lpad('abc', $sysmis, '*') => "abc"
3290 lpad('abc', $sysmis, '') => "abc"
3292 lpad('abc', $sysmis, 'xy') => "abc"
3294 evaluate.sps:28.17-28.27: error: DEBUG EVALUATE: Function invocation
3295 lpad(number, number) does not match any known function. Candidates are:
3296 LPAD(string, integer)
3297 LPAD(string, integer, string).
3298 28 | DEBUG EVALUATE /lpad(0, 10).
3301 lpad(0, 10) => error
3303 evaluate.sps:29.17-29.34: error: DEBUG EVALUATE: Function invocation
3304 lpad(string, string) does not match any known function. Candidates are:
3305 LPAD(string, integer)
3306 LPAD(string, integer, string).
3307 29 | DEBUG EVALUATE /lpad('abc', 'def').
3308 | ^~~~~~~~~~~~~~~~~~
3310 lpad('abc', 'def') => error
3312 evaluate.sps:30.17-30.32: error: DEBUG EVALUATE: Function invocation
3313 lpad(number, number, string) does not match any known function. Candidates
3315 LPAD(string, integer)
3316 LPAD(string, integer, string).
3317 30 | DEBUG EVALUATE /lpad(0, 10, ' ').
3320 lpad(0, 10, ' ') => error
3322 evaluate.sps:31.17-31.39: error: DEBUG EVALUATE: Function invocation
3323 lpad(string, string, string) does not match any known function. Candidates
3325 LPAD(string, integer)
3326 LPAD(string, integer, string).
3327 31 | DEBUG EVALUATE /lpad('abc', 'def', ' ').
3328 | ^~~~~~~~~~~~~~~~~~~~~~~
3330 lpad('abc', 'def', ' ') => error
3332 evaluate.sps:32.17-32.31: error: DEBUG EVALUATE: Function invocation
3333 lpad(string, number, number) does not match any known function. Candidates
3335 LPAD(string, integer)
3336 LPAD(string, integer, string).
3337 32 | DEBUG EVALUATE /lpad('x', 5, 0).
3340 lpad('x', 5, 0) => error
3342 evaluate.sps:33.17-33.31: error: DEBUG EVALUATE: Function invocation
3343 lpad(string, number, number) does not match any known function. Candidates
3345 LPAD(string, integer)
3346 LPAD(string, integer, string).
3347 33 | DEBUG EVALUATE /lpad('x', 5, 2).
3350 lpad('x', 5, 2) => error
3355 AT_SETUP([expressions - NUMBER])
3356 AT_KEYWORDS([expression expressions evaluate])
3357 AT_DATA([evaluate-base.sps], [
3358 DEBUG EVALUATE SET opt.
3359 DEBUG EVALUATE /number("123", f3.0).
3360 DEBUG EVALUATE /number(" 123", f3.0).
3361 DEBUG EVALUATE /number("123", f3.1).
3362 DEBUG EVALUATE /number(" ", f3.1).
3363 DEBUG EVALUATE /number("123", a8).
3364 dnl CCA is not an input format:
3365 DEBUG EVALUATE /number("123", cca1.2).
3368 for opt in OPT NOOPT; do
3370 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
3371 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
3372 number("123", f3.0) => 123.00
3374 number(" 123", f3.0) => 12.00
3376 number("123", f3.1) => 12.30
3378 number(" ", f3.1) => sysmis
3380 evaluate.sps:7.17-7.33: error: DEBUG EVALUATE: Type mismatch invoking
3381 NUMBER(string, num_input_format) as number(string, format).
3382 7 | DEBUG EVALUATE /number("123", a8).
3385 number("123", a8) => error
3387 evaluate.sps:8.17-8.37: error: DEBUG EVALUATE: Type mismatch invoking
3388 NUMBER(string, num_input_format) as number(string, format).
3389 8 | DEBUG EVALUATE /number("123", cca1.2).
3390 | ^~~~~~~~~~~~~~~~~~~~~
3392 number("123", cca1.2) => error
3397 AT_SETUP([expressions - LTRIM])
3398 AT_KEYWORDS([expression expressions evaluate])
3399 AT_DATA([evaluate-base.sps], [
3400 DEBUG EVALUATE SET opt.
3401 DEBUG EVALUATE /ltrim(' abc').
3402 DEBUG EVALUATE /rtrim(' abc ').
3403 DEBUG EVALUATE /ltrim('abc').
3404 * The following string contains a tab.
3405 DEBUG EVALUATE /ltrim(' abc').
3406 DEBUG EVALUATE /ltrim(' ').
3407 DEBUG EVALUATE /ltrim('').
3408 DEBUG EVALUATE /ltrim(8).
3410 DEBUG EVALUATE /ltrim('***abc', '*').
3411 DEBUG EVALUATE /ltrim('abc', '*').
3412 DEBUG EVALUATE /ltrim('*abc', '*').
3413 DEBUG EVALUATE /ltrim('', '*').
3415 DEBUG EVALUATE /ltrim('abc', 'xy').
3416 DEBUG EVALUATE /ltrim('xyabc', 'xy').
3417 DEBUG EVALUATE /ltrim('xyxyabc', 'xy').
3419 DEBUG EVALUATE /ltrim(8, '*').
3420 DEBUG EVALUATE /ltrim(' x', 8).
3421 DEBUG EVALUATE /ltrim(8, 9).
3424 for opt in OPT NOOPT; do
3426 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
3427 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
3428 ltrim(' abc') => "abc"
3430 rtrim(' abc ') => " abc"
3432 ltrim('abc') => "abc"
3434 ltrim(' abc') => " abc"
3440 evaluate.sps:10.17-10.24: error: DEBUG EVALUATE: Function invocation
3441 ltrim(number) does not match any known function. Candidates are:
3443 LTRIM(string, string).
3444 10 | DEBUG EVALUATE /ltrim(8).
3449 ltrim('***abc', '*') => "abc"
3451 ltrim('abc', '*') => "abc"
3453 ltrim('*abc', '*') => "abc"
3455 ltrim('', '*') => ""
3457 ltrim('abc', 'xy') => "abc"
3459 ltrim('xyabc', 'xy') => "abc"
3461 ltrim('xyxyabc', 'xy') => "abc"
3463 evaluate.sps:21.17-21.29: error: DEBUG EVALUATE: Function invocation
3464 ltrim(number, string) does not match any known function. Candidates are:
3466 LTRIM(string, string).
3467 21 | DEBUG EVALUATE /ltrim(8, '*').
3470 ltrim(8, '*') => error
3472 evaluate.sps:22.17-22.30: error: DEBUG EVALUATE: Function invocation
3473 ltrim(string, number) does not match any known function. Candidates are:
3475 LTRIM(string, string).
3476 22 | DEBUG EVALUATE /ltrim(' x', 8).
3479 ltrim(' x', 8) => error
3481 evaluate.sps:23.17-23.27: error: DEBUG EVALUATE: Function invocation
3482 ltrim(number, number) does not match any known function. Candidates are:
3484 LTRIM(string, string).
3485 23 | DEBUG EVALUATE /ltrim(8, 9).
3488 ltrim(8, 9) => error
3493 AT_SETUP([expressions - RPAD])
3494 AT_KEYWORDS([expression expressions evaluate])
3495 AT_DATA([evaluate-base.sps], [dnl
3496 DEBUG EVALUATE SET opt.
3498 DEBUG EVALUATE /rpad('abc', 0).
3499 DEBUG EVALUATE /rpad('abc', 2).
3500 DEBUG EVALUATE /rpad('abc', 3).
3501 DEBUG EVALUATE /rpad('abc', 10).
3503 DEBUG EVALUATE /rpad('abc', -1).
3504 DEBUG EVALUATE /rpad('abc', 32768).
3505 DEBUG EVALUATE /rpad('abc', $sysmis).
3507 DEBUG EVALUATE /rpad('abc', -1, '*').
3508 DEBUG EVALUATE /rpad('abc', 0, '*').
3509 DEBUG EVALUATE /rpad('abc', 2, '*').
3510 DEBUG EVALUATE /rpad('abc', 3, '*').
3511 DEBUG EVALUATE /rpad('abc', 10, '*').
3513 DEBUG EVALUATE /rpad('abc', 5, 'de').
3514 DEBUG EVALUATE /rpad('abc', 6, 'de').
3515 DEBUG EVALUATE /rpad('abc', 7, 'de').
3516 DEBUG EVALUATE /rpad('abc', 8, 'de').
3517 DEBUG EVALUATE /rpad('abc', 9, 'de').
3519 DEBUG EVALUATE /rpad('abc', 32768, '*').
3520 DEBUG EVALUATE /rpad('abc', $sysmis, '*').
3521 DEBUG EVALUATE /rpad('abc', $sysmis, '').
3522 DEBUG EVALUATE /rpad('abc', $sysmis, 'xy').
3523 DEBUG EVALUATE /rpad(0, 10).
3524 DEBUG EVALUATE /rpad('abc', 'def').
3525 DEBUG EVALUATE /rpad(0, 10, ' ').
3526 DEBUG EVALUATE /rpad('abc', 'def', ' ').
3527 DEBUG EVALUATE /rpad('x', 5, 0).
3528 DEBUG EVALUATE /rpad('x', 5, 2).
3531 for opt in OPT NOOPT; do
3533 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
3534 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
3535 rpad('abc', 0) => "abc"
3537 rpad('abc', 2) => "abc"
3539 rpad('abc', 3) => "abc"
3541 rpad('abc', 10) => "abc "
3543 evaluate.sps:8.17-8.31: error: DEBUG EVALUATE: The length argument to RPAD must
3544 be between 0 and 32767.
3545 8 | DEBUG EVALUATE /rpad('abc', -1).
3548 evaluate.sps:8.29-8.30: note: DEBUG EVALUATE: The length argument is -1.
3549 8 | DEBUG EVALUATE /rpad('abc', -1).
3552 rpad('abc', -1) => "abc"
3554 evaluate.sps:9.17-9.34: error: DEBUG EVALUATE: The length argument to RPAD must
3555 be between 0 and 32767.
3556 9 | DEBUG EVALUATE /rpad('abc', 32768).
3557 | ^~~~~~~~~~~~~~~~~~
3559 evaluate.sps:9.29-9.33: note: DEBUG EVALUATE: The length argument is 32768.
3560 9 | DEBUG EVALUATE /rpad('abc', 32768).
3563 rpad('abc', 32768) => "abc"
3565 rpad('abc', $sysmis) => "abc"
3567 evaluate.sps:12.17-12.36: error: DEBUG EVALUATE: The length argument to RPAD
3568 must be between 0 and 32767.
3569 12 | DEBUG EVALUATE /rpad('abc', -1, '*').
3570 | ^~~~~~~~~~~~~~~~~~~~
3572 evaluate.sps:12.29-12.30: note: DEBUG EVALUATE: The length argument is -1.
3573 12 | DEBUG EVALUATE /rpad('abc', -1, '*').
3576 rpad('abc', -1, '*') => "abc"
3578 rpad('abc', 0, '*') => "abc"
3580 rpad('abc', 2, '*') => "abc"
3582 rpad('abc', 3, '*') => "abc"
3584 rpad('abc', 10, '*') => "abc*******"
3586 rpad('abc', 5, 'de') => "abcde"
3588 rpad('abc', 6, 'de') => "abcde"
3590 rpad('abc', 7, 'de') => "abcdede"
3592 rpad('abc', 8, 'de') => "abcdede"
3594 rpad('abc', 9, 'de') => "abcdedede"
3596 evaluate.sps:24.17-24.39: error: DEBUG EVALUATE: The length argument to RPAD
3597 must be between 0 and 32767.
3598 24 | DEBUG EVALUATE /rpad('abc', 32768, '*').
3599 | ^~~~~~~~~~~~~~~~~~~~~~~
3601 evaluate.sps:24.29-24.33: note: DEBUG EVALUATE: The length argument is 32768.
3602 24 | DEBUG EVALUATE /rpad('abc', 32768, '*').
3605 rpad('abc', 32768, '*') => "abc"
3607 rpad('abc', $sysmis, '*') => "abc"
3609 rpad('abc', $sysmis, '') => "abc"
3611 rpad('abc', $sysmis, 'xy') => "abc"
3613 evaluate.sps:28.17-28.27: error: DEBUG EVALUATE: Function invocation
3614 rpad(number, number) does not match any known function. Candidates are:
3615 RPAD(string, integer)
3616 RPAD(string, integer, string).
3617 28 | DEBUG EVALUATE /rpad(0, 10).
3620 rpad(0, 10) => error
3622 evaluate.sps:29.17-29.34: error: DEBUG EVALUATE: Function invocation
3623 rpad(string, string) does not match any known function. Candidates are:
3624 RPAD(string, integer)
3625 RPAD(string, integer, string).
3626 29 | DEBUG EVALUATE /rpad('abc', 'def').
3627 | ^~~~~~~~~~~~~~~~~~
3629 rpad('abc', 'def') => error
3631 evaluate.sps:30.17-30.32: error: DEBUG EVALUATE: Function invocation
3632 rpad(number, number, string) does not match any known function. Candidates
3634 RPAD(string, integer)
3635 RPAD(string, integer, string).
3636 30 | DEBUG EVALUATE /rpad(0, 10, ' ').
3639 rpad(0, 10, ' ') => error
3641 evaluate.sps:31.17-31.39: error: DEBUG EVALUATE: Function invocation
3642 rpad(string, string, string) does not match any known function. Candidates
3644 RPAD(string, integer)
3645 RPAD(string, integer, string).
3646 31 | DEBUG EVALUATE /rpad('abc', 'def', ' ').
3647 | ^~~~~~~~~~~~~~~~~~~~~~~
3649 rpad('abc', 'def', ' ') => error
3651 evaluate.sps:32.17-32.31: error: DEBUG EVALUATE: Function invocation
3652 rpad(string, number, number) does not match any known function. Candidates
3654 RPAD(string, integer)
3655 RPAD(string, integer, string).
3656 32 | DEBUG EVALUATE /rpad('x', 5, 0).
3659 rpad('x', 5, 0) => error
3661 evaluate.sps:33.17-33.31: error: DEBUG EVALUATE: Function invocation
3662 rpad(string, number, number) does not match any known function. Candidates
3664 RPAD(string, integer)
3665 RPAD(string, integer, string).
3666 33 | DEBUG EVALUATE /rpad('x', 5, 2).
3669 rpad('x', 5, 2) => error
3674 AT_SETUP([expressions - RTRIM])
3675 AT_KEYWORDS([expression expressions evaluate])
3676 AT_DATA([evaluate-base.sps], [
3677 DEBUG EVALUATE SET opt.
3678 DEBUG EVALUATE /rtrim('abc ').
3679 DEBUG EVALUATE /rtrim(' abc ').
3680 DEBUG EVALUATE /rtrim('abc').
3681 * The following string contains a tab.
3682 DEBUG EVALUATE /rtrim('abc ').
3683 DEBUG EVALUATE /rtrim(' ').
3684 DEBUG EVALUATE /rtrim('').
3685 DEBUG EVALUATE /rtrim(8).
3687 DEBUG EVALUATE /rtrim('abc***', '*').
3688 DEBUG EVALUATE /rtrim('abc', '*').
3689 DEBUG EVALUATE /rtrim('abc*', '*').
3690 DEBUG EVALUATE /rtrim('', '*').
3692 DEBUG EVALUATE /rtrim('abc', 'xy').
3693 DEBUG EVALUATE /rtrim('abcxy', 'xy').
3694 DEBUG EVALUATE /rtrim('abcxyxy', 'xy').
3696 DEBUG EVALUATE /rtrim(8, '*').
3697 DEBUG EVALUATE /rtrim('x ', 8).
3698 DEBUG EVALUATE /rtrim(8, 9).
3701 for opt in OPT NOOPT; do
3703 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
3704 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
3705 rtrim('abc ') => "abc"
3707 rtrim(' abc ') => " abc"
3709 rtrim('abc') => "abc"
3711 rtrim('abc ') => "abc "
3717 evaluate.sps:10.17-10.24: error: DEBUG EVALUATE: Function invocation
3718 rtrim(number) does not match any known function. Candidates are:
3720 RTRIM(string, string).
3721 10 | DEBUG EVALUATE /rtrim(8).
3726 rtrim('abc***', '*') => "abc"
3728 rtrim('abc', '*') => "abc"
3730 rtrim('abc*', '*') => "abc"
3732 rtrim('', '*') => ""
3734 rtrim('abc', 'xy') => "abc"
3736 rtrim('abcxy', 'xy') => "abc"
3738 rtrim('abcxyxy', 'xy') => "abc"
3740 evaluate.sps:21.17-21.29: error: DEBUG EVALUATE: Function invocation
3741 rtrim(number, string) does not match any known function. Candidates are:
3743 RTRIM(string, string).
3744 21 | DEBUG EVALUATE /rtrim(8, '*').
3747 rtrim(8, '*') => error
3749 evaluate.sps:22.17-22.30: error: DEBUG EVALUATE: Function invocation
3750 rtrim(string, number) does not match any known function. Candidates are:
3752 RTRIM(string, string).
3753 22 | DEBUG EVALUATE /rtrim('x ', 8).
3756 rtrim('x ', 8) => error
3758 evaluate.sps:23.17-23.27: error: DEBUG EVALUATE: Function invocation
3759 rtrim(number, number) does not match any known function. Candidates are:
3761 RTRIM(string, string).
3762 23 | DEBUG EVALUATE /rtrim(8, 9).
3765 rtrim(8, 9) => error
3770 AT_SETUP([expressions - STRING])
3771 AT_KEYWORDS([expression expressions evaluate])
3772 AT_DATA([evaluate-base.sps], [
3773 DEBUG EVALUATE SET opt.
3774 DEBUG EVALUATE /string(123.56, f5.1).
3775 DEBUG EVALUATE /string($sysmis, f5.1).
3776 DEBUG EVALUATE /string("abc", A5).
3777 dnl E has a minimum width of 6 on output:
3778 DEBUG EVALUATE /string(123, e1).
3779 DEBUG EVALUATE /string(123, e6.0).
3782 for opt in OPT NOOPT; do
3784 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
3785 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
3790 AT_SETUP([expressions - STRUNC])
3791 AT_KEYWORDS([expression expressions evaluate])
3792 AT_DATA([evaluate-base.sps], [
3793 DEBUG EVALUATE SET opt.
3794 DEBUG EVALUATE /strunc('a c ', 9).
3795 DEBUG EVALUATE /strunc('a c ', 7).
3796 DEBUG EVALUATE /strunc('a c ', 6).
3797 DEBUG EVALUATE /strunc('a c ', 5).
3798 DEBUG EVALUATE /strunc('a c ', 4).
3799 DEBUG EVALUATE /strunc('a c ', 3).
3800 DEBUG EVALUATE /strunc('a c ', 2).
3801 DEBUG EVALUATE /strunc('a c ', 1).
3802 DEBUG EVALUATE /strunc('a c ', 0).
3803 DEBUG EVALUATE /strunc('a c ', -1).
3804 DEBUG EVALUATE /strunc('a c ', $sysmis).
3805 DEBUG EVALUATE /strunc(' abc ', 9).
3806 DEBUG EVALUATE /strunc(' abc ', 8).
3807 DEBUG EVALUATE /strunc(' abc ', 7).
3808 DEBUG EVALUATE /strunc(' abc ', 6).
3809 DEBUG EVALUATE /strunc(' abc ', 5).
3810 DEBUG EVALUATE /strunc(' abc ', 4).
3811 DEBUG EVALUATE /strunc(' abc ', 3).
3812 DEBUG EVALUATE /strunc(' abc ', 2).
3813 DEBUG EVALUATE /strunc(' abc ', 1).
3814 DEBUG EVALUATE /strunc(' abc ', -1).
3815 DEBUG EVALUATE /strunc(' abc ', $sysmis).
3818 for opt in OPT NOOPT; do
3820 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
3821 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
3826 AT_SETUP([expressions - SUBSTR])
3827 AT_KEYWORDS([expression expressions evaluate])
3828 AT_DATA([evaluate-base.sps], [
3829 DEBUG EVALUATE SET opt.
3830 DEBUG EVALUATE /substr('abcdefgh', -5).
3831 DEBUG EVALUATE /substr('abcdefgh', 0).
3832 DEBUG EVALUATE /substr('abcdefgh', 1).
3833 DEBUG EVALUATE /substr('abcdefgh', 3).
3834 DEBUG EVALUATE /substr('abcdefgh', 5).
3835 DEBUG EVALUATE /substr('abcdefgh', 6).
3836 DEBUG EVALUATE /substr('abcdefgh', 7).
3837 DEBUG EVALUATE /substr('abcdefgh', 8).
3838 DEBUG EVALUATE /substr('abcdefgh', 9).
3839 DEBUG EVALUATE /substr('abcdefgh', 10).
3840 DEBUG EVALUATE /substr('abcdefgh', 20).
3841 DEBUG EVALUATE /substr('abcdefgh', $sysmis).
3842 DEBUG EVALUATE /substr(0, 10).
3843 DEBUG EVALUATE /substr('abcd', 'abc').
3844 DEBUG EVALUATE /substr(0, 'abc').
3846 DEBUG EVALUATE /substr('abcdefgh', 0, 0).
3847 DEBUG EVALUATE /substr('abcdefgh', 3, 0).
3848 DEBUG EVALUATE /substr('abcdefgh', 5, 0).
3849 DEBUG EVALUATE /substr('abcdefgh', 9, 0).
3850 DEBUG EVALUATE /substr('abcdefgh', 0, 1).
3851 DEBUG EVALUATE /substr('abcdefgh', 0, 5).
3852 DEBUG EVALUATE /substr('abcdefgh', 1, 8).
3853 DEBUG EVALUATE /substr('abcdefgh', 1, 10).
3854 DEBUG EVALUATE /substr('abcdefgh', 1, 20).
3855 DEBUG EVALUATE /substr('abcdefgh', 3, 4).
3856 DEBUG EVALUATE /substr('abcdefgh', 5, 2).
3857 DEBUG EVALUATE /substr('abcdefgh', 6, 1).
3858 DEBUG EVALUATE /substr('abcdefgh', 7, 10).
3859 DEBUG EVALUATE /substr('abcdefgh', 8, 1).
3860 DEBUG EVALUATE /substr('abcdefgh', 8, 2).
3861 DEBUG EVALUATE /substr('abcdefgh', 9, 11).
3862 DEBUG EVALUATE /substr('abcdefgh', 10, 52).
3863 DEBUG EVALUATE /substr('abcdefgh', 20, 1).
3864 DEBUG EVALUATE /substr('abcdefgh', $sysmis, 2).
3865 DEBUG EVALUATE /substr('abcdefgh', 9, $sysmis).
3866 DEBUG EVALUATE /substr('abcdefgh', $sysmis, $sysmis).
3867 DEBUG EVALUATE /substr('abc', 1, 'x').
3868 DEBUG EVALUATE /substr(0, 10, 1).
3869 DEBUG EVALUATE /substr(0, 10, 'x').
3870 DEBUG EVALUATE /substr('abcd', 'abc', 0).
3871 DEBUG EVALUATE /substr('abcd', 'abc', 'j').
3872 DEBUG EVALUATE /substr(0, 'abc', 4).
3873 DEBUG EVALUATE /substr(0, 'abc', 'k').
3876 for opt in OPT NOOPT; do
3878 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
3879 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
3884 AT_SETUP([expressions - UPCASE])
3885 AT_KEYWORDS([expression expressions evaluate])
3886 AT_DATA([evaluate-base.sps], [
3887 DEBUG EVALUATE SET opt.
3888 DEBUG EVALUATE /upcase('abcdefghijklmnopqrstuvwxyz!@%&*089').
3889 DEBUG EVALUATE /upcase('').
3890 DEBUG EVALUATE /upcase(1).
3893 for opt in OPT NOOPT; do
3895 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
3896 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
3901 AT_SETUP([expressions - TIME.DAYS])
3902 AT_KEYWORDS([expression expressions evaluate])
3903 AT_DATA([evaluate-base.sps], [
3904 DEBUG EVALUATE SET opt.
3905 DEBUG EVALUATE /time.days(1).
3906 DEBUG EVALUATE /time.days(-1).
3907 DEBUG EVALUATE /time.days(0.5).
3908 DEBUG EVALUATE /time.days('x').
3909 DEBUG EVALUATE /time.days($sysmis).
3912 for opt in OPT NOOPT; do
3914 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
3915 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
3920 AT_SETUP([expressions - TIME.HMS])
3921 AT_KEYWORDS([expression expressions evaluate])
3922 AT_DATA([evaluate-base.sps], [
3923 DEBUG EVALUATE SET opt.
3924 DEBUG EVALUATE /time.hms(4,50,38).
3925 DEBUG EVALUATE /time.hms(12,31,35).
3926 DEBUG EVALUATE /time.hms(12,47,53).
3927 DEBUG EVALUATE /time.hms(1,26,0).
3928 DEBUG EVALUATE /time.hms(20,58,11).
3929 DEBUG EVALUATE /time.hms(7,36,5).
3930 DEBUG EVALUATE /time.hms(15,43,49).
3931 DEBUG EVALUATE /time.hms(4,25,9).
3932 DEBUG EVALUATE /time.hms(6,49,27).
3933 DEBUG EVALUATE /time.hms(2,57,52).
3934 DEBUG EVALUATE /time.hms(16,45,44).
3935 DEBUG EVALUATE /time.hms(21,30,57).
3936 DEBUG EVALUATE /time.hms(22,30,4).
3937 DEBUG EVALUATE /time.hms(1,56,51).
3938 DEBUG EVALUATE /time.hms(5, 6, 7).
3939 DEBUG EVALUATE /time.hms(5, 6, 0).
3940 DEBUG EVALUATE /time.hms(5, 0, 7).
3941 DEBUG EVALUATE /time.hms(0, 6, 7).
3942 DEBUG EVALUATE /time.hms(-5, 6, -7).
3943 DEBUG EVALUATE /time.hms(-5, 5, -7).
3944 DEBUG EVALUATE /time.hms($sysmis, 6, 7).
3945 DEBUG EVALUATE /time.hms(5, $sysmis, 7).
3946 DEBUG EVALUATE /time.hms(5, $sysmis, 7).
3947 DEBUG EVALUATE /time.hms($sysmis, $sysmis, 7).
3948 DEBUG EVALUATE /time.hms(5, $sysmis, $sysmis).
3949 DEBUG EVALUATE /time.hms($sysmis, $sysmis, 7).
3950 DEBUG EVALUATE /time.hms($sysmis, $sysmis, $sysmis).
3953 for opt in OPT NOOPT; do
3955 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
3956 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
3961 AT_SETUP([expressions - CTIME.*])
3962 AT_KEYWORDS([expression expressions evaluate ctime])
3963 AT_DATA([evaluate-base.sps], [
3964 DEBUG EVALUATE SET opt.
3965 DEBUG EVALUATE /ctime.days(106272).
3966 DEBUG EVALUATE /ctime.hours(106272).
3967 DEBUG EVALUATE /ctime.minutes(106272).
3968 DEBUG EVALUATE /ctime.seconds(106272).
3969 DEBUG EVALUATE /ctime.days(-106272).
3970 DEBUG EVALUATE /ctime.hours(-106272).
3971 DEBUG EVALUATE /ctime.minutes(-106272).
3972 DEBUG EVALUATE /ctime.seconds(-106272).
3973 DEBUG EVALUATE /ctime.days($sysmis).
3974 DEBUG EVALUATE /ctime.hours($sysmis).
3975 DEBUG EVALUATE /ctime.minutes($sysmis).
3976 DEBUG EVALUATE /ctime.seconds($sysmis).
3977 DEBUG EVALUATE /ctime.days('a').
3978 DEBUG EVALUATE /ctime.hours('b').
3979 DEBUG EVALUATE /ctime.minutes('c').
3980 DEBUG EVALUATE /ctime.seconds('d').
3982 DEBUG EVALUATE /ctime.days(date.dmy(15,10,1582)).
3983 DEBUG EVALUATE /ctime.days(date.dmy(6,9,1719)).
3984 DEBUG EVALUATE /ctime.days(date.dmy(24,1,1583)).
3985 DEBUG EVALUATE /ctime.days(date.dmy(14,12,1585)).
3986 DEBUG EVALUATE /ctime.days(date.dmy(26,11,1621)).
3987 DEBUG EVALUATE /ctime.days(date.dmy(25,12,1821)).
3988 DEBUG EVALUATE /ctime.days(date.dmy(3,12,1882)).
3989 DEBUG EVALUATE /ctime.days(date.dmy(6,4,2002)).
3990 DEBUG EVALUATE /ctime.days(date.dmy(19,12,1999)).
3991 DEBUG EVALUATE /ctime.days(date.dmy(1,10,1978)).
3992 DEBUG EVALUATE /ctime.days(date.dmy(0,10,1978)).
3993 DEBUG EVALUATE /ctime.days(date.dmy(32,10,1978)).
3994 DEBUG EVALUATE /ctime.days(date.dmy(31,0,1978)).
3995 DEBUG EVALUATE /ctime.days(date.dmy(31,13,1978)).
3996 DEBUG EVALUATE /ctime.days(date.dmy($sysmis,10,1978)).
3997 DEBUG EVALUATE /ctime.days(date.dmy(31,$sysmis,1978)).
3998 DEBUG EVALUATE /ctime.days(date.dmy(31,10,$sysmis)).
3999 DEBUG EVALUATE /ctime.days(date.dmy($sysmis,$sysmis,1978)).
4000 DEBUG EVALUATE /ctime.days(date.dmy(31,$sysmis,$sysmis)).
4001 DEBUG EVALUATE /ctime.days(date.dmy($sysmis,10,$sysmis)).
4002 DEBUG EVALUATE /ctime.days(date.dmy($sysmis,$sysmis,$sysmis)).
4005 for opt in OPT NOOPT; do
4007 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4008 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4013 AT_SETUP([expressions - DATE.DMY])
4014 AT_KEYWORDS([expression expressions evaluate])
4015 AT_DATA([evaluate-base.sps], [
4016 DEBUG EVALUATE SET opt.
4017 DEBUG EVALUATE /date.dmy('a',1,2).
4018 DEBUG EVALUATE /date.dmy(1,'a',2).
4019 DEBUG EVALUATE /date.dmy(1,2,'a').
4022 for opt in OPT NOOPT; do
4024 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4025 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4030 AT_SETUP([expressions - YRMOD])
4031 AT_KEYWORDS([expression expressions evaluate])
4032 AT_DATA([evaluate-base.sps], [
4033 DEBUG EVALUATE SET opt.
4034 dnl FIXME: check out-of-range and nearly out-of-range values
4035 DEBUG EVALUATE /yrmoda(1582,10,15).
4036 DEBUG EVALUATE /yrmoda(1719,9,6).
4037 DEBUG EVALUATE /yrmoda(1583,1,24).
4038 DEBUG EVALUATE /yrmoda(1585,12,14).
4039 DEBUG EVALUATE /yrmoda(1621,11,26).
4040 DEBUG EVALUATE /yrmoda(1821,12,25).
4041 DEBUG EVALUATE /yrmoda(1882,12,3).
4042 DEBUG EVALUATE /yrmoda(2002,4,6).
4043 DEBUG EVALUATE /yrmoda(1999,12,19).
4044 DEBUG EVALUATE /yrmoda(1978,10,1).
4045 DEBUG EVALUATE /yrmoda(1978,10,0).
4046 DEBUG EVALUATE /yrmoda(1978,10,32).
4047 DEBUG EVALUATE /yrmoda(1978,0,31).
4048 DEBUG EVALUATE /yrmoda(1978,13,31).
4049 DEBUG EVALUATE /yrmoda(1978,10,$sysmis).
4050 DEBUG EVALUATE /yrmoda(1978,$sysmis,31).
4051 DEBUG EVALUATE /yrmoda($sysmis,10,31).
4052 DEBUG EVALUATE /yrmoda(1978,$sysmis,$sysmis).
4053 DEBUG EVALUATE /yrmoda($sysmis,$sysmis,31).
4054 DEBUG EVALUATE /yrmoda($sysmis,10,$sysmis).
4055 DEBUG EVALUATE /yrmoda($sysmis,$sysmis,$sysmis).
4056 DEBUG EVALUATE /yrmoda('a',1,2).
4057 DEBUG EVALUATE /yrmoda(1,'a',2).
4058 DEBUG EVALUATE /yrmoda(1,2,'a').
4061 for opt in OPT NOOPT; do
4063 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4064 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4069 AT_SETUP([expressions - DATE.MDY])
4070 AT_KEYWORDS([expression expressions evaluate])
4071 AT_DATA([evaluate-base.sps], [
4072 DEBUG EVALUATE SET opt.
4075 for opt in OPT NOOPT; do
4077 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4078 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4079 dnl FIXME: check out-of-range and nearly out-of-range values
4080 DEBUG EVALUATE /ctime.days(date.mdy(6,10,1648)) + 577735.
4081 DEBUG EVALUATE /ctime.days(date.mdy(6,30,1680)) + 577735.
4082 DEBUG EVALUATE /ctime.days(date.mdy(7,24,1716)) + 577735.
4083 DEBUG EVALUATE /ctime.days(date.mdy(6,19,1768)) + 577735.
4084 DEBUG EVALUATE /ctime.days(date.mdy(8,2,1819)) + 577735.
4085 DEBUG EVALUATE /ctime.days(date.mdy(3,27,1839)) + 577735.
4086 DEBUG EVALUATE /ctime.days(date.mdy(4,19,1903)) + 577735.
4087 DEBUG EVALUATE /ctime.days(date.mdy(8,25,1929)) + 577735.
4088 DEBUG EVALUATE /ctime.days(date.mdy(9,29,1941)) + 577735.
4089 DEBUG EVALUATE /ctime.days(date.mdy(4,19,1943)) + 577735.
4090 DEBUG EVALUATE /ctime.days(date.mdy(10,7,1943)) + 577735.
4091 DEBUG EVALUATE /ctime.days(date.mdy(3,17,1992)) + 577735.
4092 DEBUG EVALUATE /ctime.days(date.mdy(2,25,1996)) + 577735.
4093 DEBUG EVALUATE /ctime.days(date.mdy(11,10,2038)) + 577735.
4094 DEBUG EVALUATE /ctime.days(date.mdy(7,18,2094)) + 577735.
4095 dnl FIXME: check out-of-range and nearly out-of-range values
4097 DEBUG EVALUATE /ctime.days(date.mdy(10,15,1582)).
4098 DEBUG EVALUATE /ctime.days(date.mdy(9,6,1719)).
4099 DEBUG EVALUATE /ctime.days(date.mdy(1,24,1583)).
4100 DEBUG EVALUATE /ctime.days(date.mdy(12,14,1585)).
4101 DEBUG EVALUATE /ctime.days(date.mdy(11,26,1621)).
4102 DEBUG EVALUATE /ctime.days(date.mdy(12,25,1821)).
4103 DEBUG EVALUATE /ctime.days(date.mdy(12,3,1882)).
4104 DEBUG EVALUATE /ctime.days(date.mdy(4,6,2002)).
4105 DEBUG EVALUATE /ctime.days(date.mdy(12,19,1999)).
4106 DEBUG EVALUATE /ctime.days(date.mdy(10,1,1978)).
4107 DEBUG EVALUATE /ctime.days(date.mdy(10,0,1978)).
4108 DEBUG EVALUATE /ctime.days(date.mdy(10,32,1978)).
4109 DEBUG EVALUATE /ctime.days(date.mdy(0,31,1978)).
4110 DEBUG EVALUATE /ctime.days(date.mdy(13,31,1978)).
4111 DEBUG EVALUATE /ctime.days(date.mdy(10,$sysmis,1978)).
4112 DEBUG EVALUATE /ctime.days(date.mdy($sysmis,31,1978)).
4113 DEBUG EVALUATE /ctime.days(date.mdy(10,31,$sysmis)).
4114 DEBUG EVALUATE /ctime.days(date.mdy($sysmis,$sysmis,1978)).
4115 DEBUG EVALUATE /ctime.days(date.mdy($sysmis,31,$sysmis)).
4116 DEBUG EVALUATE /ctime.days(date.mdy(10,$sysmis,$sysmis)).
4117 DEBUG EVALUATE /ctime.days(date.mdy($sysmis,$sysmis,$sysmis)).
4118 DEBUG EVALUATE /date.mdy('a',1,2).
4119 DEBUG EVALUATE /date.mdy(1,'a',2).
4120 DEBUG EVALUATE /date.mdy(1,2,'a').
4121 DEBUG EVALUATE /ctime.days(date.mdy(0,0,0)).
4122 DEBUG EVALUATE /ctime.days(date.mdy(0,0,999)).
4123 DEBUG EVALUATE /date.mdy(1,1,1582).
4124 DEBUG EVALUATE /date.mdy(10,14,1582).
4125 DEBUG EVALUATE /date.mdy(10,15,1582).
4130 AT_SETUP([expressions - DATE.MOYR])
4131 AT_KEYWORDS([expression expressions evaluate])
4132 AT_DATA([evaluate-base.sps], [
4133 DEBUG EVALUATE SET opt.
4134 DEBUG EVALUATE /ctime.days(date.moyr(1,2000)).
4135 DEBUG EVALUATE /ctime.days(date.moyr(2,2000)).
4136 DEBUG EVALUATE /ctime.days(date.moyr(3,2000)).
4137 DEBUG EVALUATE /ctime.days(date.moyr(4,2000)).
4138 DEBUG EVALUATE /ctime.days(date.moyr(5,2000)).
4139 DEBUG EVALUATE /ctime.days(date.moyr(13,2000)).
4140 DEBUG EVALUATE /ctime.days(date.moyr(14,2000)).
4141 DEBUG EVALUATE /ctime.days(date.moyr($sysmis,2000)).
4142 DEBUG EVALUATE /ctime.days(date.moyr(1,$sysmis)).
4143 DEBUG EVALUATE /ctime.days(date.moyr($sysmis,$sysmis)).
4144 DEBUG EVALUATE /date.moyr('a',2000).
4145 DEBUG EVALUATE /date.moyr(5,'a').
4146 DEBUG EVALUATE /date.moyr('a','b').
4149 for opt in OPT NOOPT; do
4151 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4152 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4157 AT_SETUP([expressions - DATE.QYR])
4158 AT_KEYWORDS([expression expressions evaluate])
4159 AT_DATA([evaluate-base.sps], [
4160 DEBUG EVALUATE SET opt.
4161 DEBUG EVALUATE /ctime.days(date.qyr(1,2000)).
4162 DEBUG EVALUATE /ctime.days(date.qyr(2,2000)).
4163 DEBUG EVALUATE /ctime.days(date.qyr(5,2000)).
4164 DEBUG EVALUATE /ctime.days(date.qyr(6,2000)).
4165 DEBUG EVALUATE /ctime.days(date.qyr($sysmis,2000)).
4166 DEBUG EVALUATE /ctime.days(date.qyr(1,$sysmis)).
4167 DEBUG EVALUATE /ctime.days(date.qyr($sysmis,$sysmis)).
4168 DEBUG EVALUATE /date.qyr('a',2000).
4169 DEBUG EVALUATE /date.qyr(5,'a').
4170 DEBUG EVALUATE /date.qyr('a','b').
4173 for opt in OPT NOOPT; do
4175 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4176 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4181 AT_SETUP([expressions - DATE.WKYR])
4182 AT_KEYWORDS([expression expressions evaluate])
4183 AT_DATA([evaluate-base.sps], [
4184 DEBUG EVALUATE SET opt.
4185 DEBUG EVALUATE /ctime.days(date.wkyr(1,2000)).
4186 DEBUG EVALUATE /ctime.days(date.wkyr(15,1999)).
4187 DEBUG EVALUATE /ctime.days(date.wkyr(36,1999)).
4188 DEBUG EVALUATE /ctime.days(date.wkyr(54,1999)).
4189 DEBUG EVALUATE /ctime.days(date.wkyr($sysmis,1999)).
4190 DEBUG EVALUATE /ctime.days(date.wkyr(1,$sysmis)).
4191 DEBUG EVALUATE /ctime.days(date.wkyr($sysmis,$sysmis)).
4192 DEBUG EVALUATE /date.wkyr('a',1999).
4193 DEBUG EVALUATE /date.wkyr(5,'a').
4194 DEBUG EVALUATE /date.wkyr('a','b').
4197 for opt in OPT NOOPT; do
4199 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4200 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4205 AT_SETUP([expressions - DATE.YRDAY])
4206 AT_KEYWORDS([expression expressions evaluate])
4207 AT_DATA([evaluate-base.sps], [
4208 DEBUG EVALUATE SET opt.
4209 DEBUG EVALUATE /ctime.days(date.yrday(2000,1)).
4210 DEBUG EVALUATE /ctime.days(date.yrday(2000,100)).
4211 DEBUG EVALUATE /ctime.days(date.yrday(2000,253)).
4212 DEBUG EVALUATE /ctime.days(date.yrday(2000,500)).
4213 DEBUG EVALUATE /ctime.days(date.yrday(2000,-100)).
4214 DEBUG EVALUATE /ctime.days(date.yrday(1999,$sysmis)).
4215 DEBUG EVALUATE /ctime.days(date.yrday($sysmis,1)).
4216 DEBUG EVALUATE /ctime.days(date.yrday($sysmis,$sysmis)).
4217 DEBUG EVALUATE /date.yrday(1999,'a').
4218 DEBUG EVALUATE /date.yrday('a',5).
4219 DEBUG EVALUATE /date.yrday('a','b').
4222 for opt in OPT NOOPT; do
4224 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4225 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4230 AT_SETUP([expressions - XDATE.DATE])
4231 AT_KEYWORDS([expression expressions evaluate])
4232 AT_DATA([evaluate-base.sps], [
4233 DEBUG EVALUATE SET opt.
4234 DEBUG EVALUATE /xdate.date(date.mdy(6,10,1648) + time.hms(0,0,0)) / 86400.
4235 DEBUG EVALUATE /xdate.date(date.mdy(6,30,1680) + time.hms(4,50,38)) / 86400.
4236 DEBUG EVALUATE /xdate.date(date.mdy(7,24,1716) + time.hms(12,31,35)) / 86400.
4237 DEBUG EVALUATE /xdate.date(date.mdy(6,19,1768) + time.hms(12,47,53)) / 86400.
4238 DEBUG EVALUATE /xdate.date(date.mdy(8,2,1819) + time.hms(1,26,0)) / 86400.
4239 DEBUG EVALUATE /xdate.date(date.mdy(3,27,1839) + time.hms(20,58,11)) / 86400.
4240 DEBUG EVALUATE /xdate.date(date.mdy(4,19,1903) + time.hms(7,36,5)) / 86400.
4241 DEBUG EVALUATE /xdate.date(date.mdy(8,25,1929) + time.hms(15,43,49)) / 86400.
4242 DEBUG EVALUATE /xdate.date(date.mdy(9,29,1941) + time.hms(4,25,9)) / 86400.
4243 DEBUG EVALUATE /xdate.date(date.mdy(4,19,1943) + time.hms(6,49,27)) / 86400.
4244 DEBUG EVALUATE /xdate.date(date.mdy(10,7,1943) + time.hms(2,57,52)) / 86400.
4245 DEBUG EVALUATE /xdate.date(date.mdy(3,17,1992) + time.hms(16,45,44)) / 86400.
4246 DEBUG EVALUATE /xdate.date(date.mdy(2,25,1996) + time.hms(21,30,57)) / 86400.
4247 DEBUG EVALUATE /xdate.date(date.mdy(9,29,1941) + time.hms(4,25,9)) / 86400.
4248 DEBUG EVALUATE /xdate.date(date.mdy(4,19,43) + time.hms(6,49,27)) / 86400.
4249 DEBUG EVALUATE /xdate.date(date.mdy(10,7,43) + time.hms(2,57,52)) / 86400.
4250 DEBUG EVALUATE /xdate.date(date.mdy(3,17,92) + time.hms(16,45,44)) / 86400.
4251 DEBUG EVALUATE /xdate.date(date.mdy(2,25,96) + time.hms(21,30,57)) / 86400.
4252 DEBUG EVALUATE /xdate.date(date.mdy(11,10,2038) + time.hms(22,30,4)) / 86400.
4253 DEBUG EVALUATE /xdate.date(date.mdy(7,18,2094) + time.hms(1,56,51)) / 86400.
4254 DEBUG EVALUATE /xdate.date(123.4).
4255 DEBUG EVALUATE /xdate.date('').
4258 for opt in OPT NOOPT; do
4260 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4261 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4266 AT_SETUP([expressions - XDATE.HOUR])
4267 AT_KEYWORDS([expression expressions evaluate])
4268 AT_DATA([evaluate-base.sps], [
4269 DEBUG EVALUATE SET opt.
4270 DEBUG EVALUATE /xdate.hour(date.mdy(6,10,1648) + time.hms(0,0,0)).
4271 DEBUG EVALUATE /xdate.hour(date.mdy(6,30,1680) + time.hms(4,50,38)).
4272 DEBUG EVALUATE /xdate.hour(date.mdy(7,24,1716) + time.hms(12,31,35)).
4273 DEBUG EVALUATE /xdate.hour(date.mdy(6,19,1768) + time.hms(12,47,53)).
4274 DEBUG EVALUATE /xdate.hour(date.mdy(8,2,1819) + time.hms(1,26,0)).
4275 DEBUG EVALUATE /xdate.hour(date.mdy(3,27,1839) + time.hms(20,58,11)).
4276 DEBUG EVALUATE /xdate.hour(date.mdy(4,19,1903) + time.hms(7,36,5)).
4277 DEBUG EVALUATE /xdate.hour(date.mdy(8,25,1929) + time.hms(15,43,49)).
4278 DEBUG EVALUATE /xdate.hour(date.mdy(9,29,1941) + time.hms(4,25,9)).
4279 DEBUG EVALUATE /xdate.hour(date.mdy(4,19,1943) + time.hms(6,49,27)).
4280 DEBUG EVALUATE /xdate.hour(date.mdy(10,7,1943) + time.hms(2,57,52)).
4281 DEBUG EVALUATE /xdate.hour(date.mdy(3,17,1992) + time.hms(16,45,44)).
4282 DEBUG EVALUATE /xdate.hour(date.mdy(2,25,1996) + time.hms(21,30,57)).
4283 DEBUG EVALUATE /xdate.hour(date.mdy(9,29,1941) + time.hms(4,25,9)).
4284 DEBUG EVALUATE /xdate.hour(date.mdy(4,19,43) + time.hms(6,49,27)).
4285 DEBUG EVALUATE /xdate.hour(date.mdy(10,7,43) + time.hms(2,57,52)).
4286 DEBUG EVALUATE /xdate.hour(date.mdy(3,17,92) + time.hms(16,45,44)).
4287 DEBUG EVALUATE /xdate.hour(date.mdy(2,25,96) + time.hms(21,30,57)).
4288 DEBUG EVALUATE /xdate.hour(date.mdy(11,10,2038) + time.hms(22,30,4)).
4289 DEBUG EVALUATE /xdate.hour(date.mdy(7,18,2094) + time.hms(1,56,51)).
4290 DEBUG EVALUATE /xdate.hour(-1).
4291 DEBUG EVALUATE /xdate.hour(1).
4292 DEBUG EVALUATE /xdate.hour($sysmis).
4293 DEBUG EVALUATE /xdate.hour('').
4296 for opt in OPT NOOPT; do
4298 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4299 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4304 AT_SETUP([expressions - XDATE.JDAY])
4305 AT_KEYWORDS([expression expressions evaluate])
4306 AT_DATA([evaluate-base.sps], [
4307 DEBUG EVALUATE SET opt.
4308 DEBUG EVALUATE /xdate.jday(date.mdy(6,10,1648) + time.hms(0,0,0)).
4309 DEBUG EVALUATE /xdate.jday(date.mdy(6,30,1680) + time.hms(4,50,38)).
4310 DEBUG EVALUATE /xdate.jday(date.mdy(7,24,1716) + time.hms(12,31,35)).
4311 DEBUG EVALUATE /xdate.jday(date.mdy(6,19,1768) + time.hms(12,47,53)).
4312 DEBUG EVALUATE /xdate.jday(date.mdy(8,2,1819) + time.hms(1,26,0)).
4313 DEBUG EVALUATE /xdate.jday(date.mdy(3,27,1839) + time.hms(20,58,11)).
4314 DEBUG EVALUATE /xdate.jday(date.mdy(4,19,1903) + time.hms(7,36,5)).
4315 DEBUG EVALUATE /xdate.jday(date.mdy(8,25,1929) + time.hms(15,43,49)).
4316 DEBUG EVALUATE /xdate.jday(date.mdy(9,29,1941) + time.hms(4,25,9)).
4317 DEBUG EVALUATE /xdate.jday(date.mdy(4,19,1943) + time.hms(6,49,27)).
4318 DEBUG EVALUATE /xdate.jday(date.mdy(10,7,1943) + time.hms(2,57,52)).
4319 DEBUG EVALUATE /xdate.jday(date.mdy(3,17,1992) + time.hms(16,45,44)).
4320 DEBUG EVALUATE /xdate.jday(date.mdy(2,25,1996) + time.hms(21,30,57)).
4321 DEBUG EVALUATE /xdate.jday(date.mdy(9,29,1941) + time.hms(4,25,9)).
4322 DEBUG EVALUATE /xdate.jday(date.mdy(4,19,43) + time.hms(6,49,27)).
4323 DEBUG EVALUATE /xdate.jday(date.mdy(10,7,43) + time.hms(2,57,52)).
4324 DEBUG EVALUATE /xdate.jday(date.mdy(3,17,92) + time.hms(16,45,44)).
4325 DEBUG EVALUATE /xdate.jday(date.mdy(2,25,96) + time.hms(21,30,57)).
4326 DEBUG EVALUATE /xdate.jday(date.mdy(11,10,2038) + time.hms(22,30,4)).
4327 DEBUG EVALUATE /xdate.jday(date.mdy(7,18,2094) + time.hms(1,56,51)).
4328 DEBUG EVALUATE /xdate.jday(0).
4329 DEBUG EVALUATE /xdate.jday(1).
4330 DEBUG EVALUATE /xdate.jday(86400).
4333 for opt in OPT NOOPT; do
4335 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4336 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4341 AT_SETUP([expressions - XDATE.MDAY])
4342 AT_KEYWORDS([expression expressions evaluate])
4343 AT_DATA([evaluate-base.sps], [
4344 DEBUG EVALUATE SET opt.
4345 DEBUG EVALUATE /xdate.mday(date.mdy(6,10,1648) + time.hms(0,0,0)).
4346 DEBUG EVALUATE /xdate.mday(date.mdy(6,30,1680) + time.hms(4,50,38)).
4347 DEBUG EVALUATE /xdate.mday(date.mdy(7,24,1716) + time.hms(12,31,35)).
4348 DEBUG EVALUATE /xdate.mday(date.mdy(6,19,1768) + time.hms(12,47,53)).
4349 DEBUG EVALUATE /xdate.mday(date.mdy(8,2,1819) + time.hms(1,26,0)).
4350 DEBUG EVALUATE /xdate.mday(date.mdy(3,27,1839) + time.hms(20,58,11)).
4351 DEBUG EVALUATE /xdate.mday(date.mdy(4,19,1903) + time.hms(7,36,5)).
4352 DEBUG EVALUATE /xdate.mday(date.mdy(8,25,1929) + time.hms(15,43,49)).
4353 DEBUG EVALUATE /xdate.mday(date.mdy(9,29,1941) + time.hms(4,25,9)).
4354 DEBUG EVALUATE /xdate.mday(date.mdy(4,19,1943) + time.hms(6,49,27)).
4355 DEBUG EVALUATE /xdate.mday(date.mdy(10,7,1943) + time.hms(2,57,52)).
4356 DEBUG EVALUATE /xdate.mday(date.mdy(3,17,1992) + time.hms(16,45,44)).
4357 DEBUG EVALUATE /xdate.mday(date.mdy(2,25,1996) + time.hms(21,30,57)).
4358 DEBUG EVALUATE /xdate.mday(date.mdy(9,29,1941) + time.hms(4,25,9)).
4359 DEBUG EVALUATE /xdate.mday(date.mdy(4,19,43) + time.hms(6,49,27)).
4360 DEBUG EVALUATE /xdate.mday(date.mdy(10,7,43) + time.hms(2,57,52)).
4361 DEBUG EVALUATE /xdate.mday(date.mdy(3,17,92) + time.hms(16,45,44)).
4362 DEBUG EVALUATE /xdate.mday(date.mdy(2,25,96) + time.hms(21,30,57)).
4363 DEBUG EVALUATE /xdate.mday(date.mdy(11,10,2038) + time.hms(22,30,4)).
4364 DEBUG EVALUATE /xdate.mday(date.mdy(7,18,2094) + time.hms(1,56,51)).
4367 for opt in OPT NOOPT; do
4369 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4370 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4375 AT_SETUP([expressions - XDATE.MINUTE])
4376 AT_KEYWORDS([expression expressions evaluate])
4377 AT_DATA([evaluate-base.sps], [
4378 DEBUG EVALUATE SET opt.
4379 DEBUG EVALUATE /xdate.minute(date.mdy(6,10,1648) + time.hms(0,0,0)).
4380 DEBUG EVALUATE /xdate.minute(date.mdy(6,30,1680) + time.hms(4,50,38)).
4381 DEBUG EVALUATE /xdate.minute(date.mdy(7,24,1716) + time.hms(12,31,35)).
4382 DEBUG EVALUATE /xdate.minute(date.mdy(6,19,1768) + time.hms(12,47,53)).
4383 DEBUG EVALUATE /xdate.minute(date.mdy(8,2,1819) + time.hms(1,26,0)).
4384 DEBUG EVALUATE /xdate.minute(date.mdy(3,27,1839) + time.hms(20,58,11)).
4385 DEBUG EVALUATE /xdate.minute(date.mdy(4,19,1903) + time.hms(7,36,5)).
4386 DEBUG EVALUATE /xdate.minute(date.mdy(8,25,1929) + time.hms(15,43,49)).
4387 DEBUG EVALUATE /xdate.minute(date.mdy(9,29,1941) + time.hms(4,25,9)).
4388 DEBUG EVALUATE /xdate.minute(date.mdy(4,19,1943) + time.hms(6,49,27)).
4389 DEBUG EVALUATE /xdate.minute(date.mdy(10,7,1943) + time.hms(2,57,52)).
4390 DEBUG EVALUATE /xdate.minute(date.mdy(3,17,1992) + time.hms(16,45,44)).
4391 DEBUG EVALUATE /xdate.minute(date.mdy(2,25,1996) + time.hms(21,30,57)).
4392 DEBUG EVALUATE /xdate.minute(date.mdy(9,29,1941) + time.hms(4,25,9)).
4393 DEBUG EVALUATE /xdate.minute(date.mdy(4,19,43) + time.hms(6,49,27)).
4394 DEBUG EVALUATE /xdate.minute(date.mdy(10,7,43) + time.hms(2,57,52)).
4395 DEBUG EVALUATE /xdate.minute(date.mdy(3,17,92) + time.hms(16,45,44)).
4396 DEBUG EVALUATE /xdate.minute(date.mdy(2,25,96) + time.hms(21,30,57)).
4397 DEBUG EVALUATE /xdate.minute(date.mdy(11,10,2038) + time.hms(22,30,4)).
4398 DEBUG EVALUATE /xdate.minute(date.mdy(7,18,2094) + time.hms(1,56,51)).
4401 for opt in OPT NOOPT; do
4403 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4404 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4409 AT_SETUP([expressions - XDATE.MONTH])
4410 AT_KEYWORDS([expression expressions evaluate])
4411 AT_DATA([evaluate-base.sps], [
4412 DEBUG EVALUATE SET opt.
4413 DEBUG EVALUATE /xdate.month(date.mdy(6,10,1648) + time.hms(0,0,0)).
4414 DEBUG EVALUATE /xdate.month(date.mdy(6,30,1680) + time.hms(4,50,38)).
4415 DEBUG EVALUATE /xdate.month(date.mdy(7,24,1716) + time.hms(12,31,35)).
4416 DEBUG EVALUATE /xdate.month(date.mdy(6,19,1768) + time.hms(12,47,53)).
4417 DEBUG EVALUATE /xdate.month(date.mdy(8,2,1819) + time.hms(1,26,0)).
4418 DEBUG EVALUATE /xdate.month(date.mdy(3,27,1839) + time.hms(20,58,11)).
4419 DEBUG EVALUATE /xdate.month(date.mdy(4,19,1903) + time.hms(7,36,5)).
4420 DEBUG EVALUATE /xdate.month(date.mdy(8,25,1929) + time.hms(15,43,49)).
4421 DEBUG EVALUATE /xdate.month(date.mdy(9,29,1941) + time.hms(4,25,9)).
4422 DEBUG EVALUATE /xdate.month(date.mdy(4,19,1943) + time.hms(6,49,27)).
4423 DEBUG EVALUATE /xdate.month(date.mdy(10,7,1943) + time.hms(2,57,52)).
4424 DEBUG EVALUATE /xdate.month(date.mdy(3,17,1992) + time.hms(16,45,44)).
4425 DEBUG EVALUATE /xdate.month(date.mdy(2,25,1996) + time.hms(21,30,57)).
4426 DEBUG EVALUATE /xdate.month(date.mdy(9,29,1941) + time.hms(4,25,9)).
4427 DEBUG EVALUATE /xdate.month(date.mdy(4,19,43) + time.hms(6,49,27)).
4428 DEBUG EVALUATE /xdate.month(date.mdy(10,7,43) + time.hms(2,57,52)).
4429 DEBUG EVALUATE /xdate.month(date.mdy(3,17,92) + time.hms(16,45,44)).
4430 DEBUG EVALUATE /xdate.month(date.mdy(2,25,96) + time.hms(21,30,57)).
4431 DEBUG EVALUATE /xdate.month(date.mdy(11,10,2038) + time.hms(22,30,4)).
4432 DEBUG EVALUATE /xdate.month(date.mdy(7,18,2094) + time.hms(1,56,51)).
4435 for opt in OPT NOOPT; do
4437 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4438 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4443 AT_SETUP([expressions - XDATE.QUARTER])
4444 AT_KEYWORDS([expression expressions evaluate])
4445 AT_DATA([evaluate-base.sps], [
4446 DEBUG EVALUATE SET opt.
4447 DEBUG EVALUATE /xdate.quarter(date.mdy(6,10,1648) + time.hms(0,0,0)).
4448 DEBUG EVALUATE /xdate.quarter(date.mdy(6,30,1680) + time.hms(4,50,38)).
4449 DEBUG EVALUATE /xdate.quarter(date.mdy(7,24,1716) + time.hms(12,31,35)).
4450 DEBUG EVALUATE /xdate.quarter(date.mdy(6,19,1768) + time.hms(12,47,53)).
4451 DEBUG EVALUATE /xdate.quarter(date.mdy(8,2,1819) + time.hms(1,26,0)).
4452 DEBUG EVALUATE /xdate.quarter(date.mdy(3,27,1839) + time.hms(20,58,11)).
4453 DEBUG EVALUATE /xdate.quarter(date.mdy(4,19,1903) + time.hms(7,36,5)).
4454 DEBUG EVALUATE /xdate.quarter(date.mdy(8,25,1929) + time.hms(15,43,49)).
4455 DEBUG EVALUATE /xdate.quarter(date.mdy(9,29,1941) + time.hms(4,25,9)).
4456 DEBUG EVALUATE /xdate.quarter(date.mdy(4,19,1943) + time.hms(6,49,27)).
4457 DEBUG EVALUATE /xdate.quarter(date.mdy(10,7,1943) + time.hms(2,57,52)).
4458 DEBUG EVALUATE /xdate.quarter(date.mdy(3,17,1992) + time.hms(16,45,44)).
4459 DEBUG EVALUATE /xdate.quarter(date.mdy(2,25,1996) + time.hms(21,30,57)).
4460 DEBUG EVALUATE /xdate.quarter(date.mdy(9,29,1941) + time.hms(4,25,9)).
4461 DEBUG EVALUATE /xdate.quarter(date.mdy(4,19,43) + time.hms(6,49,27)).
4462 DEBUG EVALUATE /xdate.quarter(date.mdy(10,7,43) + time.hms(2,57,52)).
4463 DEBUG EVALUATE /xdate.quarter(date.mdy(3,17,92) + time.hms(16,45,44)).
4464 DEBUG EVALUATE /xdate.quarter(date.mdy(2,25,96) + time.hms(21,30,57)).
4465 DEBUG EVALUATE /xdate.quarter(date.mdy(11,10,2038) + time.hms(22,30,4)).
4466 DEBUG EVALUATE /xdate.quarter(date.mdy(7,18,2094) + time.hms(1,56,51)).
4469 for opt in OPT NOOPT; do
4471 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4472 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4477 AT_SETUP([expressions - XDATE.SECOND])
4478 AT_KEYWORDS([expression expressions evaluate])
4479 AT_DATA([evaluate-base.sps], [
4480 DEBUG EVALUATE SET opt.
4481 DEBUG EVALUATE /xdate.second(date.mdy(6,10,1648) + time.hms(0,0,0)).
4482 DEBUG EVALUATE /xdate.second(date.mdy(6,30,1680) + time.hms(4,50,38)).
4483 DEBUG EVALUATE /xdate.second(date.mdy(7,24,1716) + time.hms(12,31,35)).
4484 DEBUG EVALUATE /xdate.second(date.mdy(6,19,1768) + time.hms(12,47,53)).
4485 DEBUG EVALUATE /xdate.second(date.mdy(8,2,1819) + time.hms(1,26,0)).
4486 DEBUG EVALUATE /xdate.second(date.mdy(3,27,1839) + time.hms(20,58,11)).
4487 DEBUG EVALUATE /xdate.second(date.mdy(4,19,1903) + time.hms(7,36,5)).
4488 DEBUG EVALUATE /xdate.second(date.mdy(8,25,1929) + time.hms(15,43,49)).
4489 DEBUG EVALUATE /xdate.second(date.mdy(9,29,1941) + time.hms(4,25,9)).
4490 DEBUG EVALUATE /xdate.second(date.mdy(4,19,1943) + time.hms(6,49,27)).
4491 DEBUG EVALUATE /xdate.second(date.mdy(10,7,1943) + time.hms(2,57,52)).
4492 DEBUG EVALUATE /xdate.second(date.mdy(3,17,1992) + time.hms(16,45,44)).
4493 DEBUG EVALUATE /xdate.second(date.mdy(2,25,1996) + time.hms(21,30,57)).
4494 DEBUG EVALUATE /xdate.second(date.mdy(9,29,1941) + time.hms(4,25,9)).
4495 DEBUG EVALUATE /xdate.second(date.mdy(4,19,43) + time.hms(6,49,27)).
4496 DEBUG EVALUATE /xdate.second(date.mdy(10,7,43) + time.hms(2,57,52)).
4497 DEBUG EVALUATE /xdate.second(date.mdy(3,17,92) + time.hms(16,45,44)).
4498 DEBUG EVALUATE /xdate.second(date.mdy(2,25,96) + time.hms(21,30,57)).
4499 DEBUG EVALUATE /xdate.second(date.mdy(11,10,2038) + time.hms(22,30,4)).
4500 DEBUG EVALUATE /xdate.second(date.mdy(7,18,2094) + time.hms(1,56,51)).
4503 for opt in OPT NOOPT; do
4505 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4506 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4511 AT_SETUP([expressions - XDATE.TDAY])
4512 AT_KEYWORDS([expression expressions evaluate])
4513 AT_DATA([evaluate-base.sps], [
4514 DEBUG EVALUATE SET opt.
4515 DEBUG EVALUATE /xdate.tday(date.mdy(6,10,1648) + time.hms(0,0,0)).
4516 DEBUG EVALUATE /xdate.tday(date.mdy(6,30,1680) + time.hms(4,50,38)).
4517 DEBUG EVALUATE /xdate.tday(date.mdy(7,24,1716) + time.hms(12,31,35)).
4518 DEBUG EVALUATE /xdate.tday(date.mdy(6,19,1768) + time.hms(12,47,53)).
4519 DEBUG EVALUATE /xdate.tday(date.mdy(8,2,1819) + time.hms(1,26,0)).
4520 DEBUG EVALUATE /xdate.tday(date.mdy(3,27,1839) + time.hms(20,58,11)).
4521 DEBUG EVALUATE /xdate.tday(date.mdy(4,19,1903) + time.hms(7,36,5)).
4522 DEBUG EVALUATE /xdate.tday(date.mdy(8,25,1929) + time.hms(15,43,49)).
4523 DEBUG EVALUATE /xdate.tday(date.mdy(9,29,1941) + time.hms(4,25,9)).
4524 DEBUG EVALUATE /xdate.tday(date.mdy(4,19,1943) + time.hms(6,49,27)).
4525 DEBUG EVALUATE /xdate.tday(date.mdy(10,7,1943) + time.hms(2,57,52)).
4526 DEBUG EVALUATE /xdate.tday(date.mdy(3,17,1992) + time.hms(16,45,44)).
4527 DEBUG EVALUATE /xdate.tday(date.mdy(2,25,1996) + time.hms(21,30,57)).
4528 DEBUG EVALUATE /xdate.tday(date.mdy(9,29,1941) + time.hms(4,25,9)).
4529 DEBUG EVALUATE /xdate.tday(date.mdy(4,19,43) + time.hms(6,49,27)).
4530 DEBUG EVALUATE /xdate.tday(date.mdy(10,7,43) + time.hms(2,57,52)).
4531 DEBUG EVALUATE /xdate.tday(date.mdy(3,17,92) + time.hms(16,45,44)).
4532 DEBUG EVALUATE /xdate.tday(date.mdy(2,25,96) + time.hms(21,30,57)).
4533 DEBUG EVALUATE /xdate.tday(date.mdy(11,10,2038) + time.hms(22,30,4)).
4534 DEBUG EVALUATE /xdate.tday(date.mdy(7,18,2094) + time.hms(1,56,51)).
4537 for opt in OPT NOOPT; do
4539 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4540 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4545 AT_SETUP([expressions - XDATE.TIME])
4546 AT_KEYWORDS([expression expressions evaluate])
4547 AT_DATA([evaluate-base.sps], [
4548 DEBUG EVALUATE SET opt.
4549 DEBUG EVALUATE /xdate.time(date.mdy(6,10,1648) + time.hms(0,0,0)).
4550 DEBUG EVALUATE /xdate.time(date.mdy(6,30,1680) + time.hms(4,50,38)).
4551 DEBUG EVALUATE /xdate.time(date.mdy(7,24,1716) + time.hms(12,31,35)).
4552 DEBUG EVALUATE /xdate.time(date.mdy(6,19,1768) + time.hms(12,47,53)).
4553 DEBUG EVALUATE /xdate.time(date.mdy(8,2,1819) + time.hms(1,26,0)).
4554 DEBUG EVALUATE /xdate.time(date.mdy(3,27,1839) + time.hms(20,58,11)).
4555 DEBUG EVALUATE /xdate.time(date.mdy(4,19,1903) + time.hms(7,36,5)).
4556 DEBUG EVALUATE /xdate.time(date.mdy(8,25,1929) + time.hms(15,43,49)).
4557 DEBUG EVALUATE /xdate.time(date.mdy(9,29,1941) + time.hms(4,25,9)).
4558 DEBUG EVALUATE /xdate.time(date.mdy(4,19,1943) + time.hms(6,49,27)).
4559 DEBUG EVALUATE /xdate.time(date.mdy(10,7,1943) + time.hms(2,57,52)).
4560 DEBUG EVALUATE /xdate.time(date.mdy(3,17,1992) + time.hms(16,45,44)).
4561 DEBUG EVALUATE /xdate.time(date.mdy(2,25,1996) + time.hms(21,30,57)).
4562 DEBUG EVALUATE /xdate.time(date.mdy(9,29,1941) + time.hms(4,25,9)).
4563 DEBUG EVALUATE /xdate.time(date.mdy(4,19,43) + time.hms(6,49,27)).
4564 DEBUG EVALUATE /xdate.time(date.mdy(10,7,43) + time.hms(2,57,52)).
4565 DEBUG EVALUATE /xdate.time(date.mdy(3,17,92) + time.hms(16,45,44)).
4566 DEBUG EVALUATE /xdate.time(date.mdy(2,25,96) + time.hms(21,30,57)).
4567 DEBUG EVALUATE /xdate.time(date.mdy(11,10,2038) + time.hms(22,30,4)).
4568 DEBUG EVALUATE /xdate.time(date.mdy(7,18,2094) + time.hms(1,56,51)).
4571 for opt in OPT NOOPT; do
4573 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4574 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4579 AT_SETUP([expressions - XDATE.WEEK])
4580 AT_KEYWORDS([expression expressions evaluate])
4581 AT_DATA([evaluate-base.sps], [
4582 DEBUG EVALUATE SET opt.
4583 DEBUG EVALUATE /xdate.week(date.mdy(6,10,1648) + time.hms(0,0,0)).
4584 DEBUG EVALUATE /xdate.week(date.mdy(6,30,1680) + time.hms(4,50,38)).
4585 DEBUG EVALUATE /xdate.week(date.mdy(7,24,1716) + time.hms(12,31,35)).
4586 DEBUG EVALUATE /xdate.week(date.mdy(6,19,1768) + time.hms(12,47,53)).
4587 DEBUG EVALUATE /xdate.week(date.mdy(8,2,1819) + time.hms(1,26,0)).
4588 DEBUG EVALUATE /xdate.week(date.mdy(3,27,1839) + time.hms(20,58,11)).
4589 DEBUG EVALUATE /xdate.week(date.mdy(4,19,1903) + time.hms(7,36,5)).
4590 DEBUG EVALUATE /xdate.week(date.mdy(8,25,1929) + time.hms(15,43,49)).
4591 DEBUG EVALUATE /xdate.week(date.mdy(9,29,1941) + time.hms(4,25,9)).
4592 DEBUG EVALUATE /xdate.week(date.mdy(4,19,1943) + time.hms(6,49,27)).
4593 DEBUG EVALUATE /xdate.week(date.mdy(10,7,1943) + time.hms(2,57,52)).
4594 DEBUG EVALUATE /xdate.week(date.mdy(3,17,1992) + time.hms(16,45,44)).
4595 DEBUG EVALUATE /xdate.week(date.mdy(2,25,1996) + time.hms(21,30,57)).
4596 DEBUG EVALUATE /xdate.week(date.mdy(9,29,1941) + time.hms(4,25,9)).
4597 DEBUG EVALUATE /xdate.week(date.mdy(4,19,43) + time.hms(6,49,27)).
4598 DEBUG EVALUATE /xdate.week(date.mdy(10,7,43) + time.hms(2,57,52)).
4599 DEBUG EVALUATE /xdate.week(date.mdy(3,17,92) + time.hms(16,45,44)).
4600 DEBUG EVALUATE /xdate.week(date.mdy(2,25,96) + time.hms(21,30,57)).
4601 DEBUG EVALUATE /xdate.week(date.mdy(11,10,2038) + time.hms(22,30,4)).
4602 DEBUG EVALUATE /xdate.week(date.mdy(7,18,2094) + time.hms(1,56,51)).
4605 for opt in OPT NOOPT; do
4607 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4608 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4613 AT_SETUP([expressions - XDATE.WKDAY])
4614 AT_KEYWORDS([expression expressions evaluate])
4615 AT_DATA([evaluate-base.sps], [
4616 DEBUG EVALUATE SET opt.
4617 DEBUG EVALUATE /xdate.wkday(date.mdy(6,10,1648)).
4618 DEBUG EVALUATE /xdate.wkday(date.mdy(6,30,1680)).
4619 DEBUG EVALUATE /xdate.wkday(date.mdy(7,24,1716)).
4620 DEBUG EVALUATE /xdate.wkday(date.mdy(6,19,1768)).
4621 DEBUG EVALUATE /xdate.wkday(date.mdy(8,2,1819)).
4622 DEBUG EVALUATE /xdate.wkday(date.mdy(3,27,1839)).
4623 DEBUG EVALUATE /xdate.wkday(date.mdy(4,19,1903)).
4624 DEBUG EVALUATE /xdate.wkday(date.mdy(8,25,1929)).
4625 DEBUG EVALUATE /xdate.wkday(date.mdy(9,29,1941)).
4626 DEBUG EVALUATE /xdate.wkday(date.mdy(4,19,1943)).
4627 DEBUG EVALUATE /xdate.wkday(date.mdy(10,7,1943)).
4628 DEBUG EVALUATE /xdate.wkday(date.mdy(3,17,1992)).
4629 DEBUG EVALUATE /xdate.wkday(date.mdy(2,25,1996)).
4630 DEBUG EVALUATE /xdate.wkday(date.mdy(9,29,1941)).
4631 DEBUG EVALUATE /xdate.wkday(date.mdy(4,19,43)).
4632 DEBUG EVALUATE /xdate.wkday(date.mdy(10,7,43)).
4633 DEBUG EVALUATE /xdate.wkday(date.mdy(3,17,92)).
4634 DEBUG EVALUATE /xdate.wkday(date.mdy(2,25,96)).
4635 DEBUG EVALUATE /xdate.wkday(date.mdy(11,10,2038)).
4636 DEBUG EVALUATE /xdate.wkday(date.mdy(7,18,2094)).
4639 for opt in OPT NOOPT; do
4641 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4642 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4647 AT_SETUP([expressions - XDATE.YEAR])
4648 AT_KEYWORDS([expression expressions evaluate])
4649 AT_DATA([evaluate-base.sps], [
4650 DEBUG EVALUATE SET opt.
4651 DEBUG EVALUATE /xdate.year(date.mdy(6,10,1648) + time.hms(0,0,0)).
4652 DEBUG EVALUATE /xdate.year(date.mdy(6,30,1680) + time.hms(4,50,38)).
4653 DEBUG EVALUATE /xdate.year(date.mdy(7,24,1716) + time.hms(12,31,35)).
4654 DEBUG EVALUATE /xdate.year(date.mdy(6,19,1768) + time.hms(12,47,53)).
4655 DEBUG EVALUATE /xdate.year(date.mdy(8,2,1819) + time.hms(1,26,0)).
4656 DEBUG EVALUATE /xdate.year(date.mdy(3,27,1839) + time.hms(20,58,11)).
4657 DEBUG EVALUATE /xdate.year(date.mdy(4,19,1903) + time.hms(7,36,5)).
4658 DEBUG EVALUATE /xdate.year(date.mdy(8,25,1929) + time.hms(15,43,49)).
4659 DEBUG EVALUATE /xdate.year(date.mdy(9,29,1941) + time.hms(4,25,9)).
4660 DEBUG EVALUATE /xdate.year(date.mdy(4,19,1943) + time.hms(6,49,27)).
4661 DEBUG EVALUATE /xdate.year(date.mdy(10,7,1943) + time.hms(2,57,52)).
4662 DEBUG EVALUATE /xdate.year(date.mdy(3,17,1992) + time.hms(16,45,44)).
4663 DEBUG EVALUATE /xdate.year(date.mdy(2,25,1996) + time.hms(21,30,57)).
4664 DEBUG EVALUATE /xdate.year(date.mdy(9,29,1941) + time.hms(4,25,9)).
4665 DEBUG EVALUATE /xdate.year(date.mdy(4,19,43) + time.hms(6,49,27)).
4666 DEBUG EVALUATE /xdate.year(date.mdy(10,7,43) + time.hms(2,57,52)).
4667 DEBUG EVALUATE /xdate.year(date.mdy(3,17,92) + time.hms(16,45,44)).
4668 DEBUG EVALUATE /xdate.year(date.mdy(2,25,96) + time.hms(21,30,57)).
4669 DEBUG EVALUATE /xdate.year(date.mdy(11,10,2038) + time.hms(22,30,4)).
4670 DEBUG EVALUATE /xdate.year(date.mdy(7,18,2094) + time.hms(1,56,51)).
4673 for opt in OPT NOOPT; do
4675 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4676 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4681 AT_SETUP([expressions - DATEDIFF])
4682 AT_KEYWORDS([expression expressions evaluate])
4683 AT_DATA([evaluate-base.sps], [
4684 DEBUG EVALUATE SET opt.
4685 DEBUG EVALUATE /datediff(date.mdy(6,10,1648), date.mdy(6,30,1680), 'years').
4686 DEBUG EVALUATE /datediff(date.mdy(6,30,1680), date.mdy(7,24,1716), 'years').
4687 DEBUG EVALUATE /datediff(date.mdy(7,24,1716), date.mdy(6,19,1768), 'years').
4688 DEBUG EVALUATE /datediff(date.mdy(6,19,1768), date.mdy(8,2,1819), 'years').
4689 DEBUG EVALUATE /datediff(date.mdy(8,2,1819), date.mdy(3,27,1839), 'years').
4690 DEBUG EVALUATE /datediff(date.mdy(3,27,1839), date.mdy(4,19,1903), 'years').
4691 DEBUG EVALUATE /datediff(date.mdy(4,19,1903), date.mdy(8,25,1929), 'years').
4692 DEBUG EVALUATE /datediff(date.mdy(8,25,1929), date.mdy(9,29,1941), 'years').
4693 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(4,19,1943), 'years').
4694 DEBUG EVALUATE /datediff(date.mdy(4,19,1943), date.mdy(10,7,1943), 'years').
4695 DEBUG EVALUATE /datediff(date.mdy(10,7,1943), date.mdy(3,17,1992), 'years').
4696 DEBUG EVALUATE /datediff(date.mdy(3,17,1992), date.mdy(2,25,1996), 'years').
4697 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(2,25,1996), 'years').
4698 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(4,19,43), 'years').
4699 DEBUG EVALUATE /datediff(date.mdy(4,19,43), date.mdy(10,7,43), 'years').
4700 DEBUG EVALUATE /datediff(date.mdy(10,7,43), date.mdy(3,17,92), 'years').
4701 DEBUG EVALUATE /datediff(date.mdy(3,17,92), date.mdy(2,25,96), 'years').
4702 DEBUG EVALUATE /datediff(date.mdy(2,25,96), date.mdy(11,10,2038), 'years').
4703 DEBUG EVALUATE /datediff(date.mdy(11,10,2038), date.mdy(7,18,2094), 'years').
4704 DEBUG EVALUATE /datediff(date.mdy(2,29,1900), date.mdy(2,29,1904), 'years').
4705 DEBUG EVALUATE /datediff(date.mdy(2,29,1904), date.mdy(2,29,1908), 'years').
4706 DEBUG EVALUATE /datediff(date.mdy(2,29,1900), date.mdy(2,28,1903), 'years').
4708 DEBUG EVALUATE /datediff(date.mdy(6,10,1648), date.mdy(6,30,1680), 'quarters').
4709 DEBUG EVALUATE /datediff(date.mdy(6,30,1680), date.mdy(7,24,1716), 'quarters').
4710 DEBUG EVALUATE /datediff(date.mdy(7,24,1716), date.mdy(6,19,1768), 'quarters').
4711 DEBUG EVALUATE /datediff(date.mdy(6,19,1768), date.mdy(8,2,1819), 'quarters').
4712 DEBUG EVALUATE /datediff(date.mdy(8,2,1819), date.mdy(3,27,1839), 'quarters').
4713 DEBUG EVALUATE /datediff(date.mdy(3,27,1839), date.mdy(4,19,1903), 'quarters').
4714 DEBUG EVALUATE /datediff(date.mdy(4,19,1903), date.mdy(8,25,1929), 'quarters').
4715 DEBUG EVALUATE /datediff(date.mdy(8,25,1929), date.mdy(9,29,1941), 'quarters').
4716 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(4,19,1943), 'quarters').
4717 DEBUG EVALUATE /datediff(date.mdy(4,19,1943), date.mdy(10,7,1943), 'quarters').
4718 DEBUG EVALUATE /datediff(date.mdy(10,7,1943), date.mdy(3,17,1992), 'quarters').
4719 DEBUG EVALUATE /datediff(date.mdy(3,17,1992), date.mdy(2,25,1996), 'quarters').
4720 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(2,25,1996), 'quarters').
4721 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(4,19,43), 'quarters').
4722 DEBUG EVALUATE /datediff(date.mdy(4,19,43), date.mdy(10,7,43), 'quarters').
4723 DEBUG EVALUATE /datediff(date.mdy(10,7,43), date.mdy(3,17,92), 'quarters').
4724 DEBUG EVALUATE /datediff(date.mdy(3,17,92), date.mdy(2,25,96), 'quarters').
4725 DEBUG EVALUATE /datediff(date.mdy(2,25,96), date.mdy(11,10,2038), 'quarters').
4726 DEBUG EVALUATE /datediff(date.mdy(11,10,2038), date.mdy(7,18,2094), 'quarters').
4727 DEBUG EVALUATE /datediff(date.mdy(2,29,1900), date.mdy(2,29,1904), 'quarters').
4728 DEBUG EVALUATE /datediff(date.mdy(2,29,1904), date.mdy(2,29,1908), 'quarters').
4729 DEBUG EVALUATE /datediff(date.mdy(2,29,1900), date.mdy(2,28,1903), 'quarters').
4731 DEBUG EVALUATE /datediff(date.mdy(6,10,1648), date.mdy(6,30,1680), 'months').
4732 DEBUG EVALUATE /datediff(date.mdy(6,30,1680), date.mdy(7,24,1716), 'months').
4733 DEBUG EVALUATE /datediff(date.mdy(7,24,1716), date.mdy(6,19,1768), 'months').
4734 DEBUG EVALUATE /datediff(date.mdy(6,19,1768), date.mdy(8,2,1819), 'months').
4735 DEBUG EVALUATE /datediff(date.mdy(8,2,1819), date.mdy(3,27,1839), 'months').
4736 DEBUG EVALUATE /datediff(date.mdy(3,27,1839), date.mdy(4,19,1903), 'months').
4737 DEBUG EVALUATE /datediff(date.mdy(4,19,1903), date.mdy(8,25,1929), 'months').
4738 DEBUG EVALUATE /datediff(date.mdy(8,25,1929), date.mdy(9,29,1941), 'months').
4739 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(4,19,1943), 'months').
4740 DEBUG EVALUATE /datediff(date.mdy(4,19,1943), date.mdy(10,7,1943), 'months').
4741 DEBUG EVALUATE /datediff(date.mdy(10,7,1943), date.mdy(3,17,1992), 'months').
4742 DEBUG EVALUATE /datediff(date.mdy(3,17,1992), date.mdy(2,25,1996), 'months').
4743 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(2,25,1996), 'months').
4744 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(4,19,43), 'months').
4745 DEBUG EVALUATE /datediff(date.mdy(4,19,43), date.mdy(10,7,43), 'months').
4746 DEBUG EVALUATE /datediff(date.mdy(10,7,43), date.mdy(3,17,92), 'months').
4747 DEBUG EVALUATE /datediff(date.mdy(3,17,92), date.mdy(2,25,96), 'months').
4748 DEBUG EVALUATE /datediff(date.mdy(2,25,96), date.mdy(11,10,2038), 'months').
4749 DEBUG EVALUATE /datediff(date.mdy(11,10,2038), date.mdy(7,18,2094), 'months').
4750 DEBUG EVALUATE /datediff(date.mdy(2,29,1900), date.mdy(2,29,1904), 'months').
4751 DEBUG EVALUATE /datediff(date.mdy(2,29,1904), date.mdy(2,29,1908), 'months').
4752 DEBUG EVALUATE /datediff(date.mdy(2,29,1900), date.mdy(2,28,1903), 'months').
4754 DEBUG EVALUATE /datediff(date.mdy(6,10,1648), date.mdy(6,30,1680), 'weeks').
4755 DEBUG EVALUATE /datediff(date.mdy(6,30,1680), date.mdy(7,24,1716), 'weeks').
4756 DEBUG EVALUATE /datediff(date.mdy(7,24,1716), date.mdy(6,19,1768), 'weeks').
4757 DEBUG EVALUATE /datediff(date.mdy(6,19,1768), date.mdy(8,2,1819), 'weeks').
4758 DEBUG EVALUATE /datediff(date.mdy(8,2,1819), date.mdy(3,27,1839), 'weeks').
4759 DEBUG EVALUATE /datediff(date.mdy(3,27,1839), date.mdy(4,19,1903), 'weeks').
4760 DEBUG EVALUATE /datediff(date.mdy(4,19,1903), date.mdy(8,25,1929), 'weeks').
4761 DEBUG EVALUATE /datediff(date.mdy(8,25,1929), date.mdy(9,29,1941), 'weeks').
4762 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(4,19,1943), 'weeks').
4763 DEBUG EVALUATE /datediff(date.mdy(4,19,1943), date.mdy(10,7,1943), 'weeks').
4764 DEBUG EVALUATE /datediff(date.mdy(10,7,1943), date.mdy(3,17,1992), 'weeks').
4765 DEBUG EVALUATE /datediff(date.mdy(3,17,1992), date.mdy(2,25,1996), 'weeks').
4766 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(2,25,1996), 'weeks').
4767 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(4,19,43), 'weeks').
4768 DEBUG EVALUATE /datediff(date.mdy(4,19,43), date.mdy(10,7,43), 'weeks').
4769 DEBUG EVALUATE /datediff(date.mdy(10,7,43), date.mdy(3,17,92), 'weeks').
4770 DEBUG EVALUATE /datediff(date.mdy(3,17,92), date.mdy(2,25,96), 'weeks').
4771 DEBUG EVALUATE /datediff(date.mdy(2,25,96), date.mdy(11,10,2038), 'weeks').
4772 DEBUG EVALUATE /datediff(date.mdy(11,10,2038), date.mdy(7,18,2094), 'weeks').
4773 DEBUG EVALUATE /datediff(date.mdy(2,29,1900), date.mdy(2,29,1904), 'weeks').
4774 DEBUG EVALUATE /datediff(date.mdy(2,29,1904), date.mdy(2,29,1908), 'weeks').
4775 DEBUG EVALUATE /datediff(date.mdy(2,29,1900), date.mdy(2,28,1903), 'weeks').
4777 DEBUG EVALUATE /datediff(date.mdy(6,10,1648), date.mdy(6,30,1680), 'days').
4778 DEBUG EVALUATE /datediff(date.mdy(6,30,1680), date.mdy(7,24,1716), 'days').
4779 DEBUG EVALUATE /datediff(date.mdy(7,24,1716), date.mdy(6,19,1768), 'days').
4780 DEBUG EVALUATE /datediff(date.mdy(6,19,1768), date.mdy(8,2,1819), 'days').
4781 DEBUG EVALUATE /datediff(date.mdy(8,2,1819), date.mdy(3,27,1839), 'days').
4782 DEBUG EVALUATE /datediff(date.mdy(3,27,1839), date.mdy(4,19,1903), 'days').
4783 DEBUG EVALUATE /datediff(date.mdy(4,19,1903), date.mdy(8,25,1929), 'days').
4784 DEBUG EVALUATE /datediff(date.mdy(8,25,1929), date.mdy(9,29,1941), 'days').
4785 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(4,19,1943), 'days').
4786 DEBUG EVALUATE /datediff(date.mdy(4,19,1943), date.mdy(10,7,1943), 'days').
4787 DEBUG EVALUATE /datediff(date.mdy(10,7,1943), date.mdy(3,17,1992), 'days').
4788 DEBUG EVALUATE /datediff(date.mdy(3,17,1992), date.mdy(2,25,1996), 'days').
4789 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(2,25,1996), 'days').
4790 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(4,19,43), 'days').
4791 DEBUG EVALUATE /datediff(date.mdy(4,19,43), date.mdy(10,7,43), 'days').
4792 DEBUG EVALUATE /datediff(date.mdy(10,7,43), date.mdy(3,17,92), 'days').
4793 DEBUG EVALUATE /datediff(date.mdy(3,17,92), date.mdy(2,25,96), 'days').
4794 DEBUG EVALUATE /datediff(date.mdy(2,25,96), date.mdy(11,10,2038), 'days').
4795 DEBUG EVALUATE /datediff(date.mdy(11,10,2038), date.mdy(7,18,2094), 'days').
4796 DEBUG EVALUATE /datediff(date.mdy(2,29,1900), date.mdy(2,29,1904), 'days').
4797 DEBUG EVALUATE /datediff(date.mdy(2,29,1904), date.mdy(2,29,1908), 'days').
4798 DEBUG EVALUATE /datediff(date.mdy(2,29,1900), date.mdy(2,28,1903), 'days').
4800 DEBUG EVALUATE /datediff(date.mdy(6,30,1680), date.mdy(6,10,1648), 'years').
4801 DEBUG EVALUATE /datediff(date.mdy(7,24,1716), date.mdy(6,30,1680), 'years').
4802 DEBUG EVALUATE /datediff(date.mdy(6,19,1768), date.mdy(7,24,1716), 'years').
4803 DEBUG EVALUATE /datediff(date.mdy(8,2,1819), date.mdy(6,19,1768), 'years').
4804 DEBUG EVALUATE /datediff(date.mdy(3,27,1839), date.mdy(8,2,1819), 'years').
4805 DEBUG EVALUATE /datediff(date.mdy(4,19,1903), date.mdy(3,27,1839), 'years').
4806 DEBUG EVALUATE /datediff(date.mdy(8,25,1929), date.mdy(4,19,1903), 'years').
4807 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(8,25,1929), 'years').
4808 DEBUG EVALUATE /datediff(date.mdy(4,19,1943), date.mdy(9,29,1941), 'years').
4809 DEBUG EVALUATE /datediff(date.mdy(10,7,1943), date.mdy(4,19,1943), 'years').
4810 DEBUG EVALUATE /datediff(date.mdy(3,17,1992), date.mdy(10,7,1943), 'years').
4811 DEBUG EVALUATE /datediff(date.mdy(2,25,1996), date.mdy(3,17,1992), 'years').
4812 DEBUG EVALUATE /datediff(date.mdy(2,25,1996), date.mdy(9,29,1941), 'years').
4813 DEBUG EVALUATE /datediff(date.mdy(4,19,43), date.mdy(9,29,1941), 'years').
4814 DEBUG EVALUATE /datediff(date.mdy(10,7,43), date.mdy(4,19,43), 'years').
4815 DEBUG EVALUATE /datediff(date.mdy(3,17,92), date.mdy(10,7,43), 'years').
4816 DEBUG EVALUATE /datediff(date.mdy(2,25,96), date.mdy(3,17,92), 'years').
4817 DEBUG EVALUATE /datediff(date.mdy(11,10,2038), date.mdy(2,25,96), 'years').
4818 DEBUG EVALUATE /datediff(date.mdy(7,18,2094), date.mdy(11,10,2038), 'years').
4819 DEBUG EVALUATE /datediff(date.mdy(2,29,1904), date.mdy(2,29,1900), 'years').
4820 DEBUG EVALUATE /datediff(date.mdy(2,29,1908), date.mdy(2,29,1904), 'years').
4821 DEBUG EVALUATE /datediff(date.mdy(2,28,1903), date.mdy(2,29,1900), 'years').
4823 DEBUG EVALUATE /datediff(date.mdy(6,30,1680), date.mdy(6,10,1648), 'months').
4824 DEBUG EVALUATE /datediff(date.mdy(7,24,1716), date.mdy(6,30,1680), 'months').
4825 DEBUG EVALUATE /datediff(date.mdy(6,19,1768), date.mdy(7,24,1716), 'months').
4826 DEBUG EVALUATE /datediff(date.mdy(8,2,1819), date.mdy(6,19,1768), 'months').
4827 DEBUG EVALUATE /datediff(date.mdy(3,27,1839), date.mdy(8,2,1819), 'months').
4828 DEBUG EVALUATE /datediff(date.mdy(4,19,1903), date.mdy(3,27,1839), 'months').
4829 DEBUG EVALUATE /datediff(date.mdy(8,25,1929), date.mdy(4,19,1903), 'months').
4830 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(8,25,1929), 'months').
4831 DEBUG EVALUATE /datediff(date.mdy(4,19,1943), date.mdy(9,29,1941), 'months').
4832 DEBUG EVALUATE /datediff(date.mdy(10,7,1943), date.mdy(4,19,1943), 'months').
4833 DEBUG EVALUATE /datediff(date.mdy(3,17,1992), date.mdy(10,7,1943), 'months').
4834 DEBUG EVALUATE /datediff(date.mdy(2,25,1996), date.mdy(3,17,1992), 'months').
4835 DEBUG EVALUATE /datediff(date.mdy(2,25,1996), date.mdy(9,29,1941), 'months').
4836 DEBUG EVALUATE /datediff(date.mdy(4,19,43), date.mdy(9,29,1941), 'months').
4837 DEBUG EVALUATE /datediff(date.mdy(10,7,43), date.mdy(4,19,43), 'months').
4838 DEBUG EVALUATE /datediff(date.mdy(3,17,92), date.mdy(10,7,43), 'months').
4839 DEBUG EVALUATE /datediff(date.mdy(2,25,96), date.mdy(3,17,92), 'months').
4840 DEBUG EVALUATE /datediff(date.mdy(11,10,2038), date.mdy(2,25,96), 'months').
4841 DEBUG EVALUATE /datediff(date.mdy(7,18,2094), date.mdy(11,10,2038), 'months').
4842 DEBUG EVALUATE /datediff(date.mdy(2,29,1904), date.mdy(2,29,1900), 'months').
4843 DEBUG EVALUATE /datediff(date.mdy(2,29,1908), date.mdy(2,29,1904), 'months').
4844 DEBUG EVALUATE /datediff(date.mdy(2,28,1903), date.mdy(2,29,1900), 'months').
4846 DEBUG EVALUATE /datediff(date.mdy(6,30,1680), date.mdy(6,10,1648), 'quarters').
4847 DEBUG EVALUATE /datediff(date.mdy(7,24,1716), date.mdy(6,30,1680), 'quarters').
4848 DEBUG EVALUATE /datediff(date.mdy(6,19,1768), date.mdy(7,24,1716), 'quarters').
4849 DEBUG EVALUATE /datediff(date.mdy(8,2,1819), date.mdy(6,19,1768), 'quarters').
4850 DEBUG EVALUATE /datediff(date.mdy(3,27,1839), date.mdy(8,2,1819), 'quarters').
4851 DEBUG EVALUATE /datediff(date.mdy(4,19,1903), date.mdy(3,27,1839), 'quarters').
4852 DEBUG EVALUATE /datediff(date.mdy(8,25,1929), date.mdy(4,19,1903), 'quarters').
4853 DEBUG EVALUATE /datediff(date.mdy(9,29,1941), date.mdy(8,25,1929), 'quarters').
4854 DEBUG EVALUATE /datediff(date.mdy(4,19,1943), date.mdy(9,29,1941), 'quarters').
4855 DEBUG EVALUATE /datediff(date.mdy(10,7,1943), date.mdy(4,19,1943), 'quarters').
4856 DEBUG EVALUATE /datediff(date.mdy(3,17,1992), date.mdy(10,7,1943), 'quarters').
4857 DEBUG EVALUATE /datediff(date.mdy(2,25,1996), date.mdy(3,17,1992), 'quarters').
4858 DEBUG EVALUATE /datediff(date.mdy(2,25,1996), date.mdy(9,29,1941), 'quarters').
4859 DEBUG EVALUATE /datediff(date.mdy(4,19,43), date.mdy(9,29,1941), 'quarters').
4860 DEBUG EVALUATE /datediff(date.mdy(10,7,43), date.mdy(4,19,43), 'quarters').
4861 DEBUG EVALUATE /datediff(date.mdy(3,17,92), date.mdy(10,7,43), 'quarters').
4862 DEBUG EVALUATE /datediff(date.mdy(2,25,96), date.mdy(3,17,92), 'quarters').
4863 DEBUG EVALUATE /datediff(date.mdy(11,10,2038), date.mdy(2,25,96), 'quarters').
4864 DEBUG EVALUATE /datediff(date.mdy(7,18,2094), date.mdy(11,10,2038), 'quarters').
4865 DEBUG EVALUATE /datediff(date.mdy(2,29,1904), date.mdy(2,29,1900), 'quarters').
4866 DEBUG EVALUATE /datediff(date.mdy(2,29,1908), date.mdy(2,29,1904), 'quarters').
4867 DEBUG EVALUATE /datediff(date.mdy(2,28,1903), date.mdy(2,29,1900), 'quarters').
4869 dnl time of day is significant for DATEDIFF
4870 DEBUG EVALUATE /datediff(date.mdy(10,15,1910) + 234, date.mdy(10,10,1910) + 123, 'days').
4871 DEBUG EVALUATE /datediff(date.mdy(10,15,1910) + 123, date.mdy(10,10,1910) + 234, 'days').
4872 DEBUG EVALUATE /datediff(date.mdy(10,24,1910) + 234, date.mdy(10,10,1910) + 123, 'weeks').
4873 DEBUG EVALUATE /datediff(date.mdy(10,24,1910) + 123, date.mdy(10,10,1910) + 234, 'weeks').
4874 DEBUG EVALUATE /datediff(date.mdy(10,10,1910) + 234, date.mdy(5,10,1910) + 123, 'months').
4875 DEBUG EVALUATE /datediff(date.mdy(10,10,1910) + 123, date.mdy(5,10,1910) + 234, 'months').
4876 DEBUG EVALUATE /datediff(date.mdy(5,10,1919) + 234, date.mdy(5,10,1910) + 123, 'years').
4877 DEBUG EVALUATE /datediff(date.mdy(5,10,1919) + 123, date.mdy(5,10,1910) + 234, 'years').
4879 DEBUG EVALUATE /datediff(date.mdy(10,10,1910) + 123, date.mdy(10,15,1910) + 234, 'days').
4880 DEBUG EVALUATE /datediff(date.mdy(10,10,1910) + 234, date.mdy(10,15,1910) + 123, 'days').
4881 DEBUG EVALUATE /datediff(date.mdy(10,10,1910) + 123, date.mdy(10,24,1910) + 234, 'weeks').
4882 DEBUG EVALUATE /datediff(date.mdy(10,10,1910) + 234, date.mdy(10,24,1910) + 123, 'weeks').
4883 DEBUG EVALUATE /datediff(date.mdy(5,10,1910) + 123, date.mdy(10,10,1910) + 234, 'months').
4884 DEBUG EVALUATE /datediff(date.mdy(5,10,1910) + 234, date.mdy(10,10,1910) + 123, 'months').
4885 DEBUG EVALUATE /datediff(date.mdy(5,10,1910) + 123, date.mdy(5,10,1919) + 234, 'years').
4886 DEBUG EVALUATE /datediff(date.mdy(5,10,1910) + 234, date.mdy(5,10,1919) + 123, 'years').
4889 for opt in OPT NOOPT; do
4891 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4892 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4897 AT_SETUP([expressions - DATESUM with non-leap year])
4898 AT_KEYWORDS([expression expressions evaluate])
4899 AT_DATA([evaluate-base.sps], [
4900 DEBUG EVALUATE SET opt.
4901 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 1, 'months') - date.mdy(1,1,1900)).
4902 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 2, 'months') - date.mdy(1,1,1900)).
4903 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 3, 'months') - date.mdy(1,1,1900)).
4904 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 4, 'months') - date.mdy(1,1,1900)).
4905 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 5.4, 'months') - date.mdy(1,1,1900)).
4906 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 6, 'months') - date.mdy(1,1,1900)).
4907 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 7, 'months') - date.mdy(1,1,1900)).
4908 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 8, 'months') - date.mdy(1,1,1900)).
4909 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 9, 'months') - date.mdy(1,1,1900)).
4910 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 10, 'months') - date.mdy(1,1,1900)).
4911 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 11, 'months') - date.mdy(1,1,1900)).
4912 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 12, 'months') - date.mdy(1,1,1900)).
4913 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 13.9, 'months') - date.mdy(1,1,1900)).
4914 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 1, 'months', 'rollover') - date.mdy(1,1,1900)).
4915 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 2, 'months', 'rollover') - date.mdy(1,1,1900)).
4916 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 3.2, 'months', 'rollover') - date.mdy(1,1,1900)).
4917 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 4, 'months', 'rollover') - date.mdy(1,1,1900)).
4918 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 5, 'months', 'rollover') - date.mdy(1,1,1900)).
4919 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 6, 'months', 'rollover') - date.mdy(1,1,1900)).
4920 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 7, 'months', 'rollover') - date.mdy(1,1,1900)).
4921 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 8, 'months', 'rollover') - date.mdy(1,1,1900)).
4922 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 9, 'months', 'rollover') - date.mdy(1,1,1900)).
4923 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 10, 'months', 'rollover') - date.mdy(1,1,1900)).
4924 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 11, 'months', 'rollover') - date.mdy(1,1,1900)).
4925 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 12, 'months', 'rollover') - date.mdy(1,1,1900)).
4926 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1900), 13, 'months', 'rollover') - date.mdy(1,1,1900)).
4929 for opt in OPT NOOPT; do
4931 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4932 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4937 AT_SETUP([expressions - DATESUM with leap year])
4938 AT_KEYWORDS([expression expressions evaluate])
4939 AT_DATA([evaluate-base.sps], [
4940 DEBUG EVALUATE SET opt.
4943 for opt in OPT NOOPT; do
4945 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
4946 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
4947 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 1, 'months') - date.mdy(1,1,1904)).
4948 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 2.5, 'months') - date.mdy(1,1,1904)).
4949 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 3, 'months') - date.mdy(1,1,1904)).
4950 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 4.9, 'months') - date.mdy(1,1,1904)).
4951 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 5.1, 'months') - date.mdy(1,1,1904)).
4952 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 6, 'months') - date.mdy(1,1,1904)).
4953 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 7, 'months') - date.mdy(1,1,1904)).
4954 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 8, 'months') - date.mdy(1,1,1904)).
4955 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 9, 'months') - date.mdy(1,1,1904)).
4956 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 10, 'months') - date.mdy(1,1,1904)).
4957 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 11, 'months') - date.mdy(1,1,1904)).
4958 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 12, 'months') - date.mdy(1,1,1904)).
4959 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 13, 'months') - date.mdy(1,1,1904)).
4960 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 1, 'months', 'rollover') - date.mdy(1,1,1904)).
4961 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 2, 'months', 'rollover') - date.mdy(1,1,1904)).
4962 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 3, 'months', 'rollover') - date.mdy(1,1,1904)).
4963 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 4, 'months', 'rollover') - date.mdy(1,1,1904)).
4964 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 5, 'months', 'rollover') - date.mdy(1,1,1904)).
4965 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 6, 'months', 'rollover') - date.mdy(1,1,1904)).
4966 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 7, 'months', 'rollover') - date.mdy(1,1,1904)).
4967 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 8, 'months', 'rollover') - date.mdy(1,1,1904)).
4968 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 9, 'months', 'rollover') - date.mdy(1,1,1904)).
4969 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 10, 'months', 'rollover') - date.mdy(1,1,1904)).
4970 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 11, 'months', 'rollover') - date.mdy(1,1,1904)).
4971 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 12, 'months', 'rollover') - date.mdy(1,1,1904)).
4972 DEBUG EVALUATE /ctime.days(datesum(date.mdy(1,31,1904), 13, 'months', 'rollover') - date.mdy(1,1,1904)).
4977 AT_SETUP([expressions - DATESUM])
4978 AT_KEYWORDS([expression expressions evaluate])
4979 AT_DATA([evaluate-base.sps], [
4980 DEBUG EVALUATE SET opt.
4981 DEBUG EVALUATE /ctime.days(datesum(date.mdy(6,10,1648), 1, 'weeks') - date.mdy(6,10,1648)).
4982 DEBUG EVALUATE /ctime.days(datesum(date.mdy(6,30,1680), 2.5, 'weeks') - date.mdy(6,30,1680)).
4983 DEBUG EVALUATE /ctime.days(datesum(date.mdy(7,24,1716), -3, 'weeks') - date.mdy(7,24,1716)).
4984 DEBUG EVALUATE /ctime.days(datesum(date.mdy(6,19,1768), 4, 'weeks') - date.mdy(6,19,1768)).
4985 DEBUG EVALUATE /ctime.days(datesum(date.mdy(8,2,1819), 5, 'weeks') - date.mdy(8,2,1819)).
4987 DEBUG EVALUATE /ctime.days(datesum(date.mdy(6,10,1648), 1, 'days') - date.mdy(6,10,1648)).
4988 DEBUG EVALUATE /ctime.days(datesum(date.mdy(6,30,1680), 2.5, 'days') - date.mdy(6,30,1680)).
4989 DEBUG EVALUATE /ctime.days(datesum(date.mdy(7,24,1716), -3, 'days') - date.mdy(7,24,1716)).
4990 DEBUG EVALUATE /ctime.days(datesum(date.mdy(6,19,1768), 4, 'days') - date.mdy(6,19,1768)).
4991 DEBUG EVALUATE /ctime.days(datesum(date.mdy(8,2,1819), 5, 'days') - date.mdy(8,2,1819)).
4992 DEBUG EVALUATE /ctime.days(datesum(date.mdy(6,10,1648), 1, 'hours') - date.mdy(6,10,1648)).
4993 DEBUG EVALUATE /ctime.days(datesum(date.mdy(6,30,1680), 2.5, 'hours') - date.mdy(6,30,1680)).
4994 DEBUG EVALUATE /ctime.days(datesum(date.mdy(6,19,1768), -4, 'hours') - date.mdy(6,19,1768)).
4995 DEBUG EVALUATE /ctime.days(datesum(date.mdy(8,2,1819), 5, 'hours') - date.mdy(8,2,1819)).
4998 for opt in OPT NOOPT; do
5000 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
5001 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
5006 AT_SETUP([expressions - DATESUM preserves time of day for units of days and longer])
5007 AT_KEYWORDS([expression expressions evaluate])
5008 AT_DATA([evaluate-base.sps], [
5009 DEBUG EVALUATE SET opt.
5010 DEBUG EVALUATE /ctime.days(datesum(date.mdy(8,2,1819) + time.hms(1,2,3), 5, 'days') - (date.mdy(8,2,1819) + time.hms(1,2,3))).
5011 DEBUG EVALUATE /ctime.days(datesum(date.mdy(8,2,1819) + time.hms(1,2,3), 5, 'weeks') - (date.mdy(8,2,1819) + time.hms(1,2,3))).
5012 DEBUG EVALUATE /ctime.days(datesum(date.mdy(8,2,1819) + time.hms(1,2,3), 5, 'months') - (date.mdy(8,2,1819) + time.hms(1,2,3))).
5013 DEBUG EVALUATE /ctime.days(datesum(date.mdy(8,2,1819) + time.hms(1,2,3), 5, 'years') - (date.mdy(8,2,1819) + time.hms(1,2,3))).
5016 for opt in OPT NOOPT; do
5018 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
5019 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
5024 dnl These test values are from Applied Statistics, Algorithm AS 310.
5025 AT_SETUP([expressions - NCDF.BETA])
5026 AT_KEYWORDS([expression expressions evaluate])
5027 AT_DATA([evaluate-base.sps], [
5028 DEBUG EVALUATE SET opt.
5029 DEBUG EVALUATE /1000 * ncdf.beta(.868,10,20,150).
5030 DEBUG EVALUATE /1000 * ncdf.beta(.9,10,10,120).
5031 DEBUG EVALUATE /1000 * ncdf.beta(.88,15,5,80).
5032 DEBUG EVALUATE /1000 * ncdf.beta(.85,20,10,110).
5033 DEBUG EVALUATE /1000 * ncdf.beta(.66,20,30,65).
5034 DEBUG EVALUATE /1000 * ncdf.beta(.72,20,50,130).
5035 DEBUG EVALUATE /1000 * ncdf.beta(.72,30,20,80).
5036 DEBUG EVALUATE /1000 * ncdf.beta(.8,30,40,130).
5039 for opt in OPT NOOPT; do
5041 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
5042 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
5049 [[X], [1.00], [], [(X = 1.00)]],
5051 dnl FIXME: out-of-range and nearly out-of-range values on dates
5053 dnl Tests correctness of generic optimizations in optimize_tree().
5054 AT_SETUP([expressions - generic tree optimizations])
5055 AT_KEYWORDS([expression expressions evaluate])
5056 AT_DATA([evaluate-base.sps], [
5057 DEBUG EVALUATE SET opt.
5058 DEBUG EVALUATE (x=10) /x + 0.
5059 DEBUG EVALUATE (x=-3) /x - 0.
5060 DEBUG EVALUATE (x=5) /0 + x.
5061 DEBUG EVALUATE (x=10) /x * 1.
5062 DEBUG EVALUATE (x=-3) /1 * x.
5063 DEBUG EVALUATE (x=5) /x / 1.
5064 DEBUG EVALUATE (x=10) /0 * x.
5065 DEBUG EVALUATE (x=-3) /x * 0.
5066 DEBUG EVALUATE (x=5) /0 / x.
5067 DEBUG EVALUATE (x=5) /mod(0, x).
5068 DEBUG EVALUATE (x=5) /x ** 1.
5069 DEBUG EVALUATE (x=5) /x ** 2.
5072 for opt in OPT NOOPT; do
5074 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
5075 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
5080 AT_SETUP([expressions - negative checks])
5081 AT_KEYWORDS([expression expressions evaluate])
5082 AT_DATA([evaluate-base.sps], [
5083 DEBUG EVALUATE SET opt.
5084 DEBUG EVALUATE /$nonexistent.
5085 DEBUG EVALUATE /RANGE(1, 2).
5086 DEBUG EVALUATE /CONCAT.1('a', 'b').
5087 DEBUG EVALUATE /foobar(x).
5088 DEBUG EVALUATE /CONCAT.1('a' b).
5089 DEBUG EVALUATE /NCDF.CHISQ(1, 2, 3).
5092 for opt in OPT NOOPT; do
5094 sed "s/opt/$opt/" < evaluate-base.sps > evaluate.sps
5095 AT_CHECK([pspp --testing-mode evaluate.sps], [1], [dnl
5100 AT_SETUP([expressions - LAG])
5101 AT_DATA([lag.sps], [dnl
5116 AT_CHECK([pspp -o pspp.csv lag.sps])
5117 AT_CHECK([cat pspp.csv], [0], [dnl
5118 Table: Reading 1 record from INLINE.
5119 Variable,Record,Columns,Format
5132 AT_SETUP([expression - LAG crash])
5133 AT_DATA([lag.sps], [dnl
5140 DO IF (x <> LAG(x) ).
5146 AT_CHECK([pspp -o pspp.csv lag.sps])
5147 AT_CHECK([cat pspp.csv], [0], [dnl
5148 Table: Reading free-form data from INLINE.
5156 dnl Tests for a bug which caused UNIFORM(x) to always return zero.
5157 AT_SETUP([expressions - UNIFORM])
5158 AT_DATA([uniform.sps], [dnl
5161 + loop #i = 1 to 20.
5162 + do repeat response=R1.
5163 + compute response = uniform(10).
5172 AT_CHECK([pspp -o pspp.csv uniform.sps])
5173 AT_CHECK([cat pspp.csv], [0], [dnl
5199 AT_SETUP([expressions - VALUELABEL])
5200 AT_DATA([valuelabel.sps], [dnl
5201 DATA LIST notable /n 1 s 2(a).
5202 VALUE LABELS /n 0 'Very dissatisfied'
5204 1.5 'Slightly Peeved'
5208 VALUE LABELS /s 'a' 'Wouldn''t buy again'
5213 STRING nlabel slabel(a10).
5214 COMPUTE nlabel = VALUELABEL(n).
5215 COMPUTE slabel = VALUELABEL(s).
5228 AT_CHECK([pspp -o pspp.csv valuelabel.sps])
5229 AT_CHECK([cat pspp.csv], [0], [dnl
5233 0,a,Very dissa,Wouldn't b
5234 1,b,Dissatisfi,Unhappy
5236 3,d,Satisfied,Satiated
5237 4,e,Very satis,Elated
5243 AT_SETUP([expressions - variables])
5244 AT_DATA([variables.sps], [dnl
5245 DATA LIST NOTABLE/N1 TO N5 1-5.
5246 MISSING VALUES N1 TO N5 (3 THRU 5, 1).
5258 COMPUTE MC=NMISS(N1 TO N5).
5259 COMPUTE VC=NVALID(N1 TO N5).
5261 COMPUTE S1=SYSMIS(N1).
5262 COMPUTE S2=SYSMIS(N2).
5263 COMPUTE S3=SYSMIS(N3).
5264 COMPUTE S4=SYSMIS(N4).
5265 COMPUTE S5=SYSMIS(N5).
5267 COMPUTE M1=MISSING(N1).
5268 COMPUTE M2=MISSING(N2).
5269 COMPUTE M3=MISSING(N3).
5270 COMPUTE M4=MISSING(N4).
5271 COMPUTE M5=MISSING(N5).
5273 COMPUTE V1=VALUE(N1).
5274 COMPUTE V2=VALUE(N2).
5275 COMPUTE V3=VALUE(N3).
5276 COMPUTE V4=VALUE(N4).
5277 COMPUTE V5=VALUE(N5).
5283 AT_CHECK([pspp -o pspp.csv variables.sps])
5284 AT_CHECK([cat pspp.csv], [0], [dnl
5286 N1,N2,N3,N4,N5,P1,P2,P3,P4,P5,MC,VC,S1,S2,S3,S4,S5,M1,M2,M3,M4,M5,V1,V2,V3,V4,V5
5287 1,2,3,4,5,.,2,.,.,.,4,1,0,0,0,0,0,1,0,1,1,1,1,2,3,4,5
5288 6,7,8,9,.,6,7,8,9,.,1,4,0,0,0,0,1,0,0,0,0,1,6,7,8,9,.
5292 AT_SETUP([expressions - vectors])
5293 AT_DATA([vectors.sps], [dnl
5294 DATA LIST NOTABLE /N1 TO N5 1-5.
5295 MISSING VALUES N1 TO N5 (3 THRU 5, 1).
5304 COMPUTE X(I)=N(I) + 1.
5311 AT_CHECK([pspp -o pspp.csv vectors.sps])
5312 AT_CHECK([cat pspp.csv], [0], [dnl
5314 N1,N2,N3,N4,N5,X1,X2,X3,X4,X5,I
5315 1,2,3,4,5,.,3,.,.,.,5
5316 6,7,8,9,.,7,8,9,10,.,5