Ejemplo n.º 1
0
        //-------------------------------------------------------------------------
        public virtual void test_of()
        {
            ParameterSize test = ParameterSize.of(CURVE_NAME, 3);

            assertEquals(test.Name, CURVE_NAME);
            assertEquals(test.ParameterCount, 3);
        }
        //-------------------------------------------------------------------------
        /// <summary>
        /// Combines two or more instances to form a single sensitivity instance.
        /// <para>
        /// The result will store information about the separate instances allowing it to be <seealso cref="#split()"/> later.
        ///
        /// </para>
        /// </summary>
        /// <param name="marketDataName">  the combined name of the market data that the sensitivity refers to </param>
        /// <param name="sensitivities">  the sensitivity instances to combine, two or more </param>
        /// <returns> the combined sensitivity object </returns>
        public static UnitParameterSensitivity combine <T1>(MarketDataName <T1> marketDataName, params UnitParameterSensitivity[] sensitivities)
        {
            ArgChecker.notEmpty(sensitivities, "sensitivities");
            if (sensitivities.Length < 2)
            {
                throw new System.ArgumentException("At least two sensitivity instances must be specified");
            }
            int size = Stream.of(sensitivities).mapToInt(s => s.ParameterCount).sum();

            double[] combinedSensitivities = new double[size];
            ImmutableList.Builder <ParameterMetadata> combinedMeta = ImmutableList.builder();
            ImmutableList.Builder <ParameterSize>     split        = ImmutableList.builder();
            int count = 0;

            for (int i = 0; i < sensitivities.Length; i++)
            {
                UnitParameterSensitivity sens = sensitivities[i];
                Array.Copy(sens.Sensitivity.toArrayUnsafe(), 0, combinedSensitivities, count, sens.ParameterCount);
                combinedMeta.addAll(sens.ParameterMetadata);
                split.add(ParameterSize.of(sens.MarketDataName, sens.ParameterCount));
                count += sens.ParameterCount;
            }

            return(new UnitParameterSensitivity(marketDataName, combinedMeta.build(), DoubleArray.ofUnsafe(combinedSensitivities), split.build()));
        }
Ejemplo n.º 3
0
        //-------------------------------------------------------------------------
        public virtual void coverage()
        {
            ParameterSize test = ParameterSize.of(CURVE_NAME, 3);

            coverImmutableBean(test);
            ParameterSize test2 = ParameterSize.of(CurveName.of("Foo"), 4);

            coverBeanEquals(test, test2);
        }
Ejemplo n.º 4
0
        public virtual void test_serialization()
        {
            ParameterSize test = ParameterSize.of(CURVE_NAME, 3);

            assertSerialization(test);
        }