https://gitlab.com/tezos/tezos
Raw File
Tip revision: 96c414508b66efb8edee4ced03a50de7ef3abc58 authored by Ole Krüger on 04 April 2024, 13:56:32 UTC
Nix: Provide Nix flake
Tip revision: 96c4145
unpair.tz
parameter (unit :param_unit);
storage (unit :u1);
code { DROP ;

       # No annotation
       UNIT; UNIT; PAIR; UNPAIR; DROP 2;

       # Variable annotations are overriden by UNPAIR
       UNIT @b; UNIT @a; PAIR; UNPAIR @c @d; DROP 2;

       UNIT @b; UNIT @a; PAIR %@ %@;
       DUP; UNPAIR %a %b; DROP 2;
       DUP; UNPAIR % %b; DROP 2;
       DUP; UNPAIR %a %; DROP 2;
       DUP; UNPAIR % %; DROP 2;
       DUP; UNPAIR %a; DROP 2;
       DUP; UNPAIR %; DROP 2;
       DUP; UNPAIR; DROP 2;
       DUP; UNPAIR %a %b @a @b; DROP 2;
       DUP; UNPAIR @a @b %a %b; DROP 2;
       DUP; UNPAIR @a @% %a %b; DROP 2;
       DUP; UNPAIR @% @% %a %b; DROP 2;
       DUP; UNPAIR @% @b %a %b; DROP 2;
       DROP;

       # Same test with non-matching field and variable annotations
       UNIT @d; UNIT @c; PAIR %a %b;
       DUP; UNPAIR %a %b; DROP 2;
       DUP; UNPAIR % %b; DROP 2;
       DUP; UNPAIR %a %; DROP 2;
       DUP; UNPAIR % %; DROP 2;
       DUP; UNPAIR %a; DROP 2;
       DUP; UNPAIR %; DROP 2;
       DUP; UNPAIR; DROP 2;
       DUP; UNPAIR %a %b @a @b; DROP 2;
       DUP; UNPAIR @a @b %a %b; DROP 2;
       DUP; UNPAIR @a @% %a %b; DROP 2;
       DUP; UNPAIR @% @% %a %b; DROP 2;
       DUP; UNPAIR @% @b %a %b; DROP 2;
       DROP;

       # Same tests without the variable annotations in input
       UNIT; UNIT; PAIR %a %b;
       DUP; UNPAIR %a %b; DROP 2;
       DUP; UNPAIR % %b; DROP 2;
       DUP; UNPAIR %a %; DROP 2;
       DUP; UNPAIR % %; DROP 2;
       DUP; UNPAIR %a; DROP 2;
       DUP; UNPAIR %; DROP 2;
       DUP; UNPAIR; DROP 2;
       DUP; UNPAIR %a %b @a @b; DROP 2;
       DUP; UNPAIR @a @b %a %b; DROP 2;
       DUP; UNPAIR @a @% %a %b; DROP 2;
       DUP; UNPAIR @% @% %a %b; DROP 2;
       DUP; UNPAIR @% @b %a %b; DROP 2;
       DROP;

       # Tests for @%%
       UNIT; UNIT; PAIR %a %b @p;
       DUP; UNPAIR @%% @b; DROP 2;
       DUP; UNPAIR @a @%%; DROP 2;
       DUP; UNPAIR @%% @%%; DROP 2;
       DUP; UNPAIR @% @%%; DROP 2;
       DUP; UNPAIR @%% @%; DROP 2;
       DROP;

       # Swapping variable annotations
       UNIT @b; UNIT @a; PAIR @c; UNPAIR @b @a; DROP 2;

       # End of test
       UNIT; NIL operation; PAIR }
back to top