37 lines
946 B
Plaintext
37 lines
946 B
Plaintext
|
|
contract MapOfMaps =
|
|
|
|
type board = map(int, map(int, string))
|
|
type map2('a, 'b, 'c) = map('a, map('b, 'c))
|
|
|
|
record state = { big1 : map2(string, string, string),
|
|
big2 : map2(string, string, string),
|
|
small1 : map(string, string),
|
|
small2 : map(string, string) }
|
|
|
|
private function empty_state() =
|
|
{ big1 = {}, big2 = {},
|
|
small1 = {}, small2 = {} }
|
|
|
|
function init() = empty_state()
|
|
|
|
function setup_state() =
|
|
let small = {["key"] = "val"}
|
|
put({ big1 = {["one"] = small},
|
|
big2 = {["two"] = small},
|
|
small1 = small,
|
|
small2 = small })
|
|
|
|
// -- Garbage collection of inner map when outer map is garbage collected
|
|
function test1_setup() =
|
|
let inner = {["key"] = "val"}
|
|
put(empty_state() { big1 = {["one"] = inner} })
|
|
|
|
function test1_execute() =
|
|
put(state{ big1 = {} })
|
|
|
|
function test1_check() =
|
|
state.big1
|
|
|
|
|