Exemple #1
0
        public void GetBestFitTest()
        {
            CoursePassFactory factory = new CoursePassFactory();

            factory.RopeLengthOff = 22;
            CoursePass pass      = factory.FromFile("./Video/GOPR0565.json");
            CoursePass best      = factory.FitPass(pass.Measurements);
            double     precision = best.GetGatePrecision();

            //Assert.IsTrue(precision == 1.0F);
        }
        public double FitPass(CoursePass pass)
        {
            const int MAX = 90, MIN = -90;
            double bestPrecision = double.MaxValue;
            CoursePass bestPass = pass;

            for (int i = MIN; i <= MAX; i++)
            {
                CenterLineDegreeOffset = i;
                CoursePass nextPass = CreatePass(pass.Measurements);
                double precision = nextPass.GetGatePrecision();
                
                if (precision < bestPrecision)
                {
                    bestPrecision = precision;
                    bestPass = nextPass;
                }
            }
            Logger.Log($"Best Precision: {bestPrecision} = {bestPass.CenterLineDegreeOffset}");
            return bestPass.CenterLineDegreeOffset;
        }