--- /dev/null
+#------------------------------------------------------------------------------
+# Integration Tests for Numbers
+#------------------------------------------------------------------------------
+
+assert( typeof( 345 ) == Num )
+assert( 345 == 345 )
+
+assert( typeof( -345 ) == Num )
+assert( -345 == -345 )
+
+assert( typeof( 34.5 ) == Num )
+assert( 34.5 == 34.5 )
+
+assert( typeof( -34.5 ) == Num )
+assert( -34.5 == -34.5 )
+
+assert( typeof( 3.45e2 ) == Num )
+assert( 3.45e2 == 345 )
+
+assert( typeof( -3.45e2 ) == Num )
+assert( -3.45e2 == -345 )
+
+assert( typeof( 34500e-2 ) == Num )
+assert( 34500e-2 == 345 )
+
+assert( typeof( -34500e-2 ) == Num )
+assert( -34500e-2 == -345 )
+
+assert( typeof( 0x159 ) == Num )
+assert( 0x159 == 345 )
+
+
+++ /dev/null
-#------------------------------------------------------------------------------
-# Macro Tests
-#------------------------------------------------------------------------------
-# Macro Definitions
-% if ( cond, branch1:Block ) {
- exec_if( cond, branch1 )
-}
-
-% ifelse ( cond, branch1:Block, branch2:Block ) {
- exec_if( cond, branch1, branch2 )
-}
-
-% foreach ( lst, fn:Block ) {
- for_each(fn, lst)
-}
-
-# Possible New Macro Syntax
-# _ Macro Name
-# Exp Expression
-# Vctr Vector
-# Lst List
-# Blk Block
-# ID ID
-# Num Number
-# Chr Character
-# Str String
-# Sym Symbol
-#% if {
-# (_ Exp Blk) : exec_if( $1, $2 )
-# (_ Exp Blk Blk) : exec_if( $1, $2, $3 )
-#}
-#
-#% if {
-# (_ Exp Blk) : exec_if( $1, $2 )
-# (_ Exp Blk ID(else) Blk) : exec_if( $1, $2, $3 )
-#}
-
-# Macro Uses
-if (1 == 1)
-{
- print("1 Hello, World!")
-}
-
-if (1 == 0)
-{
- print("Hello, World!")
-}
-
-ifelse (1 == 1)
-{
- print("2 Hello, World!")
-}{
- error("Incorrect branch was taken.")
-}
-
-ifelse (1 == 0)
-{
- error("Incorrect branch was taken.")
-}{
- print("3 Hello, World!")
-}
-
-#------------------------------------------------------------------------------
-# Collection Access and Iteration Tests
-#------------------------------------------------------------------------------
-# Accessing elements of lists, vectors, and strings
-lst1 = `(4,5,6)
-print(lst1[0], " Hello, World!")
-
-vec1 = [4,5,6]
-print(vec1[1], " Hello, World!")
-
-str1 = "456"
-print(str1[2], " Hello, World!")
-
-# Iterating over lists, vectors, and strings
-lst_foo = `(7,8,9,10)
-foreach lst_foo { |a|
- print(a," Hello, World!")
-}
-
-vec_foo = [11,12,13,14,15]
-foreach vec_foo { |a,b|
- print(b," Hello, World!")
-}
-
-str_foo = "6789"
-foreach str_foo { |a|
- print(1,a," Hello, World!")
-}
-
-#------------------------------------------------------------------------------
-# Delayed Evaluation
-#------------------------------------------------------------------------------
-% delay ( exp ) {
- make_promise({ exp })
-}
-
-% force ( prom ) {
- force( prom )
-}
-
-foo = delay nonexistent_var + 1
-nonexistent_var = 19
-assert( typeof(foo) == Block )
-assert( typeof( force foo ) == Num )
-print( force( foo ), " Hello, World!" )
-
-#------------------------------------------------------------------------------
-# Type Checking Tests
-#------------------------------------------------------------------------------
-assert( typeof( 1.1 ) == Num )
-assert( typeof( 'A' ) == Char )
-assert( typeof( `(1,2,3) ) == List )
-assert( typeof( [1,2,3] ) == Vector )
-assert( typeof( $Foo ) == Symbol )
-assert( typeof( {|a| a + 1} ) == Block )
-