-module(gleam@dynamic_test). -compile(no_auto_import). -export([bit_string_test/0, bit_string_erlang_test/0, string_test/0, string_non_utf8_test/0, int_test/0, float_test/0, float_on_js_is_also_int_test/0, bool_test/0, typed_list_test/0, optional_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() -> nil. bit_string_test() -> _pipe = <<>>, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:bit_string(_pipe@1), gleam@should:equal(_pipe@2, {ok, <<>>}), _pipe@3 = <<"Hello"/utf8>>, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:bit_string(_pipe@4), gleam@should:equal(_pipe@5, {ok, <<"Hello"/utf8>>}), _pipe@6 = 1, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:bit_string(_pipe@7), gleam@should:equal( _pipe@8, {error, {decode_error, <<"BitString"/utf8>>, <<"Int"/utf8>>}} ), _pipe@9 = [], _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:bit_string(_pipe@10), gleam@should:equal( _pipe@11, {error, {decode_error, <<"BitString"/utf8>>, <<"List"/utf8>>}} ). -spec bit_string_erlang_test() -> nil. bit_string_erlang_test() -> _pipe = <<65535:16>>, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:bit_string(_pipe@1), gleam@should:equal(_pipe@2, {ok, <<65535:16>>}). -spec string_test() -> nil. string_test() -> _pipe = <<""/utf8>>, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:string(_pipe@1), gleam@should:equal(_pipe@2, {ok, <<""/utf8>>}), _pipe@3 = <<"Hello"/utf8>>, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:string(_pipe@4), gleam@should:equal(_pipe@5, {ok, <<"Hello"/utf8>>}), _pipe@6 = 1, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:string(_pipe@7), gleam@should:equal( _pipe@8, {error, {decode_error, <<"String"/utf8>>, <<"Int"/utf8>>}} ), _pipe@9 = [], _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:string(_pipe@10), gleam@should:equal( _pipe@11, {error, {decode_error, <<"String"/utf8>>, <<"List"/utf8>>}} ). -spec string_non_utf8_test() -> nil. string_non_utf8_test() -> _pipe = <<65535:16>>, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:string(_pipe@1), gleam@should:equal( _pipe@2, {error, {decode_error, <<"String"/utf8>>, <<"BitString"/utf8>>}} ). -spec int_test() -> nil. int_test() -> _pipe = 1, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:int(_pipe@1), gleam@should:equal(_pipe@2, {ok, 1}), _pipe@3 = 2, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:int(_pipe@4), gleam@should:equal(_pipe@5, {ok, 2}), _pipe@6 = [], _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:int(_pipe@7), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Int"/utf8>>, <<"List"/utf8>>}} ). -spec float_test() -> nil. float_test() -> _pipe = 1.0, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:float(_pipe@1), gleam@should:equal(_pipe@2, {ok, 1.0}), _pipe@3 = 2.2, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:float(_pipe@4), gleam@should:equal(_pipe@5, {ok, 2.2}), _pipe@6 = [], _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:float(_pipe@7), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Float"/utf8>>, <<"List"/utf8>>}} ). -spec float_on_js_is_also_int_test() -> nil. float_on_js_is_also_int_test() -> _pipe = 1, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:float(_pipe@1), gleam@should:equal( _pipe@2, {error, {decode_error, <<"Float"/utf8>>, <<"Int"/utf8>>}} ), _pipe@3 = 1.0, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:int(_pipe@4), gleam@should:equal( _pipe@5, {error, {decode_error, <<"Int"/utf8>>, <<"Float"/utf8>>}} ). -spec bool_test() -> nil. bool_test() -> _pipe = true, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:bool(_pipe@1), gleam@should:equal(_pipe@2, {ok, true}), _pipe@3 = false, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:bool(_pipe@4), gleam@should:equal(_pipe@5, {ok, false}), _pipe@6 = 1, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:bool(_pipe@7), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Bool"/utf8>>, <<"Int"/utf8>>}} ), _pipe@9 = 1.5, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:bool(_pipe@10), gleam@should:equal( _pipe@11, {error, {decode_error, <<"Bool"/utf8>>, <<"Float"/utf8>>}} ), _pipe@12 = [], _pipe@13 = gleam@dynamic:from(_pipe@12), _pipe@14 = gleam@dynamic:bool(_pipe@13), gleam@should:equal( _pipe@14, {error, {decode_error, <<"Bool"/utf8>>, <<"List"/utf8>>}} ). -spec typed_list_test() -> nil. typed_list_test() -> _pipe = [], _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:typed_list(_pipe@1, fun gleam@dynamic:string/1), gleam@should:equal(_pipe@2, {ok, []}), _pipe@3 = [], _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:typed_list(_pipe@4, fun gleam@dynamic:int/1), gleam@should:equal(_pipe@5, {ok, []}), _pipe@6 = [1, 2, 3], _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:typed_list(_pipe@7, fun gleam@dynamic:int/1), gleam@should:equal(_pipe@8, {ok, [1, 2, 3]}), _pipe@9 = [[1], [2], [3]], _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:typed_list( _pipe@10, fun(_capture) -> gleam@dynamic:typed_list(_capture, fun gleam@dynamic:int/1) end ), gleam@should:equal(_pipe@11, {ok, [[1], [2], [3]]}), _pipe@12 = 1, _pipe@13 = gleam@dynamic:from(_pipe@12), _pipe@14 = gleam@dynamic:typed_list(_pipe@13, fun gleam@dynamic:string/1), gleam@should:be_error(_pipe@14), _pipe@15 = 1.0, _pipe@16 = gleam@dynamic:from(_pipe@15), _pipe@17 = gleam@dynamic:typed_list(_pipe@16, fun gleam@dynamic:int/1), gleam@should:be_error(_pipe@17), _pipe@18 = [<<""/utf8>>], _pipe@19 = gleam@dynamic:from(_pipe@18), _pipe@20 = gleam@dynamic:typed_list(_pipe@19, fun gleam@dynamic:int/1), gleam@should:be_error(_pipe@20), _pipe@21 = [gleam@dynamic:from(1), gleam@dynamic:from(<<"not an int"/utf8>>)], _pipe@22 = gleam@dynamic:from(_pipe@21), _pipe@23 = gleam@dynamic:typed_list(_pipe@22, fun gleam@dynamic:int/1), gleam@should:be_error(_pipe@23). -spec optional_test() -> nil. optional_test() -> _pipe = 1, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:optional(_pipe@1, fun gleam@dynamic:int/1), gleam@should:equal(_pipe@2, {ok, {some, 1}}), _pipe@3 = none, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:optional(_pipe@4, fun gleam@dynamic:int/1), gleam@should:equal(_pipe@5, {ok, none}), _pipe@6 = nil, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:optional(_pipe@7, fun gleam@dynamic:int/1), gleam@should:equal(_pipe@8, {ok, none}), _pipe@9 = 1, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:optional(_pipe@10, fun gleam@dynamic:string/1), gleam@should:be_error(_pipe@11). -spec field_test() -> nil. field_test() -> _pipe = gleam@map:new(), _pipe@1 = gleam@map:insert(_pipe, <<"ok"/utf8>>, 1), _pipe@2 = gleam@dynamic:from(_pipe@1), _pipe@3 = gleam@dynamic:field(_pipe@2, <<"ok"/utf8>>), gleam@should:equal(_pipe@3, {ok, gleam@dynamic:from(1)}), _pipe@4 = gleam@map:new(), _pipe@5 = gleam@map:insert(_pipe@4, <<"ok"/utf8>>, 3), _pipe@6 = gleam@map:insert(_pipe@5, <<"error"/utf8>>, 1), _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:field(_pipe@7, <<"ok"/utf8>>), gleam@should:equal(_pipe@8, {ok, gleam@dynamic:from(3)}), _pipe@9 = gleam@map:new(), _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:field(_pipe@10, <<"ok"/utf8>>), gleam@should:be_error(_pipe@11), _pipe@12 = 1, _pipe@13 = gleam@dynamic:from(_pipe@12), _pipe@14 = gleam@dynamic:field(_pipe@13, <<"ok"/utf8>>), gleam@should:be_error(_pipe@14), _pipe@15 = [], _pipe@16 = gleam@dynamic:from(_pipe@15), _pipe@17 = gleam@dynamic:field(_pipe@16, []), gleam@should:be_error(_pipe@17). -spec element_test() -> nil. element_test() -> Ok_one_tuple = {<<"ok"/utf8>>, 1}, _pipe = Ok_one_tuple, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:element(_pipe@1, 0), gleam@should:equal(_pipe@2, {ok, gleam@dynamic:from(<<"ok"/utf8>>)}), _pipe@3 = Ok_one_tuple, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:element(_pipe@4, 1), gleam@should:equal(_pipe@5, {ok, gleam@dynamic:from(1)}), _pipe@6 = Ok_one_tuple, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:element(_pipe@7, 2), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Tuple of at least 3 elements"/utf8>>, <<"Tuple of 2 elements"/utf8>>}} ), _pipe@9 = Ok_one_tuple, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:element(_pipe@10, -1), gleam@should:equal(_pipe@11, {ok, gleam@dynamic:from(1)}), _pipe@12 = Ok_one_tuple, _pipe@13 = gleam@dynamic:from(_pipe@12), _pipe@14 = gleam@dynamic:element(_pipe@13, -3), gleam@should:equal( _pipe@14, {error, {decode_error, <<"Tuple of at least 3 elements"/utf8>>, <<"Tuple of 2 elements"/utf8>>}} ), _pipe@15 = 1, _pipe@16 = gleam@dynamic:from(_pipe@15), _pipe@17 = gleam@dynamic:element(_pipe@16, -3), gleam@should:equal( _pipe@17, {error, {decode_error, <<"Tuple"/utf8>>, <<"Int"/utf8>>}} ), _pipe@18 = 1, _pipe@19 = gleam@dynamic:from(_pipe@18), _pipe@20 = gleam@dynamic:element(_pipe@19, 0), gleam@should:equal( _pipe@20, {error, {decode_error, <<"Tuple"/utf8>>, <<"Int"/utf8>>}} ), _pipe@21 = gleam@map:new(), _pipe@22 = gleam@map:insert(_pipe@21, 1, <<"ok"/utf8>>), _pipe@23 = gleam@dynamic:from(_pipe@22), _pipe@24 = gleam@dynamic:element(_pipe@23, 0), gleam@should:equal( _pipe@24, {error, {decode_error, <<"Tuple"/utf8>>, <<"Map"/utf8>>}} ). -spec tuple2_test() -> nil. tuple2_test() -> _pipe = {1, 2}, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:tuple2(_pipe@1), gleam@should:equal( _pipe@2, {ok, {gleam@dynamic:from(1), gleam@dynamic:from(2)}} ), _pipe@3 = {1, <<""/utf8>>}, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:tuple2(_pipe@4), gleam@should:equal( _pipe@5, {ok, {gleam@dynamic:from(1), gleam@dynamic:from(<<""/utf8>>)}} ), _pipe@6 = {1, 2, 3}, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:tuple2(_pipe@7), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Tuple of 2 elements"/utf8>>, <<"Tuple of 3 elements"/utf8>>}} ), _pipe@9 = 1, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:tuple2(_pipe@10), gleam@should:equal( _pipe@11, {error, {decode_error, <<"Tuple of 2 elements"/utf8>>, <<"Int"/utf8>>}} ). -spec typed_tuple2_test() -> nil. typed_tuple2_test() -> _pipe = {1, 2}, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:typed_tuple2( _pipe@1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1 ), gleam@should:equal(_pipe@2, {ok, {1, 2}}), _pipe@3 = {1, <<""/utf8>>}, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:typed_tuple2( _pipe@4, fun gleam@dynamic:int/1, fun gleam@dynamic:string/1 ), gleam@should:equal(_pipe@5, {ok, {1, <<""/utf8>>}}), _pipe@6 = {1, <<""/utf8>>}, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:typed_tuple2( _pipe@7, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1 ), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Int"/utf8>>, <<"String"/utf8>>}} ), _pipe@9 = {1, 2, 3}, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:typed_tuple2( _pipe@10, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1 ), gleam@should:equal( _pipe@11, {error, {decode_error, <<"Tuple of 2 elements"/utf8>>, <<"Tuple of 3 elements"/utf8>>}} ), _pipe@12 = 1, _pipe@13 = gleam@dynamic:from(_pipe@12), _pipe@14 = gleam@dynamic:typed_tuple2( _pipe@13, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1 ), gleam@should:equal( _pipe@14, {error, {decode_error, <<"Tuple of 2 elements"/utf8>>, <<"Int"/utf8>>}} ). -spec tuple3_test() -> nil. tuple3_test() -> _pipe = {1, 2, 3}, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:tuple3(_pipe@1), gleam@should:equal( _pipe@2, {ok, {gleam@dynamic:from(1), gleam@dynamic:from(2), gleam@dynamic:from(3)}} ), _pipe@3 = {1, <<""/utf8>>, 3.0}, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:tuple3(_pipe@4), gleam@should:equal( _pipe@5, {ok, {gleam@dynamic:from(1), gleam@dynamic:from(<<""/utf8>>), gleam@dynamic:from(3.0)}} ), _pipe@6 = {1, 2}, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:tuple3(_pipe@7), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Tuple of 3 elements"/utf8>>, <<"Tuple of 2 elements"/utf8>>}} ), _pipe@9 = 1, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:tuple3(_pipe@10), gleam@should:equal( _pipe@11, {error, {decode_error, <<"Tuple of 3 elements"/utf8>>, <<"Int"/utf8>>}} ). -spec typed_tuple3_test() -> nil. typed_tuple3_test() -> _pipe = {1, 2, 3}, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:typed_tuple3( _pipe@1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1 ), gleam@should:equal(_pipe@2, {ok, {1, 2, 3}}), _pipe@3 = {1, <<""/utf8>>, 3.0}, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:typed_tuple3( _pipe@4, fun gleam@dynamic:int/1, fun gleam@dynamic:string/1, fun gleam@dynamic:float/1 ), gleam@should:equal(_pipe@5, {ok, {1, <<""/utf8>>, 3.0}}), _pipe@6 = {1, 2, <<""/utf8>>}, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:typed_tuple3( _pipe@7, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1 ), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Int"/utf8>>, <<"String"/utf8>>}} ), _pipe@9 = {1, 2}, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:typed_tuple3( _pipe@10, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1 ), gleam@should:equal( _pipe@11, {error, {decode_error, <<"Tuple of 3 elements"/utf8>>, <<"Tuple of 2 elements"/utf8>>}} ), _pipe@12 = 1, _pipe@13 = gleam@dynamic:from(_pipe@12), _pipe@14 = gleam@dynamic:typed_tuple3( _pipe@13, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1 ), gleam@should:equal( _pipe@14, {error, {decode_error, <<"Tuple of 3 elements"/utf8>>, <<"Int"/utf8>>}} ). -spec tuple4_test() -> nil. tuple4_test() -> _pipe = {1, 2, 3, 4}, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:tuple4(_pipe@1), gleam@should:equal( _pipe@2, {ok, {gleam@dynamic:from(1), gleam@dynamic:from(2), gleam@dynamic:from(3), gleam@dynamic:from(4)}} ), _pipe@3 = {1, <<""/utf8>>, 3.0, 4}, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:tuple4(_pipe@4), gleam@should:equal( _pipe@5, {ok, {gleam@dynamic:from(1), gleam@dynamic:from(<<""/utf8>>), gleam@dynamic:from(3.0), gleam@dynamic:from(4)}} ), _pipe@6 = {1, 2}, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:tuple4(_pipe@7), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Tuple of 4 elements"/utf8>>, <<"Tuple of 2 elements"/utf8>>}} ), _pipe@9 = 1, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:tuple4(_pipe@10), gleam@should:equal( _pipe@11, {error, {decode_error, <<"Tuple of 4 elements"/utf8>>, <<"Int"/utf8>>}} ). -spec typed_tuple4_test() -> nil. typed_tuple4_test() -> _pipe = {1, 2, 3, 4}, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:typed_tuple4( _pipe@1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1 ), gleam@should:equal(_pipe@2, {ok, {1, 2, 3, 4}}), _pipe@3 = {1, <<""/utf8>>, 3.0, 4}, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:typed_tuple4( _pipe@4, fun gleam@dynamic:int/1, fun gleam@dynamic:string/1, fun gleam@dynamic:float/1, fun gleam@dynamic:int/1 ), gleam@should:equal(_pipe@5, {ok, {1, <<""/utf8>>, 3.0, 4}}), _pipe@6 = {1, 2, 3, <<""/utf8>>}, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:typed_tuple4( _pipe@7, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1 ), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Int"/utf8>>, <<"String"/utf8>>}} ), _pipe@9 = {1, 2}, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:typed_tuple4( _pipe@10, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1 ), gleam@should:equal( _pipe@11, {error, {decode_error, <<"Tuple of 4 elements"/utf8>>, <<"Tuple of 2 elements"/utf8>>}} ), _pipe@12 = 1, _pipe@13 = gleam@dynamic:from(_pipe@12), _pipe@14 = gleam@dynamic:typed_tuple4( _pipe@13, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1, fun gleam@dynamic:int/1 ), gleam@should:equal( _pipe@14, {error, {decode_error, <<"Tuple of 4 elements"/utf8>>, <<"Int"/utf8>>}} ). -spec tuple5_test() -> nil. tuple5_test() -> _pipe = {1, 2, 3, 4, 5}, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:tuple5(_pipe@1), gleam@should:equal( _pipe@2, {ok, {gleam@dynamic:from(1), gleam@dynamic:from(2), gleam@dynamic:from(3), gleam@dynamic:from(4), gleam@dynamic:from(5)}} ), _pipe@3 = {1, <<""/utf8>>, 3.0, 4, 5}, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:tuple5(_pipe@4), gleam@should:equal( _pipe@5, {ok, {gleam@dynamic:from(1), gleam@dynamic:from(<<""/utf8>>), gleam@dynamic:from(3.0), gleam@dynamic:from(4), gleam@dynamic:from(5)}} ), _pipe@6 = {1, 2}, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:tuple5(_pipe@7), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Tuple of 5 elements"/utf8>>, <<"Tuple of 2 elements"/utf8>>}} ), _pipe@9 = 1, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:tuple5(_pipe@10), gleam@should:equal( _pipe@11, {error, {decode_error, <<"Tuple of 5 elements"/utf8>>, <<"Int"/utf8>>}} ). -spec typed_tuple5_test() -> nil. typed_tuple5_test() -> _pipe = {1, 2, 3, 4, 5}, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:typed_tuple5( _pipe@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 ), gleam@should:equal(_pipe@2, {ok, {1, 2, 3, 4, 5}}), _pipe@3 = {1, <<""/utf8>>, 3.0, 4, 5}, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:typed_tuple5( _pipe@4, 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 ), gleam@should:equal(_pipe@5, {ok, {1, <<""/utf8>>, 3.0, 4, 5}}), _pipe@6 = {1, 2, 3, 4, <<""/utf8>>}, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:typed_tuple5( _pipe@7, 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 ), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Int"/utf8>>, <<"String"/utf8>>}} ), _pipe@9 = {1, 2}, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:typed_tuple5( _pipe@10, 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 ), gleam@should:equal( _pipe@11, {error, {decode_error, <<"Tuple of 5 elements"/utf8>>, <<"Tuple of 2 elements"/utf8>>}} ), _pipe@12 = 1, _pipe@13 = gleam@dynamic:from(_pipe@12), _pipe@14 = gleam@dynamic:typed_tuple5( _pipe@13, 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 ), gleam@should:equal( _pipe@14, {error, {decode_error, <<"Tuple of 5 elements"/utf8>>, <<"Int"/utf8>>}} ). -spec tuple6_test() -> nil. tuple6_test() -> _pipe = {1, 2, 3, 4, 5, 6}, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:tuple6(_pipe@1), gleam@should:equal( _pipe@2, {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)}} ), _pipe@3 = {1, <<""/utf8>>, 3.0, 4, 5, 6}, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:tuple6(_pipe@4), gleam@should:equal( _pipe@5, {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)}} ), _pipe@6 = {1, 2}, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:tuple6(_pipe@7), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Tuple of 6 elements"/utf8>>, <<"Tuple of 2 elements"/utf8>>}} ), _pipe@9 = 1, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:tuple6(_pipe@10), gleam@should:equal( _pipe@11, {error, {decode_error, <<"Tuple of 6 elements"/utf8>>, <<"Int"/utf8>>}} ). -spec typed_tuple6_test() -> nil. typed_tuple6_test() -> _pipe = {1, 2, 3, 4, 5, 6}, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:typed_tuple6( _pipe@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 ), gleam@should:equal(_pipe@2, {ok, {1, 2, 3, 4, 5, 6}}), _pipe@3 = {1, <<""/utf8>>, 3.0, 4, 5, 6}, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:typed_tuple6( _pipe@4, 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 ), gleam@should:equal(_pipe@5, {ok, {1, <<""/utf8>>, 3.0, 4, 5, 6}}), _pipe@6 = {1, 2, 3, 4, 5, <<""/utf8>>}, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:typed_tuple6( _pipe@7, 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 ), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Int"/utf8>>, <<"String"/utf8>>}} ), _pipe@9 = {1, 2}, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:typed_tuple6( _pipe@10, 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 ), gleam@should:equal( _pipe@11, {error, {decode_error, <<"Tuple of 6 elements"/utf8>>, <<"Tuple of 2 elements"/utf8>>}} ), _pipe@12 = 1, _pipe@13 = gleam@dynamic:from(_pipe@12), _pipe@14 = gleam@dynamic:typed_tuple6( _pipe@13, 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 ), gleam@should:equal( _pipe@14, {error, {decode_error, <<"Tuple of 6 elements"/utf8>>, <<"Int"/utf8>>}} ). -spec map_test() -> nil. map_test() -> _pipe = gleam@map:new(), _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:map(_pipe@1), gleam@should:equal(_pipe@2, {ok, gleam@map:new()}), _pipe@3 = 1, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:map(_pipe@4), gleam@should:equal( _pipe@5, {error, {decode_error, <<"Map"/utf8>>, <<"Int"/utf8>>}} ). -spec list_test() -> nil. list_test() -> _pipe = [], _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:list(_pipe@1), gleam@should:equal(_pipe@2, {ok, []}), _pipe@3 = [1, 2], _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:list(_pipe@4), gleam@should:equal( _pipe@5, {ok, [gleam@dynamic:from(1), gleam@dynamic:from(2)]} ), _pipe@6 = [gleam@dynamic:from(1), gleam@dynamic:from(2.0)], _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:list(_pipe@7), gleam@should:equal( _pipe@8, {ok, [gleam@dynamic:from(1), gleam@dynamic:from(2.0)]} ), _pipe@9 = 1, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:list(_pipe@10), gleam@should:equal( _pipe@11, {error, {decode_error, <<"List"/utf8>>, <<"Int"/utf8>>}} ). -spec result_test() -> nil. result_test() -> _pipe = {ok, 1}, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:result(_pipe@1), gleam@should:equal(_pipe@2, {ok, {ok, gleam@dynamic:from(1)}}), _pipe@3 = {error, <<"error"/utf8>>}, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:result(_pipe@4), gleam@should:equal( _pipe@5, {ok, {error, gleam@dynamic:from(<<"error"/utf8>>)}} ), _pipe@6 = 1, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:result(_pipe@7), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Result"/utf8>>, <<"Int"/utf8>>}} ), _pipe@9 = {<<"bad"/utf8>>, <<"value"/utf8>>}, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:result(_pipe@10), gleam@should:equal( _pipe@11, {error, {decode_error, <<"Result"/utf8>>, <<"Tuple of 2 elements"/utf8>>}} ). -spec typed_result_test() -> nil. typed_result_test() -> _pipe = {ok, 1}, _pipe@1 = gleam@dynamic:from(_pipe), _pipe@2 = gleam@dynamic:typed_result( _pipe@1, fun gleam@dynamic:int/1, fun gleam@dynamic:string/1 ), gleam@should:equal(_pipe@2, {ok, {ok, 1}}), _pipe@3 = {error, <<"error"/utf8>>}, _pipe@4 = gleam@dynamic:from(_pipe@3), _pipe@5 = gleam@dynamic:typed_result( _pipe@4, fun gleam@dynamic:int/1, fun gleam@dynamic:string/1 ), gleam@should:equal(_pipe@5, {ok, {error, <<"error"/utf8>>}}), _pipe@6 = {ok, <<"1"/utf8>>}, _pipe@7 = gleam@dynamic:from(_pipe@6), _pipe@8 = gleam@dynamic:typed_result( _pipe@7, fun gleam@dynamic:int/1, fun gleam@dynamic:string/1 ), gleam@should:equal( _pipe@8, {error, {decode_error, <<"Int"/utf8>>, <<"String"/utf8>>}} ), _pipe@9 = {error, 1}, _pipe@10 = gleam@dynamic:from(_pipe@9), _pipe@11 = gleam@dynamic:typed_result( _pipe@10, fun gleam@dynamic:int/1, fun gleam@dynamic:string/1 ), gleam@should:equal( _pipe@11, {error, {decode_error, <<"String"/utf8>>, <<"Int"/utf8>>}} ), _pipe@12 = 1, _pipe@13 = gleam@dynamic:from(_pipe@12), _pipe@14 = gleam@dynamic:typed_result( _pipe@13, fun gleam@dynamic:int/1, fun gleam@dynamic:string/1 ), gleam@should:equal( _pipe@14, {error, {decode_error, <<"Result"/utf8>>, <<"Int"/utf8>>}} ).