[svn:parrot] r40484 - in trunk: src/dynoplibs t/dynoplibs

dukeleto at svn.parrot.org dukeleto at svn.parrot.org
Tue Aug 11 07:31:35 UTC 2009


Author: dukeleto
Date: Tue Aug 11 07:31:31 2009
New Revision: 40484
URL: https://trac.parrot.org/parrot/changeset/40484

Log:
[TT #819] Add tests for exsec and hav opcodes

Modified:
   trunk/src/dynoplibs/obscure.ops
   trunk/t/dynoplibs/obscure.t

Modified: trunk/src/dynoplibs/obscure.ops
==============================================================================
--- trunk/src/dynoplibs/obscure.ops	Tue Aug 11 07:11:43 2009	(r40483)
+++ trunk/src/dynoplibs/obscure.ops	Tue Aug 11 07:31:31 2009	(r40484)
@@ -17,7 +17,8 @@
 
 =head1 DESCRIPTION
 
-Parrot's library of obscure ops.
+Parrot's library of obscure mathematical ops. These turn common
+trig expressions into a single op.
 
 To use this library of ops, add this directive to your PIR:
 
@@ -103,7 +104,7 @@
 
 =head1 COPYRIGHT
 
-Copyright (C) 2001-2008, Parrot Foundation.
+Copyright (C) 2001-2009, Parrot Foundation.
 
 =head1 LICENSE
 

Modified: trunk/t/dynoplibs/obscure.t
==============================================================================
--- trunk/t/dynoplibs/obscure.t	Tue Aug 11 07:11:43 2009	(r40483)
+++ trunk/t/dynoplibs/obscure.t	Tue Aug 11 07:31:31 2009	(r40484)
@@ -20,11 +20,13 @@
 .sub main :main
     .include 'fp_equality.pasm'
     .include 'test_more.pir'
-    plan(9)
+    plan(17)
     ok(1,"load obscure_ops")
 
     test_covers()
     test_vers()
+    test_hav()
+    test_exsec()
 .end
 
 .sub test_covers
@@ -35,11 +37,11 @@
     pi     = halfpi
     pi     *= 2
     covers x, 0
-    .fp_eq_ok(x,1,"covers of 0")
+    .fp_eq_ok(x, 1, "covers of 0")
     covers x, halfpi
-    .fp_eq_ok(x,0,'covers of pi/2')
+    .fp_eq_ok(x, 0, 'covers of pi/2')
     covers x, pi
-    .fp_eq_ok(x,1,'covers of pi')
+    .fp_eq_ok(x, 1, 'covers of pi')
     covers x, y
     .fp_eq_ok(x, 0.292893218813453, 'covers of pi/4')
 .end
@@ -52,15 +54,49 @@
     pi     = halfpi
     pi     *= 2
     vers x, 0
-    .fp_eq_ok(x,0,"vers of 0")
+    .fp_eq_ok(x, 0, "vers of 0")
     vers x, halfpi
-    .fp_eq_ok(x,1,'vers of pi/2')
+    .fp_eq_ok(x, 1, 'vers of pi/2')
     vers x, pi
-    .fp_eq_ok(x,2,'vers of pi')
+    .fp_eq_ok(x, 2, 'vers of pi')
     vers x, y
     .fp_eq_ok(x, 0.292893218813453, 'covers of pi/4')
 .end
 
+.sub test_hav
+    .local num x, pi, halfpi, y
+    y      = atan 1.0, 1.0
+    halfpi = y
+    halfpi *= 2
+    pi     = halfpi
+    pi     *= 2
+    hav x, 0
+    .fp_eq_ok(x, 0, "hav of 0")
+    hav x, halfpi
+    .fp_eq_ok(x, 0.5, 'hav of pi/2')
+    hav x, pi
+    .fp_eq_ok(x, 1, 'hav of pi')
+    hav x, y
+    .fp_eq_ok(x, 0.146446609406726, 'hav of pi/4')
+.end
+
+.sub test_exsec
+    .local num x, pi, halfpi, y
+    y      = atan 1.0, 1.0
+    halfpi = y
+    halfpi *= 2
+    pi     = halfpi
+    pi     *= 2
+    hav x, 0
+    .fp_eq_ok(x, 0, "exsec of 0")
+    exsec x, halfpi
+    .fp_eq_ok(x, 'nan', 'exsec of pi/2')
+    exsec x, pi
+    .fp_eq_ok(x, -2, 'exsec of pi')
+    exsec x, y
+    .fp_eq_ok(x, 0.414213562373095, 'exsec of pi/4')
+.end
+
 
 # Local Variables:
 #   mode: cperl


More information about the parrot-commits mailing list