public void WageDollarTransformations_MatchingFrequencies()
        {
            decimal dailyAmount = 1000M;

            decimal answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.DAILY,
                                                                 targetFrequency: TransformDollarsByFrequency.Frequency.DAILY,
                                                                 amount: dailyAmount);

            Assert.Equal(dailyAmount, answer);
        }
        public void WageDollarTransformations_TransformationFromDaily()
        {
            decimal dailyAmount          = 400M;
            decimal expectedHourlyAmount = dailyAmount / 8M;
            decimal expectedWeeklyAmount = dailyAmount * 5M;
            decimal expectedTwoWeeks     = expectedWeeklyAmount * 2;
            decimal expectedMonthly      = (expectedWeeklyAmount * 52) / 12;
            decimal expectedSemiMonthly  = expectedMonthly / 2;
            decimal expectedQuarterly    = expectedMonthly * 3;
            decimal expectedSemiAnnual   = expectedMonthly * 6;
            decimal expectedAnnual       = expectedMonthly * 12;

            decimal answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.DAILY,
                                                                 targetFrequency: TransformDollarsByFrequency.Frequency.HOURLY,
                                                                 amount: dailyAmount);

            AssertInRange(expectedHourlyAmount, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.DAILY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.DAILY,
                                                         amount: dailyAmount);

            AssertInRange(dailyAmount, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.DAILY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.WEEKLY,
                                                         amount: dailyAmount);

            AssertInRange(expectedWeeklyAmount, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.DAILY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.EVERY_TWO_WEEKS,
                                                         amount: dailyAmount);

            AssertInRange(expectedTwoWeeks, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.DAILY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.SEMI_MONTHLY,
                                                         amount: dailyAmount);

            AssertInRange(expectedSemiMonthly, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.DAILY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.MONTHLY,
                                                         amount: dailyAmount);

            AssertInRange(expectedMonthly, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.DAILY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.QUARTERLY,
                                                         amount: dailyAmount);

            AssertInRange(expectedQuarterly, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.DAILY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.SEMI_ANNUALLY,
                                                         amount: dailyAmount);

            AssertInRange(expectedSemiAnnual, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.DAILY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.ANNUALLY,
                                                         amount: dailyAmount);

            AssertInRange(expectedAnnual, answer);
        }
