public IEnumerator TestSquaresScoreGap()
            {
                int scoreWithGap;
                int scoreWithoutGap;

                // Score for round without gap
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 6; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                }
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                scoreWithoutGap = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                // Score for round with gap
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 5; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                }
                // Add one round with gap
                VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound_gap);
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                scoreWithGap = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                yield return(null);

                Assert.IsTrue(scoreWithGap < scoreWithoutGap);
            }
            public IEnumerator NumberOfRoundsCorrectScoreIncrease()
            {
                int score6Squares, score8Squares;

                yield return(null);

                // 6 squares
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 5; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                }
                VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound_6Squares);
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                score6Squares = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                yield return(null);

                // 8 squares
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 5; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                }
                VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound_8Squares);
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                score8Squares = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                Assert.IsTrue(score6Squares < score8Squares, "6 squares score: " + score6Squares + " 8 squares score: " + score8Squares);
            }
            public IEnumerator TestSquaresNumberOfCorrectHighlightedSquaresInLargeNumberOfHighlighted()
            {
                int scoreWithLowNumberOfCorrectSquares;
                int scoreWithHighNumberOfCorrectSquares;

                // Score for round with correct squares, but lower number of squares
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 5; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                }
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                scoreWithLowNumberOfCorrectSquares = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                // Score for round with correct squares, but higher number of squares
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 4; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                }
                // Add one round with more correct squares
                VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound_moreCorrectSquares);
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                scoreWithHighNumberOfCorrectSquares = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                yield return(null);

                Assert.IsTrue(scoreWithLowNumberOfCorrectSquares < scoreWithHighNumberOfCorrectSquares);
            }
            public IEnumerator TestSquaresScoreMismatch()
            {
                int scoreWithMisMatch;
                int scoreWithoutMisMatch;

                // Score for round without mismatch
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 6; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                }
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                scoreWithoutMisMatch = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                // Score for round with mismatch
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 5; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                }
                // Add one round with mismatch
                VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound_misMatch);
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                scoreWithMisMatch = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                yield return(null);

                Assert.IsTrue(scoreWithMisMatch < scoreWithoutMisMatch);
            }
            public IEnumerator TestSquaresScoreNumberOfRounds()
            {
                int scoreForLowerNumOfRounds;
                int scoreForHigherNumOfRounds;
                int numOfRoundsInThisTestCase = 2;

                // Score for 1 round
                InitializeVisuospatialMeasure();
                VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                scoreForLowerNumOfRounds = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                // Make sure that the scores for rounds 2 - 8 increase depending on the number of rounds
                for (int j = 2; j < 8; j++)
                {
                    InitializeVisuospatialMeasure();
                    for (int k = 0; k < numOfRoundsInThisTestCase; k++)
                    {
                        VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                    }

                    // Call the EvaluateSquaresScore function
                    VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                    // Get the score
                    scoreForHigherNumOfRounds = VisuospatialSketchpadMeasure.subScoreSquares.Score;
                    yield return(null);

                    // Test that fewer rounds played should result in a lower score
                    Assert.IsTrue(scoreForLowerNumOfRounds <= scoreForHigherNumOfRounds, "Number of rounds: " + numOfRoundsInThisTestCase + " Low rounds score: " + scoreForLowerNumOfRounds + " High rounds score: " + scoreForHigherNumOfRounds);

                    // Set variables for next round comparison
                    scoreForLowerNumOfRounds   = scoreForHigherNumOfRounds;
                    numOfRoundsInThisTestCase += 1;
                }
            }
