# ensure the start and end dates are in the same range to avoid memory issues (for example, someone asking from 1960 to 2120 creating a huge pd.Range)
logger.debug('Considering {} from {} to {}'.format('Extra Availability'ifappointment_availability_or_holiday.kind==AVAILABILITY_EXTRAelse'Holiday',start,end))
@@ -108,6 +108,76 @@ class OfficeAvailabilityTest(TestCase):
self.assertEqual(office_availability.get_availability_percentage(only_working_hours=True),59.900166389351085)# ((6*60)/(10*60.0+1))*100 # the border minute is 0 then no +1
self.assertEqual(office_availability.get_availability_percentage(only_working_hours=False),41.70714781401804)# ((10*(60)+1)/(24*60.0+1))*100 That +1 is the zero minute
#add holiday (leave) from 30 days ago up to next 90 days starting with today in the middle
self.assertEqual(office_availability.is_available(),False)#less than 50%
self.assertEqual(office_availability.get_availability_percentage(only_working_hours=True),0)# ((8*60)/(10*60.0+1))*100 # the bordwer minute is 0, then no +1
self.assertEqual(office_availability.get_availability_percentage(only_working_hours=False),41.70714781401804)# ((10*(60)+1)/(24*60.0+1))*100 That +1 is the zero minute
#add holiday (leave) from 90 days ago up to 60 days ago but without overlapping with today's date
self.assertEqual(office_availability.is_available(),False)#less than 50%
self.assertEqual(office_availability.get_availability_percentage(only_working_hours=True),100.0)# ((8*60)/(10*60.0+1))*100 # the bordwer minute is 0, then no +1