Packages
gleam_stdlib
0.16.0
1.0.3
1.0.2
1.0.1
1.0.0
0.71.0
0.70.0
0.69.0
0.68.1
0.68.0
0.67.1
0.67.0
0.65.0
0.64.0
0.63.2
0.63.1
0.63.0
0.62.1
0.62.0
0.61.0
0.60.0
0.59.0
0.58.0
0.57.0
0.56.0
0.55.0
0.54.0
0.53.0
0.52.0
0.51.0
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.1
0.35.0
0.34.0
0.33.1
0.33.0
0.32.1
0.32.0
0.31.0
0.30.2
0.30.1
0.30.0
0.29.2
0.29.1
0.29.0
0.28.2
0.28.1
0.28.0
0.27.0
0.26.1
0.26.0
0.25.0
0.24.0
0.23.0
0.22.3
0.22.2
0.22.1
0.22.0
0.21.0
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.18.0-rc1
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.1
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.4.0-rc1
0.3.1
0.3.0
0.2.0
retired
A standard library for the Gleam programming language
Current section
Files
Jump to
Current section
Files
gen/test/gleam@dynamic_test.erl
-module(gleam@dynamic_test).
-compile(no_auto_import).
-export([bit_string_test/0, string_test/0, int_test/0, float_test/0, thunk_test/0, bool_test/0, atom_test/0, typed_list_test/0, option_test/0, field_test/0, element_test/0, tuple2_test/0, typed_tuple2_test/0, tuple3_test/0, typed_tuple3_test/0, tuple4_test/0, typed_tuple4_test/0, tuple5_test/0, typed_tuple5_test/0, tuple6_test/0, typed_tuple6_test/0, map_test/0, list_test/0, result_test/0, typed_result_test/0]).
-spec bit_string_test() -> gleam@should:expectation().
bit_string_test() ->
gleam@should:equal(
gleam@dynamic:bit_string(gleam@dynamic:from(<<""/utf8>>)),
{ok, <<""/utf8>>}
),
gleam@should:equal(
gleam@dynamic:bit_string(gleam@dynamic:from(<<"Hello"/utf8>>)),
{ok, <<"Hello"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:bit_string(gleam@dynamic:from(<<65535:16>>)),
{ok, <<65535:16>>}
),
gleam@should:equal(
gleam@dynamic:bit_string(gleam@dynamic:from(1)),
{error, <<"Expected a bit_string, got an int"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:bit_string(gleam@dynamic:from([])),
{error, <<"Expected a bit_string, got a list"/utf8>>}
).
-spec string_test() -> gleam@should:expectation().
string_test() ->
gleam@should:equal(
gleam@dynamic:string(gleam@dynamic:from(<<""/utf8>>)),
{ok, <<""/utf8>>}
),
gleam@should:equal(
gleam@dynamic:string(gleam@dynamic:from(<<"Hello"/utf8>>)),
{ok, <<"Hello"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:string(gleam@dynamic:from(<<65535:16>>)),
{error, <<"Expected a string, got a bit_string"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:string(gleam@dynamic:from(1)),
{error, <<"Expected a bit_string, got an int"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:string(gleam@dynamic:from([])),
{error, <<"Expected a bit_string, got a list"/utf8>>}
).
-spec int_test() -> gleam@should:expectation().
int_test() ->
gleam@should:equal(gleam@dynamic:int(gleam@dynamic:from(1)), {ok, 1}),
gleam@should:equal(gleam@dynamic:int(gleam@dynamic:from(2)), {ok, 2}),
gleam@should:equal(
gleam@dynamic:int(gleam@dynamic:from(1.0)),
{error, <<"Expected an int, got a float"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:int(gleam@dynamic:from([])),
{error, <<"Expected an int, got a list"/utf8>>}
).
-spec float_test() -> gleam@should:expectation().
float_test() ->
gleam@should:equal(gleam@dynamic:float(gleam@dynamic:from(1.0)), {ok, 1.0}),
gleam@should:equal(gleam@dynamic:float(gleam@dynamic:from(2.2)), {ok, 2.2}),
gleam@should:equal(
gleam@dynamic:float(gleam@dynamic:from(1)),
{error, <<"Expected a float, got an int"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:float(gleam@dynamic:from([])),
{error, <<"Expected a float, got a list"/utf8>>}
).
-spec thunk_test() -> gleam@should:expectation().
thunk_test() ->
gleam@should:be_ok(gleam@dynamic:thunk(gleam@dynamic:from(fun() -> 1 end))),
gleam@should:equal(
gleam@result:map(
gleam@dynamic:thunk(gleam@dynamic:from(fun() -> 1 end)),
fun(F) -> F() end
),
{ok, gleam@dynamic:from(1)}
),
gleam@should:be_error(
gleam@dynamic:thunk(gleam@dynamic:from(fun(X) -> X end))
),
gleam@should:be_error(gleam@dynamic:thunk(gleam@dynamic:from(1))),
gleam@should:be_error(gleam@dynamic:thunk(gleam@dynamic:from([]))).
-spec bool_test() -> gleam@should:expectation().
bool_test() ->
gleam@should:equal(gleam@dynamic:bool(gleam@dynamic:from(true)), {ok, true}),
gleam@should:equal(
gleam@dynamic:bool(gleam@dynamic:from(false)),
{ok, false}
),
gleam@should:equal(
gleam@dynamic:bool(gleam@dynamic:from(1)),
{error, <<"Expected a bool, got an int"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:bool(gleam@dynamic:from([])),
{error, <<"Expected a bool, got a list"/utf8>>}
).
-spec atom_test() -> gleam@should:expectation().
atom_test() ->
gleam@should:equal(
gleam@dynamic:atom(
gleam@dynamic:from(gleam@atom:create_from_string(<<""/utf8>>))
),
{ok, gleam@atom:create_from_string(<<""/utf8>>)}
),
gleam@should:equal(
gleam@dynamic:atom(
gleam@dynamic:from(gleam@atom:create_from_string(<<"ok"/utf8>>))
),
{ok, gleam@atom:create_from_string(<<"ok"/utf8>>)}
),
gleam@should:be_error(gleam@dynamic:atom(gleam@dynamic:from(1))),
gleam@should:be_error(gleam@dynamic:atom(gleam@dynamic:from([]))).
-spec typed_list_test() -> gleam@should:expectation().
typed_list_test() ->
gleam@should:equal(
gleam@dynamic:typed_list(
gleam@dynamic:from([]),
fun gleam@dynamic:string/1
),
{ok, []}
),
gleam@should:equal(
gleam@dynamic:typed_list(
gleam@dynamic:from([]),
fun gleam@dynamic:int/1
),
{ok, []}
),
gleam@should:equal(
gleam@dynamic:typed_list(
gleam@dynamic:from([1, 2, 3]),
fun gleam@dynamic:int/1
),
{ok, [1, 2, 3]}
),
gleam@should:equal(
gleam@dynamic:typed_list(
gleam@dynamic:from([[1], [2], [3]]),
fun(_gleam_capture) ->
gleam@dynamic:typed_list(
_gleam_capture,
fun gleam@dynamic:int/1
)
end
),
{ok, [[1], [2], [3]]}
),
gleam@should:be_error(
gleam@dynamic:typed_list(
gleam@dynamic:from(1),
fun gleam@dynamic:string/1
)
),
gleam@should:be_error(
gleam@dynamic:typed_list(
gleam@dynamic:from(1.0),
fun gleam@dynamic:int/1
)
),
gleam@should:be_error(
gleam@dynamic:typed_list(
gleam@dynamic:from([<<""/utf8>>]),
fun gleam@dynamic:int/1
)
),
gleam@should:be_error(
gleam@dynamic:typed_list(
gleam@dynamic:from(
[gleam@dynamic:from(1),
gleam@dynamic:from(<<"not an int"/utf8>>)]
),
fun gleam@dynamic:int/1
)
).
-spec option_test() -> gleam@should:expectation().
option_test() ->
{ok, Null} = gleam@atom:from_string(<<"null"/utf8>>),
gleam@should:equal(
gleam@dynamic:option(gleam@dynamic:from(1), fun gleam@dynamic:int/1),
{ok, {some, 1}}
),
gleam@should:equal(
gleam@dynamic:option(gleam@dynamic:from(Null), fun gleam@dynamic:int/1),
{ok, none}
),
gleam@should:be_error(
gleam@dynamic:option(gleam@dynamic:from(1), fun gleam@dynamic:string/1)
).
-spec field_test() -> gleam@should:expectation().
field_test() ->
{ok, Ok_atom} = gleam@atom:from_string(<<"ok"/utf8>>),
{ok, Error_atom} = gleam@atom:from_string(<<"error"/utf8>>),
gleam@should:equal(
gleam@dynamic:field(
gleam@dynamic:from(gleam@map:insert(gleam@map:new(), Ok_atom, 1)),
Ok_atom
),
{ok, gleam@dynamic:from(1)}
),
gleam@should:equal(
gleam@dynamic:field(
gleam@dynamic:from(
gleam@map:insert(
gleam@map:insert(gleam@map:new(), Ok_atom, 3),
Error_atom,
1
)
),
Ok_atom
),
{ok, gleam@dynamic:from(3)}
),
gleam@should:be_error(
gleam@dynamic:field(gleam@dynamic:from(gleam@map:new()), Ok_atom)
),
gleam@should:be_error(gleam@dynamic:field(gleam@dynamic:from(1), Ok_atom)),
gleam@should:be_error(gleam@dynamic:field(gleam@dynamic:from([]), [])).
-spec element_test() -> gleam@should:expectation().
element_test() ->
{ok, Ok_atom} = gleam@atom:from_string(<<"ok"/utf8>>),
Ok_one_tuple = {Ok_atom, 1},
gleam@should:equal(
gleam@dynamic:element(gleam@dynamic:from(Ok_one_tuple), 0),
{ok, gleam@dynamic:from(Ok_atom)}
),
gleam@should:equal(
gleam@dynamic:element(gleam@dynamic:from(Ok_one_tuple), 1),
{ok, gleam@dynamic:from(1)}
),
gleam@should:be_error(
gleam@dynamic:element(gleam@dynamic:from(Ok_one_tuple), 2)
),
gleam@should:be_error(
gleam@dynamic:element(gleam@dynamic:from(Ok_one_tuple), -1)
),
gleam@should:be_error(gleam@dynamic:element(gleam@dynamic:from(1), 0)),
gleam@should:be_error(
gleam@dynamic:element(
gleam@dynamic:from(gleam@map:insert(gleam@map:new(), 1, Ok_atom)),
0
)
).
-spec tuple2_test() -> gleam@should:expectation().
tuple2_test() ->
gleam@should:equal(
gleam@dynamic:tuple2(gleam@dynamic:from({1, 2})),
{ok, {gleam@dynamic:from(1), gleam@dynamic:from(2)}}
),
gleam@should:equal(
gleam@dynamic:tuple2(gleam@dynamic:from({1, <<""/utf8>>})),
{ok, {gleam@dynamic:from(1), gleam@dynamic:from(<<""/utf8>>)}}
),
gleam@should:equal(
gleam@dynamic:tuple2(gleam@dynamic:from({1, 2, 3})),
{error, <<"Expected a 2 element tuple, got a 3 element tuple"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:tuple2(gleam@dynamic:from(1)),
{error, <<"Expected a 2 element tuple, got an int"/utf8>>}
).
-spec typed_tuple2_test() -> gleam@should:expectation().
typed_tuple2_test() ->
gleam@should:equal(
gleam@dynamic:typed_tuple2(
gleam@dynamic:from({1, 2}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{ok, {1, 2}}
),
gleam@should:equal(
gleam@dynamic:typed_tuple2(
gleam@dynamic:from({1, <<""/utf8>>}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:string/1
),
{ok, {1, <<""/utf8>>}}
),
gleam@should:equal(
gleam@dynamic:typed_tuple2(
gleam@dynamic:from({1, <<""/utf8>>}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected an int, got a binary"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:typed_tuple2(
gleam@dynamic:from({1, 2, 3}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected a 2 element tuple, got a 3 element tuple"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:typed_tuple2(
gleam@dynamic:from(1),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected a 2 element tuple, got an int"/utf8>>}
).
-spec tuple3_test() -> gleam@should:expectation().
tuple3_test() ->
gleam@should:equal(
gleam@dynamic:tuple3(gleam@dynamic:from({1, 2, 3})),
{ok,
{gleam@dynamic:from(1), gleam@dynamic:from(2), gleam@dynamic:from(3)}}
),
gleam@should:equal(
gleam@dynamic:tuple3(gleam@dynamic:from({1, <<""/utf8>>, 3.0})),
{ok,
{gleam@dynamic:from(1),
gleam@dynamic:from(<<""/utf8>>),
gleam@dynamic:from(3.0)}}
),
gleam@should:equal(
gleam@dynamic:tuple3(gleam@dynamic:from({1, 2})),
{error, <<"Expected a 3 element tuple, got a 2 element tuple"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:tuple3(gleam@dynamic:from(1)),
{error, <<"Expected a 3 element tuple, got an int"/utf8>>}
).
-spec typed_tuple3_test() -> gleam@should:expectation().
typed_tuple3_test() ->
gleam@should:equal(
gleam@dynamic:typed_tuple3(
gleam@dynamic:from({1, 2, 3}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{ok, {1, 2, 3}}
),
gleam@should:equal(
gleam@dynamic:typed_tuple3(
gleam@dynamic:from({1, <<""/utf8>>, 3.0}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:string/1,
fun gleam@dynamic:float/1
),
{ok, {1, <<""/utf8>>, 3.0}}
),
gleam@should:equal(
gleam@dynamic:typed_tuple3(
gleam@dynamic:from({1, 2, <<""/utf8>>}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected an int, got a binary"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:typed_tuple3(
gleam@dynamic:from({1, 2}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected a 3 element tuple, got a 2 element tuple"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:typed_tuple3(
gleam@dynamic:from(1),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected a 3 element tuple, got an int"/utf8>>}
).
-spec tuple4_test() -> gleam@should:expectation().
tuple4_test() ->
gleam@should:equal(
gleam@dynamic:tuple4(gleam@dynamic:from({1, 2, 3, 4})),
{ok,
{gleam@dynamic:from(1),
gleam@dynamic:from(2),
gleam@dynamic:from(3),
gleam@dynamic:from(4)}}
),
gleam@should:equal(
gleam@dynamic:tuple4(gleam@dynamic:from({1, <<""/utf8>>, 3.0, 4})),
{ok,
{gleam@dynamic:from(1),
gleam@dynamic:from(<<""/utf8>>),
gleam@dynamic:from(3.0),
gleam@dynamic:from(4)}}
),
gleam@should:equal(
gleam@dynamic:tuple4(gleam@dynamic:from({1, 2})),
{error, <<"Expected a 4 element tuple, got a 2 element tuple"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:tuple4(gleam@dynamic:from(1)),
{error, <<"Expected a 4 element tuple, got an int"/utf8>>}
).
-spec typed_tuple4_test() -> gleam@should:expectation().
typed_tuple4_test() ->
gleam@should:equal(
gleam@dynamic:typed_tuple4(
gleam@dynamic:from({1, 2, 3, 4}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{ok, {1, 2, 3, 4}}
),
gleam@should:equal(
gleam@dynamic:typed_tuple4(
gleam@dynamic:from({1, <<""/utf8>>, 3.0, 4}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:string/1,
fun gleam@dynamic:float/1,
fun gleam@dynamic:int/1
),
{ok, {1, <<""/utf8>>, 3.0, 4}}
),
gleam@should:equal(
gleam@dynamic:typed_tuple4(
gleam@dynamic:from({1, 2, 3, <<""/utf8>>}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected an int, got a binary"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:typed_tuple4(
gleam@dynamic:from({1, 2}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected a 4 element tuple, got a 2 element tuple"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:typed_tuple4(
gleam@dynamic:from(1),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected a 4 element tuple, got an int"/utf8>>}
).
-spec tuple5_test() -> gleam@should:expectation().
tuple5_test() ->
gleam@should:equal(
gleam@dynamic:tuple5(gleam@dynamic:from({1, 2, 3, 4, 5})),
{ok,
{gleam@dynamic:from(1),
gleam@dynamic:from(2),
gleam@dynamic:from(3),
gleam@dynamic:from(4),
gleam@dynamic:from(5)}}
),
gleam@should:equal(
gleam@dynamic:tuple5(gleam@dynamic:from({1, <<""/utf8>>, 3.0, 4, 5})),
{ok,
{gleam@dynamic:from(1),
gleam@dynamic:from(<<""/utf8>>),
gleam@dynamic:from(3.0),
gleam@dynamic:from(4),
gleam@dynamic:from(5)}}
),
gleam@should:equal(
gleam@dynamic:tuple5(gleam@dynamic:from({1, 2})),
{error, <<"Expected a 5 element tuple, got a 2 element tuple"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:tuple5(gleam@dynamic:from(1)),
{error, <<"Expected a 5 element tuple, got an int"/utf8>>}
).
-spec typed_tuple5_test() -> gleam@should:expectation().
typed_tuple5_test() ->
gleam@should:equal(
gleam@dynamic:typed_tuple5(
gleam@dynamic:from({1, 2, 3, 4, 5}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{ok, {1, 2, 3, 4, 5}}
),
gleam@should:equal(
gleam@dynamic:typed_tuple5(
gleam@dynamic:from({1, <<""/utf8>>, 3.0, 4, 5}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:string/1,
fun gleam@dynamic:float/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{ok, {1, <<""/utf8>>, 3.0, 4, 5}}
),
gleam@should:equal(
gleam@dynamic:typed_tuple5(
gleam@dynamic:from({1, 2, 3, 4, <<""/utf8>>}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected an int, got a binary"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:typed_tuple5(
gleam@dynamic:from({1, 2}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected a 5 element tuple, got a 2 element tuple"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:typed_tuple5(
gleam@dynamic:from(1),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected a 5 element tuple, got an int"/utf8>>}
).
-spec tuple6_test() -> gleam@should:expectation().
tuple6_test() ->
gleam@should:equal(
gleam@dynamic:tuple6(gleam@dynamic:from({1, 2, 3, 4, 5, 6})),
{ok,
{gleam@dynamic:from(1),
gleam@dynamic:from(2),
gleam@dynamic:from(3),
gleam@dynamic:from(4),
gleam@dynamic:from(5),
gleam@dynamic:from(6)}}
),
gleam@should:equal(
gleam@dynamic:tuple6(gleam@dynamic:from({1, <<""/utf8>>, 3.0, 4, 5, 6})),
{ok,
{gleam@dynamic:from(1),
gleam@dynamic:from(<<""/utf8>>),
gleam@dynamic:from(3.0),
gleam@dynamic:from(4),
gleam@dynamic:from(5),
gleam@dynamic:from(6)}}
),
gleam@should:equal(
gleam@dynamic:tuple6(gleam@dynamic:from({1, 2})),
{error, <<"Expected a 6 element tuple, got a 2 element tuple"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:tuple6(gleam@dynamic:from(1)),
{error, <<"Expected a 6 element tuple, got an int"/utf8>>}
).
-spec typed_tuple6_test() -> gleam@should:expectation().
typed_tuple6_test() ->
gleam@should:equal(
gleam@dynamic:typed_tuple6(
gleam@dynamic:from({1, 2, 3, 4, 5, 6}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{ok, {1, 2, 3, 4, 5, 6}}
),
gleam@should:equal(
gleam@dynamic:typed_tuple6(
gleam@dynamic:from({1, <<""/utf8>>, 3.0, 4, 5, 6}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:string/1,
fun gleam@dynamic:float/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{ok, {1, <<""/utf8>>, 3.0, 4, 5, 6}}
),
gleam@should:equal(
gleam@dynamic:typed_tuple6(
gleam@dynamic:from({1, 2, 3, 4, 5, <<""/utf8>>}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected an int, got a binary"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:typed_tuple6(
gleam@dynamic:from({1, 2}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected a 6 element tuple, got a 2 element tuple"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:typed_tuple6(
gleam@dynamic:from(1),
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1,
fun gleam@dynamic:int/1
),
{error, <<"Expected a 6 element tuple, got an int"/utf8>>}
).
-spec map_test() -> gleam@should:expectation().
map_test() ->
gleam@should:equal(
gleam@dynamic:map(gleam@dynamic:from(gleam@map:new())),
{ok, gleam@map:new()}
),
gleam@should:equal(
gleam@dynamic:map(gleam@dynamic:from(1)),
{error, <<"Expected a map, got an int"/utf8>>}
).
-spec list_test() -> gleam@should:expectation().
list_test() ->
gleam@should:equal(gleam@dynamic:list(gleam@dynamic:from([])), {ok, []}),
gleam@should:equal(
gleam@dynamic:list(gleam@dynamic:from([1, 2])),
{ok, [gleam@dynamic:from(1), gleam@dynamic:from(2)]}
),
gleam@should:equal(
gleam@dynamic:list(
gleam@dynamic:from([gleam@dynamic:from(1), gleam@dynamic:from(2.0)])
),
{ok, [gleam@dynamic:from(1), gleam@dynamic:from(2.0)]}
),
gleam@should:equal(
gleam@dynamic:list(gleam@dynamic:from(1)),
{error, <<"Expected a list, got an int"/utf8>>}
).
-spec result_test() -> gleam@should:expectation().
result_test() ->
gleam@should:equal(
gleam@dynamic:result(gleam@dynamic:from({ok, 1})),
{ok, {ok, gleam@dynamic:from(1)}}
),
gleam@should:equal(
gleam@dynamic:result(gleam@dynamic:from({error, <<"error"/utf8>>})),
{ok, {error, gleam@dynamic:from(<<"error"/utf8>>)}}
),
gleam@should:equal(
gleam@dynamic:result(gleam@dynamic:from(1)),
{error, <<"Expected a 2 element tuple, got an int"/utf8>>}
),
Tag = gleam@atom:create_from_string(<<"bad"/utf8>>),
gleam@should:equal(
gleam@dynamic:result(gleam@dynamic:from({Tag, <<"value"/utf8>>})),
{error, <<"Expected a tag of \"ok\" or \"error\", got \"bad\""/utf8>>}
).
-spec typed_result_test() -> gleam@should:expectation().
typed_result_test() ->
gleam@should:equal(
gleam@dynamic:typed_result(
gleam@dynamic:from({ok, 1}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:string/1
),
{ok, {ok, 1}}
),
gleam@should:equal(
gleam@dynamic:typed_result(
gleam@dynamic:from({error, <<"error"/utf8>>}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:string/1
),
{ok, {error, <<"error"/utf8>>}}
),
gleam@should:equal(
gleam@dynamic:typed_result(
gleam@dynamic:from({ok, <<"1"/utf8>>}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:string/1
),
{error, <<"Expected an int, got a binary"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:typed_result(
gleam@dynamic:from({error, 1}),
fun gleam@dynamic:int/1,
fun gleam@dynamic:string/1
),
{error, <<"Expected a bit_string, got an int"/utf8>>}
),
gleam@should:equal(
gleam@dynamic:typed_result(
gleam@dynamic:from(1),
fun gleam@dynamic:int/1,
fun gleam@dynamic:string/1
),
{error, <<"Expected a 2 element tuple, got an int"/utf8>>}
).