Example #1
0
        public virtual void test_of()
        {
            SeasonalityDefinition test = SeasonalityDefinition.of(SEASONALITY_ADDITIVE, ADDITIVE);

            assertEquals(test.SeasonalityMonthOnMonth, SEASONALITY_ADDITIVE);
            assertEquals(test.AdjustmentType, ADDITIVE);
        }
Example #2
0
            public override Builder set(string propertyName, object newValue)
            {
                switch (propertyName.GetHashCode())
                {
                case -249814055:         // curveWithoutFixingDefinition
                    this.curveWithoutFixingDefinition = (NodalCurveDefinition)newValue;
                    break;

                case -1842439587:         // lastFixingMonth
                    this.lastFixingMonth = (YearMonth)newValue;
                    break;

                case -1834546866:         // lastFixingValue
                    this.lastFixingValue = (double?)newValue.Value;
                    break;

                case 1835044115:         // seasonalityDefinition
                    this.seasonalityDefinition = (SeasonalityDefinition)newValue;
                    break;

                default:
                    throw new NoSuchElementException("Unknown property: " + propertyName);
                }
                return(this);
            }
	  //-------------------------------------------------------------------------
	  public virtual void coverage()
	  {
		InflationNodalCurveDefinition test = new InflationNodalCurveDefinition(UNDERLYING_DEF, LAST_FIX_MONTH, LAST_FIX_VALUE, SEASONALITY_DEF);
		coverImmutableBean(test);
		InterpolatedNodalCurveDefinition underlyingDef2 = InterpolatedNodalCurveDefinition.builder().name(CurveName.of("foo")).xValueType(ValueType.YEAR_FRACTION).yValueType(ValueType.ZERO_RATE).dayCount(ACT_365F).nodes(NODES).interpolator(CurveInterpolators.LINEAR).extrapolatorLeft(CurveExtrapolators.FLAT).extrapolatorRight(CurveExtrapolators.FLAT).build();
		SeasonalityDefinition seasonalityDef2 = SeasonalityDefinition.of(SEASONALITY_ADDITIVE, ShiftType.SCALED);
		InflationNodalCurveDefinition test2 = new InflationNodalCurveDefinition(underlyingDef2, LAST_FIX_MONTH.plus(Period.ofMonths(1)), LAST_FIX_VALUE + 1.0d, seasonalityDef2);
		coverBeanEquals(test, test2);
	  }
Example #4
0
        //-------------------------------------------------------------------------
        public virtual void coverage()
        {
            SeasonalityDefinition test = SeasonalityDefinition.of(SEASONALITY_ADDITIVE, ADDITIVE);

            coverImmutableBean(test);
            DoubleArray           seasonalityMultiplicative = DoubleArray.of(1.0, 1.0, 1.1d, 1.0, 1.0, 1.0, 1.0d / 1.1d, 1.0, 1.0, 1.0, 1.0, 1.0);
            SeasonalityDefinition test2 = SeasonalityDefinition.of(seasonalityMultiplicative, ShiftType.SCALED);

            coverBeanEquals(test, test2);
        }
Example #5
0
 //-----------------------------------------------------------------------
 public override bool Equals(object obj)
 {
     if (obj == this)
     {
         return(true);
     }
     if (obj != null && obj.GetType() == this.GetType())
     {
         SeasonalityDefinition other = (SeasonalityDefinition)obj;
         return(JodaBeanUtils.equal(seasonalityMonthOnMonth, other.seasonalityMonthOnMonth) && JodaBeanUtils.equal(adjustmentType, other.adjustmentType));
     }
     return(false);
 }
