Пример #1
0
        /// <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.");
            }
        }
Пример #2
0
 /// <summary>
 /// Returns true if first referenced rate is specified.
 /// </summary>
 public bool HasRate1()
 {
     return(!Rate_1_Tenor.IsZero() || Rate_1_End_Date > 0.0);
 }