From dd7dd9b1df1c77a62c49ca6e2620f6757b5b0734 Mon Sep 17 00:00:00 2001 From: RJ Dellecese Date: Wed, 18 Dec 2019 22:04:16 -0500 Subject: Add dynamic.element for decoding tuples --- gen/test/gleam@dynamic_test.erl | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'gen/test/gleam@dynamic_test.erl') diff --git a/gen/test/gleam@dynamic_test.erl b/gen/test/gleam@dynamic_test.erl index d233dbc..ec559b5 100644 --- a/gen/test/gleam@dynamic_test.erl +++ b/gen/test/gleam@dynamic_test.erl @@ -1,7 +1,7 @@ -module(gleam@dynamic_test). -compile(no_auto_import). --export([string_test/0, int_test/0, float_test/0, thunk_test/0, bool_test/0, atom_test/0, list_test/0, field_test/0]). +-export([string_test/0, int_test/0, float_test/0, thunk_test/0, bool_test/0, atom_test/0, list_test/0, field_test/0, element_test/0]). string_test() -> gleam@expect:equal( @@ -168,3 +168,29 @@ field_test() -> ), gleam@expect:is_error(gleam@dynamic:field(gleam@dynamic:from(1), OkAtom)), gleam@expect:is_error(gleam@dynamic:field(gleam@dynamic:from([]), [])). + +element_test() -> + {ok, OkAtom} = gleam@atom:from_string(<<"ok">>), + {ok, ErrorAtom} = gleam@atom:from_string(<<"ok">>), + OkOneStruct = {OkAtom, 1}, + gleam@expect:equal( + gleam@dynamic:element(gleam@dynamic:from(OkOneStruct), 0), + {ok, gleam@dynamic:from(OkAtom)} + ), + gleam@expect:equal( + gleam@dynamic:element(gleam@dynamic:from(OkOneStruct), 1), + {ok, gleam@dynamic:from(1)} + ), + gleam@expect:is_error( + gleam@dynamic:element(gleam@dynamic:from(OkOneStruct), 2) + ), + gleam@expect:is_error( + gleam@dynamic:element(gleam@dynamic:from(OkOneStruct), -1) + ), + gleam@expect:is_error(gleam@dynamic:element(gleam@dynamic:from(1), 0)), + gleam@expect:is_error( + gleam@dynamic:element( + gleam@dynamic:from(gleam@map:insert(gleam@map:new(), 1, OkAtom)), + 0 + ) + ). -- cgit v1.2.3