Example #6
0
        //-------------------------------------------------------------------------
        // restricted constructor
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @ImmutableConstructor InflationNodalCurveDefinition(NodalCurveDefinition curveWithoutFixing, java.time.YearMonth lastFixingMonth, double lastFixingValue, SeasonalityDefinition seasonalityDefinition)
        internal InflationNodalCurveDefinition(NodalCurveDefinition curveWithoutFixing, YearMonth lastFixingMonth, double lastFixingValue, SeasonalityDefinition seasonalityDefinition)
        {
            this.curveWithoutFixingDefinition = curveWithoutFixing;
            this.lastFixingMonth = lastFixingMonth;
            this.lastFixingValue = lastFixingValue;
            if (seasonalityDefinition == null)
            {
                this.seasonalityDefinition = NO_SEASONALITY_DEFINITION;
            }
            else
            {
                this.seasonalityDefinition = seasonalityDefinition;
            }
        }
Example #7
0
        /// <summary>
        /// Obtains an instance from a curve without initial fixing point and month-on-month seasonal adjustment.
        /// <para>
        /// The total adjustment is computed by accumulation of the monthly adjustment, starting with no adjustment for the
        /// last fixing month.
        ///
        /// </para>
        /// </summary>
        /// <param name="curveWithoutFixing">  the curve without the fixing </param>
        /// <param name="valuationDate">  the valuation date of the curve </param>
        /// <param name="lastMonth">  the last month for which the fixing is known </param>
        /// <param name="lastFixingValue">  the value of the last fixing </param>
        /// <param name="seasonalityDefinition">  the seasonality definition, which is made of month-on-month adjustment
        ///   and the adjustment type </param>
        /// <returns> the seasonal curve instance </returns>
        public static InflationNodalCurve of(NodalCurve curveWithoutFixing, LocalDate valuationDate, YearMonth lastMonth, double lastFixingValue, SeasonalityDefinition seasonalityDefinition)
        {
            YearMonth valuationMonth = YearMonth.from(valuationDate);

            ArgChecker.isTrue(lastMonth.isBefore(valuationMonth), "Last fixing month must be before valuation date");
            double      nbMonth = valuationMonth.until(lastMonth, MONTHS);
            DoubleArray x       = curveWithoutFixing.XValues;

            ArgChecker.isTrue(nbMonth < x.get(0), "The first estimation month should be after the last known index fixing");
            NodalCurve extendedCurve = curveWithoutFixing.withNode(nbMonth, lastFixingValue, ParameterMetadata.empty());

            double[] seasonalityCompoundedArray = new double[12];
            int      lastMonthIndex             = lastMonth.Month.Value - 1;

            seasonalityCompoundedArray[(int)((nbMonth + 12 + 1) % 12)] = seasonalityDefinition.SeasonalityMonthOnMonth.get(lastMonthIndex % 12);
            for (int i = 1; i < 12; i++)
            {
                int j = (int)((nbMonth + 12 + 1 + i) % 12);
                seasonalityCompoundedArray[j] = seasonalityDefinition.AdjustmentType.applyShift(seasonalityCompoundedArray[(j - 1 + 12) % 12], seasonalityDefinition.SeasonalityMonthOnMonth.get((lastMonthIndex + i) % 12));
            }
            return(new InflationNodalCurve(extendedCurve, DoubleArray.ofUnsafe(seasonalityCompoundedArray), seasonalityDefinition.AdjustmentType));
        }
Example #8
0
        public virtual void test_serialization()
        {
            SeasonalityDefinition test = SeasonalityDefinition.of(SEASONALITY_ADDITIVE, ADDITIVE);

            assertSerialization(test);
        }
Example #9
0
 /// <summary>
 /// Adds a seasonality to the curve group definition.
 /// </summary>
 /// <param name="curveName">  the name of the curve </param>
 /// <param name="seasonalityDefinition">  the seasonality associated to the curve </param>
 /// <returns> this builder </returns>
 public RatesCurveGroupDefinitionBuilder addSeasonality(CurveName curveName, SeasonalityDefinition seasonalityDefinition)
 {
     seasonalityDefinitions[curveName] = seasonalityDefinition;
     return(this);
 }