X-Git-Url: https://ocean-lang.org/code/?p=ocean;a=blobdiff_plain;f=csrc%2Foceani-tests.mdc;h=e3739ed940802dd324eebc14fec1eefdc03c8be4;hp=54b08d02fd14fc6226164410754ccb99b30bf3c6;hb=1dd9f61bbc7e8890b5407ba084793817e55fe502;hpb=1b9dd205f5d65b6d89b0e05d51690c8c6cf0f771 diff --git a/csrc/oceani-tests.mdc b/csrc/oceani-tests.mdc index 54b08d0..e3739ed 100644 --- a/csrc/oceani-tests.mdc +++ b/csrc/oceani-tests.mdc @@ -163,7 +163,7 @@ Now some contants oceani_tests += "consts" ###### test: consts - const: + const pi ::= 3.141 592 653 four ::= 2 + 2 ; five ::= 10/2 const pie ::= "I like Pie"; @@ -189,12 +189,12 @@ Test merging of variables from multiple cases program: for i:=0; then i=i+1; while i < 5: - switch i + switch i: case 0: num:="zero" case 1: num:="one" case 2: num:="two" case 3: num:="three" - else: num:="many" + else num:="many" print num,", ", print @@ -214,7 +214,7 @@ Now we need to test if/else and some different loops a := 4 if a < 5: print "Success" - else: + else print "Failure" for b:=1; then b=b+b; while b < 100: print '', b, @@ -222,12 +222,12 @@ Now we need to test if/else and some different loops // Newtons method for square root of 2 target ::= 2 guess := target - for: + for count: number = 0 - while: + while current := guess * guess use +(current - target) > 0.000000001 - do: + do guess = (guess + (target / guess) ) / 2 print count, guess count = count + 1 @@ -236,7 +236,7 @@ Now we need to test if/else and some different loops for j:=0; then j = j+3 ; while j < 10: if j != 0 and then 20 / j > 3: print "20 /", j," =", 20 / j - else: + else print "I won't calculate 20 /", j pi ::= 3.1415926535897 if 355/113 == pi or else +(pi - 355/113) < 0.001: @@ -249,7 +249,7 @@ Now we need to test if/else and some different loops then { i = i+1 } while i <= 10: sum = sum + i - else: + else pass print "sum 1..10 is", sum @@ -289,7 +289,7 @@ Here I break it into two parts, keeping the array code separate. */ if A > B: bigger := "yes" - else: + else bigger := "no" print "Is", A, "bigger than", B,"? ", bigger /* If a variable is not used after the 'if', no @@ -298,7 +298,7 @@ Here I break it into two parts, keeping the array code separate. if A > B * 2: double:string = "yes" print A, "is more than twice", B, "?", double - else: + else double := B*2 print "double", B, "is", double @@ -309,15 +309,15 @@ Here I break it into two parts, keeping the array code separate. while a != b: if a < b: b = b - a - else: + else a = a - b print "GCD of", A, "and", B,"is", a else if a <= 0: print a, "is not positive, cannot calculate GCD" - else: + else print b, "is not positive, cannot calculate GCD" - for: + for togo := 10 f1 := 1; f2 := 1 print "Fibonacci:", f1,f2, @@ -331,25 +331,25 @@ Here I break it into two parts, keeping the array code separate. if bbool: print astr ++ " was the str" - else: + else print "I found the str over " ++ astr /* Binary search... */ - for: + for lo:= 0; hi := 100 target := 77 - while: + while mid := (lo + hi) / 2 if mid == target: use Found if mid < target: lo = mid - else: + else hi = mid if hi - lo < 1: use GiveUp use True - do: pass + do pass case Found: print "Yay, I found", target case GiveUp: @@ -545,7 +545,7 @@ Time to test if structure declarations and accesses work correctly. ###### test: structs - struct foo: + struct foo size:[3]number name:string active:Boolean @@ -560,7 +560,7 @@ Time to test if structure declarations and accesses work correctly. case 2: nm:= "peter" case 0: nm:= "bob" case 1: nm:= "jane" - else: nm:= "janine" + else nm:= "janine" info[i].name = nm info[i].size[0] = i*i @@ -710,7 +710,7 @@ various places that `type_err()` are called. ###### test: type_err3 - struct foo: + struct foo a: number b:string = "hello" @@ -722,11 +722,11 @@ various places that `type_err()` are called. print 45 + ( "Hello" ++ "there") c[5] = 1 - while: + while use 1 use True use "Hello" - do: + do print case 1: print "one" case "Hello": print "Hello" @@ -788,10 +788,10 @@ various places that `type_err()` are called. oceani_failing_tests += type_err_const type_err_const1 ###### test: type_err_const - const: + const foo :: number = 45 bar ::= "string" + 56 - const: + const bar ::= "baz" program: foo := 4 @@ -805,7 +805,7 @@ various places that `type_err()` are called. .tmp.code:3:8: info: this is where 'foo' was first declared ###### test: type_err_const1 - const: + const foo : number = 45 bar := "string" program: