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); } }
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; })); }
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); }
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); }
public int GetScore(NumberComparison actual, NumberComparison guess) { return(actual == guess?_configurationService.GetCorrectScore() : 0); }