lots of tests!
This commit is contained in:
parent
fba5b57eaf
commit
b2bf87ae68
26
math32.tal
26
math32.tal
|
@ -74,6 +74,8 @@ RTN
|
||||||
;buf LDA LIT '^ EQU ;test-xor32 JCN2
|
;buf LDA LIT '^ EQU ;test-xor32 JCN2
|
||||||
;buf LDA LIT '~ EQU ;test-complement32 JCN2
|
;buf LDA LIT '~ EQU ;test-complement32 JCN2
|
||||||
;buf LDA LIT 'N EQU ;test-negate32 JCN2
|
;buf LDA LIT 'N EQU ;test-negate32 JCN2
|
||||||
|
;buf LDA LIT '= EQU ;test-eq32 JCN2
|
||||||
|
;buf LDA LIT '! EQU ;test-ne32 JCN2
|
||||||
LIT '? EMIT NEWLINE RESET-POS BRK
|
LIT '? EMIT NEWLINE RESET-POS BRK
|
||||||
|
|
||||||
( format: ". xxxxxxxx" )
|
( format: ". xxxxxxxx" )
|
||||||
|
@ -115,6 +117,20 @@ RTN
|
||||||
@test-complement32 ;complement32 UNARY-32-TEST
|
@test-complement32 ;complement32 UNARY-32-TEST
|
||||||
@test-negate32 ;negate32 UNARY-32-TEST
|
@test-negate32 ;negate32 UNARY-32-TEST
|
||||||
|
|
||||||
|
@test-eq32
|
||||||
|
( format: "= xxxxxxxx yyyyyyyy" )
|
||||||
|
;buf #0002 ADD2 ;read-long JSR2
|
||||||
|
;buf #000b ADD2 ;read-long JSR2
|
||||||
|
;eq32 JSR2 ;emit-byte JSR2
|
||||||
|
NEWLINE RESET-POS BRK
|
||||||
|
|
||||||
|
@test-ne32
|
||||||
|
( format: "= xxxxxxxx yyyyyyyy" )
|
||||||
|
;buf #0002 ADD2 ;read-long JSR2
|
||||||
|
;buf #000b ADD2 ;read-long JSR2
|
||||||
|
;ne32 JSR2 ;emit-byte JSR2
|
||||||
|
NEWLINE RESET-POS BRK
|
||||||
|
|
||||||
@bitcount8 ( x^ -> n^ )
|
@bitcount8 ( x^ -> n^ )
|
||||||
#00 SWP ( n x )
|
#00 SWP ( n x )
|
||||||
&loop
|
&loop
|
||||||
|
@ -149,9 +165,8 @@ RTN
|
||||||
RTN
|
RTN
|
||||||
|
|
||||||
@eq32 ( xhi* xlo* yhi* ylo* -> bool^ )
|
@eq32 ( xhi* xlo* yhi* ylo* -> bool^ )
|
||||||
ROT2 EQU2 ,&maybe JCN
|
ROT2 EQU2 #00 TOR2
|
||||||
POP4 #00 RTN
|
EQU2 SWP POP AND
|
||||||
&maybe EQU2
|
|
||||||
RTN
|
RTN
|
||||||
|
|
||||||
@eq-zero32 ( x** -> bool^ )
|
@eq-zero32 ( x** -> bool^ )
|
||||||
|
@ -159,9 +174,8 @@ RTN
|
||||||
RTN
|
RTN
|
||||||
|
|
||||||
@ne32 ( xhi* xlo* yhi* ylo* -> bool^ )
|
@ne32 ( xhi* xlo* yhi* ylo* -> bool^ )
|
||||||
ROT2 EQU2 ,&maybe JCN
|
ROT2 NEQ2 #00 TOR2
|
||||||
POP4 #01 RTN
|
NEQ2 SWP POP ORA
|
||||||
&maybe NEQ2
|
|
||||||
RTN
|
RTN
|
||||||
|
|
||||||
@ne-zero32 ( x** -> bool^ )
|
@ne-zero32 ( x** -> bool^ )
|
||||||
|
|
|
@ -71,6 +71,8 @@ def main():
|
||||||
test(p, runs, b'^', [('x', u32), ('y', u32)], u32, lambda x, y: x ^ y)
|
test(p, runs, b'^', [('x', u32), ('y', u32)], u32, lambda x, y: x ^ y)
|
||||||
test(p, runs, b'~', [('x', u32)], u32, lambda x: ~x)
|
test(p, runs, b'~', [('x', u32)], u32, lambda x: ~x)
|
||||||
test(p, runs, b'N', [('x', u32)], u32, lambda x: -x)
|
test(p, runs, b'N', [('x', u32)], u32, lambda x: -x)
|
||||||
|
test(p, runs, b'=', [('x', u32), ('y', u32)], u8, lambda x, y: int(x == y))
|
||||||
|
test(p, runs, b'!', [('x', u32), ('y', u32)], u8, lambda x, y: int(x != y))
|
||||||
p.stdin.close()
|
p.stdin.close()
|
||||||
p.stdout.close()
|
p.stdout.close()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue