1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
-module(any).
-compile(no_auto_import).
-include_lib("eunit/include/eunit.hrl").
-export([from/1, unsafeCoerce/1, string/1, int/1, float/1, bool/1, thunk/1, tuple/1]).
from(A) ->
gleam__stdlib:identity(A).
unsafeCoerce(A) ->
gleam__stdlib:identity(A).
string(A) ->
gleam__stdlib:decode_string(A).
-ifdef(TEST).
string_test() ->
expect:equal(string(from(<<"">>)), {ok, <<"">>}),
expect:equal(string(from(<<"Hello">>)), {ok, <<"Hello">>}),
expect:equal(string(from(1)), {error, <<"Expected a String, got `1`">>}),
expect:equal(string(from([])), {error, <<"Expected a String, got `[]`">>}).
-endif.
int(A) ->
gleam__stdlib:decode_int(A).
-ifdef(TEST).
int_test() ->
expect:equal(int(from(1)), {ok, 1}),
expect:equal(int(from(2)), {ok, 2}),
expect:equal(int(from(1.0)), {error, <<"Expected an Int, got `1.0`">>}),
expect:equal(int(from([])), {error, <<"Expected an Int, got `[]`">>}).
-endif.
float(A) ->
gleam__stdlib:decode_float(A).
-ifdef(TEST).
float_test() ->
expect:equal(float(from(1.0)), {ok, 1.0}),
expect:equal(float(from(2.2)), {ok, 2.2}),
expect:equal(float(from(1)), {error, <<"Expected a Float, got `1`">>}),
expect:equal(float(from([])), {error, <<"Expected a Float, got `[]`">>}).
-endif.
bool(A) ->
gleam__stdlib:decode_bool(A).
-ifdef(TEST).
bool_test() ->
expect:equal(bool(from(true)), {ok, true}),
expect:equal(bool(from(false)), {ok, false}),
expect:equal(bool(from(1)), {error, <<"Expected a Bool, got `1`">>}),
expect:equal(bool(from([])), {error, <<"Expected a Bool, got `[]`">>}).
-endif.
thunk(A) ->
gleam__stdlib:thunk(A).
tuple(A) ->
gleam__stdlib:decode_tuple(A).
-ifdef(TEST).
tuple_test() ->
expect:equal(tuple(from({1, []})), {ok, {from(1), from([])}}),
expect:equal(tuple(from({<<"ok">>, <<"ok">>})),
{ok, {from(<<"ok">>), from(<<"ok">>)}}),
expect:is_error(tuple(from({1}))),
expect:is_error(tuple(from({1, 2, 3}))).
-endif.
|