lots of gutting. purposes, input, and output were unclear in many places. still broken.

This commit is contained in:
aj
2010-11-08 01:29:15 -08:00
parent 9ad8f3c826
commit d00937c3e9
13 changed files with 828 additions and 552 deletions

View File

@@ -2,42 +2,32 @@
-include("include/ezic.hrl").
-include_lib("eunit/include/eunit.hrl").
prevnext_day_test_() ->
for_rule_test_() ->
[
?_assertEqual({2010,11,3}, ezic_date:previous_day("Wed", {2010, 11, 5}))
, ?_assertEqual({2010,11,10}, ezic_date:next_day("Wed", {2010, 11, 5}))
% last days of months
?_assertEqual({2010, 03, 28}, ezic_date:for_rule(#rule{in=3, on={last, "Sun"}}, 2010))
, ?_assertEqual({2010, 11, 30}, ezic_date:for_rule(#rule{in=11, on={last, "Tue"}}, 2010))
, ?_assertEqual({2010, 11, 24}, ezic_date:for_rule(#rule{in=11, on={last, "Wed"}}, 2010))
, ?_assertEqual({2010,11,5}, ezic_date:previous_day("Fri", {2010, 11, 5}))
, ?_assertEqual({2010,11,5}, ezic_date:next_day("Fri", {2010, 11, 5}))
% days =< or >= absolute dates in given month
, ?_assertEqual({2010, 11, 14}, ezic_date:for_rule(#rule{in=11, on=#tzon{day="Sun", filter={geq, 9}}}, 2010))
, ?_assertEqual({2010, 11, 7}, ezic_date:for_rule(#rule{in=11, on=#tzon{day="Sun", filter={leq, 9}}}, 2010))
, ?_assertEqual({2010,11,5}, ezic_date:previous_day("Fri", {2010, 11, 10}))
, ?_assertEqual({2010,11,12}, ezic_date:next_day("Fri", {2010, 11, 10}))
, ?_assertError(no_previous_day, ezic_date:previous_day("Wed", {2010, 11, 2}))
, ?_assertError(no_next_day, ezic_date:next_day("Wed", {2010, 11, 25}))
].
firstlast_day_of_test_() ->
[
?_assertEqual({2010,11,24}, ezic_date:last_day_of("Wed", 2010, 11))
, ?_assertEqual({2010,11,30}, ezic_date:last_day_of("Tue", 2010, 11))
, ?_assertEqual({2010,11,14}, ezic_date:first_day_limited("Sun", {geq, 8}, 2010, 11))
, ?_assertEqual({2010,11,21}, ezic_date:first_day_limited("Sun", {leq, 25}, 2010, 11))
% these should fail
, ?_assertError(no_previous_day, ezic_date:for_rule(#rule{in=11, on=#tzon{day="Sun", filter={leq, 1}}}, 2010))
, ?_assertError(no_next_day, ezic_date:for_rule(#rule{in=11, on=#tzon{day="Sun", filter={geq, 29}}}, 2010))
].
compare_datetimes_test_() ->
add_seconds_test_() ->
[
?_assertNot(ezic_date:compare_datetimes(
{{1997,3,{last, "Sun"}},{tztime,{1,0,0},u}}
, {1997,1,1} ))
?_assertEqual({{2010,11,7},{9,38,01}}, ezic_date:add_seconds({{2010,11,7},{9,38,00}}, 1))
, ?_assertEqual({{2010,11,7},{9,38,00}}, ezic_date:add_seconds({{2010,11,7},{9,37,59}}, 1))
, ?_assertEqual({{2010,11,7},{9,37,59}}, ezic_date:add_seconds({{2010,11,7},{9,38,00}}, -1))
, ?_assertError(baddate, ezic_date:add_seconds({{2010,11,nope},{9,38,00}}, -1))
, ?_assertError(baddate, ezic_date:add_seconds({2010,11,nope}, -1))
].
overlap_test_() ->
[
?_assert(ezic_date:overlap({1978,only},{{{1977,1,1},#tztime{}}, {{1978,1,1},#tztime{}}}))
, ?_assert(ezic_date:overlap({1978,only},{{{1971,1,1},#tztime{}}, {{1978,1,1},#tztime{}}}))
, ?_assertNot(ezic_date:overlap({1978,only},{{{1971,1,1},#tztime{}}, {{1977,12,31},#tztime{}}}))
].

76
test/ezic_parse_tests.erl Normal file
View File

@@ -0,0 +1,76 @@
-module(ezic_parse_tests).
-include("include/ezic.hrl").
-include_lib("eunit/include/eunit.hrl").
year_test_() ->
[
?_assertEqual(minimum, ezic_parse:year("minimum"))
, ?_assertEqual(maximum, ezic_parse:year("maximum"))
, ?_assertEqual(only, ezic_parse:year("only"))
, ?_assertEqual(1978, ezic_parse:year("1978"))
, ?_assertError(badarg, ezic_parse:year("asdf"))
].
time_test_() ->
[
?_assertEqual(#tztime{time={0,0,0}}, ezic_parse:time("-"))
, ?_assertEqual(#tztime{time={2,0,0}}, ezic_parse:time("2:00"))
, ?_assertEqual(#tztime{time={15,0,0}}, ezic_parse:time("15:00"))
, ?_assertEqual(#tztime{time={1,28,14}}, ezic_parse:time("1:28:14"))
, ?_assertEqual(#tztime{time={1,28,14}, flag=w}, ezic_parse:time("1:28:14w"))
, ?_assertEqual(#tztime{time={1,28,14}, flag=s}, ezic_parse:time("1:28:14s"))
, ?_assertEqual(#tztime{time={1,28,14}, flag=u}, ezic_parse:time("1:28:14u"))
, ?_assertEqual(#tztime{time={1,28,14}, flag=u}, ezic_parse:time("1:28:14g"))
, ?_assertEqual(#tztime{time={1,28,14}, flag=u}, ezic_parse:time("1:28:14z"))
, ?_assertError(badtime, ezic_parse:time("1:28:14wtf?"))
, ?_assertError(badtime, ezic_parse:time("1:28:14:00"))
].
time_val_test_() ->
[
?_assertEqual({0,0,0}, ezic_parse:time_val("-"))
, ?_assertEqual({2,0,0}, ezic_parse:time_val("2:00"))
, ?_assertEqual({15,0,0}, ezic_parse:time_val("15:00"))
, ?_assertEqual({1,28,14}, ezic_parse:time_val("1:28:14"))
, ?_assertEqual({1,28,14}, ezic_parse:time_val("1:28:14w"))
, ?_assertEqual({1,28,14}, ezic_parse:time_val("1:28:14s"))
, ?_assertEqual({1,28,14}, ezic_parse:time_val("1:28:14u"))
, ?_assertEqual({1,28,14}, ezic_parse:time_val("1:28:14g"))
, ?_assertEqual({1,28,14}, ezic_parse:time_val("1:28:14z"))
, ?_assertError(badtime, ezic_parse:time_val("1:28:14wtf?"))
, ?_assertError(badtime, ezic_parse:time_val("1:28:14:00"))
].
day_pattern_test_() ->
[
?_assertEqual(5, ezic_parse:day_pattern("5"))
, ?_assertEqual({last, "Sun"}, ezic_parse:day_pattern("lastSun"))
, ?_assertEqual({last, "Mon"}, ezic_parse:day_pattern("lastMon"))
, ?_assertError(badday, ezic_parse:day_pattern("lastFoo"))
, ?_assertEqual(#tzon{day="Sun", filter={geq, 8}}, ezic_parse:day_pattern("Sun>=8"))
, ?_assertEqual(#tzon{day="Sun", filter={leq, 25}}, ezic_parse:day_pattern("Sun<=25"))
, ?_assertError(badday, ezic_parse:day_pattern("Foo<=25"))
].
tz_abbr_test_() ->
[
?_assertEqual("POS", ezic_parse:tz_abbr("POS"))
, ?_assertEqual("P~sS", ezic_parse:tz_abbr("P%sS"))
, ?_assertEqual("PS~s", ezic_parse:tz_abbr("PS%s"))
].

View File

@@ -2,89 +2,3 @@
-include("include/ezic.hrl").
-include_lib("eunit/include/eunit.hrl").
parse_fromto_test_() ->
[
?_assertEqual(minimum, ezic_record:parse_from("minimum"))
, ?_assertEqual(minimum, ezic_record:parse_to("minimum"))
, ?_assertEqual(maximum, ezic_record:parse_from("maximum"))
, ?_assertEqual(maximum, ezic_record:parse_to("maximum"))
, ?_assertError(badarg, ezic_record:parse_from("only"))
, ?_assertEqual(only, ezic_record:parse_to("only"))
, ?_assertEqual(1978, ezic_record:parse_from("1978"))
, ?_assertEqual(1978, ezic_record:parse_to("1978"))
, ?_assertError(badarg, ezic_record:parse_from("asdf"))
, ?_assertError(badarg, ezic_record:parse_to("asdf"))
].
parse_time_test_() ->
[
?_assertEqual(#tztime{time={0,0,0}}, ezic_record:parse_time("-"))
, ?_assertEqual(#tztime{time={2,0,0}}, ezic_record:parse_time("2:00"))
, ?_assertEqual(#tztime{time={15,0,0}}, ezic_record:parse_time("15:00"))
, ?_assertEqual(#tztime{time={1,28,14}}, ezic_record:parse_time("1:28:14"))
, ?_assertEqual(#tztime{time={1,28,14}, flag=u}, ezic_record:parse_time("1:28:14u"))
, ?_assertEqual(#tztime{time={1,28,14}, flag=w}, ezic_record:parse_time("1:28:14w"))
, ?_assertEqual(#tztime{time={1,28,14}, flag=s}, ezic_record:parse_time("1:28:14s"))
, ?_assertError(badtime, ezic_record:parse_time("1:28:14wtf?"))
, ?_assertError(badtime, ezic_record:parse_time("1:28:14:00"))
].
parse_at_test_() ->
[
?_assertEqual(#tztime{time={0,0,0}}, ezic_record:parse_at("-"))
, ?_assertEqual(#tztime{time={2,0,0}}, ezic_record:parse_at("2:00"))
, ?_assertEqual(#tztime{time={15,0,0}}, ezic_record:parse_at("15:00"))
, ?_assertEqual(#tztime{time={1,28,14}}, ezic_record:parse_at("1:28:14"))
, ?_assertEqual(#tztime{time={1,28,14}, flag=u}, ezic_record:parse_at("1:28:14u"))
, ?_assertEqual(#tztime{time={1,28,14}, flag=w}, ezic_record:parse_at("1:28:14w"))
, ?_assertEqual(#tztime{time={1,28,14}, flag=s}, ezic_record:parse_at("1:28:14s"))
, ?_assertError(badtime, ezic_record:parse_at("1:28:14wtf?"))
].
parse_save_test_() ->
[
?_assertEqual(#tztime{time={0,0,0}}, ezic_record:parse_save("-"))
, ?_assertEqual(#tztime{time={2,0,0}}, ezic_record:parse_save("2:00"))
, ?_assertEqual(#tztime{time={15,0,0}}, ezic_record:parse_save("15:00"))
, ?_assertEqual(#tztime{time={1,28,14}}, ezic_record:parse_save("1:28:14"))
, ?_assertError(badsave, ezic_record:parse_save("1:28:14u"))
, ?_assertError(badsave, ezic_record:parse_save("1:28:14w"))
, ?_assertError(badsave, ezic_record:parse_save("1:28:14s"))
, ?_assertError(badsave, ezic_record:parse_save("1:28:14wtf?"))
].
parse_on_test_() ->
[
?_assertEqual(5, ezic_record:parse_on("5"))
, ?_assertEqual({last, "Sun"}, ezic_record:parse_on("lastSun"))
, ?_assertEqual({last, "Mon"}, ezic_record:parse_on("lastMon"))
, ?_assertError(badday, ezic_record:parse_on("lastFoo"))
, ?_assertEqual(#tzon{day="Sun", filter={geq, 8}}, ezic_record:parse_on("Sun>=8"))
, ?_assertEqual(#tzon{day="Sun", filter={leq, 25}}, ezic_record:parse_on("Sun<=25"))
, ?_assertError(badday, ezic_record:parse_on("Foo<=25"))
].
convert_format_test_() ->
[
?_assertEqual("POS", ezic_record:convert_format("POS"))
, ?_assertEqual("P~sS", ezic_record:convert_format("P%sS"))
].

View File

@@ -3,6 +3,9 @@
-include_lib("eunit/include/eunit.hrl").
all() ->
eunit:test(ezic_record),
eunit:test(ezic_date),
eunit:test(ezic_zone).
eunit:test(ezic_record)
, eunit:test(ezic_date)
, eunit:test(ezic_zone)
, eunit:test(ezic_parse)
,ok.