protected DatedDataCollectionGen<double> ensureAllWeekdays(DatedDataCollectionGen<double> input_) { var dates = new List<DateTime>(); var values = new List<double>(); var date = input_.Dates[0]; while (date <= input_.Dates.Last()) { int index = input_.IndexOf(date); if (index == -1) { dates.Add(date); values.Add(double.NaN); } else { dates.Add(input_.Dates[index]); values.Add(input_.Data[index]); } date = MyCalendar.NextWeekDay(date); } return new DatedDataCollectionGen<double>(dates.ToArray(), values.ToArray()); }
public static DatedDataCollectionGen<double> ensureAllWeekdays(DatedDataCollectionGen<double> input_, bool insertNan_ = true) { var dates = new List<DateTime>(); var values = new List<double>(); var date = input_.Dates[0]; double previous = input_.Data[0]; while (date <= input_.Dates.Last()) { int index = input_.IndexOf(date); if (index == -1) { dates.Add(date); if (insertNan_) values.Add(double.NaN); else values.Add(previous); } else { dates.Add(input_.Dates[index]); values.Add(input_.Data[index]); previous = input_.Data[index]; } date = NextWeekDay(date); } return new DatedDataCollectionGen<double>(dates.ToArray(), values.ToArray()); }