def test_freeblock_longer_range(self):
        """
        Tests for full day (within hour range) return when less days have events
        than those in the freeblock range.
        """
        begin_time = datetime.time(9,0)
        end_time = datetime.time(17,0)
        begin_date = datetime.date(2015, 9, 1)
        end_date = datetime.date(2015, 9, 18)

        oneWeekAgenda = Agenda()
        for day in range(10,19):
            oneWeekAgenda.append(Appt(datetime.date(2015, 9, day),datetime.time(12, 30), datetime.time(14,20),"12:30-2:20pm"))

        expected = Agenda()
        for day in range(1,10):
            expected.append(Appt(datetime.date(2015, 9, day),datetime.time(9, 0), datetime.time(17,0),"all day"))
        for day in range(10,19):
            expected.append(Appt(datetime.date(2015, 9, day),datetime.time(9, 0), datetime.time(12, 30),"9:00-12:30am"))
            expected.append(Appt(datetime.date(2015, 9, day),datetime.time(14,20), datetime.time(17, 0),"2:20pm-5pm"))

        expected.normalize()
        result = oneWeekAgenda.freeblocks(begin_date, end_date, begin_time, end_time)

        self.assertEqual(result.__len__(),expected.__len__())
        self.assertTrue(result.__eq__(expected))
    def test_no_free_time(self):
        """
        Tests that Agendas busy during the times a person is free returns no
        possible meeting times.
        """
        begin_time = datetime.time(9,0)
        end_time = datetime.time(17,0)
        begin_date = datetime.date(2015, 9, 2)
        end_date = datetime.date(2015, 9, 10)

        noFreeTimeAgenda = Agenda()
        self.assertEqual(noFreeTimeAgenda.__len__(),0)

        for day in range(2,11):
            noFreeTimeAgenda.append(Appt(datetime.date(2015, 9, day),datetime.time(9, 0), datetime.time(17, 45),"All Hours"))
            noFreeTimeAgenda.append(Appt(datetime.date(2015, 9, day),datetime.time(0, 0), datetime.time(23, 59),"All Hours"))

        self.assertEqual(noFreeTimeAgenda.__len__(),18)

        result = noFreeTimeAgenda.freeblocks(begin_date, end_date, begin_time, end_time)

        self.assertEqual(result.__len__(),0)