Ejemplo n.º 1
0
        public void ThrowIf_ArgumentOutOfRange()
        {
            LinearInterpolation1D interpolation = new LinearInterpolation1D(
                new double[] { 1, 2, 3 }, new double[] { 1, 2, 3 });

            interpolation.GetValue(-1);
        }
Ejemplo n.º 2
0
        public void OnDataPoints_InterpolationExact()
        {
            LinearInterpolation1D interpolation = new LinearInterpolation1D(
                new double[] { -3.1, 0.5, 4, 7.3 },
                new double[] { 23.3, -234.5, 45.4, -0.497 });

            AssertHelper.AssertApproximatelyEqual(23.3, interpolation.GetValue(-3.1));
            AssertHelper.AssertApproximatelyEqual(-234.5, interpolation.GetValue(0.5));
            AssertHelper.AssertApproximatelyEqual(45.4, interpolation.GetValue(4));
            AssertHelper.AssertApproximatelyEqual(-0.497, interpolation.GetValue(7.3));
        }
Ejemplo n.º 3
0
        public void GivenSineValues_InterpolateLinear()
        {
            LinearInterpolation1D interpolation = new LinearInterpolation1D(
                new double[] { -4, -3, 0, 1, 5, 8, 9 },
                new double[] { Math.Sin(-4), Math.Sin(-3), Math.Sin(0), Math.Sin(1), Math.Sin(5), Math.Sin(8), Math.Sin(9) });

            AssertHelper.AssertApproximatelyEqual(Math.Sin(-4), interpolation.GetValue(-4));
            AssertHelper.AssertApproximatelyEqual(Math.Sin(-3) / 1.5, interpolation.GetValue(-2));
            AssertHelper.AssertApproximatelyEqual(Math.Sin(0), interpolation.GetValue(0));
            AssertHelper.AssertApproximatelyEqual((Math.Sin(5) + 3 * Math.Sin(1)) / 4.0, interpolation.GetValue(2));
            AssertHelper.AssertApproximatelyEqual((3 * Math.Sin(5) + Math.Sin(1)) / 4.0, interpolation.GetValue(4));
            AssertHelper.AssertApproximatelyEqual((Math.Sin(8) + 2 * Math.Sin(5)) / 3.0, interpolation.GetValue(6));
            AssertHelper.AssertApproximatelyEqual((Math.Sin(9) + Math.Sin(8)) / 2.0, interpolation.GetValue(8.5));
        }
Ejemplo n.º 4
0
        public void GivenLinearInput_InterpolationExact()
        {
            LinearInterpolation1D interpolation = new LinearInterpolation1D(
                new double[] { -4, -3, 0, 1, 5 },
                new double[] { -6, -4, 2, 4, 12 });

            AssertHelper.AssertApproximatelyEqual(-6, interpolation.GetValue(-4));
            AssertHelper.AssertApproximatelyEqual(-4, interpolation.GetValue(-3));
            AssertHelper.AssertApproximatelyEqual(-2, interpolation.GetValue(-2));
            AssertHelper.AssertApproximatelyEqual(0, interpolation.GetValue(-1));
            AssertHelper.AssertApproximatelyEqual(2, interpolation.GetValue(0));
            AssertHelper.AssertApproximatelyEqual(4, interpolation.GetValue(1));
            AssertHelper.AssertApproximatelyEqual(6, interpolation.GetValue(2));
            AssertHelper.AssertApproximatelyEqual(8, interpolation.GetValue(3));
            AssertHelper.AssertApproximatelyEqual(10, interpolation.GetValue(4));
            AssertHelper.AssertApproximatelyEqual(12, interpolation.GetValue(5));
        }
Ejemplo n.º 5
0
        /********************************************************************************************
        * Constructors
        ********************************************************************************************/

        public DecayWidthAverager(
            LinearInterpolation1D interpolatedDecayWidths,
            LinearInterpolation1D interpolatedEnergies,
            LinearInterpolation1D interpolatedDisplacementRMS,
            DopplerShiftEvaluationType dopplerShiftEvaluationType,
            ElectricDipoleAlignment electricDipoleAlignment,
            int magneticDipoleTermSign,
            double qgpFormationTemperature,
            int numberAveragingAngles
            )
        {
            InterpolatedDecayWidths     = interpolatedDecayWidths;
            InterpolatedEnergies        = interpolatedEnergies;
            InterpolatedDisplacementRMS = interpolatedDisplacementRMS;

            DopplerShiftEvaluationType = dopplerShiftEvaluationType;
            ElectricDipoleAlignment    = electricDipoleAlignment;
            MagneticDipoleTermSign     = magneticDipoleTermSign;

            QGPFormationTemperature = qgpFormationTemperature;
            NumberAveragingAngles   = numberAveragingAngles;

            AssertValidMembers();
        }
Ejemplo n.º 6
0
 public void ThrowIf_InterpolationData_FAndXareDifferentSize()
 {
     LinearInterpolation1D interpolation = new LinearInterpolation1D(
         new double[] { 1, 2, 3 }, new double[] { });
 }
Ejemplo n.º 7
0
 public void ThrowIf_InterpolationData_FNull()
 {
     LinearInterpolation1D interpolation = new LinearInterpolation1D(
         new double[] { 1, 2, 3 }, null);
 }
Ejemplo n.º 8
0
 public void ThrowIf_InterpolationData_XDisordered()
 {
     LinearInterpolation1D interpolation = new LinearInterpolation1D(
         new double[] { 1, 3, 2 }, new double[] { 1 });
 }
Ejemplo n.º 9
0
 public void ThrowIf_InterpolationData_XEmpty()
 {
     LinearInterpolation1D interpolation = new LinearInterpolation1D(
         new double[] { }, new double[] { 1 });
 }
Ejemplo n.º 10
0
 public void ThrowIf_InterpolationData_XNull()
 {
     LinearInterpolation1D interpolation = new LinearInterpolation1D(null, new double[] { 1 });
 }