Merge branch 'tez-div-tez' into 'dev'
Expose tez/tez division See merge request ligolang/ligo!133
This commit is contained in:
commit
9d133338c0
@ -438,11 +438,15 @@ module Typer = struct
|
||||
then ok @@ t_int () else
|
||||
if eq_1 a (t_tez ()) && eq_1 b (t_nat ())
|
||||
then ok @@ t_tez () else
|
||||
if eq_1 a (t_tez ()) && eq_1 b (t_tez ())
|
||||
then ok @@ t_nat () else
|
||||
simple_fail "Dividing with wrong types"
|
||||
|
||||
let mod_ = typer_2 "MOD" @@ fun a b ->
|
||||
if (eq_1 a (t_nat ()) || eq_1 a (t_int ())) && (eq_1 b (t_nat ()) || eq_1 b (t_int ()))
|
||||
then ok @@ t_nat () else
|
||||
if eq_1 a (t_tez ()) && eq_1 b (t_tez ())
|
||||
then ok @@ t_tez () else
|
||||
simple_fail "Computing modulo with wrong types"
|
||||
|
||||
let add = typer_2 "ADD" @@ fun a b ->
|
||||
|
@ -1,4 +1,16 @@
|
||||
const add_tez : tez = 21mtz + 0.000021tz;
|
||||
const sub_tez : tez = 21mtz - 20mtz;
|
||||
(* is this enough? *)
|
||||
(* This is not enough. *)
|
||||
const not_enough_tez : tez = 4611686018427387903mtz;
|
||||
|
||||
|
||||
const nat_mul_tez : tez = 1n * 100mtz;
|
||||
const tez_mul_nat : tez = 100mtz * 10n;
|
||||
|
||||
const tez_div_tez1 : nat = 100mtz / 1mtz;
|
||||
const tez_div_tez2 : nat = 100mtz / 90mtz;
|
||||
const tez_div_tez3 : nat = 100mtz / 110mtz;
|
||||
|
||||
const tez_mod_tez1 : tez = 100mtz mod 1mtz;
|
||||
const tez_mod_tez2 : tez = 100mtz mod 90mtz;
|
||||
const tez_mod_tez3 : tez = 100mtz mod 110mtz;
|
||||
|
@ -829,6 +829,14 @@ let tez_ligo () : unit result =
|
||||
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 "nat_mul_tez" (e_mutez 100) in
|
||||
let%bind _ = expect_eq_evaluate program "tez_mul_nat" (e_mutez 1000) in
|
||||
let%bind _ = expect_eq_evaluate program "tez_div_tez1" (e_nat 100) in
|
||||
let%bind _ = expect_eq_evaluate program "tez_div_tez2" (e_nat 1) in
|
||||
let%bind _ = expect_eq_evaluate program "tez_div_tez3" (e_nat 0) in
|
||||
let%bind _ = expect_eq_evaluate program "tez_mod_tez1" (e_mutez 0) in
|
||||
let%bind _ = expect_eq_evaluate program "tez_mod_tez2" (e_mutez 10) in
|
||||
let%bind _ = expect_eq_evaluate program "tez_mod_tez3" (e_mutez 100) in
|
||||
ok ()
|
||||
|
||||
let tez_mligo () : unit result =
|
||||
|
Loading…
Reference in New Issue
Block a user