Пример #1
0
 def test_HoursPaidFromMidToEnd(self):
     # if end time is after midnight, pay $16 an hour from midnight to end.
     # partial hours count as full.
     self.assertEqual(0, Babysit.pay_mid_to_end(self.babysitter,
                                                time(23, 30)))
     self.assertEqual(32, Babysit.pay_mid_to_end(self.babysitter,
                                                 time(01, 30)))
Пример #2
0
 def test_HoursPaidFromStartToBed(self):
     # make sure babysitter gets paid $12/hr from start to bedtime
     self.assertEqual(36, Babysit.pay_start_to_bed(
         self.babysitter, time(17, 00), time(20, 00)))
     self.assertEqual(12, Babysit.pay_start_to_bed(
         self.babysitter, time(17, 00), time(17, 01)))
     self.assertEqual(12, Babysit.pay_start_to_bed(
         self.babysitter, time(23, 00), time(00, 00)))
Пример #3
0
 def test_EverythingInSequence(self):
     # test if all methods run correctly when called by a single method
     self.assertEqual(120, Babysit.test_and_calculate(
         self.babysitter, time(19, 30), time(22, 30), time(3, 30)))
     self.assertEqual(108, Babysit.test_and_calculate(
         self.babysitter, time(17, 30), time(21, 30), time(1, 30)))
     self.assertEqual(None, Babysit.test_and_calculate(
         self.babysitter, time(13, 30), time(22, 30), time(3, 30)))
     self.assertEqual(None, Babysit.test_and_calculate(
         self.babysitter, time(20, 30), time(19, 30), time(3, 30)))
Пример #4
0
 def test_IfTimesGivenAreRational(self):
     # can't end before bedtime. bedtime can't be before start time.
     self.assertTrue(Babysit.check_times_for_rationality(
         self.babysitter, time(18, 30), time(18, 45), time(19, 00)))
     self.assertTrue(Babysit.check_times_for_rationality(
         self.babysitter, time(18, 00), time(19, 30), time(19, 45)))
     self.assertFalse(Babysit.check_times_for_rationality(
         self.babysitter, time(18, 45), time(18, 30), time(19, 00)))
     self.assertFalse(Babysit.check_times_for_rationality(
         self.babysitter, time(18, 00), time(19, 45), time(19, 30)))
     self.assertFalse(Babysit.check_times_for_rationality(
         self.babysitter, time(19, 30), time(19, 45), time(19, 00)))
Пример #5
0
 def test_HoursPaidFromBedToMid(self):
     # get paid $8 between when the kids go to bed and midnight.
     # partial hours are paid at higher $12 rate
     # must calculate case where end time is before midnight
     self.assertEqual(8, Babysit.pay_bed_to_mid(
         self.babysitter, time(22, 30), time(01, 00)))
     self.assertEqual(16, Babysit.pay_bed_to_mid(
         self.babysitter, time(22, 00), time(00, 00)))
     self.assertEqual(16, Babysit.pay_bed_to_mid(
         self.babysitter, time(17, 30), time(20, 00)))
     self.assertEqual(24, Babysit.pay_bed_to_mid(
         self.babysitter, time(17, 30), time(20, 30)))
Пример #6
0
 def test_BedTime(self):
     # kids need to be in bed before midnight,
     # but after we've started sitting
     self.assertTrue(Babysit.check_bed_time(self.babysitter, time(23, 59)))
     self.assertTrue(Babysit.check_bed_time(self.babysitter, time(17, 00)))
     self.assertFalse(Babysit.check_bed_time(self.babysitter, time(00, 01)))
     self.assertFalse(Babysit.check_bed_time(self.babysitter, time(04, 59)))
Пример #7
0
 def test_StartAndEndTime(self):
     # can't start too early or end too late
     self.assertTrue(Babysit.check_start_or_end_time(
         self.babysitter, time(17, 00)))
     self.assertTrue(Babysit.check_start_or_end_time(
         self.babysitter, time(04, 00)))
     self.assertFalse(Babysit.check_start_or_end_time(
         self.babysitter, time(04, 01)))
     self.assertFalse(Babysit.check_start_or_end_time(
         self.babysitter, time(16, 59)))
Пример #8
0
 def test_TotalPay(self):
     # calculate total pay using previous methods
     self.assertEqual(120, Babysit.calculate_total(
         self.babysitter, time(19, 30), time(22, 30), time(3, 30)))
     self.assertEqual(64, Babysit.calculate_total(
         self.babysitter, time(17, 25), time(18, 30), time(23, 30)))
