Skip to content

Commit 19fc7d4

Browse files
author
José Valim
committed
Improve coverage in Date.RangeTest
1 parent 3c31aeb commit 19fc7d4

File tree

1 file changed

+33
-19
lines changed

1 file changed

+33
-19
lines changed

lib/elixir/test/elixir/calendar/date_range_test.exs

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,47 @@ Code.require_file "../fixtures/calendar/julian.exs", __DIR__
33

44
defmodule Date.RangeTest do
55
use ExUnit.Case, async: true
6-
doctest Date.Range
76

8-
setup do
9-
{:ok, range: Date.range(~D[2000-01-01], ~D[2001-01-01])}
10-
end
7+
@asc_range Date.range(~D[2000-01-01], ~D[2001-01-01])
8+
@desc_range Date.range(~D[2001-01-01], ~D[2000-01-01])
119

1210
describe "Enum.member?/2" do
13-
test "for ascending range", %{range: range} do
14-
assert Enum.member?(range, ~D[2000-02-22])
15-
refute Enum.member?(range, ~D[2002-01-01])
11+
test "for ascending range" do
12+
assert Enum.member?(@asc_range, ~D[2000-02-22])
13+
assert Enum.member?(@asc_range, ~D[2000-01-01])
14+
assert Enum.member?(@asc_range, ~D[2001-01-01])
15+
refute Enum.member?(@asc_range, ~D[2002-01-01])
16+
refute Enum.member?(@asc_range, Calendar.Julian.date(1999, 12, 19))
1617
end
1718

18-
test "for descending range", %{range: range} do
19-
assert Enum.member?(range, ~D[2000-02-22])
20-
refute Enum.member?(range, ~D[1999-01-01])
19+
test "for descending range" do
20+
assert Enum.member?(@desc_range, ~D[2000-02-22])
21+
assert Enum.member?(@desc_range, ~D[2000-01-01])
22+
assert Enum.member?(@desc_range, ~D[2001-01-01])
23+
refute Enum.member?(@desc_range, ~D[1999-01-01])
24+
refute Enum.member?(@asc_range, Calendar.Julian.date(1999, 12, 19))
2125
end
2226
end
2327

2428
describe "Enum.count/1" do
25-
test "counts days in range", %{range: range} do
26-
assert Enum.count(range) == 367
29+
test "for ascending range" do
30+
assert Enum.count(@asc_range) == 367
31+
end
32+
33+
test "for descending range" do
34+
assert Enum.count(@desc_range) == 367
2735
end
2836
end
2937

3038
describe "Enum.reduce/3" do
31-
test "acts as a normal reduce" do
39+
test "for ascending range" do
3240
range = Date.range(~D[2000-01-01], ~D[2000-01-03])
33-
fun = fn (date, acc) -> acc ++ [date] end
41+
assert Enum.to_list(range) == [~D[2000-01-01], ~D[2000-01-02], ~D[2000-01-03]]
42+
end
3443

35-
assert Enum.reduce(range, [], fun) == [~D[2000-01-01], ~D[2000-01-02], ~D[2000-01-03]]
44+
test "for descending range" do
45+
range = Date.range(~D[2000-01-03], ~D[2000-01-01])
46+
assert Enum.to_list(range) == [~D[2000-01-03], ~D[2000-01-02], ~D[2000-01-01]]
3647
end
3748
end
3849

@@ -46,9 +57,12 @@ defmodule Date.RangeTest do
4657
end
4758

4859
test "accepts equal but not Calendar.ISO calendars" do
49-
first = Calendar.Julian.date(2001, 01, 01)
50-
last = Calendar.Julian.date(2000, 01, 01)
51-
52-
assert Date.range(first, last)
60+
first = Calendar.Julian.date(2000, 01, 01)
61+
last = Calendar.Julian.date(2001, 01, 01)
62+
range = Date.range(first, last)
63+
assert range
64+
assert first in range
65+
assert last in range
66+
assert Enum.count(range) == 367
5367
end
5468
end

0 commit comments

Comments
 (0)