public virtual void test_of() { CurveNodeDateOrder test = CurveNodeDateOrder.of(2, CurveNodeClashAction.DROP_THIS); assertEquals(test.MinGapInDays, 2); assertEquals(test.Action, CurveNodeClashAction.DROP_THIS); }
public virtual void test_DEFAULT() { CurveNodeDateOrder test = CurveNodeDateOrder.DEFAULT; assertEquals(test.MinGapInDays, 1); assertEquals(test.Action, CurveNodeClashAction.EXCEPTION); }
//------------------------------------------------------------------------- public virtual void coverage() { CurveNodeDateOrder test = CurveNodeDateOrder.of(2, CurveNodeClashAction.DROP_THIS); coverImmutableBean(test); CurveNodeDateOrder test2 = CurveNodeDateOrder.of(3, CurveNodeClashAction.DROP_OTHER); coverBeanEquals(test, test2); }
//----------------------------------------------------------------------- public override bool Equals(object obj) { if (obj == this) { return(true); } if (obj != null && obj.GetType() == this.GetType()) { CurveNodeDateOrder other = (CurveNodeDateOrder)obj; return((minGapInDays == other.minGapInDays) && JodaBeanUtils.equal(action, other.action)); } return(false); }
private DummyFraCurveNode(Period periodToStart, Period periodToEnd, ObservableId rateId, double spread, string label, CurveNodeDateOrder order) { JodaBeanUtils.notNull(periodToStart, "periodToStart"); JodaBeanUtils.notNull(periodToEnd, "periodToEnd"); JodaBeanUtils.notNull(rateId, "rateId"); JodaBeanUtils.notEmpty(label, "label"); JodaBeanUtils.notNull(order, "order"); this.periodToStart = periodToStart; this.periodToEnd = periodToEnd; this.rateId = rateId; this.spread = spread; this.label = label; this.order = order; }
//------------------------------------------------------------------------- public InterpolatedNodalCurveDefinition filtered(LocalDate valuationDate, ReferenceData refData) { // mutable list of date-node pairs //JAVA TO C# CONVERTER TODO TASK: Method reference constructor syntax is not converted by Java to C# Converter: //JAVA TO C# CONVERTER TODO TASK: Most Java stream collectors are not converted by Java to C# Converter: List <Pair <LocalDate, CurveNode> > nodeDates = nodes.Select(node => Pair.of(node.date(valuationDate, refData), node)).collect(toCollection(List <object>::new)); // delete nodes if clash, but don't throw exceptions yet for (int i = 0; i < nodeDates.Count; i++) { Pair <LocalDate, CurveNode> pair = nodeDates[i]; CurveNodeDateOrder restriction = pair.Second.DateOrder; // compare node to previous node if (i > 0) { Pair <LocalDate, CurveNode> pairBefore = nodeDates[i - 1]; if (DAYS.between(pairBefore.First, pair.First) < restriction.MinGapInDays) { switch (restriction.Action) { case DROP_THIS: nodeDates.RemoveAt(i); i = -1; // restart loop goto loopContinue; case DROP_OTHER: nodeDates.RemoveAt(i - 1); i = -1; // restart loop goto loopContinue; case EXCEPTION: break; // do nothing yet break; } } } // compare node to next node if (i < nodeDates.Count - 1) { Pair <LocalDate, CurveNode> pairAfter = nodeDates[i + 1]; if (DAYS.between(pair.First, pairAfter.First) < restriction.MinGapInDays) { switch (restriction.Action) { case DROP_THIS: nodeDates.Remove(i); i = -1; // restart loop goto loopContinue; case DROP_OTHER: nodeDates.Remove(i + 1); i = -1; // restart loop goto loopContinue; case EXCEPTION: break; // do nothing yet break; } } } loopContinue :; } loopBreak : // throw exceptions if rules breached for (int i = 0; i < nodeDates.Count; i++) { Pair <LocalDate, CurveNode> pair = nodeDates[i]; CurveNodeDateOrder restriction = pair.Second.DateOrder; // compare node to previous node if (i > 0) { Pair <LocalDate, CurveNode> pairBefore = nodeDates[i - 1]; if (DAYS.between(pairBefore.First, pair.First) < restriction.MinGapInDays) { throw new System.ArgumentException(Messages.format("Curve node dates clash, node '{}' and '{}' resolved to dates '{}' and '{}' respectively", pairBefore.Second.Label, pair.Second.Label, pairBefore.First, pair.First)); } } // compare node to next node if (i < nodeDates.Count - 1) { Pair <LocalDate, CurveNode> pairAfter = nodeDates[i + 1]; if (DAYS.between(pair.First, pairAfter.First) < restriction.MinGapInDays) { throw new System.ArgumentException(Messages.format("Curve node dates clash, node '{}' and '{}' resolved to dates '{}' and '{}' respectively", pair.Second.Label, pairAfter.Second.Label, pair.First, pairAfter.First)); } } } // return the resolved definition //JAVA TO C# CONVERTER TODO TASK: Most Java stream collectors are not converted by Java to C# Converter: IList <CurveNode> filteredNodes = nodeDates.Select(p => p.Second).collect(toImmutableList()); return(new InterpolatedNodalCurveDefinition(name, xValueType, yValueType, dayCount, filteredNodes, interpolator, extrapolatorLeft, extrapolatorRight)); }
public static DummyFraCurveNode of(Period periodToStart, IborIndex index, ObservableId rateId, CurveNodeDateOrder order) { return(new DummyFraCurveNode(periodToStart, periodToStart.plus(index.Tenor.Period), rateId, 0, "Dummy:" + periodToStart, order)); }
public virtual void test_serialization() { CurveNodeDateOrder test = CurveNodeDateOrder.of(2, CurveNodeClashAction.DROP_THIS); assertSerialization(test); }
public virtual void test_of_invalid() { assertThrowsIllegalArg(() => CurveNodeDateOrder.of(0, CurveNodeClashAction.DROP_THIS)); }