@@ -6,8 +6,12 @@ defmodule Date.RangeTest do
6
6
7
7
@ asc_range Date . range ( ~D[ 2000-01-01] , ~D[ 2001-01-01] )
8
8
@ asc_range_2 Date . range ( ~D[ 2000-01-01] , ~D[ 2001-01-01] , 2 )
9
+ @ asc_range_duration Date . range ( ~D[ 2000-01-01] , Duration . new! ( year: 1 ) )
10
+ @ asc_range_duration_2 Date . range ( ~D[ 2000-01-01] , Duration . new! ( year: 1 ) , 2 )
9
11
@ desc_range Date . range ( ~D[ 2001-01-01] , ~D[ 2000-01-01] , - 1 )
10
12
@ desc_range_2 Date . range ( ~D[ 2001-01-01] , ~D[ 2000-01-01] , - 2 )
13
+ @ desc_range_duration Date . range ( ~D[ 2001-01-01] , Duration . new! ( year: - 1 ) )
14
+ @ desc_range_duration_2 Date . range ( ~D[ 2001-01-01] , Duration . new! ( year: - 1 ) , 2 )
11
15
@ empty_range Date . range ( ~D[ 2001-01-01] , ~D[ 2000-01-01] , 1 )
12
16
13
17
describe "Enum.member?/2" do
@@ -20,6 +24,9 @@ defmodule Date.RangeTest do
20
24
21
25
assert Enum . member? ( @ asc_range_2 , ~D[ 2000-01-03] )
22
26
refute Enum . member? ( @ asc_range_2 , ~D[ 2000-01-02] )
27
+
28
+ assert Enum . member? ( @ asc_range_duration , ~D[ 2000-01-03] )
29
+ refute Enum . member? ( @ asc_range_duration_2 , ~D[ 2000-01-02] )
23
30
end
24
31
25
32
test "for descending range" do
@@ -31,6 +38,9 @@ defmodule Date.RangeTest do
31
38
32
39
assert Enum . member? ( @ desc_range_2 , ~D[ 2000-12-30] )
33
40
refute Enum . member? ( @ desc_range_2 , ~D[ 2000-12-29] )
41
+
42
+ assert Enum . member? ( @ desc_range_duration , ~D[ 2000-12-30] )
43
+ refute Enum . member? ( @ desc_range_duration_2 , ~D[ 2000-12-29] )
34
44
end
35
45
36
46
test "empty range" do
@@ -109,6 +119,18 @@ defmodule Date.RangeTest do
109
119
assert Enum . to_list ( range ) == [ ~D[ 2000-01-01] , ~D[ 2000-01-03] ]
110
120
end
111
121
122
+ test "works with durations" do
123
+ range = Date . range ( ~D[ 2000-01-01] , Duration . new! ( day: 1 ) )
124
+ assert range . first == ~D[ 2000-01-01]
125
+ assert range . last == ~D[ 2000-01-02]
126
+ assert Enum . to_list ( range ) == [ ~D[ 2000-01-01] , ~D[ 2000-01-02] ]
127
+
128
+ range = Date . range ( ~D[ 2000-01-01] , Duration . new! ( day: 2 ) , 2 )
129
+ assert range . first == ~D[ 2000-01-01]
130
+ assert range . last == ~D[ 2000-01-03]
131
+ assert Enum . to_list ( range ) == [ ~D[ 2000-01-01] , ~D[ 2000-01-03] ]
132
+ end
133
+
112
134
test "both dates must have matching calendars" do
113
135
first = ~D[ 2000-01-01]
114
136
last = Calendar.Holocene . date ( 12001 , 1 , 1 )
0 commit comments