Пример #9
0
class testBabysitter(unittest.TestCase):
    """
    A test class for the Babysitter module
    I assumed that the babysitter could work for
    0 minutes (but get paid $0 for it),
    and that the kids had to be in bed by midnight, which is reasonable.
    """

    def setUp(self):
        # init babysitter class
        self.babysitter = Babysit()

    def test_StartAndEndTime(self):
        # can't start too early or end too late
        self.assertTrue(Babysit.check_start_or_end_time(
            self.babysitter, time(17, 00)))
        self.assertTrue(Babysit.check_start_or_end_time(
            self.babysitter, time(04, 00)))
        self.assertFalse(Babysit.check_start_or_end_time(
            self.babysitter, time(04, 01)))
        self.assertFalse(Babysit.check_start_or_end_time(
            self.babysitter, time(16, 59)))

    def test_BedTime(self):
        # kids need to be in bed before midnight,
        # but after we've started sitting
        self.assertTrue(Babysit.check_bed_time(self.babysitter, time(23, 59)))
        self.assertTrue(Babysit.check_bed_time(self.babysitter, time(17, 00)))
        self.assertFalse(Babysit.check_bed_time(self.babysitter, time(00, 01)))
        self.assertFalse(Babysit.check_bed_time(self.babysitter, time(04, 59)))

    def test_HoursPaidFromStartToBed(self):
        # make sure babysitter gets paid $12/hr from start to bedtime
        self.assertEqual(36, Babysit.pay_start_to_bed(
            self.babysitter, time(17, 00), time(20, 00)))
        self.assertEqual(12, Babysit.pay_start_to_bed(
            self.babysitter, time(17, 00), time(17, 01)))
        self.assertEqual(12, Babysit.pay_start_to_bed(
            self.babysitter, time(23, 00), time(00, 00)))

    def test_HoursPaidFromBedToMid(self):
        # get paid $8 between when the kids go to bed and midnight.
        # partial hours are paid at higher $12 rate
        # must calculate case where end time is before midnight
        self.assertEqual(8, Babysit.pay_bed_to_mid(
            self.babysitter, time(22, 30), time(01, 00)))
        self.assertEqual(16, Babysit.pay_bed_to_mid(
            self.babysitter, time(22, 00), time(00, 00)))
        self.assertEqual(16, Babysit.pay_bed_to_mid(
            self.babysitter, time(17, 30), time(20, 00)))
        self.assertEqual(24, Babysit.pay_bed_to_mid(
            self.babysitter, time(17, 30), time(20, 30)))

    def test_HoursPaidFromMidToEnd(self):
        # if end time is after midnight, pay $16 an hour from midnight to end.
        # partial hours count as full.
        self.assertEqual(0, Babysit.pay_mid_to_end(self.babysitter,
                                                   time(23, 30)))
        self.assertEqual(32, Babysit.pay_mid_to_end(self.babysitter,
                                                    time(01, 30)))

    def test_TotalPay(self):
        # calculate total pay using previous methods
        self.assertEqual(120, Babysit.calculate_total(
            self.babysitter, time(19, 30), time(22, 30), time(3, 30)))
        self.assertEqual(64, Babysit.calculate_total(
            self.babysitter, time(17, 25), time(18, 30), time(23, 30)))

    def test_IfTimesGivenAreRational(self):
        # can't end before bedtime. bedtime can't be before start time.
        self.assertTrue(Babysit.check_times_for_rationality(
            self.babysitter, time(18, 30), time(18, 45), time(19, 00)))
        self.assertTrue(Babysit.check_times_for_rationality(
            self.babysitter, time(18, 00), time(19, 30), time(19, 45)))
        self.assertFalse(Babysit.check_times_for_rationality(
            self.babysitter, time(18, 45), time(18, 30), time(19, 00)))
        self.assertFalse(Babysit.check_times_for_rationality(
            self.babysitter, time(18, 00), time(19, 45), time(19, 30)))
        self.assertFalse(Babysit.check_times_for_rationality(
            self.babysitter, time(19, 30), time(19, 45), time(19, 00)))

    def test_EverythingInSequence(self):
        # test if all methods run correctly when called by a single method
        self.assertEqual(120, Babysit.test_and_calculate(
            self.babysitter, time(19, 30), time(22, 30), time(3, 30)))
        self.assertEqual(108, Babysit.test_and_calculate(
            self.babysitter, time(17, 30), time(21, 30), time(1, 30)))
        self.assertEqual(None, Babysit.test_and_calculate(
            self.babysitter, time(13, 30), time(22, 30), time(3, 30)))
        self.assertEqual(None, Babysit.test_and_calculate(
            self.babysitter, time(20, 30), time(19, 30), time(3, 30)))

    def test_RawInputToTime(self):
        # test if function can convert raw input to time object.
        self.assertEqual(time(12, 34),
                         self.babysitter.convert_raw_input('12:34'))
        self.assertEqual(None, self.babysitter.convert_raw_input('25:34'))
        self.assertEqual(None, self.babysitter.convert_raw_input('12:65'))
        self.assertEqual(None, self.babysitter.convert_raw_input('123654'))
        self.assertEqual(None, self.babysitter.convert_raw_input('3:45'))
        self.assertEqual(None, self.babysitter.convert_raw_input('agwgawea'))

    def test_InputStartTime(self):
        self.assertEqual(time(17, 34),
                         self.babysitter.handle_start_input('17:34'))
        self.assertEqual(None, self.babysitter.handle_start_input('asdfdfs'))

    def test_InputBedTime(self):
        self.assertEqual(time(18, 34),
                         self.babysitter.handle_bed_input('18:34'))
        self.assertEqual(None, self.babysitter.handle_bed_input('asdfdfs'))

    def test_InputEndTime(self):
        self.assertEqual(time(18, 34),
                         self.babysitter.handle_end_input('18:34'))
        self.assertEqual(None, self.babysitter.handle_end_input('asdfdfs'))
Пример #10
0
 def setUp(self):
     # init babysitter class
     self.babysitter = Babysit()