From b76b93ff834d17bf0c56f355e996388483d4838b Mon Sep 17 00:00:00 2001 From: lijie <1713699517@qq.com> Date: Tue, 16 Aug 2022 17:05:12 +0800 Subject: [PATCH] ft: test --- src/testCase/funTest.erl | 87 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 86 insertions(+), 1 deletion(-) diff --git a/src/testCase/funTest.erl b/src/testCase/funTest.erl index 084ccec..9baaca6 100644 --- a/src/testCase/funTest.erl +++ b/src/testCase/funTest.erl @@ -14,7 +14,7 @@ test2(A) -> Fun1(A, A, A, A, A, Fun1). test3(A) -> - [O * 2 || O <- A], + _ = [O * 2 || O <- A], ok. -define(types, [1, 1.1, [], [1], {1}, #{}, <<"123">>, self()]). @@ -66,6 +66,91 @@ ok(N) -> test(A) -> ?IIF(lists:keyfind(a, 1, A), false, none, {_, V}, V). +ams1(A) -> ok. +ams2(A) -> fun() -> A end. +amf1(0, A, B, C, _) -> ok; +amf1(N, A, B, C, _) -> + amf1(N - 1, A, B, C, 1) . + +amf2(0, A, B, C, _) -> ok; +amf2(N, A, B, C, _) -> + Fun = fun(One1) -> X = (One1 * A * B * C), Y = B-C, Z = X / Y, Z end, + amf2(N - 1, A, B, C, Fun). + +ok1(0, A, _) -> + ok; +ok1(N, A, _) -> + IS = A == 1 orelse A == 2 orelse A == 3 orelse A == 4 orelse A == 5 orelse A == 6, + ok1(N - 1, A, IS). + +ok2(0, A, _) -> + ok; +ok2(N, A, _) -> + IS = lists:member(A, [1, 2, 3, 4, 5, 6]), + ok2(N - 1, A, IS). + + +test2() -> + {Time, _} = timer:tc(?MODULE, compare, [100000000]), + io:format("Time : ~p~n", [Time]), + {Time2, _} = timer:tc(?MODULE, compare2, [100000000]), + io:format("Time2: ~p~n", [Time2]). + +compare(0) -> + ok; +compare(N) when N =/= (N-1) orelse N =:= N -> + compare(N - 1). + +compare2(0) -> + ok; +compare2(N) when N /= (N-1) orelse N == N -> + compare(N - 1). + + +timer(_, _) -> + I = atomics:add_get(persistent_term:get(cnt), 1, 1), + io:format("IMY******* ~p~n", [I]) , + case I of + 1000000 -> + io:format("end time ~p ~n", [erlang:system_time(millisecond)]); + _ -> + ignore + end, + ok. + +test(N, Time) -> + io:format("start time1 ~p ~n", [erlang:system_time(millisecond)]), + persistent_term:put(cnt, atomics:new(1, [])), + gTimer:startWork(16), + doTest(N, Time). +doTest(0, Time) -> + io:format("start time2 ~p ~n", [erlang:system_time(millisecond)]), + gTimer:setTimer(rand:uniform(Time), {?MODULE, timer, []}); +doTest(N, Time) -> + gTimer:setTimer(rand:uniform(Time), {?MODULE, timer, []}), + doTest(N - 1, Time). + + +timer(_) -> + %io:format("IMY******* ~p~n", [I]) , + % case I of + % 1000000 -> + % io:format("end time ~p ~n", [erlang:system_time(millisecond)]); + % _ -> + % ignore + % end, + ok. + + +testBBB(Bin1) -> + Bin2 = term_to_binary(Bin1), + Bin = <<1:1, Bin2/binary>>, + io:format("IMY**********testBBB ~p size ~p ~p ~p ~n", [self(), bit_size(Bin), erts_internal:term_type(Bin), binaryAddr:getBinAddr(Bin2)]), + spawn(?MODULE, tt, [Bin]). + +tt(B) -> + <<_A:1, Bin/binary>> = B, + io:format("IMY**********ttxxxxx ~p size ~p ~p ~p ~n", [self(), bit_size(B), erts_internal:term_type(B), binaryAddr:getBinAddr(Bin)]).