Beispiel #1
0
        public bool IsComparisonValid(IKeyValueDefinition <float> definition, float value,
                                      NumberComparison comparison)
        {
            var dbValue = _database.Get(definition.Key, definition.DefaultValue);

            switch (comparison)
            {
            case NumberComparison.Equal:
                return(Math.Abs(dbValue - value) < 0.01f);

            case NumberComparison.NotEqual:
                return(Math.Abs(dbValue - value) > 0.01f);

            case NumberComparison.GreaterThan:
                return(value > dbValue);

            case NumberComparison.GreaterThanOrEqual:
                return(value >= dbValue);

            case NumberComparison.LessThan:
                return(value < dbValue);

            case NumberComparison.LessThanOrEqual:
                return(value <= dbValue);

            default:
                throw new ArgumentOutOfRangeException(nameof(comparison), comparison, null);
            }
        }
Beispiel #2
0
 public static Condition QuadrantPixelCount(NumberComparison cmp, int amount, bool orFewer, bool white)
 {
     return(new Condition(
                string.Format("If {0} quadrant has {1} {2} {3} pixels",
                              cmp == NumberComparison.None ? "no" : cmp == NumberComparison.ExactlyOne ? "exactly one" : "more than one",
                              amount, orFewer ? "or fewer" : "or more", white ? "white" : "black"),
                cmp == NumberComparison.ExactlyOne ? Extra.Quadrant : Extra.None,
                (grid, bomb) =>
     {
         var matchingQuadrants = getQuadrantCounts(grid).Select(q => white ? (orFewer ? (q <= amount) : (q >= amount)) : (orFewer ? (16 - q <= amount) : (16 - q >= amount))).ToArray();
         var count = matchingQuadrants.Count(q => q);
         return cmp == NumberComparison.ExactlyOne
                 ? (count == 1 ? matchingQuadrants.IndexOf(q => q) : (int?)null)
                 : (cmp == NumberComparison.None ? (count == 0) : (count > 1)) ? 0 : (int?)null;
     }));
 }
Beispiel #3
0
        public void GetScore_CorrectScore_ReturnScore(
            int correctScore,
            int maxScore,
            NumberComparison compare_first,
            NumberComparison compare_second,
            int resultScore)
        {
            _mockConfigurationService.Setup(a => a.GetCorrectScore()).Returns(correctScore);
            _mockConfigurationService.Setup(a => a.GetMaxTotalScore()).Returns(maxScore);

            var serviceUnderTest = new ScoringService(_mockConfigurationService.Object);

            var result = serviceUnderTest.GetScore(compare_first, compare_second);

            Assert.NotNull(result);
            Assert.GreaterOrEqual(resultScore, result);
        }
Beispiel #4
0
        static public bool FloatComparison(float first, float second, NumberComparison operation)
        {
            switch (operation)
            {
            case NumberComparison.LessThan: return(first < second);

            case NumberComparison.LessOrEqual: return(first <= second);

            case NumberComparison.Equal: return(first == second);

            case NumberComparison.NotEqual: return(first != second);

            case NumberComparison.MoreOrEqual: return(first >= second);

            case NumberComparison.MoreThan: return(first > second);
            }

            return(false);
        }
        public void CompareNumbers_HigherNumber_ReturnCorrectData(int previousNumber, int newNumber, NumberComparison expectedResult)
        {
            var serviceUnderTest = new NumberGeneratorService(_mockConfigurationService.Object);
            var result           = serviceUnderTest.CompareNumbers(previousNumber, newNumber);

            Assert.AreEqual(expectedResult, result);
        }
Beispiel #6
0
 public int GetScore(NumberComparison actual, NumberComparison guess)
 {
     return(actual == guess?_configurationService.GetCorrectScore() : 0);
 }