diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/mathop.test | 117 |
1 files changed, 115 insertions, 2 deletions
diff --git a/tests/mathop.test b/tests/mathop.test index 4f10b48..e59011d 100644 --- a/tests/mathop.test +++ b/tests/mathop.test @@ -9,7 +9,7 @@ # See the file "license.terms" for information on usage and redistribution of # this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: mathop.test,v 1.2 2006/12/06 18:05:27 dgp Exp $ +# RCS: @(#) $Id: mathop.test,v 1.3 2006/12/07 15:02:46 dkf Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest 2.1 @@ -20,6 +20,7 @@ if {[lsearch [namespace children] ::tcltest] == -1} { namespace eval ::testmathop { namespace path ::tcl::mathop + variable op ;# stop surprises! test mathop-1.1 {compiled +} { + } 0 test mathop-1.2 {compiled +} { + 1 } 1 @@ -171,7 +172,119 @@ namespace eval ::testmathop { } msg] $msg $x } -result {1 expected 2} - # TODO: ! ~ & | ^ % ** << >> - / == != < <= > >= eq ne in ni + test mathop-3.1 {compiled !} {! 0} 1 + test mathop-3.2 {compiled !} {! 1} 0 + test mathop-3.3 {compiled !} {! false} 1 + test mathop-3.4 {compiled !} {! true} 0 + test mathop-3.5 {compiled !} {! 0.0} 1 + test mathop-3.6 {compiled !} {! 10000000000} 0 + test mathop-3.7 {compiled !} {! 10000000000000000000000000} 0 + test mathop-3.8 {compiled !: errors} -body { + ! foobar + } -returnCodes error -result {expected boolean value but got "foobar"} + test mathop-3.9 {compiled !: errors} -body { + ! 0 0 + } -returnCodes error -result "wrong # args: should be \"! boolean\"" + test mathop-3.10 {compiled !: errors} -body { + ! + } -returnCodes error -result "wrong # args: should be \"! boolean\"" + set op ! + test mathop-3.11 {interpreted !} {$op 0} 1 + test mathop-3.12 {interpreted !} {$op 1} 0 + test mathop-3.13 {interpreted !} {$op false} 1 + test mathop-3.14 {interpreted !} {$op true} 0 + test mathop-3.15 {interpreted !} {$op 0.0} 1 + test mathop-3.16 {interpreted !} {$op 10000000000} 0 + test mathop-3.17 {interpreted !} {$op 10000000000000000000000000} 0 + test mathop-3.18 {interpreted !: errors} -body { + $op foobar + } -returnCodes error -result {expected boolean value but got "foobar"} + test mathop-3.19 {interpreted !: errors} -body { + $op 0 0 + } -returnCodes error -result "wrong # args: should be \"! boolean\"" + test mathop-3.20 {interpreted !: errors} -body { + $op + } -returnCodes error -result "wrong # args: should be \"! boolean\"" + test mathop-3.21 {compiled !: error} -returnCodes error -body { + ! NaN + } -result {floating point value is Not a Number} + test mathop-3.21 {interpreted !: error} -returnCodes error -body { + $op NaN + } -result {floating point value is Not a Number} + + test mathop-4.1 {compiled ~} {~ 0} -1 + test mathop-4.2 {compiled ~} {~ 1} -2 + test mathop-4.3 {compiled ~} {~ 31} -32 + test mathop-4.4 {compiled ~} {~ -127} 126 + test mathop-4.5 {compiled ~} {~ -0} -1 + test mathop-4.6 {compiled ~} {~ 10000000000} -10000000001 + test mathop-4.7 {compiled ~} {~ 10000000000000000000000000} -10000000000000000000000001 + test mathop-4.8 {compiled ~: errors} -body { + ~ foobar + } -returnCodes error -result {expected number but got "foobar"} + test mathop-4.9 {compiled ~: errors} -body { + ~ 0 0 + } -returnCodes error -result "wrong # args: should be \"~ number\"" + test mathop-4.10 {compiled ~: errors} -body { + ~ + } -returnCodes error -result "wrong # args: should be \"~ number\"" + test mathop-4.11 {compiled ~: errors} -returnCodes error -body { + ~ 0.0 + } -result {can't use floating-point value as operand of "~"} + test mathop-4.12 {compiled ~: errors} -returnCodes error -body { + ~ NaN + } -result {can't use non-numeric floating-point value as operand of "~"} + set op ~ + test mathop-4.13 {interpreted ~} {$op 0} -1 + test mathop-4.14 {interpreted ~} {$op 1} -2 + test mathop-4.15 {interpreted ~} {$op 31} -32 + test mathop-4.16 {interpreted ~} {$op -127} 126 + test mathop-4.17 {interpreted ~} {$op -0} -1 + test mathop-4.18 {interpreted ~} {$op 10000000000} -10000000001 + test mathop-4.19 {interpreted ~} {$op 10000000000000000000000000} -10000000000000000000000001 + test mathop-4.20 {interpreted ~: errors} -body { + $op foobar + } -returnCodes error -result {expected number but got "foobar"} + test mathop-4.21 {interpreted ~: errors} -body { + $op 0 0 + } -returnCodes error -result "wrong # args: should be \"~ number\"" + test mathop-4.22 {interpreted ~: errors} -body { + $op + } -returnCodes error -result "wrong # args: should be \"~ number\"" + test mathop-4.23 {interpreted ~: errors} -returnCodes error -body { + $op 0.0 + } -result {can't use floating-point value as operand of "~"} + test mathop-4.24 {interpreted ~: errors} -returnCodes error -body { + $op NaN + } -result {can't use non-numeric floating-point value as operand of "~"} + + test mathop-5.1 {compiled eq} {eq {} a} 0 + test mathop-5.2 {compiled eq} {eq a a} 1 + test mathop-5.3 {compiled eq} {eq a {}} 0 + test mathop-5.4 {compiled eq} {eq a b} 0 + test mathop-5.5 {compiled eq} { eq } 1 + test mathop-5.6 {compiled eq} {eq a} 1 + test mathop-5.7 {compiled eq} {eq a a a} 1 + test mathop-5.8 {compiled eq} {eq a a b} 0 + test mathop-5.9 {compiled eq} -body { + eq a b [error foobar] + } -returnCodes error -result foobar + test mathop-5.10 {compiled eq} {eq NaN Na NaN} 0 + set op eq + test mathop-5.11 {interpreted eq} {$op {} a} 0 + test mathop-5.12 {interpreted eq} {$op a a} 1 + test mathop-5.13 {interpreted eq} {$op a {}} 0 + test mathop-5.14 {interpreted eq} {$op a b} 0 + test mathop-5.15 {interpreted eq} { $op } 1 + test mathop-5.16 {interpreted eq} {$op a} 1 + test mathop-5.17 {interpreted eq} {$op a a a} 1 + test mathop-5.18 {interpreted eq} {$op a a b} 0 + test mathop-5.19 {interpreted eq} -body { + $op a b [error foobar] + } -returnCodes error -result foobar + test mathop-5.20 {interpreted eq} {$op NaN Na NaN} 0 + + # TODO: & | ^ % ** << >> - / == != < <= > >= ne in ni } # cleanup |