From 4f9a0901bd080d8708e52a81d08f5d5d1d063208 Mon Sep 17 00:00:00 2001 From: daurnimator Date: Fri, 29 Aug 2014 13:36:30 -0400 Subject: [PATCH] spec/timetable_spec: Add more tests for month handling --- spec/timetable_spec.lua | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/spec/timetable_spec.lua b/spec/timetable_spec.lua index 815c6d3..b769911 100644 --- a/spec/timetable_spec.lua +++ b/spec/timetable_spec.lua @@ -44,7 +44,19 @@ describe ( "Timetable library" , function ( ) end end ) - it ( "#normalise handles out of range #month" , function ( ) + it ( "#normalise handles out of range days in a #month" , function ( ) assert.same ( { timetable.normalise(2013,0,1,0,0,0) } , { 2012,12,1,0,0,0 } ) + assert.same ( { timetable.normalise(2013,42,1,0,0,0) } , { 2016,6,1,0,0,0 } ) + + -- Correct behaviour around leap days + assert.same ( { timetable.normalise(2012,2,52,0,0,0) } , { 2012,3,23,0,0,0 } ) + assert.same ( { timetable.normalise(2013,2,52,0,0,0) } , { 2013,3,24,0,0,0 } ) + + assert.same ( { timetable.normalise(2012,3,-2,0,0,0) } , { 2012,2,26,0,0,0 } ) + assert.same ( { timetable.normalise(2013,3,-2,0,0,0) } , { 2013,2,27,0,0,0 } ) + + -- Also when more fields are out of range + assert.same ( { timetable.normalise(2013,42,52,0,0,0) } , { 2016,7,22,0,0,0 } ) + assert.same ( { timetable.normalise(2013,42,52,50,0,0) } , { 2016,7,24,2,0,0 } ) end ) end ) -- 2.39.5