* t/op/lexicals-2.t (added), MANIFEST:
[parrot.git] / t / op / number.t
blob28e8445b5105328a7dee0d7dbcec8ad1ca2e8ed3
1 #!perl
2 # Copyright (C) 2001-2008, The Perl Foundation.
3 # $Id$
5 use strict;
6 use warnings;
7 use lib qw( . lib ../lib ../../lib );
8 use Test::More;
9 use Parrot::Test tests => 56;
11 =head1 NAME
13 t/op/number.t - Number Registers
15 =head1 SYNOPSIS
17         % prove t/op/number.t
19 =head1 DESCRIPTION
21 Tests the use of Parrot floating-point number registers.
23 =cut
25 pasm_output_is( <<CODE, <<OUTPUT, "set_n_nc" );
26         set     N0, 1.0
27         set     N1, 4.0
28         set     N2, 16.0
29         set     N3, 64.0
30         set     N4, 256.0
31         set     N5, 1024.0
32         set     N6, 4096.0
33         set     N7, 16384.0
34         set     N8, 65536.0
35         set     N9, 262144.0
36         set     N10, 1048576.0
37         set     N11, 4194304.0
38         set     N12, 16777216.0
39         set     N13, 67108864.0
40         set     N14, 268435456.0
41         set     N15, 1073741824.0
42         set     N16, 4294967296.0
43         set     N17, 17179869184.0
44         set     N18, 68719476736.0
45         set     N19, 274877906944.0
46         set     N20, 1099511627776.0
47         set     N21, 4398046511104.0
48         set     N22, 17592186044416.0
49         set     N23, 70368744177664.0
50         set     N24, 281474976710656.0
51         set     N25, 1.12589990684262e+15
53         print   N0
54         print   "\\n"
55         print   N1
56         print   "\\n"
57         print   N2
58         print   "\\n"
59         print   N3
60         print   "\\n"
61         print   N4
62         print   "\\n"
63         print   N5
64         print   "\\n"
65         print   N6
66         print   "\\n"
67         print   N7
68         print   "\\n"
69         print   N8
70         print   "\\n"
71         print   N9
72         print   "\\n"
73         print   N10
74         print   "\\n"
75         print   N11
76         print   "\\n"
77         print   N12
78         print   "\\n"
79         print   N13
80         print   "\\n"
81         print   N14
82         print   "\\n"
83         print   N15
84         print   "\\n"
85         print   N16
86         print   "\\n"
87         print   N17
88         print   "\\n"
89         print   N18
90         print   "\\n"
91         print   N19
92         print   "\\n"
93         print   N20
94         print   "\\n"
95         print   N21
96         print   "\\n"
97         print   N22
98         print   "\\n"
99         print   N23
100         print   "\\n"
101         print   N24
102         print   "\\n"
103         print   N25
104         print   "\\n"
105         end
106 CODE
107 1.000000
108 4.000000
109 16.000000
110 64.000000
111 256.000000
112 1024.000000
113 4096.000000
114 16384.000000
115 65536.000000
116 262144.000000
117 1048576.000000
118 4194304.000000
119 16777216.000000
120 67108864.000000
121 268435456.000000
122 1073741824.000000
123 4294967296.000000
124 17179869184.000000
125 68719476736.000000
126 274877906944.000000
127 1099511627776.000000
128 4398046511104.000000
129 17592186044416.000000
130 70368744177664.000000
131 281474976710656.000000
132 1125899906842620.000000
133 OUTPUT
135 pasm_output_is( <<CODE, <<OUTPUT, "set_n" );
136         set     N0, 42.0
137         set     N1, N0
138         print   N1
139         print   "\\n"
140         end
141 CODE
142 42.000000
143 OUTPUT
145 pasm_output_is( <<CODE, <<OUTPUT, "add_n_n_n" );
146         set     N0, 1.0
147         add     N1, N0, N0
148         print   N1
149         print   "\\n"
151         add     N2, N0, N1
152         print   N2
153         print   "\\n"
155         add     N2, N2, N2
156         print   N2
157         print   "\\n"
158         end
159 CODE
160 2.000000
161 3.000000
162 6.000000
163 OUTPUT
165 pasm_output_is( <<CODE, <<OUTPUT, "add_n_n" );
166         set     N0, 1.0
167         add     N0, N0
168         print   N0
169         print   "\\n"
171         set     N1, 1.0
172         add     N0, N1
173         print   N0
174         print   "\\n"
176         add     N0, 3.0
177         print   N0
178         print   "\\n"
179         end
180 CODE
181 2.000000
182 3.000000
183 6.000000
184 OUTPUT
186 pasm_output_is( <<CODE, <<OUTPUT, "sub_n_n_n" );
187         set     N0, 424242.0
188         set     N1, 4200.0
189         sub     N2, N0, N1
190         print   N2
191         print   "\\n"
192         end
193 CODE
194 420042.000000
195 OUTPUT
197 pasm_output_is( <<CODE, <<OUTPUT, "sub_n_n" );
198         set     N0, 424242.0
199         set     N1, 4200.0
200         sub     N0, N1
201         print   N0
202         print   "\\n"
204         sub     N0, N0
205         print   N0
206         print   "\\n"
207         end
208 CODE
209 420042.000000
210 0.000000
211 OUTPUT
213 pasm_output_is( <<'CODE', <<'OUTPUT', "abs(n, i|ic|n|nc)" );
214         set     I0, -1
215         abs     N0, I0
216         abs     N1, -1
217         set     I1, 1
218         abs     N2, I1
219         abs     N3, 1
220         set     N4, -1
221         abs     N4, N4
222         abs     N5, -1.0
223         set     N6, 1.0
224         abs     N6, N6
225         abs     N7, 1.0
227         print N0
228         print "\n"
229         print N1
230         print "\n"
231         print N2
232         print "\n"
233         print N3
234         print "\n"
235         print N4
236         print "\n"
237         print N5
238         print "\n"
239         print N6
240         print "\n"
241         print N7
242         print "\n"
243         end
244 CODE
245 1.000000
246 1.000000
247 1.000000
248 1.000000
249 1.000000
250 1.000000
251 1.000000
252 1.000000
253 OUTPUT
255 pasm_output_is( <<CODE, <<OUTPUT, "mul_i" );
256         set     N0, 2.0
257         mul     N1, N0, N0
258         mul     N1, N1, N0
259         mul     N1, N1, N0
260         mul     N1, N1, N0
261         mul     N1, N1, N0
262         mul     N1, N1, N0
263         mul     N1, N1, N0
264         print   N1
265         print   "\\n"
266         end
267 CODE
268 256.000000
269 OUTPUT
271 pasm_output_is( <<CODE, <<OUTPUT, "div_i" );
272         set     N0, 10.0
273         set     N1, 2.0
274         div     N2, N0, N1
275         print   N2
276         print   "\\n"
278         set     N3, 7.0
279         set     N4, 2.0
280         div     N3, N3, N4
281         print   N3
282         print   "\\n"
284         set     N5, 9.0
285         set     N6, -4.0
286         div     N7, N5, N6
287         print   N7
288         print   "\\n"
289         end
290 CODE
291 5.000000
292 3.500000
293 -2.250000
294 OUTPUT
296 pasm_output_like( <<CODE, <<OUTPUT, "mod_n" );
297         set     N0, 5.0
298         set     N1, 0.0
299         mod     N2, N0, N1
300         print   N2
301         print   "\\n"
303         set     N0, 0.0
304         set     N1, 3.0
305         mod     N2, N0, N1
306         print   N2
307         print   "\\n"
309         set     N0, 5.0
310         set     N1, 3.0
311         mod     N2, N0, N1
312         print   N2
313         print   "\\n"
315         set     N0, 5.0
316         set     N1, -3.0
317         mod     N2, N0, N1
318         print   N2
319         print   "\\n"
321         set     N0, -5.0
322         set     N1, 3.0
323         mod     N2, N0, N1
324         print   N2
325         print   "\\n"
327         set     N0, -5.0
328         set     N1, -3.0
329         mod     N2, N0, N1
330         print   N2
331         print   "\\n"
333         end
334 CODE
335 /5\.000000
336 -?0\.000000
337 2\.000000
338 -1\.000000
339 1\.000000
340 -2\.000000
342 OUTPUT
344 pasm_output_is( <<CODE, <<OUTPUT, "cmod_n" );
345         set     N0, 5.000
346         set     N1, 3.000
347         cmod    N2, N0, N1
348         print   N2
349         print   "\\n"
351         end
352 CODE
353 2.000000
354 OUTPUT
356 pasm_output_is( <<CODE, <<OUTPUT, "eq_n_ic" );
357         set     N0, 5.000001
358         set     N1, 5.000001
359         set     N2, 5.000002
361         eq      N0, N1, ONE
362         branch  ERROR
363         print   "bad\\n"
365 ONE:
366         print   "ok 1\\n"
367         eq      N1, N2, ERROR
368         branch  TWO
369         print   "bad\\n"
371 TWO:
372         print   "ok 2\\n"
373         end
375 ERROR:
376         print   "bad\\n"
377         end
378 CODE
379 ok 1
380 ok 2
381 OUTPUT
383 pasm_output_is( <<CODE, <<OUTPUT, "eq_nc_ic" );
384         set     N0, 1.000001
386         eq      N0, 1.000000, ERROR
387         branch  ONE
388         print   "bad\\n"
390 ONE:
391         print   "ok 1\\n"
392         eq      N0, 1.000001, TWO
393         branch  ERROR
394         print   "bad\\n"
396 TWO:
397         print   "ok 2\\n"
398         end
400 ERROR:
401         print   "bad\\n"
402         end
403 CODE
404 ok 1
405 ok 2
406 OUTPUT
408 pasm_output_is( <<CODE, <<OUTPUT, "ne_n_ic" );
409         set     N0, -22.222222
410         set     N1, -22.222222
411         set     N2, 0.0
413         ne      N0, N2, ONE
414         branch  ERROR
415         print   "bad\\n"
417 ONE:
418         print   "ok 1\\n"
419         ne      N0, N1, ERROR
420         branch  TWO
421         print   "bad\\n"
423 TWO:
424         print   "ok 2\\n"
425         end
427 ERROR:
428         print   "bad\\n"
429         end
430 CODE
431 ok 1
432 ok 2
433 OUTPUT
435 pasm_output_is( <<CODE, <<OUTPUT, "ne_n_nc_ic" );
436         set     N0, 1073741824.0
437         ne      N0, 1073741824.0, nok1
438         print   "ok 1\\n"
439         branch  ONE
440 nok1:
441         print   "bad 1\\n"
442 ONE:
443         ne      N0, 0.0, TWO
444         branch  ERROR
445 TWO:
446         print   "ok 2\\n"
447         end
448 ERROR:
449         print   "bad 2\\n"
450         end
451 CODE
452 ok 1
453 ok 2
454 OUTPUT
456 pasm_output_is( <<CODE, <<OUTPUT, "lt_n_ic" );
457         set     N0, 1000.0
458         set     N1, 500.0
459         set     N2, 0.0
460         set     N3, 0.0
462         lt      N1, N0, ONE
463         branch  ERROR
464         print   "bad\\n"
466 ONE:
467         print   "ok 1\\n"
468         lt      N0, N1, ERROR
469         branch  TWO
470         print   "bad\\n"
472 TWO:
473         print   "ok 2\\n"
474         lt      N2, N3, ERROR
475         branch  THREE
476         print   "bad\\n"
478 THREE:
479         print   "ok 3\\n"
480         end
482 ERROR:
483         print "bad\\n"
484         end
485 CODE
486 ok 1
487 ok 2
488 ok 3
489 OUTPUT
491 pasm_output_is( <<CODE, <<OUTPUT, "lt_nc_ic" );
492         set     N0, 1000.0
493         set     N1, 500.0
494         set     N2, 0.0
496         lt      N0, 500.0, ERROR
497         branch  ONE
498         print   "bad\\n"
500 ONE:
501         print   "ok 1\\n"
502         lt      N1, 1000.0, TWO
503         branch  ERROR
504         print   "bad\\n"
506 TWO:
507         print   "ok 2\\n"
508         lt      N0, 0.0, ERROR
509         branch  THREE
510         print   "bad\\n"
512 THREE:
513         print   "ok 3\\n"
514         end
516 ERROR:
517         print   "bad\\n"
518         end
519 CODE
520 ok 1
521 ok 2
522 ok 3
523 OUTPUT
525 pasm_output_is( <<CODE, <<OUTPUT, "le_n_ic" );
526         set     N0, 1000.0
527         set     N1, 500.0
528         set     N2, 0.0
529         set     N3, 0.0
531         le      N1, N0, ONE
532         branch  ERROR
533         print   "bad\\n"
535 ONE:
536         print   "ok 1\\n"
537         le      N0, N1, ERROR
538         branch  TWO
539         print   "bad\\n"
541 TWO:
542         print   "ok 2\\n"
543         le      N2, N3, THREE
544         branch  ERROR
545         print   "bad\\n"
547 THREE:
548         print   "ok 3\\n"
549         end
551 ERROR:
552         print "bad\\n"
553         end
554 CODE
555 ok 1
556 ok 2
557 ok 3
558 OUTPUT
560 pasm_output_is( <<CODE, <<OUTPUT, "le_nc_ic" );
561         set     N0, 1000.0
562         set     N1, 500.0
563         set     N2, 0.0
565         le      N0, 500.0, ERROR
566         branch  ONE
567         print   "bad\\n"
569 ONE:
570         print   "ok 1\\n"
571         le      N1, 1000.0, TWO
572         branch  ERROR
573         print   "bad\\n"
575 TWO:
576         print   "ok 2\\n"
577         le      N2, 0.0, THREE
578         branch  ERROR
579         print   "bad\\n"
581 THREE:
582         print   "ok 3\\n"
583         end
585 ERROR:
586         print   "bad\\n"
587         end
588 CODE
589 ok 1
590 ok 2
591 ok 3
592 OUTPUT
594 pasm_output_is( <<CODE, <<OUTPUT, "gt_n_ic" );
595         set     N0, 500.0
596         set     N1, 1000.0
597         set     N2, 0.0
598         set     N3, 0.0
600         gt      N1, N0, ONE
601         branch  ERROR
602         print   "bad\\n"
604 ONE:
605         print   "ok 1\\n"
606         gt      N0, N1, ERROR
607         branch  TWO
608         print   "bad\\n"
610 TWO:
611         print   "ok 2\\n"
612         gt      N2, N3, ERROR
613         branch  THREE
614         print   "bad\\n"
616 THREE:
617         print   "ok 3\\n"
618         end
620 ERROR:
621         print "bad\\n"
622         end
623 CODE
624 ok 1
625 ok 2
626 ok 3
627 OUTPUT
629 pasm_output_is( <<CODE, <<OUTPUT, "gt_nc_ic" );
630         set     N0, 500.0
631         set     N1, 1000.0
632         set     N2, 0.0
634         gt      N0, 1000.0, ERROR
635         branch  ONE
636         print   "bad\\n"
638 ONE:
639         print   "ok 1\\n"
640         gt      N1, 500.0, TWO
641         branch  ERROR
642         print   "bad\\n"
644 TWO:
645         print   "ok 2\\n"
646         gt      N2, 0.0, ERROR
647         branch  THREE
648         print   "bad\\n"
650 THREE:
651         print   "ok 3\\n"
652         end
654 ERROR:
655         print   "bad\\n"
656         end
657 CODE
658 ok 1
659 ok 2
660 ok 3
661 OUTPUT
663 pasm_output_is( <<CODE, <<OUTPUT, "ge_n_ic" );
664         set     N0, 500.0
665         set     N1, 1000.0
666         set     N2, 0.0
667         set     N3, 0.0
669         ge      N1, N0, ONE
670         branch  ERROR
671         print   "bad\\n"
673 ONE:
674         print   "ok 1\\n"
675         ge      N0, N1, ERROR
676         branch  TWO
677         print   "bad\\n"
679 TWO:
680         print   "ok 2\\n"
681         ge      N2, N3, THREE
682         branch  ERROR
683         print   "bad\\n"
685 THREE:
686         print   "ok 3\\n"
687         end
689 ERROR:
690         print "bad\\n"
691         end
692 CODE
693 ok 1
694 ok 2
695 ok 3
696 OUTPUT
698 pasm_output_is( <<CODE, <<OUTPUT, "ge_nc_ic" );
699         set     N0, 500.0
700         set     N1, 1000.0
701         set     N2, 0.0
703         ge      N0, 1000.0, ERROR
704         branch  ONE
705         print   "bad\\n"
707 ONE:
708         print   "ok 1\\n"
709         ge      N1, 500.0, TWO
710         branch  ERROR
711         print   "bad\\n"
713 TWO:
714         print   "ok 2\\n"
715         ge      N2, 0.0, THREE
716         branch  ERROR
717         print   "bad\\n"
719 THREE:
720         print   "ok 3\\n"
721         end
723 ERROR:
724         print   "bad\\n"
725         end
726 CODE
727 ok 1
728 ok 2
729 ok 3
730 OUTPUT
732 pasm_output_is( <<CODE, <<OUTPUT, "if_n_ic" );
733         set     N0, 1000.0
734         set     N1, 500.0
735         set     N2, 0.0
737         if      N0, ONE
738         branch  ERROR
739         print   "bad\\n"
741 ONE:
742         print   "ok 1\\n"
743         if      N1, TWO
744         branch  ERROR
745         print   "bad\\n"
747 TWO:
748         print   "ok 2\\n"
749         if      N2, ERROR
750         branch  THREE
751         print   "bad\\n"
753 THREE:
754         print   "ok 3\\n"
755         end
757 ERROR:
758         print   "bad\\n"
759         end
760 CODE
761 ok 1
762 ok 2
763 ok 3
764 OUTPUT
766 pasm_output_is( <<CODE, <<OUTPUT, "inc_n" );
767         set     N0, 0.0
769         inc     N0
770         print   N0
771         print   "\\n"
773         inc     N0
774         inc     N0
775         inc     N0
776         inc     N0
777         print   N0
778         print   "\\n"
779         end
780 CODE
781 1.000000
782 5.000000
783 OUTPUT
785 pasm_output_is( <<CODE, <<OUTPUT, "dec_n" );
786         set     N0, 0.0
788         dec     N0
789         print   N0
790         print   "\\n"
792         dec     N0
793         dec     N0
794         dec     N0
795         dec     N0
796         print   N0
797         print   "\\n"
798         end
799 CODE
800 -1.000000
801 -5.000000
802 OUTPUT
804 pasm_output_is( <<CODE, <<OUTPUT, "set_i_n" );
805         set     N0, 0.0
806         set     I0, N0
807         print   I0
808         print   "\\n"
810         set     N1, 2147483647.0
811         set     I1, N1
812         print   I1
813         print   "\\n"
815         set     N2, -2147483648.0
816         set     I2, N2
817         print   I2
818         print   "\\n"
819         end
820 CODE
822 2147483647
823 -2147483648
824 OUTPUT
826 pasm_output_is( <<CODE, <<OUTPUT, "clearn" );
827         set     N0, 547972.0
828         set     N1, 547972.0
829         set     N2, 547972.0
830         set     N3, 547972.0
831         set     N4, 547972.0
832         set     N5, 547972.0
833         set     N6, 547972.0
834         set     N7, 547972.0
835         set     N8, 547972.0
836         set     N9, 547972.0
837         set     N10, 547972.0
838         set     N11, 547972.0
839         set     N12, 547972.0
840         set     N13, 547972.0
841         set     N14, 547972.0
842         set     N15, 547972.0
843         set     N16, 547972.0
844         set     N17, 547972.0
845         set     N18, 547972.0
846         set     N19, 547972.0
847         set     N20, 547972.0
848         set     N21, 547972.0
849         set     N22, 547972.0
850         set     N23, 547972.0
851         set     N24, 547972.0
852         set     N25, 547972.0
853         set     N26, 547972.0
854         set     N27, 547972.0
855         set     N28, 547972.0
856         set     N29, 547972.0
857         set     N30, 547972.0
858         set     N31, 547972.0
859         clearn
860         print   N0
861         print   N1
862         print   N2
863         print   N3
864         print   N4
865         print   N5
866         print   N6
867         print   N7
868         print   N8
869         print   N9
870         print   N10
871         print   N11
872         print   N12
873         print   N13
874         print   N14
875         print   N15
876         print   N16
877         print   N17
878         print   N18
879         print   N19
880         print   N20
881         print   N21
882         print   N22
883         print   N23
884         print   N24
885         print   N25
886         print   N26
887         print   N27
888         print   N28
889         print   N29
890         print   N30
891         print   N31
892         print   "\\n"
893         end
894 CODE
895 0.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000
896 OUTPUT
898 pasm_output_is( <<CODE, <<OUTPUT, "neg_n" );
899     neg N0,3.0
900     neg N0,N0
901     neg N0
902     print N0
903     print "\\n"
904     end
905 CODE
906 -3.000000
907 OUTPUT
909 pasm_output_like( <<CODE, <<OUTPUT, "neg 0.0" );
910     set N1, 0
911     neg N1
912     print N1
913     print "\\n"
914     end
915 CODE
916 /-?0\.0+/
917 OUTPUT
919 pasm_output_is( <<CODE, <<OUTPUT, "mul_n_n" );
920     set N0,3.0
921     set N1,4.0
922     mul N0,N1
923     print N0
924     print "\\n"
925     end
926 CODE
927 12.000000
928 OUTPUT
930 pasm_output_is( <<CODE, <<OUTPUT, "fact_n_i" );
931     set I0, 3
932     set I1, 11
933     set I2, 0
934     set I3, -563
935     fact N5, I0
936     print N5
937     print "\\n"
938     fact N6, I1
939     print N6
940     print "\\n"
941     fact N7, I2
942     print N7
943     print "\\n"
944     fact N8, I3
945     print N8
946     print "\\n"
947     end
948 CODE
949 6.000000
950 39916800.000000
951 1.000000
952 1.000000
953 OUTPUT
955 pasm_output_is( <<CODE, <<OUTPUT, "fact_n_ic" );
956     fact N5, 3
957     print N5
958     print "\\n"
959     fact N6, 11
960     print N6
961     print "\\n"
962     fact N7, 0
963     print N7
964     print "\\n"
965     fact N8, -563
966     print N8
967     print "\\n"
968     end
969 CODE
970 6.000000
971 39916800.000000
972 1.000000
973 1.000000
974 OUTPUT
976 pasm_output_is( <<'CODE', <<OUTPUT, "exchange" );
977     set N1, 1.234560
978     set N2, 9.876540
979     exchange N1, N2
980     print N1
981     print "\n"
982     print N2
983     print "\n"
985     set N3, -100.200300
986     exchange N3, N3
987     print N3
988     print "\n"
989     end
990 CODE
991 9.876540
992 1.234560
993 -100.200300
994 OUTPUT
996 pasm_output_is( <<'CODE', <<OUTPUT, "op_n_nc_nc" );
997     add N1, 2.0, 3.0
998     print N1
999     print "\n"
1000     sub N1, 2.0, 4.0
1001     print N1
1002     print "\n"
1003     end
1004 CODE
1005 5.000000
1006 -2.000000
1007 OUTPUT
1009 pasm_output_is( <<'CODE', <<OUTPUT, "lt_nc_nc_ic" );
1010     lt 2.0, 1.0, nok
1011     print "ok 1\n"
1012     lt 3.0, 4.0, ok_2
1013 nok:
1014     print "nok\n"
1015     end
1016 ok_2:
1017     print "ok 2\n"
1018     end
1019 CODE
1020 ok 1
1021 ok 2
1022 OUTPUT
1024 pasm_output_is( <<'CODE', <<OUTPUT, "string -> num" );
1025     set S0, "1"
1026     set S1, "12.0"
1027     set S2, "-2.45"
1028     set S3, "25e2"
1029     set S4, "Banana"
1031     set N0, S0
1032     set N1, S1
1033     set N2, S2
1034     set N3, S3
1035     set N4, S4
1037     print N0
1038     print "\n"
1039     print N1
1040     print "\n"
1041     print N2
1042     print "\n"
1043     print N3
1044     print "\n"
1045     print N4
1046     print "\n"
1048     end
1049 CODE
1050 1.000000
1051 12.000000
1052 -2.450000
1053 2500.000000
1054 0.000000
1055 OUTPUT
1057 pasm_output_is( <<'CODE', <<OUTPUT, "null" );
1058     set N31, 12.5
1059     print N31
1060     print "\n"
1062     null N31
1063     print N31
1064     print "\n"
1066     end
1067 CODE
1068 12.500000
1069 0.000000
1070 OUTPUT
1072 pasm_output_is( <<'CODE', <<OUTPUT, ".dig parsing" );
1073    set N0, .5
1074    print N0
1075    print "\n"
1076    end
1077 CODE
1078 0.500000
1079 OUTPUT
1081 pasm_output_is( <<'CODE', <<OUTPUT, "sqrt_n_n" );
1082         set N1, 2
1083         sqrt N2, N1
1084         print N2
1085         print "\n"
1086         sqrt N2, 2.0
1087         print N2
1088         print "\n"
1089         end
1090 CODE
1091 1.414214
1092 1.414214
1093 OUTPUT
1095 pasm_error_output_like( <<'CODE', <<OUTPUT, "div_n_n by zero" );
1096         set N0, 0
1097         set N1, 10
1098         div N1, N0
1099         end
1100 CODE
1101 /.*Divide by zero.*/
1102 OUTPUT
1104 pasm_error_output_like( <<'CODE', <<OUTPUT, "div_n_nc by zero" );
1105         set N1, 10
1106         div N1, 0
1107         end
1108 CODE
1109 /.*Divide by zero.*/
1110 OUTPUT
1112 pasm_error_output_like( <<'CODE', <<OUTPUT, "div_n_n_n by zero" );
1113         set N0, 0
1114         set N1, 10
1115         div N2, N1, N0
1116         end
1117 CODE
1118 /.*Divide by zero.*/
1119 OUTPUT
1121 pasm_error_output_like( <<'CODE', <<OUTPUT, "div_n_nc_n by zero" );
1122         set N0, 0
1123         div N2, 10, N0
1124         end
1125 CODE
1126 /.*Divide by zero.*/
1127 OUTPUT
1129 pasm_error_output_like( <<'CODE', <<OUTPUT, "div_n_n_nc by zero" );
1130         set N1, 10
1131         div N2, N1, 0
1132         end
1133 CODE
1134 /.*Divide by zero.*/
1135 OUTPUT
1137 pasm_error_output_like( <<'CODE', <<OUTPUT, "fdiv_n_n by zero" );
1138         set N0, 0
1139         set N1, 10
1140         fdiv N1, N0
1141         end
1142 CODE
1143 /.*Divide by zero.*/
1144 OUTPUT
1146 pasm_error_output_like( <<'CODE', <<OUTPUT, "fdiv_n_nc by zero" );
1147         set N1, 10
1148         fdiv N1, 0
1149         end
1150 CODE
1151 /.*Divide by zero.*/
1152 OUTPUT
1154 pasm_error_output_like( <<'CODE', <<OUTPUT, "fdiv_n_n_n by zero" );
1155         set N0, 0
1156         set N1, 10
1157         fdiv N2, N1, N0
1158         end
1159 CODE
1160 /.*Divide by zero.*/
1161 OUTPUT
1163 pasm_error_output_like( <<'CODE', <<OUTPUT, "fdiv_n_nc_n by zero" );
1164         set N0, 0
1165         fdiv N2, 10, N0
1166         end
1167 CODE
1168 /.*Divide by zero.*/
1169 OUTPUT
1171 pasm_error_output_like( <<'CODE', <<OUTPUT, "fdiv_n_n_nc by zero" );
1172         set N1, 10
1173         fdiv N2, N1, 0
1174         end
1175 CODE
1176 /.*Divide by zero.*/
1177 OUTPUT
1179 pasm_error_output_like( <<'CODE', <<OUTPUT, "cmod_n_n_n by zero" );
1180         set N0, 0
1181         set N1, 10
1182         cmod N2, N1, N0
1183         end
1184 CODE
1185 /.*Divide by zero.*/
1186 OUTPUT
1188 pasm_error_output_like( <<'CODE', <<OUTPUT, "cmod_n_nc_n by zero" );
1189         set N0, 0
1190         cmod N2, 10, N0
1191         end
1192 CODE
1193 /.*Divide by zero.*/
1194 OUTPUT
1196 pasm_error_output_like( <<'CODE', <<OUTPUT, "cmod_n_n_nc by zero" );
1197         set N1, 10
1198         cmod N2, N1, 0
1199         end
1200 CODE
1201 /.*Divide by zero.*/
1202 OUTPUT
1204 pasm_output_is( <<'CODE', <<OUTPUT, "mod_n_n_n by zero" );
1205         set N0, 0
1206         set N1, 10
1207         mod N2, N1, N0
1208         end
1209 CODE
1210 OUTPUT
1212 pasm_output_is( <<'CODE', <<OUTPUT, "mod_n_nc_n by zero" );
1213         set N0, 0
1214         mod N2, 10, N0
1215         end
1216 CODE
1217 OUTPUT
1219 pasm_output_is( <<'CODE', <<OUTPUT, "mod_n_n_nc by zero" );
1220         set N1, 10
1221         mod N2, N1, 0
1222         end
1223 CODE
1224 OUTPUT
1226 # Local Variables:
1227 #   mode: cperl
1228 #   cperl-indent-level: 4
1229 #   fill-column: 100
1230 # End:
1231 # vim: expandtab shiftwidth=4: