sophia/test/contracts/reason/voting_test.re
radrow 18235e5b56 Added standard List library and list comprehensions
Added List library.

Flatmaps WIP

Fixed dependency in flat_map

fcode generation

Updated tests to use custom list lib

Added comprehension test

Added stdlib

sanity

Test
2019-08-09 13:46:13 +02:00

43 lines
1.1 KiB
ReasonML

open Rte;
open Voting;
let creator = "0x123";
let voter1 = "0x1001";
let voter2 = "0x1002";
let voter3 = "0x1003";
let other = "0xffff";
module SetupVote = Setup(Voting);
open Voting;
let print_tally() = {
let tally = call(other, () => currentTally());
MyList.map(((name, count)) => Printf.printf("%s: %d\n", name, count), tally);
let winner = call(other, () => winnerName());
Printf.printf("Winner: %s\n", winner);
};
Printf.printf("Delegate before vote\n");
SetupVote.init(creator, ["Cake", "Beer"]);
call(creator, () => giveRightToVote(voter1));
call(creator, () => giveRightToVote(voter2));
call(creator, () => giveRightToVote(voter3));
call(voter3, () => delegate(voter1));
call(voter1, () => vote(1));
call(voter2, () => vote(0));
print_tally();
SetupVote.reset();
Printf.printf("Delegate after vote\n");
SetupVote.init(creator, ["Cake", "Beer"]);
call(creator, () => giveRightToVote(voter1));
call(creator, () => giveRightToVote(voter2));
call(creator, () => giveRightToVote(voter3));
call(voter1, () => vote(1));
call(voter3, () => delegate(voter1));
call(voter2, () => vote(0));
print_tally();