cvsuser 04/08/09 14:16:59
Modified: t/pmc float.t Log: Improved test coverage for Float PMC Revision Changes Path 1.5 +301 -2 parrot/t/pmc/float.t Index: float.t =================================================================== RCS file: /cvs/public/parrot/t/pmc/float.t,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- float.t 9 Aug 2004 07:43:17 -0000 1.4 +++ float.t 9 Aug 2004 21:16:59 -0000 1.5 @@ -1,6 +1,6 @@ #! perl -w # Copyright: 2001-2003 The Perl Foundation. All Rights Reserved. -# $Id: float.t,v 1.4 2004/08/09 07:43:17 leo Exp $ +# $Id: float.t,v 1.5 2004/08/09 21:16:59 scog Exp $ =head1 NAME @@ -16,7 +16,7 @@ =cut -use Parrot::Test tests => 15; +use Parrot::Test tests => 26; my $fp_equality_macro = <<'ENDOFMACRO'; .macro fp_eq ( J, K, L ) @@ -478,3 +478,302 @@ CODE 0 is false OUTPUT + +output_is(<< "CODE", << 'OUTPUT', "Basic integer arithmetic: addition"); [EMAIL PROTECTED] $fp_equality_macro ]} + new P0, .Float + set P0, 0.001 + add P0, 1 + .fp_eq(P0, 1.001, EQ1) + print P0 + print "not " +EQ1: print "ok 1\\n" + + add P0, -2 + .fp_eq(P0, -0.999, EQ2) + print P0 + print "not " +EQ2: print "ok 2\\n" + end +CODE +ok 1 +ok 2 +OUTPUT + +output_is(<< "CODE", << 'OUTPUT', "Basic integer arithmetic: subtraction"); [EMAIL PROTECTED] $fp_equality_macro ]} + new P0, .Float + set P0, 103.45 + sub P0, 77 + .fp_eq(P0, 26.45, EQ1) + print P0 + print "not " +EQ1: print "ok 1\\n" + + sub P0, -24 + .fp_eq(P0, 50.45, EQ2) + print P0 + print "not " +EQ2: print "ok 2\\n" + end +CODE +ok 1 +ok 2 +OUTPUT + +output_is(<< "CODE", << 'OUTPUT', "Basic integer arithmetic: multiplication"); [EMAIL PROTECTED] $fp_equality_macro ]} + new P0, .Float + set P0, 0.001 + mul P0, 10000 + .fp_eq(P0, 10.0, EQ1) + print P0 + print "not " +EQ1: print "ok 1\\n" + + mul P0, -1 + .fp_eq(P0, -10.0, EQ2) + print P0 + print "not " +EQ2: print "ok 2\\n" + + mul P0, 0 + .fp_eq(P0, 0.0, EQ3) + print P0 + print "not " +EQ3: print "ok 3\\n" + end +CODE +ok 1 +ok 2 +ok 3 +OUTPUT + +output_is(<< "CODE", << 'OUTPUT', "Basic integer arithmetic: division"); [EMAIL PROTECTED] $fp_equality_macro ]} + new P0, .Float + set P0, 1e8 + div P0, 10000 + .fp_eq(P0, 10000.0, EQ1) + print P0 + print "not " +EQ1: print "ok 1\\n" + + div P0, 1000000 + .fp_eq(P0, 0.01, EQ2) + print P0 + print "not " +EQ2: print "ok 2\\n" + end +CODE +ok 1 +ok 2 +OUTPUT + +output_is(<< "CODE", << 'OUTPUT', "Basic numeric arithmetic: addition"); [EMAIL PROTECTED] $fp_equality_macro ]} + new P0, .Float + set P0, 0.001 + add P0, 1.2 + .fp_eq(P0, 1.201, EQ1) + print P0 + print "not " +EQ1: print "ok 1\\n" + + add P0, -2.4 + .fp_eq(P0, -1.199, EQ2) + print P0 + print "not " +EQ2: print "ok 2\\n" + end +CODE +ok 1 +ok 2 +OUTPUT + +output_is(<< "CODE", << 'OUTPUT', "Basic numeric arithmetic: subtraction"); [EMAIL PROTECTED] $fp_equality_macro ]} + new P0, .Float + set P0, 103.45 + sub P0, 3.46 + .fp_eq(P0, 99.99, EQ1) + print P0 + print "not " +EQ1: print "ok 1\\n" + + sub P0, -0.01 + .fp_eq(P0, 100.00, EQ2) + print P0 + print "not " +EQ2: print "ok 2\\n" + end +CODE +ok 1 +ok 2 +OUTPUT + +output_is(<< "CODE", << 'OUTPUT', "Basic numeric arithmetic: multiplication"); [EMAIL PROTECTED] $fp_equality_macro ]} + new P0, .Float + set P0, 0.001 + mul P0, 123.5 + .fp_eq(P0, 0.1235, EQ1) + print P0 + print "not " +EQ1: print "ok 1\\n" + + mul P0, -2.6 + .fp_eq(P0, -0.3211, EQ2) + print P0 + print "not " +EQ2: print "ok 2\\n" + + mul P0, 0 + .fp_eq(P0, 0.0, EQ3) + print P0 + print "not " +EQ3: print "ok 3\\n" + end +CODE +ok 1 +ok 2 +ok 3 +OUTPUT + +output_is(<< "CODE", << 'OUTPUT', "Basic numeric arithmetic: division"); [EMAIL PROTECTED] $fp_equality_macro ]} + new P0, .Float + set P0, 1e8 + div P0, 0.5 + .fp_eq(P0, 2e8, EQ1) + print P0 + print "not " +EQ1: print "ok 1\\n" + + div P0, 4000.0 + .fp_eq(P0, 50000.0, EQ2) + print P0 + print "not " +EQ2: print "ok 2\\n" + end +CODE +ok 1 +ok 2 +OUTPUT + +output_is(<< "CODE", << 'OUTPUT', "Increment & decrement"); [EMAIL PROTECTED] $fp_equality_macro ]} + new P0, .Float + set P0, 0.5 + inc P0 + .fp_eq(P0, 1.5, EQ1) + print P0 + print "not " +EQ1: print "ok 1\\n" + + dec P0 + .fp_eq(P0, 0.5, EQ2) + print P0 + print "not " +EQ2: print "ok 2\\n" + + dec P0 + .fp_eq(P0, -0.5, EQ3) + print P0 + print "not " +EQ3: print "ok 3\\n" + + inc P0 + .fp_eq(P0, 0.5, EQ4) + print P0 + print "not " +EQ4: print "ok 4\\n" + end +CODE +ok 1 +ok 2 +ok 3 +ok 4 +OUTPUT + +output_is(<< "CODE", << 'OUTPUT', "Neg"); [EMAIL PROTECTED] $fp_equality_macro ]} + new P0, .Float + set P0, 0.5 + neg P0 + .fp_eq(P0, -0.5, EQ1) + print P0 + print "not " +EQ1: print "ok 1\\n" + + new P1, .Float + neg P1, P0 + .fp_eq(P1, 0.5, EQ2) + print P1 + print "not " +EQ2: print "ok 2\\n" + end +CODE +ok 1 +ok 2 +OUTPUT + +output_is(<< 'CODE', << 'OUTPUT', "Equality"); + new P0, .Float + set P0, 1e8 + new P1, .Float + set P1, 1e8 + new P2, .Float + set P2, 2.4 + + eq P0, P1, OK1 + print "not " +OK1: print "ok 1\n" + + eq P0, P2, BAD2 + branch OK2 +BAD2: print "not " +OK2: print "ok 2\n" + + ne P0, P2, OK3 + print "not " +OK3: print "ok 3\n" + + ne P0, P1, BAD4 + branch OK4 +BAD4: print "not " +OK4: print "ok 4\n" + + eq_num P0, P1, OK5 + print "not " +OK5: print "ok 5\n" + + eq_num P0, P2, BAD6 + branch OK6 +BAD6: print "not " +OK6: print "ok 6\n" + + ne_num P0, P2, OK7 + print "not " +OK7: print "ok 7\n" + + ne_num P0, P1, BAD8 + branch OK8 +BAD8: print "not " +OK8: print "ok 8\n" + end +CODE +ok 1 +ok 2 +ok 3 +ok 4 +ok 5 +ok 6 +ok 7 +ok 8 +OUTPUT + + + + +
