public static ComparableValue Rounddown(ComparableValue value, ComparableValue digits) { var multiplier = Math.Pow(10, digits.Value.AsNumeric()); return(new ComparableValue( new NumericValue(Math.Floor(value.Value.AsNumeric() * multiplier / multiplier)))); }
public void ShouldReturnZeroIfValueExists() { var criteriaValue = new ComparableValue(new NumericValue(4)); var result = Formula.CountIf(values, criteriaValue); Assert.Equal(0, result.Value.AsNumeric()); }
public void ShouldReturnFalseValue() { var trueValue = new ComparableValue(new NumericValue(1)); var falseValue = new ComparableValue(new NumericValue(0)); var result = If(false, trueValue, falseValue); Assert.Equal(falseValue, result); }
public void ShouldReturnSumOfValues() { var comparableValue1 = new ComparableValue(new NumericValue(1)); var comparableValue2 = new ComparableValue(new NumericValue(2)); var comparableValue3 = new ComparableValue(new NumericValue(3)); var result = Sum(new [] { comparableValue1, comparableValue2, comparableValue3 }); Assert.Equal(6, result.Value.AsNumeric()); }
public static ComparableValue CountIf(IEnumerable <ComparableValue> values, ComparableValue criteria) => new ComparableValue(new NumericValue( values.Any(x => x == criteria) ? 1 : 0));
public static ComparableValue If(bool expression, ComparableValue trueValue, ComparableValue falseValue) => expression ? trueValue : falseValue;