public static IYearSequence <T> Fill <T>(this IYearSequence <T> years, int from, int to, Func <T, T> fun)
        {
            var newYears = years.Copy();

            foreach (var y in Enumerable.Range(from, to - from + 1))
            {
                newYears[y] = fun(newYears[y]);
            }
            return(newYears);
        }
        public IYearSequence <Money> CalculateContribution(IYearSequence <Money> salaryPrYear)
        {
            var min  = Math.Min(salaryPrYear.Min, PercentOfSalary.Min);
            var max  = Math.Max(salaryPrYear.Max, PercentOfSalary.Max);
            var r    = new YearSequence <Money>();
            var zero = new Percent(0m);

            foreach (var y in Enumerable.Range(min, max - min + 1))
            {
                r[y] = salaryPrYear[y] * (PercentOfSalary[y] ?? zero);
            }

            return(r);
        }
 public AbstractProduct(int id, IYearSequence <Money> max)
 {
     Id    = id;
     Max   = max;
     Takes = max.Copy();
 }
 // TODO: Input should be TimeSeries.
 public ContributionAsPercent(IYearSequence <Percent> percentOfSalary)
 {
     PercentOfSalary = percentOfSalary;
 }
Example #5
0
 // TODO: Input should be TimeSeries.
 public ContributionAsAmount(IYearSequence <Money> contirbution)
 {
     _contribution = contirbution;
 }
Example #6
0
 public IYearSequence <Money> CalculateContribution(IYearSequence <Money> salaryPrYear)
 {
     return(_contribution);
 }