Esempio n. 1
0
        public void TestAmericanFinAffidavit()
        {
            var options = AmericanDomusOpesOptions.RandomOpesOptions(
                Domus.US.AmericanUtil.RandomAmericanFirstName(Gender.Female),
                Domus.US.AmericanUtil.RandomAmericanLastName());

            var income = AmericanIncome.RandomIncome(options);

            options.SumTotal = income.Total.ToDouble();
            var assets   = AmericanAssets.RandomAssets(options);
            var expenses = AmericanExpenses.RandomExpenses(options);

            var allItems = income.ToData(KindsOfTextCase.Kabab);

            foreach (var asset in assets.ToData(KindsOfTextCase.Kabab))
            {
                allItems.Add(asset.Key, asset.Value);
            }
            foreach (var expense in expenses.ToData(KindsOfTextCase.Kabab))
            {
                allItems.Add(expense.Key, expense.Value);
            }

            foreach (var key in allItems.Keys)
            {
                Console.WriteLine($"{key}, {allItems[key]}");
            }
        }
Esempio n. 2
0
        public void TestGetYearNeg()
        {
            var testSubject = new AmericanIncome();
            var testResult  = testSubject.GetYearNeg(-3);

            System.Diagnostics.Debug.WriteLine(testResult);
        }
Esempio n. 3
0
        public void TestResolveEmployment()
        {
            var testSubject = new AmericanIncome();
            var testResult  = testSubject.GetRandomEmployment(null, null);

            Assert.IsNotNull(testResult);
            Assert.AreNotEqual(0, testResult.Count);
        }
Esempio n. 4
0
        public void TestGetItemNames2Portions()
        {
            var testInput = new AmericanDomusOpesOptions();
            var grpName   = "Institutional";

            testInput.AddGivenDirectly("Partnerships", grpName, 7800);
            testInput.AddGivenDirectly("Fellowships", grpName, 1000);
            testInput.AddGivenDirectly("Annuity", grpName, 1000);

            testInput.SumTotal = 15000;

            var testSubject = new AmericanIncome();

            var testResults =
                testSubject.GetItemNames2Portions(grpName, testInput);

            Assert.IsNotNull(testResults);
            Assert.AreNotEqual(0, testResults.Count);

            var testResultSum = testResults.Select(kv => kv.Item2).Sum();

            System.Diagnostics.Debug.WriteLine(testResultSum);
            Assert.IsTrue(Math.Round(testResultSum) == 1.0D);

            //expect that when SumTotal is unassigned the ratios align exactly with assigned values
            testInput = new AmericanDomusOpesOptions();
            testInput.AddGivenDirectly("Partnerships", grpName, 7800);
            testInput.AddGivenDirectly("Fellowships", grpName, 1000);
            testInput.AddGivenDirectly("Annuity", grpName, 1000);

            testSubject = new AmericanIncome();
            testResults =
                testSubject.GetItemNames2Portions(grpName, testInput);

            Assert.IsNotNull(testResults);
            Assert.AreNotEqual(0, testResults.Count);

            testResultSum = testResults.Select(kv => kv.Item2).Sum();
            System.Diagnostics.Debug.WriteLine(testResultSum);

            var trWages = testResults.FirstOrDefault(kv => kv.Item1 == "Partnerships");
            var trOt    = testResults.FirstOrDefault(kv => kv.Item1 == "Fellowships");
            var trBonus = testResults.FirstOrDefault(kv => kv.Item1 == "Annuity");

            Assert.IsNotNull(trWages);
            Assert.IsNotNull(trOt);
            Assert.IsNotNull(trBonus);

            Assert.AreEqual(0.796D, Math.Round(trWages.Item2, 3));
            Assert.AreEqual(0.102D, Math.Round(trOt.Item2, 3));
            Assert.AreEqual(0.102D, Math.Round(trBonus.Item2, 3));

            foreach (var tr in testResults)
            {
                System.Diagnostics.Debug.WriteLine(tr);
            }
        }
Esempio n. 5
0
        public void TestGetEmploymentRanges()
        {
            var testSubject = new AmericanIncome();
            var testResult  = testSubject.GetEmploymentRanges(null);

            Assert.IsNotNull(testResult);
            Assert.AreNotEqual(0, testResult.Count);
            Assert.IsNotNull(testResult[0]?.Item1);
        }
