On Fri Sep 07 10:59:29 2007, colink wrote:
> This test exposes the truthiness/veracity of various numerical constants
> directly, rather than through the examples/tutorial.t test.
> 
> The failing test is marked as a TODO.

I'm not sure I understand all the issues Colin raised in this ticket
last year, but I tried out his patch tonight.  All tests passed,
including the one that was marked TODO.

So I removed the TODO and committed the attached version to trunk in r28369.

Do we still have a bug?  If not, we can close this ticket.

Thank you very much.

kid51
Index: MANIFEST
===================================================================
--- MANIFEST    (revision 28365)
+++ MANIFEST    (working copy)
@@ -1,7 +1,7 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools\dev\mk_manifest_and_skip.pl Fri Jun 13 09:22:55 2008 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Sun Jun 15 01:05:26 2008 UT
 #
 # See tools/dev/install_files.pl for documentation on the
 # format of this file.
@@ -3059,6 +3059,7 @@
 t/compilers/imcc/syn/scope.t                                []
 t/compilers/imcc/syn/symbols.t                              []
 t/compilers/imcc/syn/tail.t                                 []
+t/compilers/imcc/syn/veracity.t                             []
 t/compilers/json/from_parrot.t                              []
 t/compilers/json/to_parrot.t                                []
 t/compilers/pct/NoneGrammar.tg                              []
Index: t/compilers/imcc/syn/veracity.t
===================================================================
--- t/compilers/imcc/syn/veracity.t     (revision 0)
+++ t/compilers/imcc/syn/veracity.t     (revision 0)
@@ -0,0 +1,129 @@
+#!perl
+# Copyright (C) 2001-2006, The Perl Foundation.
+# $Id$
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+
+use Test::More;
+use Parrot::Config;
+use Parrot::Test tests => 5;
+
+pir_output_is( <<'CODE', <<'OUT', "Positive and negative integers" );
+.sub test :main
+    $I0 = 1
+    unless $I0 goto not_one
+    say "1 is true"
+
+    not_one:
+    $I0 = -1
+    unless $I0 goto not_neg_one
+    say "-1 is true"
+
+    not_neg_one:
+
+    end
+.end
+CODE
+1 is true
+-1 is true
+OUT
+
+pir_output_is( <<'CODE', <<'OUT', "Integer zeros" );
+.sub test :main
+    $I0 = 0
+    if $I0 goto not_zero
+    say "0 is false"
+
+    not_zero:
+    $I0 = -0
+    if $I0 goto not_neg_zero
+    say "-0 is false"
+
+    not_neg_zero:
+
+    end
+.end
+CODE
+0 is false
+-0 is false
+OUT
+
+pir_output_is( <<'CODE', <<'OUT', "Positive and negative floats" );
+.sub test :main
+    $N0 = 1.0
+    unless $N0 goto not_one
+    say "1.0 is true"
+
+    not_one:
+    $N0 = -1.0
+    unless $N0 goto not_neg_one
+    say "-1.0 is true"
+
+    not_neg_one:
+    $N0 = 0.5
+    unless $N0 goto not_pfive
+    say "0.5 is true"
+
+    not_pfive:
+    $N0 = 1e-33
+    unless $N0 goto not_small
+    say "1e-33 is true"
+
+    not_small:
+    end
+.end
+CODE
+1.0 is true
+-1.0 is true
+0.5 is true
+1e-33 is true
+OUT
+
+#TODO: {
+
+#local $TODO = "Failing due to FLOAT_IS_ZERO macro";
+
+pir_output_is( <<'CODE', <<'OUT', "Float zeros" );
+.sub test :main
+    $N0 = 0.0
+    if $N0 goto not_zero
+    say "0.0 is false"
+
+    not_zero:
+    $N0 = -0.0
+    if $N0 goto not_neg_zero
+    say "-0.0 is false"
+
+    not_neg_zero:
+
+    end
+.end
+CODE
+0.0 is false
+-0.0 is false
+OUT
+
+#}
+
+pir_output_is( <<'CODE', <<'OUT', "Float NaN" );
+.sub test :main
+    $N0 = 'NaN'
+    unless $N0 goto not_nan
+    say "NaN is true"
+
+    not_nan:
+    end
+.end
+CODE
+NaN is true
+OUT
+
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Property changes on: t/compilers/imcc/syn/veracity.t
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Reply via email to