Add a little bit of tez tests, fix cameligo lexer bug

This commit is contained in:
Tom Jack 2019-06-12 23:27:54 -07:00
parent 43e75e186b
commit 6fc1b6430b
4 changed files with 27 additions and 1 deletions

View File

@ -276,7 +276,7 @@ rule scan = parse
| integer as n { Token.Int (n, Z.of_string n) }
| integer as n "p" { Token.Nat (n ^ "p", Z.of_string n) }
| integer as tz "tz" { Token.Mtz (tz ^ "tz", Z.of_string tz) }
| integer as tz "tz" { Token.Mtz (tz ^ "tz", Z.mul (Z.of_int 1_000_000) (Z.of_string tz)) }
| decimal as tz "tz" {
match format_tz tz with
Some z -> Token.Mtz (tz ^ "tz", z)

View File

@ -0,0 +1,4 @@
const add_tez : tez = 21mtz + 21mtz;
const sub_tez : tez = 21mtz - 20mtz;
(* is this enough? *)
const not_enough_tez : tez = 4611686018427387903mtz;

View File

@ -0,0 +1,5 @@
let add_tez : tez = 0.000021tz + 0.000021tz
let sub_tez : tez = 0.000021tz - 0.000020tz
let not_enough_tez : tez = 4611686018427.387903tz
let add_more_tez : tez = 100tz + 10tz + 1tz + 0.1tz + 0.01tz + 0.001tz

View File

@ -787,6 +787,21 @@ let website2_ligo () : unit result =
e_pair (e_typed_list [] t_operation) (e_int (op 42 n)) in
expect_eq_n program "main" make_input make_expected
let tez_ligo () : unit result =
let%bind program = type_file "./contracts/tez.ligo" in
let%bind _ = expect_eq_evaluate program "add_tez" (e_mutez 42) in
let%bind _ = expect_eq_evaluate program "sub_tez" (e_mutez 1) in
let%bind _ = expect_eq_evaluate program "not_enough_tez" (e_mutez 4611686018427387903) in
ok ()
let tez_mligo () : unit result =
let%bind program = mtype_file "./contracts/tez.mligo" in
let%bind _ = expect_eq_evaluate program "add_tez" (e_mutez 42) in
let%bind _ = expect_eq_evaluate program "sub_tez" (e_mutez 1) in
let%bind _ = expect_eq_evaluate program "not_enough_tez" (e_mutez 4611686018427387903) in
let%bind _ = expect_eq_evaluate program "add_more_tez" (e_mutez 111111000) in
ok ()
let main = test_suite "Integration (End to End)" [
test "type alias" type_alias ;
test "function" function_ ;
@ -844,6 +859,8 @@ let main = test_suite "Integration (End to End)" [
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 "website1 ligo" website1_ligo ;
test "website2 ligo" website2_ligo ;
]