Esempio n. 6
0
        public void TestGetRandomIncomeAmount()
        {
            //no args test
            var testSubject = new AmericanIncome();
            var testResult  = testSubject.GetRandomExpectedIncomeAmount(null);

            Assert.IsNotNull(testResult);
            Assert.IsFalse(testResult == Pecuniam.Zero);
            System.Diagnostics.Debug.WriteLine(testResult);
        }
Esempio n. 7
0
        public void TestGetRandomRateFromClassicHook()
        {
            var testSubject = new AmericanIncome();
            var testResult  = testSubject.GetRandomRateFromClassicHook();

            Assert.IsTrue(testResult >= 0D);

            testResult = testSubject.GetRandomRateFromClassicHook(69);
            Assert.IsTrue(testResult > 0D);
            System.Diagnostics.Debug.WriteLine(testResult);
        }
Esempio n. 8
0
        public void TestRandomIncome()
        {
            var testSubject = AmericanIncome.RandomIncome(new AmericanDomusOpesOptions {
                Inception = new DateTime(DateTime.Today.Year, 1, 1)
            });

            Assert.IsNotNull(testSubject);

            Assert.IsNotNull(testSubject.MyItems);
            Assert.AreNotEqual(0, testSubject.MyItems.Count);
        }
Esempio n. 9
0
        public void TestToData()
        {
            var testSubject = AmericanIncome.RandomIncome();
            var testResult  = testSubject.ToData(KindsOfTextCase.Kabab);

            Assert.IsNotNull(testResult);
            Assert.AreNotEqual(0, testResult.Count);
            foreach (var tr in testResult.Keys)
            {
                Console.WriteLine($"{tr}, {testResult[tr]}");
            }
        }
Esempio n. 10
0
        public void TestGetIncomeYearsInDates()
        {
            var testSubject = new AmericanIncome();
            var testResult  = testSubject.GetYearsInDates(testSubject.GetYearNeg(-3));

            Assert.IsNotNull(testResult);
            Assert.AreEqual(4, testResult.Count);

            foreach (var t in testResult)
            {
                System.Diagnostics.Debug.WriteLine(t);
            }
        }
Esempio n. 11
0
        public void TestGetItemNames()
        {
            var testSubject  = new AmericanIncome();
            var testNames    = testSubject.GetItemNames();
            var allNames     = WealthBaseTests.GetExpectedNamesFromXml("income");
            var expectations = allNames.Select(n => n.Item2).Distinct();

            foreach (var tn in testNames)
            {
                Assert.IsTrue(expectations.Any(e => string.Equals(e, tn.Name, StringComparison.OrdinalIgnoreCase)));
                System.Diagnostics.Debug.WriteLine(tn);
            }
        }
Esempio n. 12
0
        public void TestResolveItems()
        {
            var testSubject = new AmericanIncome();

            testSubject.RandomizeAllItems(null);

            Assert.IsNotNull(testSubject.MyItems);
            Assert.AreNotEqual(0, testSubject.MyItems.Count);

            foreach (var item in testSubject.MyItems)
            {
                System.Diagnostics.Debug.WriteLine(item);
            }
        }
Esempio n. 13
0
        public void TestGetJudgementIncomeNames2RandomRates()
        {
            var testSubject = new AmericanIncome();

            var testResult = testSubject.GetJudgmentIncomeNames2RandomRates(null);

            Assert.IsNotNull(testResult);
            Assert.AreNotEqual(0, testResult.Count);

            var testResultSum = testResult.Select(kv => kv.Value).Sum();

            Assert.AreEqual(1D, Math.Round(testResultSum));

            foreach (var rate in testResult)
            {
                System.Diagnostics.Debug.WriteLine(rate);
            }
        }
Esempio n. 14
0
        public void TestCtor()
        {
            var testSubject = new AmericanIncome();

            Assert.IsNotNull(testSubject.MyItems);
            Assert.AreEqual(0, testSubject.MyItems.Count);

            testSubject.AddItem("Lottery", "Subito", 10000D.ToPecuniam());
            var testResultSum = testSubject.Total;

            Assert.IsNotNull(testResultSum);
            Assert.AreNotEqual(Pecuniam.Zero, testResultSum);
            Assert.AreEqual(10000D.ToPecuniam(), testResultSum);

            testSubject.AddItem("something else", "Subitio", 900D.ToPecuniam());
            testResultSum = testSubject.Total;
            Assert.IsNotNull(testResultSum);
            Assert.AreNotEqual(Pecuniam.Zero, testResultSum);
            Assert.AreEqual(10900D.ToPecuniam(), testResultSum);
        }
Esempio n. 15
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);
        }