Example #1
0
        public virtual void test_of()
        {
            CurveNodeDateOrder test = CurveNodeDateOrder.of(2, CurveNodeClashAction.DROP_THIS);

            assertEquals(test.MinGapInDays, 2);
            assertEquals(test.Action, CurveNodeClashAction.DROP_THIS);
        }
Example #2
0
        public virtual void test_DEFAULT()
        {
            CurveNodeDateOrder test = CurveNodeDateOrder.DEFAULT;

            assertEquals(test.MinGapInDays, 1);
            assertEquals(test.Action, CurveNodeClashAction.EXCEPTION);
        }
Example #3
0
        //-------------------------------------------------------------------------
        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);
        }
Example #4
0
 //-----------------------------------------------------------------------
 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;
 }
Example #6
0
        //-------------------------------------------------------------------------
        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));
 }
Example #8
0
        public virtual void test_serialization()
        {
            CurveNodeDateOrder test = CurveNodeDateOrder.of(2, CurveNodeClashAction.DROP_THIS);

            assertSerialization(test);
        }
Example #9
0
 public virtual void test_of_invalid()
 {
     assertThrowsIllegalArg(() => CurveNodeDateOrder.of(0, CurveNodeClashAction.DROP_THIS));
 }