Merge branch 'feature/some-tests' into 'dev'
More tests and a few operations See merge request ligolang/ligo!26
This commit is contained in:
commit
7958508e14
5
src/test/contracts/condition-annot.mligo
Normal file
5
src/test/contracts/condition-annot.mligo
Normal file
@ -0,0 +1,5 @@
|
||||
let%entry main (i : int) =
|
||||
if (i = 2 : bool) then
|
||||
(42 : int)
|
||||
else
|
||||
(0 : int)
|
9
src/test/contracts/condition-shadowing.mligo
Normal file
9
src/test/contracts/condition-shadowing.mligo
Normal file
@ -0,0 +1,9 @@
|
||||
(* TODO : make a test using mutation, not shadowing *)
|
||||
let%entry main (i : int) =
|
||||
let result = 0 in
|
||||
if i = 2 then
|
||||
let result = 42 in
|
||||
result
|
||||
else
|
||||
let result = 0 in
|
||||
result
|
5
src/test/contracts/condition.mligo
Normal file
5
src/test/contracts/condition.mligo
Normal file
@ -0,0 +1,5 @@
|
||||
let%entry main (i : int) =
|
||||
if i = 2 then
|
||||
42
|
||||
else
|
||||
0
|
8
src/test/contracts/fibo.mligo
Normal file
8
src/test/contracts/fibo.mligo
Normal file
@ -0,0 +1,8 @@
|
||||
type storage = unit
|
||||
|
||||
|
||||
let%entry main (p:unit) storage =
|
||||
(fun (f : (int * int) -> int) (x : int) (y : int) -> f (y, x))
|
||||
(fun (x : int) (y : int) -> x + y)
|
||||
0
|
||||
1
|
7
src/test/contracts/fibo2.mligo
Normal file
7
src/test/contracts/fibo2.mligo
Normal file
@ -0,0 +1,7 @@
|
||||
type storage = unit
|
||||
|
||||
let%entry main (p:unit) storage =
|
||||
(fun (f : int -> int) (x : int) (y : int) -> (f y))
|
||||
(fun (x : int) -> x)
|
||||
0
|
||||
1
|
7
src/test/contracts/fibo3.mligo
Normal file
7
src/test/contracts/fibo3.mligo
Normal file
@ -0,0 +1,7 @@
|
||||
type storage = unit
|
||||
|
||||
let%entry main (p:unit) storage =
|
||||
(fun (f : int -> int -> int) (x : int) (y : int) -> (f y) (x + y))
|
||||
(fun (x : int) (y : int) -> x + y)
|
||||
0
|
||||
1
|
6
src/test/contracts/fibo4.mligo
Normal file
6
src/test/contracts/fibo4.mligo
Normal file
@ -0,0 +1,6 @@
|
||||
type storage = unit
|
||||
|
||||
let%entry main (p:unit) storage =
|
||||
(fun (f : int -> int) (x : int) -> (f x))
|
||||
(fun (x : int) -> x)
|
||||
1
|
20
src/test/contracts/website2.mligo
Normal file
20
src/test/contracts/website2.mligo
Normal file
@ -0,0 +1,20 @@
|
||||
type storage = int
|
||||
|
||||
(* variant defining pseudo multi-entrypoint actions *)
|
||||
|
||||
type action =
|
||||
| Increment of int
|
||||
| Decrement of int
|
||||
|
||||
let add (a: int) (b: int) : int = a + b
|
||||
|
||||
let subtract (a: int) (b: int) : int = a - b
|
||||
|
||||
(* real entrypoint that re-routes the flow based on the action provided *)
|
||||
|
||||
let%entry main (p : action) storage =
|
||||
let storage =
|
||||
match p with
|
||||
| Increment n -> add storage n
|
||||
| Decrement n -> subtract storage n
|
||||
in (([] : operation list), storage)
|
@ -606,6 +606,20 @@ let condition () : unit result =
|
||||
in
|
||||
ok ()
|
||||
|
||||
let condition_mligo () : unit result =
|
||||
let%bind _ =
|
||||
let aux file =
|
||||
let%bind program = mtype_file file in
|
||||
let make_input = e_int in
|
||||
let make_expected = fun n -> e_int (if n = 2 then 42 else 0) in
|
||||
expect_eq_n program "main" make_input make_expected in
|
||||
bind_map_list aux [
|
||||
"./contracts/condition.mligo";
|
||||
"./contracts/condition-shadowing.mligo";
|
||||
"./contracts/condition-annot.mligo";
|
||||
] in
|
||||
ok ()
|
||||
|
||||
let condition_simple () : unit result =
|
||||
let%bind program = type_file "./contracts/condition-simple.ligo" in
|
||||
let make_input = e_int in
|
||||
@ -867,6 +881,12 @@ let lambda2_mligo () : unit result =
|
||||
let make_expected = (e_unit ()) in
|
||||
expect_eq program "main" make_input make_expected
|
||||
|
||||
let fibo_mligo () : unit result =
|
||||
let%bind program = mtype_file "./contracts/fibo.mligo" in
|
||||
let make_input = e_pair (e_unit ()) (e_unit ()) in
|
||||
let make_expected = (e_int 42) in
|
||||
expect_eq program "main" make_input make_expected
|
||||
|
||||
let website1_ligo () : unit result =
|
||||
let%bind program = type_file "./contracts/website1.ligo" in
|
||||
let make_input = fun n-> e_pair (e_int n) (e_int 42) in
|
||||
@ -906,6 +926,16 @@ let tez_mligo () : unit result =
|
||||
let%bind _ = expect_eq_evaluate program "add_more_tez" (e_mutez 111111000) in
|
||||
ok ()
|
||||
|
||||
let website2_mligo () : unit result =
|
||||
let%bind program = mtype_file "./contracts/website2.mligo" in
|
||||
let make_input = fun n ->
|
||||
let action = if n mod 2 = 0 then "Increment" else "Decrement" in
|
||||
e_pair (e_constructor action (e_int n)) (e_int 42) in
|
||||
let make_expected = fun n ->
|
||||
let op = if n mod 2 = 0 then (+) else (-) in
|
||||
e_pair (e_typed_list [] t_operation) (e_int (op 42 n)) in
|
||||
expect_eq_n program "main" make_input make_expected
|
||||
|
||||
let main = test_suite "Integration (End to End)" [
|
||||
test "type alias" type_alias ;
|
||||
test "function" function_ ;
|
||||
@ -923,7 +953,8 @@ let main = test_suite "Integration (End to End)" [
|
||||
test "tuple" tuple ;
|
||||
test "record" record ;
|
||||
test "condition simple" condition_simple ;
|
||||
test "condition" condition ;
|
||||
test "condition (ligo)" condition ;
|
||||
test "condition (mligo)" condition_mligo ;
|
||||
test "shadow" shadow ;
|
||||
test "annotation" annotation ;
|
||||
test "multiple parameters" multiple_parameters ;
|
||||
@ -967,9 +998,14 @@ let main = test_suite "Integration (End to End)" [
|
||||
(* test "guess string mligo" guess_string_mligo ; WIP? *)
|
||||
test "lambda mligo" lambda_mligo ;
|
||||
test "lambda ligo" lambda_ligo ;
|
||||
(* test "lambda2 mligo" lambda2_mligo ; *)
|
||||
test "tez (ligo)" tez_ligo ;
|
||||
test "tez (mligo)" tez_mligo ;
|
||||
test "lambda2 mligo" lambda2_mligo ;
|
||||
(* test "fibo (mligo)" fibo_mligo ; *)
|
||||
(* test "fibo2 (mligo)" fibo2_mligo ; *)
|
||||
(* test "fibo3 (mligo)" fibo3_mligo ; *)
|
||||
(* test "fibo4 (mligo)" fibo4_mligo ; *)
|
||||
test "website1 ligo" website1_ligo ;
|
||||
test "website2 ligo" website2_ligo ;
|
||||
test "website2 (mligo)" website2_mligo ;
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user