]> ocean-lang.org Git - ocean/blobdiff - csrc/oceani-tests.mdc
oceani: add simple return type
[ocean] / csrc / oceani-tests.mdc
index 8f10b89324aa7d7dbee42bdfeff3dac4664ba3bf..396b13e8aa69b24f95a3797c7018f2d2c6c2dfa1 100644 (file)
@@ -616,7 +616,7 @@ Time to test if structure declarations and accesses work correctly.
 Test functions.  They don't return anything, so we need to get them to print
 
 ###### test list
-       oceani_tests += functions
+       oceani_tests += functions func_ret_type
 
 ###### test: functions
 
@@ -655,6 +655,34 @@ Test functions.  They don't return anything, so we need to get them to print
        3  2 . 1 .. done
        4  3 . 2 .. 1 ... done
 
+###### test: func_ret_type
+
+       func double(n:number):number
+               use n+n
+
+       func answer
+               prefix:string
+               suffix:string
+       return string
+       do
+               use prefix ++ suffix
+
+       func noarg_returns
+       return Boolean
+       do
+               use 22/7 == 3.14159
+
+       func main()
+               for j:=10; then j = j - 3; while j > -5:
+                       print answer("dou","ble"), j, "is", double(j)
+
+###### output: func_ret_type
+       double 10 is 20
+       double 7 is 14
+       double 4 is 8
+       double 1 is 2
+       double -2 is -4
+
 ## Test code with syntax errors
 
 Syntax errors aren't handled well yet - the result is almost always a
@@ -959,7 +987,15 @@ Test for type errors with functions
                if test1 == test2:
                        pass
 
+       func test4(a:number):string
+               use a * a
+
+       func test5(a:number):string
+               print a
+
 ###### output: func_err_args
+       .tmp.code:28:14: error: expected string, found none
+       .tmp.code:25:8: error: expected string, found number
        .tmp.code:15:14: error: insufficient arguments to function.
        .tmp.code:16:14: error: expected number found string
        .tmp.code:16:22: error: expected string found number