QLNet.MultiplicativePriceSeasonality.isConsistent C# (CSharp) Метод

isConsistent() публичный Метод

public isConsistent ( QLNet.InflationTermStructure iTS ) : bool
iTS QLNet.InflationTermStructure
Результат bool
        public virtual bool isConsistent(InflationTermStructure iTS)
        {
            // If multi-year is the specification consistent with the term structure start date?
             // We do NOT test daily seasonality because this will, in general, never be consistent
             // given weekends, holidays, leap years, etc.
             if(this.frequency() == Frequency.Daily) return true;
             if( (int)this.frequency() == seasonalityFactors().Count ) return true;

             // how many years do you need to test?
             int nTest = seasonalityFactors().Count / (int)this.frequency();
             // ... relative to the start of the inflation curve
             KeyValuePair<Date,Date> lim = Utils.inflationPeriod(iTS.baseDate(), iTS.frequency());
             Date curveBaseDate = lim.Value;
             double factorBase = this.seasonalityFactor(curveBaseDate);

             double eps = 0.00001;
             for (int i = 1; i < nTest; i++)
             {
            double factorAt = this.seasonalityFactor(curveBaseDate+new Period(i,TimeUnit.Years));
            if (Math.Abs(factorAt-factorBase)>=eps)
               throw new ApplicationException("seasonality is inconsistent with inflation " +
                        "term structure, factors " + factorBase + " and later factor "
                        + factorAt + ", " + i + " years later from inflation curve "
                        + " with base date at " + curveBaseDate);
             }

             return true;
        }