示例#1
0
        public void Apply_Expectation_has_base_point_as_in_base_process_and_fiber_point_as_original_fiber_point_plus_time_times_average_velocity()
        {
            var baseProcess     = new RotatingWienerProcess(diffusionCoefficient: 0.577, angularVelocity: new Vector3(-0.8, 0.4, 1.3));
            var integralProcess = CreateIntegralProcess(baseProcess);

            var result = integralProcess.Apply(_point, _time).Expectation;

            var baseResult  = (OVector)ExtensionStochasticProcess.GetBaseState(result);
            var fiberResult = (OVector)ExtensionStochasticProcess.GetFiberState(result);

            var expectedBaseResult = (OVector)baseProcess.Apply(_basePoint, _time).Expectation;

            Expect((baseResult - expectedBaseResult).Norm(), Is.LessThan(_tolerance));

            var exepectedFiberResult = ExpectedFiberResult(baseResult);

            Expect((fiberResult - exepectedFiberResult).Norm(), Is.LessThan(_tolerance));
        }