Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
(DIV0, DIV0),
)
)
def test_datevalue(value, expected):
assert datevalue(value) == expected
(DIV0, DIV0),
)
)
def test_x_len(param, result):
assert x_len(param) == result
def test_average():
assert 2 == average(1, '3', 2.0, pytest, 3, 'x')
assert 2 == average((1, '3', (2.0, pytest, 3), 'x'))
assert -0.1 == average((-0.1, None, 'x', True))
assert DIV0 == average(['x'])
assert VALUE_ERROR == average(VALUE_ERROR)
assert VALUE_ERROR == average((2, VALUE_ERROR))
assert DIV0 == average(DIV0)
assert DIV0 == average((2, DIV0))
def test_invalid_parameters(self):
assert mid(VALUE_ERROR, 2, 2) == VALUE_ERROR
assert mid('Romain', VALUE_ERROR, 2) == VALUE_ERROR
assert mid('Romain', 2, VALUE_ERROR) == VALUE_ERROR
assert mid(DIV0, 2, 2) == DIV0
assert mid('Romain', DIV0, 2) == DIV0
assert mid('Romain', 2, DIV0) == DIV0
assert mid('Romain', 'x', 2) == VALUE_ERROR
assert mid('Romain', 2, 'x') == VALUE_ERROR
((NA_ERROR, DIV0), NA_ERROR),
((DIV0, NA_ERROR), DIV0),
)
)
def test_power(data, expected):
result = power(*data)
if isinstance(result, str):
assert result == expected
else:
assert result == pytest.approx(expected, rel=1e-3)
def averageifs(average_range, *args):
# Excel reference: https://support.office.com/en-us/article/
# AVERAGEIFS-function-48910C45-1FC0-4389-A028-F7C5C3001690
if not list_like(average_range):
average_range = ((average_range, ), )
coords = handle_ifs(args, average_range)
# A returned string is an error code
if isinstance(coords, str):
return coords
data = _numerics((average_range[r][c] for r, c in coords), keep_bools=True)
if len(data) == 0:
return DIV0
return sum(data) / len(data)
def average(*args):
# Excel reference: https://support.office.com/en-us/article/
# average-function-047bac88-d466-426c-a32b-8f33eb960cf6
data = _numerics(*args)
# A returned string is an error code
if isinstance(data, str):
return data
elif len(data) == 0:
return DIV0
else:
return sum(data) / len(data)
def power(number, power):
# Excel reference: https://support.office.com/en-us/article/
# POWER-function-D3F2908B-56F4-4C3F-895A-07FB519C362A
if number == power == 0:
# Really excel? What were you thinking?
return NA_ERROR
try:
return number ** power
except ZeroDivisionError:
return DIV0