/// <inheritdoc/> public override void Validate(ICalendarData calendar, ErrorList errors) { base.Validate(calendar, errors); if (Principal < 0.0) { AddToErrors(errors, ErrorLevel.Error, "Principal cannot be negative."); } CalcUtils.ValidateDates(errors, Accrual_Start_Date, Accrual_End_Date, false, "accrual start", "accrual end"); CalcUtils.ValidateDates(errors, Reset_Date, Rate_Start_Date, false, "reset", "rate start"); CalcUtils.ValidateDates(errors, Reset_Date, Payment_Date, false, "reset", "payment"); if (Rate_1_End_Date > 0.0) { CalcUtils.ValidateDates(errors, Rate_Start_Date, Rate_1_End_Date, true, "rate start", "first rate end"); } if (Rate_2_End_Date > 0.0) { CalcUtils.ValidateDates(errors, Rate_Start_Date, Rate_2_End_Date, true, "rate start", "second rate end"); } if (!Rate_1_Tenor.IsPositiveOrZero()) { AddToErrors(errors, ErrorLevel.Error, "First rate tenor must be positive or zero."); } if (!Rate_2_Tenor.IsPositiveOrZero()) { AddToErrors(errors, ErrorLevel.Error, "Second rate tenor must be positive or zero."); } }
/// <summary> /// Returns true if first referenced rate is specified. /// </summary> public bool HasRate1() { return(!Rate_1_Tenor.IsZero() || Rate_1_End_Date > 0.0); }