Exemplo n.º 1
0
            public void JudgeTheBallSubScoreCalculatedAsAccuracyAverageBetweenRounds()
            {
                Setup();

                TimeToContact.judgeTheBallData = new JudgeTheBallStorage
                {
                    TargetRadius = DUMMY_TARGET_RADIUS,
                    Rounds       = new List <JudgeTheBallStorage.BallRound>
                    {
                        new JudgeTheBallStorage.BallRound
                        {
                            PlayerBallActualTimeToContact = 3.5F,
                            PredictedTimeToContact        = 5F
                        },
                        new JudgeTheBallStorage.BallRound
                        {
                            PlayerBallActualTimeToContact = 5.6F,
                            PredictedTimeToContact        = 5
                        },
                        new JudgeTheBallStorage.BallRound
                        {
                            PlayerBallActualTimeToContact = 9F,
                            PredictedTimeToContact        = 8.3F
                        },
                    }
                };

                TimeToContact.EvaluateJudgeTheBallScore();

                // FLOOR(1/3 * ((100 - |1 - 5/3.5|*100) + (100 - |1 - 5/5.6|*100) + (100 - |1 - 8.3/9|*100))) = 79

                Assert.AreEqual(79, TimeToContact.GetSubScoreForJudgeTheBall().Score);
            }
Exemplo n.º 2
0
            public void WHEN_JudgeOneBallPlayedPerfectlyInAllRounds_THEN_SubscoreOf100IsObtained()
            {
                Setup();

                TimeToContact.judgeTheBallData = new JudgeTheBallStorage
                {
                    TargetRadius = DUMMY_TARGET_RADIUS,
                    Rounds       = new List <JudgeTheBallStorage.BallRound>
                    {
                        new JudgeTheBallStorage.BallRound
                        {
                            PlayerBallActualTimeToContact = 3.5F,
                            PredictedTimeToContact        = 3.5F,
                        },
                        new JudgeTheBallStorage.BallRound
                        {
                            PlayerBallActualTimeToContact = 5.6F,
                            PredictedTimeToContact        = 5.6F,
                        },
                        new JudgeTheBallStorage.BallRound
                        {
                            PlayerBallActualTimeToContact = 8.3F,
                            PredictedTimeToContact        = 8.3F
                        },
                    }
                };

                TimeToContact.EvaluateJudgeTheBallScore();

                Assert.AreEqual(100, TimeToContact.GetSubScoreForJudgeTheBall().Score);
            }
Exemplo n.º 3
0
            public void WHEN_EvaluateJudgeTheBallScoreCalledWithNoData_THEN_ScoreOfNegative1IsObtained()
            {
                Setup();

                TimeToContact.EvaluateJudgeTheBallScore();
                SubscoreStorage subscore = TimeToContact.GetSubScoreForJudgeTheBall();

                Assert.AreEqual(-1, subscore.Score);
            }
        /// <summary>
        /// UpdateSubScoreSeq is to derive all subscore records and
        /// add these records to the subScoreSeq.
        /// </summary>
        private static void UpdateSubScoreSeq()
        {
            // Update subscores of abilities tested by Balloons and add them to sequence
            // If the game has been played, update the score
            if (!notYetPlayBalloons)
            {
                //get subscore for (Flicking, Balloons)
                SubscoreStorage flicking_balloons = PointingMeasure.GetSubScoreForBalloons();
                //get subscore for (Inhibition, Balloons)
                SubscoreStorage inhibition_balloons = InhibitionMeasure.GetSubScoreForBalloons();
                //get subscore for (Selective Visual, Balloons)
                SubscoreStorage selectiveVisual_balloons = SelectiveVisualMeasure.GetSubScoreForBalloons();

                //add subScore to subScoreSeq
                subScoreSeq.Add(flicking_balloons);
                subScoreSeq.Add(inhibition_balloons);
                subScoreSeq.Add(selectiveVisual_balloons);
            }

            // Update subscores of abilities tested by Squares and add them to sequence
            // If the game has been played, update the score
            if (!notYetPlaySquares)
            {
                //get subscore for (Selective Visual, Squares)
                SubscoreStorage selectiveVisual_squares = SelectiveVisualMeasure.GetSubScoreForSquares();
                //get subscore for (Visuospatial Sketchpad, Squares)
                SubscoreStorage visuospatialSketchpad_squares = VisuospatialSketchpadMeasure.GetSubScoreForSquares();

                //add subScore to subScoreSeq
                subScoreSeq.Add(selectiveVisual_squares);
                subScoreSeq.Add(visuospatialSketchpad_squares);
            }

            // Update subscores of abilities tested by Catch The Thief and add them to sequence
            // If the game has been played, update the score
            if (!notYetPlayCTF)
            {
                //get subscore for (Inhibition, Catch The Thief)
                SubscoreStorage inhibition_ctf = InhibitionMeasure.GetSubScoreForCTF();
                //get subscore for  (Selective Visual, Catch The Thief)
                SubscoreStorage selectiveVisual_ctf = SelectiveVisualMeasure.GetSubScoreForCTF();

                //add subScore to subScoreSeq
                subScoreSeq.Add(inhibition_ctf);
                subScoreSeq.Add(selectiveVisual_ctf);
            }

            // Update subscores of abilities tested by ImageHit and add them to sequence
            // If the game has been played, update the score
            if (!notYetPlayImageHit)
            {
                //get subscore for (Object Recognition, ImageHit)
                SubscoreStorage objectRecognition_imageHit = ObjectRecognitionMeasure.GetSubScoreForImageHit();
                //get subscore for (Inhibition, ImageHit)
                SubscoreStorage inhibition_imageHit = InhibitionMeasure.GetSubScoreForImageHit();
                //get subscore for  (Selective Visual, ImageHit)
                SubscoreStorage selectiveVisual_imageHit = SelectiveVisualMeasure.GetSubScoreForImageHit();

                //add subScore to subScoreSeq
                subScoreSeq.Add(objectRecognition_imageHit);
                subScoreSeq.Add(inhibition_imageHit);
                subScoreSeq.Add(selectiveVisual_imageHit);
            }

            // Update subscores of abilities tested by Catch The Ball and add them to sequence
            // If the game has been played, update the score
            if (!notYetCatchTheBall)
            {
                //get subscore for (Time To Contact, Catch The Ball)
                SubscoreStorage timeToContact_catchTheBall = TimeToContact.GetSubScoreForCatchTheBall();

                //add subScore to subScoreSeq
                subScoreSeq.Add(timeToContact_catchTheBall);
            }

            // Update subscores of abilities tested by Save One Ball and add them to sequence
            // If the game has been played, update the score
            if (!notYetSaveOneBall)
            {
                //get subscore for (Time To Contact, Save One Ball)
                SubscoreStorage timeToContact_saveOneBall = TimeToContact.GetSubScoreForSaveOneBall();

                //add subScore to subScoreSeq
                subScoreSeq.Add(timeToContact_saveOneBall);
            }

            // Update subscores of abilities tested by Judge The Ball and add them to sequence
            // If the game has been played, update the score
            if (!notYetJudgeTheBall)
            {
                //get subscore for (Time To Contact, Judge The Ball)
                SubscoreStorage timeToContact_judgeTheBall = TimeToContact.GetSubScoreForJudgeTheBall();

                //add subScore to subScoreSeq
                subScoreSeq.Add(timeToContact_judgeTheBall);
            }
        }