Example #3
0
        public void WageDollarTransformations_TransformationFromDaily()
        {
            decimal dailyAmount          = 400M;
            decimal expectedHourlyAmount = dailyAmount / 8M;
            decimal expectedWeeklyAmount = dailyAmount * 5M;
            decimal expectedTwoWeeks     = expectedWeeklyAmount * 2;
            decimal expectedMonthly      = (expectedWeeklyAmount * 52) / 12;
            decimal expectedSemiMonthly  = expectedMonthly / 2;
            decimal expectedQuarterly    = expectedMonthly * 3;
            decimal expectedSemiAnnual   = expectedMonthly * 6;
            decimal expectedAnnual       = expectedMonthly * 12;

            decimal answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.Daily,
                                                                 targetFrequency: TransformDollarsByFrequency.Frequency.Hourly,
                                                                 amount: dailyAmount);

            AssertInRange(expectedHourlyAmount, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.Daily,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.Daily,
                                                         amount: dailyAmount);

            AssertInRange(dailyAmount, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.Daily,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.Weekly,
                                                         amount: dailyAmount);

            AssertInRange(expectedWeeklyAmount, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.Daily,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.EveryTwoWeeks,
                                                         amount: dailyAmount);

            AssertInRange(expectedTwoWeeks, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.Daily,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.SemiMonthly,
                                                         amount: dailyAmount);

            AssertInRange(expectedSemiMonthly, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.Daily,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.Monthly,
                                                         amount: dailyAmount);

            AssertInRange(expectedMonthly, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.Daily,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.Quarterly,
                                                         amount: dailyAmount);

            AssertInRange(expectedQuarterly, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.Daily,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.SemiAnnually,
                                                         amount: dailyAmount);

            AssertInRange(expectedSemiAnnual, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.Daily,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.Annually,
                                                         amount: dailyAmount);

            AssertInRange(expectedAnnual, answer);
        }
        public void WageDollarTransformations_TransformationFromAnnually()
        {
            decimal baseAmount            = 50000M;
            decimal expectedDailyAmount   = baseAmount / (52M * 5M);
            decimal expectedHourlyAmount  = expectedDailyAmount / 8M;
            decimal expectedWeekly        = expectedDailyAmount * 5M;
            decimal expectedSemiMonthly   = baseAmount / 24M;
            decimal expectedEveryTwoWeeks = baseAmount / 26M;
            decimal expectedMonthly       = baseAmount / 12M;
            decimal expectedQuarterly     = expectedMonthly * 3M;
            decimal expectedSemiAnnually  = baseAmount / 2M;

            decimal answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.ANNUALLY,
                                                                 targetFrequency: TransformDollarsByFrequency.Frequency.HOURLY,
                                                                 amount: baseAmount);

            AssertInRange(expectedHourlyAmount, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.ANNUALLY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.DAILY,
                                                         amount: baseAmount);

            AssertInRange(expectedDailyAmount, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.ANNUALLY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.WEEKLY,
                                                         amount: baseAmount);

            AssertInRange(expectedWeekly, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.ANNUALLY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.EVERY_TWO_WEEKS,
                                                         amount: baseAmount);

            AssertInRange(expectedEveryTwoWeeks, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.ANNUALLY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.SEMI_MONTHLY,
                                                         amount: baseAmount);

            AssertInRange(expectedSemiMonthly, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.ANNUALLY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.MONTHLY,
                                                         amount: baseAmount);

            AssertInRange(expectedMonthly, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.ANNUALLY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.QUARTERLY,
                                                         amount: baseAmount);

            AssertInRange(expectedQuarterly, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.ANNUALLY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.SEMI_ANNUALLY,
                                                         amount: baseAmount);

            AssertInRange(expectedSemiAnnually, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.ANNUALLY,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.ANNUALLY,
                                                         amount: baseAmount);

            AssertInRange(baseAmount, answer);
        }
Example #5
0
        public void WageDollarTransformations_TransformationFromSemiAnnually()
        {
            decimal baseAmount            = 25000M;
            decimal expectedDailyAmount   = (baseAmount * 2M) / (52M * 5M);
            decimal expectedHourlyAmount  = expectedDailyAmount / 8M;
            decimal expectedWeekly        = expectedDailyAmount * 5M;
            decimal expectedSemiMonthly   = (baseAmount * 2M) / 24M;
            decimal expectedEveryTwoWeeks = (baseAmount * 2M) / 26M;
            decimal expectedMonthly       = baseAmount * 2M / 12M;
            decimal expectedQuarterly     = expectedMonthly * 3M;
            decimal expectedAnnual        = expectedMonthly * 12M;

            decimal answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.SemiAnnually,
                                                                 targetFrequency: TransformDollarsByFrequency.Frequency.Hourly,
                                                                 amount: baseAmount);

            AssertInRange(expectedHourlyAmount, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.SemiAnnually,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.Daily,
                                                         amount: baseAmount);

            AssertInRange(expectedDailyAmount, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.SemiAnnually,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.Weekly,
                                                         amount: baseAmount);

            AssertInRange(expectedWeekly, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.SemiAnnually,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.EveryTwoWeeks,
                                                         amount: baseAmount);

            AssertInRange(expectedEveryTwoWeeks, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.SemiAnnually,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.SemiMonthly,
                                                         amount: baseAmount);

            AssertInRange(expectedSemiMonthly, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.SemiAnnually,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.Monthly,
                                                         amount: baseAmount);

            AssertInRange(expectedMonthly, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.SemiAnnually,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.Quarterly,
                                                         amount: baseAmount);

            AssertInRange(expectedQuarterly, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.SemiAnnually,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.SemiAnnually,
                                                         amount: baseAmount);

            AssertInRange(baseAmount, answer);

            answer = TransformDollarsByFrequency.Convert(sourceFrequency: TransformDollarsByFrequency.Frequency.SemiAnnually,
                                                         targetFrequency: TransformDollarsByFrequency.Frequency.Annually,
                                                         amount: baseAmount);

            AssertInRange(expectedAnnual, answer);
        }