test: add tests for emqx_utils_binary from original site
This commit is contained in:
parent
badf962800
commit
0f162fb50a
|
@ -0,0 +1,212 @@
|
|||
-module(emqx_utils_binary_tests).
|
||||
|
||||
-import(emqx_utils_binary, [
|
||||
trim/1,
|
||||
ltrim/1,
|
||||
rtrim/1,
|
||||
trim/2,
|
||||
ltrim/2,
|
||||
rtrim/2,
|
||||
reverse/1,
|
||||
inverse/1,
|
||||
join/2,
|
||||
suffix/2,
|
||||
prefix/2,
|
||||
duplicate/2,
|
||||
union/2,
|
||||
intersection/2,
|
||||
subtract/2,
|
||||
optimize_patterns/1
|
||||
]).
|
||||
|
||||
-include_lib("eunit/include/eunit.hrl").
|
||||
|
||||
-ifdef(TEST).
|
||||
|
||||
trim1_test_() ->
|
||||
[
|
||||
?_assertEqual(trim(<<>>), <<>>),
|
||||
?_assertEqual(trim(<<0, 0, 0>>), <<>>),
|
||||
?_assertEqual(trim(<<1, 2, 3>>), <<1, 2, 3>>),
|
||||
?_assertEqual(trim(<<0, 1, 2>>), <<1, 2>>),
|
||||
?_assertEqual(trim(<<0, 0, 1, 2>>), <<1, 2>>),
|
||||
?_assertEqual(trim(<<1, 2, 0, 0>>), <<1, 2>>),
|
||||
?_assertEqual(trim(<<0, 1, 2, 0>>), <<1, 2>>),
|
||||
?_assertEqual(trim(<<0, 0, 0, 1, 2, 0, 0, 0>>), <<1, 2>>)
|
||||
].
|
||||
|
||||
ltrim1_test_() ->
|
||||
[
|
||||
?_assertEqual(ltrim(<<>>), <<>>),
|
||||
?_assertEqual(ltrim(<<0, 0, 0>>), <<>>),
|
||||
?_assertEqual(ltrim(<<1, 2, 3>>), <<1, 2, 3>>),
|
||||
?_assertEqual(ltrim(<<0, 1, 2>>), <<1, 2>>),
|
||||
?_assertEqual(ltrim(<<0, 0, 1, 2>>), <<1, 2>>),
|
||||
?_assertEqual(ltrim(<<1, 2, 0, 0>>), <<1, 2, 0, 0>>),
|
||||
?_assertEqual(ltrim(<<0, 1, 2, 0>>), <<1, 2, 0>>),
|
||||
?_assertEqual(ltrim(<<0, 0, 0, 1, 2, 0, 0, 0>>), <<1, 2, 0, 0, 0>>)
|
||||
].
|
||||
|
||||
rtrim1_test_() ->
|
||||
[
|
||||
?_assertEqual(rtrim(<<>>), <<>>),
|
||||
?_assertEqual(rtrim(<<1, 2, 3>>), <<1, 2, 3>>),
|
||||
?_assertEqual(rtrim(<<0, 0, 0>>), <<>>),
|
||||
?_assertEqual(rtrim(<<0, 1, 2>>), <<0, 1, 2>>),
|
||||
?_assertEqual(rtrim(<<0, 0, 1, 2>>), <<0, 0, 1, 2>>),
|
||||
?_assertEqual(rtrim(<<1, 2, 0, 0>>), <<1, 2>>),
|
||||
?_assertEqual(rtrim(<<0, 1, 2, 0>>), <<0, 1, 2>>),
|
||||
?_assertEqual(rtrim(<<0, 0, 0, 1, 2, 0, 0, 0>>), <<0, 0, 0, 1, 2>>)
|
||||
].
|
||||
|
||||
trim2_test_() ->
|
||||
[
|
||||
?_assertEqual(trim(<<5>>, 5), <<>>),
|
||||
?_assertEqual(trim(<<5, 1, 2, 5>>, 5), <<1, 2>>),
|
||||
?_assertEqual(trim(<<5, 5, 5, 1, 2, 0, 0, 0>>, 5), <<1, 2, 0, 0, 0>>)
|
||||
].
|
||||
|
||||
ltrim2_test_() ->
|
||||
[
|
||||
?_assertEqual(ltrim(<<5>>, 5), <<>>),
|
||||
?_assertEqual(ltrim(<<5, 1, 2, 5>>, 5), <<1, 2, 5>>),
|
||||
?_assertEqual(ltrim(<<5, 5, 5, 1, 2, 0, 0, 0>>, 5), <<1, 2, 0, 0, 0>>)
|
||||
].
|
||||
|
||||
rtrim2_test_() ->
|
||||
[
|
||||
?_assertEqual(rtrim(<<5>>, 5), <<>>),
|
||||
?_assertEqual(rtrim(<<5, 1, 2, 5>>, 5), <<5, 1, 2>>),
|
||||
?_assertEqual(rtrim(<<5, 5, 5, 1, 2, 0, 0, 0>>, 5), <<5, 5, 5, 1, 2, 0, 0, 0>>)
|
||||
].
|
||||
|
||||
mtrim2_test_() ->
|
||||
[
|
||||
?_assertEqual(trim(<<5>>, [1, 5]), <<>>),
|
||||
?_assertEqual(trim(<<5, 1, 2, 5>>, [1, 5]), <<2>>),
|
||||
?_assertEqual(trim(<<5, 1, 2, 5>>, [1, 2, 5]), <<>>),
|
||||
?_assertEqual(trim(<<5, 5, 5, 1, 2, 0, 0, 0>>, [1, 5]), <<2, 0, 0, 0>>)
|
||||
].
|
||||
|
||||
mltrim2_test_() ->
|
||||
[
|
||||
?_assertEqual(ltrim(<<5>>, [1, 5]), <<>>),
|
||||
?_assertEqual(ltrim(<<5, 1, 2, 5>>, [1, 5]), <<2, 5>>),
|
||||
?_assertEqual(ltrim(<<5, 1, 2, 5>>, [2, 5]), <<1, 2, 5>>),
|
||||
?_assertEqual(ltrim(<<5, 5, 5, 1, 2, 0, 0, 0>>, [1, 5]), <<2, 0, 0, 0>>)
|
||||
].
|
||||
|
||||
mrtrim2_test_() ->
|
||||
[
|
||||
?_assertEqual(rtrim(<<5>>, [1, 5]), <<>>),
|
||||
?_assertEqual(rtrim(<<5, 1, 2, 5>>, [1, 5]), <<5, 1, 2>>),
|
||||
?_assertEqual(rtrim(<<5, 1, 2, 5>>, [2, 5]), <<5, 1>>),
|
||||
?_assertEqual(rtrim(<<5, 5, 5, 1, 2, 0, 0, 0>>, [1, 5]), <<5, 5, 5, 1, 2, 0, 0, 0>>),
|
||||
?_assertEqual(rtrim(<<5, 5, 5, 1, 2, 0, 0, 0>>, [0, 5]), <<5, 5, 5, 1, 2>>)
|
||||
].
|
||||
|
||||
reverse_test_() ->
|
||||
[?_assertEqual(reverse(<<0, 1, 2>>), <<2, 1, 0>>)].
|
||||
|
||||
join_test_() ->
|
||||
[
|
||||
?_assertEqual(join([<<1, 2>>, <<3, 4>>, <<5, 6>>], <<0>>), <<1, 2, 0, 3, 4, 0, 5, 6>>),
|
||||
?_assertEqual(
|
||||
join([<<"abc">>, <<"def">>, <<"xyz">>], <<"|">>),
|
||||
<<"abc|def|xyz">>
|
||||
),
|
||||
?_assertEqual(
|
||||
join([<<>>, <<"|">>, <<"x|z">>], <<"|">>),
|
||||
<<"|||x|z">>
|
||||
),
|
||||
?_assertEqual(
|
||||
join([<<"abc">>, <<"def">>, <<"xyz">>], <<>>),
|
||||
<<"abcdefxyz">>
|
||||
),
|
||||
?_assertEqual(join([], <<"|">>), <<>>)
|
||||
].
|
||||
|
||||
duplicate_test_() ->
|
||||
[
|
||||
?_assertEqual(duplicate(5, <<1, 2>>), <<1, 2, 1, 2, 1, 2, 1, 2, 1, 2>>),
|
||||
?_assertEqual(duplicate(50, <<0>>), <<0:400>>)
|
||||
].
|
||||
|
||||
suffix_test_() ->
|
||||
[
|
||||
?_assertEqual(suffix(<<1, 2, 3, 4, 5>>, 2), <<4, 5>>),
|
||||
?_assertError(badarg, prefix(<<1, 2, 3, 4, 5>>, 25))
|
||||
].
|
||||
|
||||
prefix_test_() ->
|
||||
[
|
||||
?_assertEqual(prefix(<<1, 2, 3, 4, 5>>, 2), <<1, 2>>),
|
||||
?_assertError(badarg, prefix(<<1, 2, 3, 4, 5>>, 25))
|
||||
].
|
||||
|
||||
union_test_() ->
|
||||
[
|
||||
?_assertEqual(
|
||||
union(
|
||||
<<2#0011011:7>>,
|
||||
<<2#1011110:7>>
|
||||
),
|
||||
<<2#1011111:7>>
|
||||
)
|
||||
].
|
||||
|
||||
inverse_test_() ->
|
||||
[
|
||||
?_assertEqual(inverse(inverse(<<0, 1, 2>>)), <<0, 1, 2>>),
|
||||
?_assertEqual(inverse(<<0>>), <<255>>),
|
||||
?_assertEqual(inverse(<<2#1:1>>), <<2#0:1>>),
|
||||
?_assertEqual(inverse(<<2#0:1>>), <<2#1:1>>),
|
||||
?_assertEqual(
|
||||
inverse(<<2#01:2>>),
|
||||
<<2#10:2>>
|
||||
),
|
||||
?_assertEqual(
|
||||
inverse(<<2#0011011:7>>),
|
||||
<<2#1100100:7>>
|
||||
)
|
||||
].
|
||||
|
||||
intersection_test_() ->
|
||||
[
|
||||
?_assertEqual(
|
||||
intersection(
|
||||
<<2#0011011>>,
|
||||
<<2#1011110>>
|
||||
),
|
||||
<<2#0011010>>
|
||||
)
|
||||
].
|
||||
|
||||
subtract_test_() ->
|
||||
[
|
||||
?_assertEqual(
|
||||
subtract(
|
||||
<<2#0011011>>,
|
||||
<<2#1011110>>
|
||||
),
|
||||
<<2#0000001>>
|
||||
)
|
||||
].
|
||||
|
||||
optimize_patterns_test_() ->
|
||||
[
|
||||
?_assertEqual(
|
||||
[<<"t">>],
|
||||
optimize_patterns([<<"t">>, <<"test">>])
|
||||
),
|
||||
?_assertEqual(
|
||||
[<<"t">>],
|
||||
optimize_patterns([<<"t">>, <<"t">>, <<"test">>])
|
||||
),
|
||||
?_assertEqual(
|
||||
[<<"t">>],
|
||||
optimize_patterns([<<"test">>, <<"t">>, <<"t">>])
|
||||
)
|
||||
].
|
||||
|
||||
-endif.
|
Loading…
Reference in New Issue