コード例 #6
0
        //Helper functions start
        //---------------------------------------------------------
        //---------------------------------------------------------

        /// <summary>
        /// MeasureAllGames is called when all games end. It will call methods of
        /// evaluating scores for all abilities.
        /// </summary>
        private static void MeasureAllGames()
        {
            // Measure abilities for Balloons
            // If the game has been played, do the measurement; else don't do the measurement
            if (!notYetPlayBalloons)
            {
                PointingMeasure.EvaluateBalloonsScore();
                SelectiveVisualMeasure.EvaluateBalloonsScore();
                InhibitionMeasure.EvaluateBalloonsScore();
            }

            // Measure abilities for Squares
            // If the game has been played, do the measurement; else don't do the measurement
            if (!notYetPlaySquares)
            {
                SelectiveVisualMeasure.EvaluateSquaresScore();
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
            }

            // Measure abilities for Catch The Thief
            // If the game has been played, do the measurement; else don't do the measurement
            if (!notYetPlayCTF)
            {
                InhibitionMeasure.EvaluateCTFScore();
                SelectiveVisualMeasure.EvaluateCTFScore();
            }

            // Measure abilities for ImageHit
            // If the game has been played, do the measurement; else don't do the measurement
            if (!notYetPlayImageHit)
            {
                ObjectRecognitionMeasure.EvaluateImageHitScore();
                InhibitionMeasure.EvaluateImageHitScore();
                SelectiveVisualMeasure.EvaluateImageHitScore();
            }

            // Measure abilities for Catch The Ball
            // If the game has been played, do the measurement; else don't do the measurement
            if (!notYetCatchTheBall)
            {
                TimeToContact.EvaluateCatchTheBallScore();
            }

            // Measure abilities for Save One Ball
            // If the game has been played, do the measurement; else don't do the measurement
            if (!notYetSaveOneBall)
            {
                TimeToContact.EvaluateSaveOneBallScore();
            }

            // Measure abilities for Judge The Ball
            // If the game has been played, do the measurement; else don't do the measurement
            if (!notYetJudgeTheBall)
            {
                TimeToContact.EvaluateJudgeTheBallScore();
            }
        }
            public IEnumerator TestMaxScore100()
            {
                int actualScore;

                // Score for round with high number of correct squares
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 7; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound_moreCorrectSquares);
                }
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                actualScore = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                yield return(null);

                Assert.IsTrue(actualScore == 100, "Score: " + actualScore);
            }
            public IEnumerator WHEN_EvaluateSquaresScoreFunctionCalledOnEmptyInput_SquareSubScoreReturnsBaseScore()
            {
                // Initialize the measurement module
                InitializeVisuospatialMeasure();

                // Call the evaluate score function
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();

                yield return(null);

                // SquaresStorage datatype variable to hold the data from the squares mini-game
                SquaresStorage squaresData = Squares.GetGameplayData();

                // Ensure that SubscoreSquares values are correctly set
                Assert.AreEqual(AbilityName.VISUOSPATIAL_SKETCHPAD, VisuospatialSketchpadMeasure.subScoreSquares.AbilityName);
                Assert.AreEqual(GameName.SQUARES, VisuospatialSketchpadMeasure.subScoreSquares.GameName);
                Assert.AreEqual(0, VisuospatialSketchpadMeasure.subScoreSquares.Score);
                Assert.AreEqual(2, VisuospatialSketchpadMeasure.subScoreSquares.Weight);
            }
            public IEnumerator TestSquaresRecallTime()
            {
                int scoreForRecallTime3;
                int scoreForRecallTime3_3;
                int scoreForRecallTime3_6;
                int scoreForRecallTime3_9;
                int scoreForRecallTime4_2;
                int scoreForRecallTime5;

                // Score for round with recall time 3
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 5; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                }

                VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound_3);
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                scoreForRecallTime3 = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                // Score for round with recall time 3.3
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 5; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                }

                VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound_3_3);
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                scoreForRecallTime3_3 = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                // Score for round with recall time 3.6
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 5; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                }

                VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound_3_6);
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                scoreForRecallTime3_6 = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                // Score for round with recall time 3.9
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 5; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                }

                VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound_3_9);
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                scoreForRecallTime3_9 = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                // Score for round with recall time 4.2
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 5; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                }

                VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound_4_2);
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                scoreForRecallTime4_2 = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                // Score for round with recall time 5
                InitializeVisuospatialMeasure();
                for (int a = 0; a < 5; a++)
                {
                    VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                }
                // Add one round with the recall time
                VisuospatialSketchpadMeasure.squaresData.Rounds.Add(squareRound);
                VisuospatialSketchpadMeasure.EvaluateSquaresScore();
                scoreForRecallTime5 = VisuospatialSketchpadMeasure.subScoreSquares.Score;

                yield return(null);

                Assert.IsTrue(scoreForRecallTime3 > scoreForRecallTime3_3, "3 seconds: " + scoreForRecallTime3 + " 3.3 seconds: " + scoreForRecallTime3_3);
                Assert.IsTrue(scoreForRecallTime3_3 > scoreForRecallTime3_6, "3.3 seconds: " + scoreForRecallTime3_3 + " 3.6 seconds: " + scoreForRecallTime3_6);
                Assert.IsTrue(scoreForRecallTime3_6 > scoreForRecallTime3_9, "3.6 seconds: " + scoreForRecallTime3_6 + " 3.9 seconds: " + scoreForRecallTime3_9);
                Assert.IsTrue(scoreForRecallTime3_9 > scoreForRecallTime4_2, "3 seconds: " + scoreForRecallTime3 + ", 3.3 seconds: " + scoreForRecallTime3_3 + ", 3.6 seconds: " + scoreForRecallTime3_6 + ", 3.9 seconds: " + scoreForRecallTime3_9 + ", 4.2 seconds " + scoreForRecallTime4_2 + ", 5 seconds " + scoreForRecallTime5);
                Assert.IsTrue(scoreForRecallTime4_2 > scoreForRecallTime5, "4.2 seconds: " + scoreForRecallTime4_2 + " 5 seconds " + scoreForRecallTime5);
            }