@@ -265,6 +265,14 @@ def test_closest():
265265 closest = instance .closest (dt2 , dt1 )
266266 assert closest == dt1
267267
268+ dts = [pendulum .datetime (2015 , 5 , 28 , 16 , 0 , 0 ) + pendulum .duration (
269+ hours = x ) for x in range (4 )]
270+ closest = instance .closest (* dts )
271+ assert closest == dts [0 ]
272+
273+ closest = instance .closest (* (dts [::- 1 ]))
274+ assert closest == dts [0 ]
275+
268276
269277def test_closest_with_datetime ():
270278 instance = pendulum .datetime (2015 , 5 , 28 , 12 , 0 , 0 )
@@ -273,6 +281,12 @@ def test_closest_with_datetime():
273281 closest = instance .closest (dt1 , dt2 )
274282 assert_datetime (closest , 2015 , 5 , 28 , 11 , 0 , 0 )
275283
284+ dts = [pendulum .datetime (2015 , 5 , 28 , 16 , 0 , 0 ) + pendulum .duration (
285+ hours = x ) for x in range (4 )]
286+ closest = instance .closest (dt1 , dt2 , * dts )
287+
288+ assert_datetime (closest , 2015 , 5 , 28 , 11 , 0 , 0 )
289+
276290
277291def test_closest_with_equals ():
278292 instance = pendulum .datetime (2015 , 5 , 28 , 12 , 0 , 0 )
@@ -286,28 +300,48 @@ def test_farthest():
286300 instance = pendulum .datetime (2015 , 5 , 28 , 12 , 0 , 0 )
287301 dt1 = pendulum .datetime (2015 , 5 , 28 , 11 , 0 , 0 )
288302 dt2 = pendulum .datetime (2015 , 5 , 28 , 14 , 0 , 0 )
289- closest = instance .farthest (dt1 , dt2 )
290- assert closest == dt2
303+ farthest = instance .farthest (dt1 , dt2 )
304+ assert farthest == dt2
291305
292- closest = instance .farthest (dt2 , dt1 )
293- assert closest == dt2
306+ farthest = instance .farthest (dt2 , dt1 )
307+ assert farthest == dt2
308+
309+ dts = [pendulum .datetime (2015 , 5 , 28 , 16 , 0 , 0 ) + pendulum .duration (
310+ hours = x ) for x in range (4 )]
311+ farthest = instance .farthest (* dts )
312+ assert farthest == dts [- 1 ]
313+
314+ farthest = instance .farthest (* (dts [::- 1 ]))
315+ assert farthest == dts [- 1 ]
316+
317+ f = pendulum .datetime (2010 , 1 , 1 , 0 , 0 , 0 )
318+ assert f == instance .farthest (f , * (dts ))
294319
295320
296321def test_farthest_with_datetime ():
297322 instance = pendulum .datetime (2015 , 5 , 28 , 12 , 0 , 0 )
298323 dt1 = datetime (2015 , 5 , 28 , 11 , 0 , 0 , tzinfo = pendulum .UTC )
299324 dt2 = datetime (2015 , 5 , 28 , 14 , 0 , 0 , tzinfo = pendulum .UTC )
300- closest = instance .farthest (dt1 , dt2 )
325+ farthest = instance .farthest (dt1 , dt2 )
326+ assert_datetime (farthest , 2015 , 5 , 28 , 14 , 0 , 0 )
301327
302- assert_datetime (closest , 2015 , 5 , 28 , 14 , 0 , 0 )
328+ dts = [pendulum .datetime (2015 , 5 , 28 , 16 , 0 , 0 ) + pendulum .duration (
329+ hours = x ) for x in range (4 )]
330+ farthest = instance .farthest (dt1 , dt2 , * dts )
331+
332+ assert_datetime (farthest , 2015 , 5 , 28 , 19 , 0 , 0 )
303333
304334
305335def test_farthest_with_equals ():
306336 instance = pendulum .datetime (2015 , 5 , 28 , 12 , 0 , 0 )
307337 dt1 = pendulum .datetime (2015 , 5 , 28 , 12 , 0 , 0 )
308338 dt2 = pendulum .datetime (2015 , 5 , 28 , 14 , 0 , 0 )
309- closest = instance .farthest (dt1 , dt2 )
310- assert closest == dt2
339+ farthest = instance .farthest (dt1 , dt2 )
340+ assert farthest == dt2
341+
342+ dts = [pendulum .datetime (2015 , 5 , 28 , 16 , 0 , 0 ) + pendulum .duration (hours = x ) for x in range (4 )]
343+ farthest = instance .farthest (dt1 , dt2 , * dts )
344+ assert farthest == dts [- 1 ]
311345
312346
313347def test_is_same_day ():
0 commit comments