Пример #1
0
        public void FamilyANightRateTests()
        {
            var familyRateRange = new FamilyARateRangeList();

            //Test Full night with family A | 15$ per hour for 6 hours between 5pm and 11pm = 90, 20$ hour for 5 hours between 11pm and 4am = 100
            var nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval(), familyRateRange);

            Assert.IsTrue(nightlyPay == 190);

            //Test night with family A overlapping both pay rate schedules | 15$ per hour for 1 hour between 10pm and 11pm,
            //20$ hour for 2 hours between 11pm and 1am = 55
            nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval()
            {
                EndingTime24H   = 1,
                StartingTime24H = 22
            },
                                                                                              familyRateRange);
            Assert.IsTrue(nightlyPay == 55);

            //Test night with family A all hours in first pay rate window | 15$ per hour for 3 hour between 6pm and 9pm = 45
            nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval()
            {
                EndingTime24H   = 21,
                StartingTime24H = 18
            },
                                                                                              familyRateRange);
            Assert.IsTrue(nightlyPay == 45);

            //Test night with family A all hours in second pay rate window | 20$ per hour for 4 hours between 12pm and 4am = 80
            nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval()
            {
                EndingTime24H   = 4,
                StartingTime24H = 24
            },
                                                                                              familyRateRange);
            Assert.IsTrue(nightlyPay == 80);
        }
Пример #2
0
        public void FamilyCNightRateTests()
        {
            var familyRateRange = new FamilyCRateRangeList();

            //Test Full night with family C | 21$ per hour for 4 hours between 5pm and 9pm, 15$ hour for 7 hours between 9pm and 4am = 195
            var nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval(), familyRateRange);

            Assert.IsTrue(nightlyPay == 189);

            //Test night with family C overlapping both pay rate schedules | 21$ per hour for 2 hours between 7pm and 9pm,
            //15$ hour for 3 hours between 9pm and 12am = 87
            nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval()
            {
                EndingTime24H   = 24,
                StartingTime24H = 19
            },
                                                                                              familyRateRange);
            Assert.IsTrue(nightlyPay == 87);

            //Test night with family C all hours in first pay rate window | 21$ per hour for 4 hours between 5pm and 9pm = 84
            nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval()
            {
                EndingTime24H = 21
            },
                                                                                              familyRateRange);
            Assert.IsTrue(nightlyPay == 84);

            //Test night with family C all hours in second pay rate window | 15$ per hour for 5 hours between 11pm and 4am = 75
            nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval()
            {
                EndingTime24H   = 4,
                StartingTime24H = 23
            },
                                                                                              familyRateRange);
            Assert.IsTrue(nightlyPay == 75);
        }
Пример #3
0
        public void FamilyBNightRateTests()
        {
            var familyRateRange = new FamilyBRateRangeList();
            //Test Full night with family B | $12 per hour before 10pm, $8 between 10 and 12, and $16 the rest of the night = 140
            var nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval(), familyRateRange);

            Assert.IsTrue(nightlyPay == 140);

            //Test night with family B overlapping all pay rate schedules | 12$ per hour for 1 hour between 9pm and 10pm
            //8$ hour for 2 hours between 10pm and 12pm and 16$ for 2 hours between 12pm and 2am = 60
            nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval()
            {
                EndingTime24H   = 2,
                StartingTime24H = 21
            },
                                                                                              familyRateRange);
            Assert.IsTrue(nightlyPay == 60);

            //Test night with family B all hours in first pay rate window | 12$ per hour for 4 hours between 5pm and 9pm = 48
            nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval()
            {
                EndingTime24H = 21,
            },
                                                                                              familyRateRange);
            Assert.IsTrue(nightlyPay == 48);

            //Test night with family B all hours in second pay rate window | 8$ hour for 1 hours between 10pm and 11pm = 8
            nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval()
            {
                EndingTime24H   = 23,
                StartingTime24H = 22
            },
                                                                                              familyRateRange);
            Assert.IsTrue(nightlyPay == 8);

            //Test night with family B all hours in third pay rate window | $16 hour for 3 hours between 1am and 4am = 48
            nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval()
            {
                EndingTime24H   = 4,
                StartingTime24H = 1
            },
                                                                                              familyRateRange);
            Assert.IsTrue(nightlyPay == 48);

            //Test night with family B overlapping first two pay rate schedules | 12$ per hour for 2 hours between 8pm and 10pm,
            //8$ hour for 1 hour between 10pm and 11pm = 32
            nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval()
            {
                EndingTime24H   = 23,
                StartingTime24H = 20
            },
                                                                                              familyRateRange);
            Assert.IsTrue(nightlyPay == 32);



            //Test night with family B overlapping final two pay rate schedules | 8$ per hour for 1 hour between 11pm and 12pm,
            //16$ hour for 4 hours between 12am and 4am = 72
            nightlyPay = NightlyTotalPayCalculator.CalculateAmountOwedForGivenNightlySchedule(new ScheduledInterval()
            {
                StartingTime24H = 23
            },
                                                                                              familyRateRange);
            Assert.IsTrue(nightlyPay == 72);
        }