public virtual void test_of() { SeasonalityDefinition test = SeasonalityDefinition.of(SEASONALITY_ADDITIVE, ADDITIVE); assertEquals(test.SeasonalityMonthOnMonth, SEASONALITY_ADDITIVE); assertEquals(test.AdjustmentType, ADDITIVE); }
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); }
//------------------------------------------------------------------------- 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); }
//----------------------------------------------------------------------- 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); }
//------------------------------------------------------------------------- // 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; } }
/// <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)); }
public virtual void test_serialization() { SeasonalityDefinition test = SeasonalityDefinition.of(SEASONALITY_ADDITIVE, ADDITIVE); assertSerialization(test); }
/// <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); }