def should_add_up(self):
            schedule = Schedule()
            schedule.add_lesson(RandomWeeklyLesson())
            schedule.add_lesson(RandomWeeklyLesson())

            b = Bins(schedule=schedule)
            b_ = b.bins()

            expect(b[0] + b[1] + b[2] + b[3] + b[4] + b[5]).to.equal(2)
            expect(b_[0] + b_[1] + b_[2] + b_[3] + b_[4] + b_[5]).to.equal(2)
        def should_respect_the_start_time_range(self):
            rwl = RandomWeeklyLesson(start_time_range=(8,20))
            rng = {'min': 8, 'max': 20}

            expect(should_be_in_range(rwl.start_time(), rng=rng)).to.equal(True)
 def should_respect_the_day_range(self):
     rwl = RandomWeeklyLesson(day_of_week_range=(0,4))
     rng = {'min': 0, 'max': 4}
     expect(should_be_in_range(rwl.day_of_week(), rng=rng)).to.equal(True)
 def should_generate_random_tz(self):
     tz = Timezone()
     rwl = RandomWeeklyLesson(timezone=tz)
     expect(rwl.timezone()).to.equal(tz)
        def should_generate_random_start_time_in_fifteen_minute_increments(self):
            rwl = RandomWeeklyLesson()

            expect(should_have_legitimate_minute_start_time(rwl.start_time())).to.be_true()
        def should_generate_random_start_time_should_be_in_right_range(self):
            rwl = RandomWeeklyLesson()
            rng = {'min': 0, 'max': 23.75}

            expect(should_be_in_range(rwl.start_time(), rng=rng)).to.be_true()
 def should_generate_random_day_of_week(self):
     rwl = RandomWeeklyLesson()
     rng = {'min': 0, 'max': 6}
     expect(should_be_in_range(rwl.day_of_week(), rng=rng)).to.be_true()
        def by_default_should_be_6(self):
            schedule = Schedule()
            schedule.add_lesson(RandomWeeklyLesson())

            b = Bins(schedule=schedule)
            expect(b.num_bins()).to.equal(6)
        def it_should_aggregate_the_lesson_requests_per_bin(self):
            schedule = Schedule()
            schedule.add_lesson(RandomWeeklyLesson())

            b = Bins(schedule=schedule)
            expect(b.sum().sum()).to.equal(1)