@@ -94,6 +94,49 @@ defmodule Plox.DateTimeScaleTest do
9494 ~N[ 2019-01-01 00:00:03]
9595 ]
9696 end
97+
98+ test "raises an error with zero step" do
99+ scale = DateTimeScale . new ( ~N[ 2019-01-01 00:00:00] , ~N[ 2019-01-01 00:02:00] )
100+
101+ assert_raise ArgumentError , fn ->
102+ Scale . values ( scale , % { step: 0 } )
103+ end
104+ end
105+
106+ test "raises an error with invalid step" do
107+ scale = DateTimeScale . new ( ~N[ 2019-01-01 00:00:00] , ~N[ 2019-01-01 00:02:00] )
108+
109+ assert_raise ArgumentError , fn ->
110+ Scale . values ( scale , % { step: { - 500 , :invalid } } )
111+ end
112+ end
113+
114+ test "with default start" do
115+ scale = DateTimeScale . new ( ~N[ 2019-01-01 00:00:00] , ~N[ 2019-01-01 00:02:00] )
116+
117+ assert Scale . values ( scale ) == [
118+ ~N[ 2019-01-01 00:00:00] ,
119+ ~N[ 2019-01-01 00:01:00] ,
120+ ~N[ 2019-01-01 00:02:00]
121+ ]
122+ end
123+
124+ test "with custom start" do
125+ scale = DateTimeScale . new ( ~N[ 2019-01-01 00:00:00] , ~N[ 2019-01-01 00:02:00] )
126+
127+ assert Scale . values ( scale , % { start: ~N[ 2019-01-01 00:01:00] } ) == [
128+ ~N[ 2019-01-01 00:01:00] ,
129+ ~N[ 2019-01-01 00:02:00]
130+ ]
131+ end
132+
133+ test "raises an error with start outside range" do
134+ scale = DateTimeScale . new ( ~N[ 2019-01-01 00:00:00] , ~N[ 2019-01-01 00:02:00] )
135+
136+ assert_raise ArgumentError , fn ->
137+ Scale . values ( scale , % { start: ~N[ 2019-01-01 00:03:00] } )
138+ end
139+ end
97140 end
98141
99142 describe "convert_to_range/3" do
0 commit comments