//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void test()
        public virtual void test()
        {
            /// <summary>
            /// Take the form $y = a\sin(bx) + c$
            /// </summary>
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final ParameterizedCurve testCurve = new ParameterizedCurve()
            ParameterizedCurve testCurve = new ParameterizedCurveAnonymousInnerClass(this);

            ParameterizedFunction <double, DoubleArray, DoubleArray> parmSense = new ParameterizedFunctionAnonymousInnerClass(this);

            DoubleArray @params = DoubleArray.of(0.7, -0.3, 1.2);

            System.Func <double, DoubleArray> paramsSenseFD   = testCurve.getYParameterSensitivity(@params);
            System.Func <double, DoubleArray> paramsSenseAnal = parmSense.asFunctionOfArguments(@params);

            for (int i = 0; i < 20; i++)
            {
                double      x  = Math.PI * (-0.5 + i / 19.0);
                DoubleArray s1 = paramsSenseAnal(x);
                DoubleArray s2 = paramsSenseFD(x);
                for (int j = 0; j < 3; j++)
                {
                    assertEquals(s1.get(j), s2.get(j), 1e-10);
                }
            }
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void test()
        public virtual void test()
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final ParameterizedCurve curve = new ParameterizedCurve()
            ParameterizedCurve curve = new ParameterizedCurveAnonymousInnerClass(this);

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final DoublesVectorFunctionProvider pro = new DoublesVectorFunctionProvider()
            DoublesVectorFunctionProvider pro = new DoublesVectorFunctionProviderAnonymousInnerClass(this, curve);

            //a = -2, b = 1, c = 0.5
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final com.opengamma.strata.collect.array.DoubleArray parms = com.opengamma.strata.collect.array.DoubleArray.of(-2.0, 1.0, 0.5);
            DoubleArray parms = DoubleArray.of(-2.0, 1.0, 0.5);

            //sample the curve at x = -1, 0, and 1
            VectorFunction f = pro.from(new double?[] { -1.0, 0.0, 1.0 });
            DoubleArray    y = f.apply(parms);

            AssertMatrix.assertEqualsVectors(DoubleArray.of(-2.5, -2.0, -0.5), y, 1e-15);

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final java.util.List<double> l = new java.util.ArrayList<>(3);
            IList <double> l = new List <double>(3);

            l.Add(0.0);
            l.Add(2.0);
            l.Add(4.0);
            f = pro.from(l);
            y = f.apply(parms);
            AssertMatrix.assertEqualsVectors(DoubleArray.of(-2.0, 2.0, 10.0), y, 1e-15);
        }