示例#1
0
文件: Year.py 项目: remar/bfiller
    def get_schedule_for_week(self, week_number, hours):
        disallowed = self._get_disallowed_week(week_number)
        hours -= self._get_taken_time(week_number)

        if hours > Hours(48):
            print "Too many hours for week", week_number, "! Please fill in", hours - Hours(48), "manually!"
            hours = Hours(48)

        return generate_week(hours, disallowed)
示例#2
0
    def get_schedule_for_week(self, week_number, hours):
        disallowed = self._get_disallowed_week(week_number)
        hours -= self._get_taken_time(week_number)

        if hours > Hours(48):
            print "Too many hours for week", week_number, "! Please fill in", hours - Hours(
                48), "manually!"
            hours = Hours(48)

        return generate_week(hours, disallowed)
示例#3
0
 def test_first_day_is_shorter_if_day_is_taken(self):
     taken_week = Week()
     taken_week.set_day(0, TimeRange(Time(7), Time(17)))
     week = generate_week(Hours(40), taken_week)
     ranges = [TimeRange(Time(17), Time(20)),
               TimeRange(Time(7), Time(17)),
               TimeRange(Time(7), Time(17)),
               TimeRange(Time(7), Time(17)),
               TimeRange(Time(7), Time(14))]
     for i in xrange(5):
         self.assertEquals(week.get_day(i), ranges[i])
示例#4
0
 def test_first_day_is_shorter_if_day_is_taken(self):
     taken_week = Week()
     taken_week.set_day(0, TimeRange(Time(7), Time(17)))
     week = generate_week(Hours(40), taken_week)
     ranges = [
         TimeRange(Time(17), Time(20)),
         TimeRange(Time(7), Time(17)),
         TimeRange(Time(7), Time(17)),
         TimeRange(Time(7), Time(17)),
         TimeRange(Time(7), Time(14))
     ]
     for i in xrange(5):
         self.assertEquals(week.get_day(i), ranges[i])
示例#5
0
    def test_generates_realistic_schedule(self):
        taken_week = Week()
        taken = [TimeRange(Time(8, 30), Time(13, 30)),
                 TimeRange(Time(6, 30), Time(13, 30)),
                 TimeRange(Time(7), Time(17)),
                 TimeRange(Time(6, 30), Time(13, 30))]
        for i in xrange(len(taken)):
            taken_week.set_day(i, taken[i])

        week = generate_week(Hours(30, 20), taken_week)

        ranges = [TimeRange(Time(13, 30), Time(20)), # 23:50 left
                  TimeRange(Time(13, 30), Time(20)), # 17:20 left
                  TimeRange(Time(17), Time(20)), # 14:20 left
                  TimeRange(Time(13, 30), Time(20)), # 7:50 left
                  TimeRange(Time(7), Time(14, 50))] # 0:00 left
        for i in xrange(len(ranges)):
            self.assertEquals(week.get_day(i), ranges[i])
示例#6
0
    def test_generates_realistic_schedule(self):
        taken_week = Week()
        taken = [
            TimeRange(Time(8, 30), Time(13, 30)),
            TimeRange(Time(6, 30), Time(13, 30)),
            TimeRange(Time(7), Time(17)),
            TimeRange(Time(6, 30), Time(13, 30))
        ]
        for i in xrange(len(taken)):
            taken_week.set_day(i, taken[i])

        week = generate_week(Hours(30, 20), taken_week)

        ranges = [
            TimeRange(Time(13, 30), Time(20)),  # 23:50 left
            TimeRange(Time(13, 30), Time(20)),  # 17:20 left
            TimeRange(Time(17), Time(20)),  # 14:20 left
            TimeRange(Time(13, 30), Time(20)),  # 7:50 left
            TimeRange(Time(7), Time(14, 50))
        ]  # 0:00 left
        for i in xrange(len(ranges)):
            self.assertEquals(week.get_day(i), ranges[i])
示例#7
0
 def test_can_be_modified_with_latest_time(self):
     taken_week = Week()
     taken_week.set_day(0, TimeRange(Time(7), Time(17)))
     week = generate_week(Hours(40), taken_week, Time(22))
     self.assertEquals(week.get_day(0), TimeRange(Time(17), Time(22)))
示例#8
0
 def test_can_generate_week_schedule_given_no_taken_hours(self):
     week = generate_week(Hours(57, 50))
     for i in xrange(5):
         self.assertEquals(week.get_day(i), TimeRange(Time(7), Time(17)))
     self.assertEquals(week.get_day(5), TimeRange(Time(7), Time(14, 50)))
示例#9
0
 def test_can_be_modified_with_latest_time(self):
     taken_week = Week()
     taken_week.set_day(0, TimeRange(Time(7), Time(17)))
     week = generate_week(Hours(40), taken_week, Time(22))
     self.assertEquals(week.get_day(0), TimeRange(Time(17), Time(22)))
示例#10
0
 def test_can_generate_week_schedule_given_no_taken_hours(self):
     week = generate_week(Hours(57, 50))
     for i in xrange(5):
         self.assertEquals(week.get_day(i), TimeRange(Time(7), Time(17)))
     self.assertEquals(week.get_day(5), TimeRange(Time(7), Time(14, 50)))