-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathfifo_opt_test.erl
52 lines (45 loc) · 2.35 KB
/
fifo_opt_test.erl
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
-module(fifo_opt_test).
-include_lib("eunit/include/eunit.hrl").
-define(M, fifo_opt).
valid_integer_test() ->
?assertEqual({true, 1}, ?M:valid_type(integer, 1)),
?assertEqual({true, 42}, ?M:valid_type(integer, "42")),
?assertEqual(false, ?M:valid_type(integer, "42a")),
?assertEqual(false, ?M:valid_type(integer, "a")),
?assertEqual(false, ?M:valid_type(integer, a)),
?assertEqual({true, [1, 2]}, ?M:valid_type({list, integer}, [1, "2"])),
ok.
valid_float_test() ->
?assertEqual({true, 1.0}, ?M:valid_type(float, 1.0)),
?assertEqual({true, 1.0}, ?M:valid_type(float, 1)),
?assertEqual({true, 42.0}, ?M:valid_type(float, "42.0")),
?assertEqual({true, 42.0}, ?M:valid_type(float, "42")),
?assertEqual(false, ?M:valid_type(float, "42a")),
?assertEqual(false, ?M:valid_type(float, "a")),
?assertEqual(false, ?M:valid_type(float, a)),
?assertEqual({true, [1.0, 2.0]}, ?M:valid_type({list, float}, [1.0, "2.0"])),
ok.
valid_string_test() ->
?assertEqual({true, "abc"}, ?M:valid_type(string, "abc")),
?assertEqual({true, "abc"}, ?M:valid_type(string, <<"abc">>)),
?assertEqual(false, ?M:valid_type(string, 42)),
?assertEqual(false, ?M:valid_type(string, a)),
?assertEqual({true, ["abc", "123"]}, ?M:valid_type({list, string}, [<<"abc">>, "123"])),
?assertEqual(false, ?M:valid_type({list, binary}, [<<"abc">>, "123", 1])),
ok.
valid_binary_test() ->
?assertEqual({true, <<"abc">>}, ?M:valid_type(binary, "abc")),
?assertEqual({true, <<"abc">>}, ?M:valid_type(binary, <<"abc">>)),
?assertEqual(false, ?M:valid_type(binary, 42)),
?assertEqual(false, ?M:valid_type(binary, a)),
?assertEqual({true, [<<"abc">>, <<"123">>]}, ?M:valid_type({list, binary}, [<<"abc">>, "123"])),
?assertEqual(false, ?M:valid_type({list, binary}, [<<"abc">>, "123", 1])),
ok.
valid_enum_test() ->
?assertEqual({true, abc}, ?M:valid_type({enum, ["abc", "bcd"]}, "abc")),
?assertEqual({true, abc}, ?M:valid_type({enum, ["abc", "bcd"]}, "abc")),
?assertEqual({true, abc}, ?M:valid_type({enum, ["abc", "bcd"]}, <<"abc">>)),
?assertEqual(false, ?M:valid_type({enum, ["bc", "bcd"]}, "abc")),
?assertEqual(false, ?M:valid_type({enum, ["bc", "bcd"]}, "abc")),
?assertEqual(false, ?M:valid_type({enum, ["bc", "bcd"]}, <<"abc">>)),
?assertEqual(false, ?M:valid_type({enum, ["abc", "bcd"]}, 42)).