Esempio n. 1
0
        public static double[] GetExpectedOutput_OLD1(Tuple <TrackedItemBase, Point, Vector> prevPos, Tuple <TrackedItemBase, Point, Vector> currentPos, TrackedItemHarness harness, EvaluatorArgs evaluatorArgs)
        {
            // This is too complicated

            double[] retVal = null;

            if (prevPos == null)
            {
                //If prev is null, then output should be zeros
                retVal = GetExpectedOutput_Zeros(harness);
            }
            else if (currentPos == null || currentPos.Item1.Token != prevPos.Item1.Token)
            {
                //If prev and current tokens don't match, then????
                //desiredOutput = GetError_Unmatched(outputArr);        // might not even want to add to the error
            }
            else if (harness.Time - prevPos.Item1.CreateTime < evaluatorArgs.NewItem_Duration_Multiplier * evaluatorArgs.Delay_Seconds)
            {
                //If prev is new, then error size gradient
                double aliveTime = harness.Time - prevPos.Item1.CreateTime;                                               // figure out how long it's been alive
                double percent   = aliveTime / (evaluatorArgs.NewItem_Duration_Multiplier * evaluatorArgs.Delay_Seconds); // get the percent of the range
                percent = UtilityCore.Cap(1 - percent, 0, 1);                                                             // invert the percent so that an old percent of zero will now be the full error mult
                double newItemMult = percent * evaluatorArgs.NewItem_ErrorMultiplier;

                retVal = GetExpectedOutput_Matched(currentPos, harness, evaluatorArgs, newItemMult);
            }
            else
            {
                //otherwise, standard scoring
                retVal = GetExpectedOutput_Matched(currentPos, harness, evaluatorArgs);
            }

            return(retVal);
        }