8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / lib / efcode / fcode_test / arithmetic.fth
blob8a91e7d88dde9ab697e8e87ac21e6e1809cf166a
1 \ #ident        "%Z%%M% %I%     %E% SMI"
2 \ purpose: 
3 \ copyright: Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
4 \ copyright: Use is subject to license terms.
5 \ copyright:
6 \ copyright: CDDL HEADER START
7 \ copyright:
8 \ copyright: The contents of this file are subject to the terms of the
9 \ copyright: Common Development and Distribution License, Version 1.0 only
10 \ copyright: (the "License").  You may not use this file except in compliance
11 \ copyright: with the License.
12 \ copyright:
13 \ copyright: You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
14 \ copyright: or http://www.opensolaris.org/os/licensing.
15 \ copyright: See the License for the specific language governing permissions
16 \ copyright: and limitations under the License.
17 \ copyright:
18 \ copyright: When distributing Covered Code, include this CDDL HEADER in each
19 \ copyright: file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20 \ copyright: If applicable, add the following below this CDDL HEADER, with the
21 \ copyright: fields enclosed by brackets "[]" replaced with your own identifying
22 \ copyright: information: Portions Copyright [yyyy] [name of copyright owner]
23 \ copyright:
24 \ copyright: CDDL HEADER END
25 \ copyright:
27 ." Simple 0 Logic Tests: "
28         " 0 invert"     0 invert                .passed?
29         " 0 0="         0 0=                    .passed?
30         " -1 invert"    -1 invert 0=            .passed?
31         " 1 0<>"        1 0<>                   .passed?
32         " 1 0="         1 0= invert             .passed?
33         " 1 0<>"        1 0<>                   .passed?
34         " 0 0>="        0 0>=                   .passed?
35         " 1 0>="        1 0>=                   .passed?
36         " -1 0>="       -1 0>= invert           .passed?
37         " 1 0>"         1 0>                    .passed?
38         " 0 0>"         0 0> invert             .passed?
39         " -1 0<"        -1 0<                   .passed?
40         " 0 0<"         0 0< invert             .passed?
41         " 0 0<="        0 0<=                   .passed?
42         " -1 0<="       -1 0<=                  .passed?
43         " 1 0<="        1 0<= invert            .passed?
46 ." Positive Arithmetic Comparision Tests: "
47         " 1 0 >"        1 0 >                   .passed? 
48         " 1 1 >="       1 1 >=                  .passed?
49         " 1 1 >"        1 1 > invert            .passed?
50         " 0 1 <"        0 1 <                   .passed?
51         " 0 0 <="       0 0 <=                  .passed?
52         " 1 0 <"        1 0 < invert            .passed?
53         " 0 0 ="        0 0 =                   .passed?
54         " 0 1 ="        0 1 = invert            .passed?
55         " 0 1 <>"       0 1 <>                  .passed?
56         " 1 1 <>"       1 1 <> invert           .passed?
59 ." Signed Comparison Tests: "
60         " -1 1 >"       -1 1 > invert           .passed?
61         " -1 -2 >"      -1 -2 >                 .passed?
62         " -1 0 <"       -1 0 <                  .passed?
63         " -2 -1 <"      -2 -1 <                 .passed?
66 ." Unsigned Comparison Tests: "
67         " -1 0 u>"      -1 0 u>                 .passed?
68         " -1 0 u>="     1 1 u>=                 .passed? 
69         " 1 -1 <"       2 1 >=                  .passed? 
70         " 0 1 >="       0 1 >= invert           .passed? 
71         " 0 -1 u<"      0 -1 u<                 .passed?
72         " 0 -1 u<="     0 -1 u<=                .passed?
73         " 2 -2 u<="     2 -2 u<=                .passed?
76 ." Arithmetic Tests: "
77         " 1 1 +"        1 1 + 2 =               .passed?
78         " 1 1 -"        1 1 - 0 =               .passed?
79         " 1 negate "    1 negate 1+ 0=          .passed?
80         " 0 1 -"        0 1 - -1 =              .passed?
81         " -1 abs"       -1 abs 1 =              .passed?
82         " -1 2 min"     -1 2 min 1+ 0=          .passed?
83         " 2 -1 min"     2 -1 min 1+ 0=          .passed?
84         " 3 2 max"      3 2 max 3 =             .passed?
85         " 2 3 max"      2 3 max 3 =             .passed?
88 ." Binary Logic: "
89         " 3 1 and"      3 1 and 1 =             .passed?
90         " 2 1 and"      2 1 and 0=              .passed?
91         " 1 1 or"       1 1 or 1 =              .passed?
92         " 3 1 xor"      3 1 xor 2 =             .passed?
95 ." Shifting: "
96         " (short) lshift"       h# 11 8 lshift  h# 1100 = .passed?
97         " (short) rshift"       h# 1122 8 rshift h# 11  = .passed?
98         " (long) lshift"        h# 1 d# 31 lshift 1- h# 7fffffff = .passed?
99         " (long) rshift"        h# 80 d# 24 lshift d# 31 rshift 1 = .passed?
100         " >>a"                  -4 1 >>a -2 = .passed?
103 ." Sized Arithmetic Tests: "
104         " u2/"          0 0 0 h# 80 bljoin u2/ h# 4000.0000 = .passed?
105         " 2/"           -4 2/ -2 = .passed?
106         " 2*"           h# 4000.0000 dup 1 lshift swap 2* = .passed?
107         " /c"           1 /c = .passed?
108         " /w"           2 /w = .passed?
109         " /l"           4 /l = .passed?
110         " /n"           4 /n = 8 /n = or .passed?
111         " ca+"          h# 4000 3 ca+ h# 4003 = .passed?
112         " wa+"          h# 4000 3 wa+ h# 4006 = .passed?
113         " la+"          h# 4000 3 la+ h# 400c = .passed?
114         " na+"          h# 4000 3 na+ h# 4000 3 /n * + = .passed?
115         " char+"        h# 4000 char+ h# 4001 = .passed?
116         " wa1+"         h# 4000 wa1+ h# 4002 = .passed?
117         " la1+"         h# 4000 la1+ h# 4004 = .passed?
118         " cell+"        h# 4000 cell+ h# 4000 /n + = .passed?
119         " chars"        4 chars 4 = .passed?
120         " /w*"          8 /w* h# 10 = .passed?
121         " /l*"          4 /l* h# 10 = .passed?
122         " cells"        4 cells 4 /n * = .passed?
125 ." Division related Tests: "
126         " /mod (+ +)"    5  2 /mod 2 = swap 1 = and .passed?
127         " /mod (- -)"   -5 -2 /mod 2 = swap -1 = and .passed?
128         " /mod (+ -)"    5 -2 /mod -3 = swap -1 = and .passed?
129         " /mod (- +)"   -5  2 /mod -3 = swap 1 = and .passed?
130         " / (+ +)"       5  2 / 2 = .passed?
131         " / (- -)"      -5 -2 / 2 = .passed?
132         " / (+ -)"       5 -2 / -3 = .passed?
133         " / (- +)"      -5  2 / -3 = .passed?
134         " mod (+ +)"     5  2 mod 1 = .passed?
135         " mod (- -)"    -5 -2 mod -1 = .passed?
136         " mod (+ -)"     5 -2 mod -1 = .passed?
137         " mod (- +)"    -5  2 mod 1 = .passed?
140 ." Signed Multiply/Divide Tests:"
141         " * (+ +)"      2  3    *              6 = .passed?
142         " * (- +)"     -3  3    *             -9 = .passed?
143         " * (+ -)"      4 -2    *             -8 = .passed?
144         " * (- -)"     -4 -3    *             12 = .passed?
147 ." Unsigned Multiply/Divide Tests: "
148         " um*"          1 2     um*    0= swap 2 = and  .passed?
149         " um/mod"       5 0 2   um/mod 2 = swap 1 = and .passed?
150         " u/mod"        5 2     u/mod  2 = swap 1 = and .passed?
153 ." Ranged Tests: "
154         " within (!0)"          2  1 3 within .passed?
155         " within (0 hi)"        3  1 3 within 0= .passed?
156         " within (!0 lo)"       1  1 3 within .passed?
157         " within (0 >)"         0  1 3 within 0= .passed?
158         " within (0 <)"         4  1 3 within 0= .passed?
159         " within (-ve)"         0 -5 5 within .passed?
160         " within (- -)"      -7 -10 -5 within .passed?
161         " between (!0)"         2  1 3 between .passed?
162         " between (!0 lo)"      1  1 3 between .passed?
163         " between (!0 hi)"      3  1 3 between .passed?
164         " between (0 >)"        4  1 3 between 0= .passed?
165         " between (0 <)"        0  1 3 between 0= .passed?
166         " between (-ve)"        0 -5 5 between .passed?
167         " between (- -)"     -7 -10 -5 between .passed?
168         " bounds"               -1 3 bounds -1 = swap 2 = and .passed? 
171 ." Double Arithmetic: "
172         " d+"       1 2 3 4 d+ 6 = swap 4 = and .passed?
173         " d-"       3 4 2 1 d- 3 = swap 1 = and .passed?