public void TestAddItems()
        {
            var testSubject = new AmericanEmployment();

            var testResult = testSubject.Total;

            Assert.AreEqual(Pecuniam.Zero, testResult);
            testResult = testSubject.TotalAnnualNetPay;
            Assert.AreEqual(Pecuniam.Zero, testResult);

            var v = 55000M.ToPecuniam();

            var occ = new SocDetailedOccupation {
                Value = "Accountant"
            };

            testSubject.Occupation = occ;
            testSubject.AddItem("Salary", null, 55000.0);
            testResult = testSubject.Total;
            Assert.AreEqual(v, testResult);
            testResult = testSubject.TotalAnnualNetPay;
            Assert.AreEqual(v, testResult);

            var tax = new AmericanDeductions(testSubject);

            testSubject.Deductions = tax;
            testResult             = testSubject.Total;
            Assert.AreEqual(v, testResult);
            testResult = testSubject.TotalAnnualNetPay;
            Assert.AreEqual(v, testResult);

            var fedTax = 55000.0D * AmericanEquations.FederalIncomeTaxRate.SolveForY(55000.0);

            tax.AddItem("Federal", null, fedTax);
            testResult = testSubject.Total;
            Assert.AreEqual(v, testResult);
            testResult = testSubject.TotalAnnualNetPay;
            Assert.AreEqual((55000.0D - fedTax).ToPecuniam(), testResult);

            testSubject.AddItem("Commission", null, 5000.0D);
            testResult = testSubject.Total;
            Assert.AreEqual(60000.ToPecuniam(), testResult);
            testResult = testSubject.TotalAnnualNetPay;
            Assert.AreEqual(49841.5.ToPecuniam(), testResult);
        }
        public void TestToData()
        {
            var testSubject = new IObviate[]
            {
                SocBoardGroup.RandomSocBoardGroup(), SocMajorGroup.RandomSocMajorGroup(),
                SocMinorGroup.RandomSocMinorGroup(), SocDetailedOccupation.RandomSocDetailedOccupation()
            };

            foreach (var ts in testSubject)
            {
                Console.WriteLine();
                var testResult = ts.ToData(KindsOfTextCase.Kabab);
                Assert.IsNotNull(testResult);
                Assert.AreNotEqual(0, testResult.Count);
                foreach (var k in testResult.Keys)
                {
                    Console.WriteLine($"{k}: {testResult[k]}");
                }
            }
        }
Example #3
0
        public void TestAddItems()
        {
            var testSubject = new AmericanIncome();

            var testResult = testSubject.TotalAnnualGrossEmploymentIncome;

            Assert.AreEqual(Pecuniam.Zero, testResult);
            testResult = testSubject.TotalAnnualNetEmploymentIncome;
            Assert.AreEqual(Pecuniam.Zero, testResult);
            testResult = testSubject.Total;
            Assert.AreEqual(Pecuniam.Zero, testResult);

            testSubject.AddItem("stocks", "securities", 9000.0D.ToPecuniam());

            testResult = testSubject.TotalAnnualGrossEmploymentIncome;
            Assert.AreEqual(Pecuniam.Zero, testResult);
            testResult = testSubject.TotalAnnualNetEmploymentIncome;
            Assert.AreEqual(Pecuniam.Zero, testResult);
            testResult = testSubject.Total;
            Assert.AreEqual(9000.0D.ToPecuniam(), testResult);

            testSubject.AddItem("savings", "Banks", 600.0D.ToPecuniam());

            testResult = testSubject.TotalAnnualGrossEmploymentIncome;
            Assert.AreEqual(Pecuniam.Zero, testResult);
            testResult = testSubject.TotalAnnualNetEmploymentIncome;
            Assert.AreEqual(Pecuniam.Zero, testResult);
            testResult = testSubject.Total;
            Assert.AreEqual(9600.0D.ToPecuniam(), testResult);

            var testEmployment = new AmericanEmployment();
            var occ            = new SocDetailedOccupation {
                Value = "Accountant"
            };

            testEmployment.Occupation = occ;
            testEmployment.AddItem("Salary", null, 55000.0);

            testSubject.AddEmployment(testEmployment);
            testResult = testSubject.TotalAnnualGrossEmploymentIncome;
            Assert.AreEqual(55000.0.ToPecuniam(), testResult);
            testResult = testSubject.TotalAnnualNetEmploymentIncome;
            Assert.AreEqual(55000.0.ToPecuniam(), testResult);
            testResult = testSubject.Total;
            Assert.AreEqual((55000.0 + 9600.0D).ToPecuniam(), testResult);

            var tax = new AmericanDeductions(testEmployment);

            testEmployment.Deductions = tax;

            var fedTax = 55000.0D * AmericanEquations.FederalIncomeTaxRate.SolveForY(55000.0);

            tax.AddItem("Federal", null, fedTax);

            testResult = testSubject.TotalAnnualGrossEmploymentIncome;
            Assert.AreEqual(55000.0.ToPecuniam(), testResult);
            testResult = testSubject.TotalAnnualNetEmploymentIncome;
            Assert.AreEqual((55000.0 - fedTax).ToPecuniam(), testResult);
            testResult = testSubject.Total;
            Assert.AreEqual((55000.0 + 9600.0D - fedTax).ToPecuniam(), testResult);
        }