Newer
Older
#!/usr/bin/env python
# SPDX-FileCopyrightText: 2021 Helmholtz-Zentrum für Umweltforschung GmbH - UFZ
#
# SPDX-License-Identifier: GPL-3.0-or-later
from .test_setup import *
__author__ = "Bert Palm"
__email__ = "bert.palm@ufz.de"
__copyright__ = "Copyright 2018, Helmholtz-Centrum für Umweltforschung GmbH - UFC"
@pytest.mark.parametrize("left", diosFromMatr(DATA_ALIGNED))
@pytest.mark.parametrize("right", diosFromMatr(DATA_ALIGNED))
def test__eq__(left, right):
a, b = left, right
_test = a == b
for c in _test:
for i in _test[c].index:
res = (_test[c])[i]
e1 = a[c][i]
e2 = b[c][i]
exp = e1 == e2
assert res == exp

Bert Palm
committed
@pytest.mark.filterwarnings(
"ignore: invalid value encountered in .*_scalars", category=RuntimeWarning
)
@pytest.mark.filterwarnings(
"ignore: divide by zero encountered in .*_scalars", category=RuntimeWarning
)
@pytest.mark.parametrize("left", diosFromMatr(DATA_ALIGNED))
@pytest.mark.parametrize("right", diosFromMatr(DATA_ALIGNED))
@pytest.mark.parametrize("op", OP2)
def test__op2__aligningops(left, right, op):
a, b = left, right
test = op(a, b)
for c in test:
for j in test[c].index:
exp = op(a[c][j], b[c][j])
res = test[c][j]
if not np.isfinite(res):
print(f"\n\n{a[c][j]} {OP_MAP[op]} {b[c][j]}")
print(f"\nres: {res}, exp:{exp}, op: {OP_MAP[op]}")
pytest.skip("test not support non-finite values")
return
assert res == exp

Bert Palm
committed
@pytest.mark.filterwarnings(
"ignore: invalid value encountered in .*_scalars", category=RuntimeWarning
)
@pytest.mark.filterwarnings(
"ignore: divide by zero encountered in .*_scalars", category=RuntimeWarning
)
@pytest.mark.parametrize("left", diosFromMatr(DATA_UNALIGNED))
@pytest.mark.parametrize("right", diosFromMatr(DATA_UNALIGNED))
@pytest.mark.parametrize("op", OPNOCOMP)
def test__op2__UNaligningops(left, right, op):
try:
a, b = left, right
test = op(a, b)
for c in test:
for j in test[c].index:
exp = op(a[c][j], b[c][j])
res = test[c][j]
if not np.isfinite(res):
print(f"\n\n{a[c][j]} {OP_MAP[op]} {b[c][j]}")
print(f"\nres: {res}, exp:{exp}, op: {OP_MAP[op]}")
pytest.skip("test not support non-finite values")
return
assert res == exp
except ZeroDivisionError:
pytest.skip("ZeroDivisionError")
@pytest.mark.parametrize("data", diosFromMatr(ALL))
@pytest.mark.parametrize("op", OP1)
def test__op1__(data, op):
test = op(data)
res = [entry for col in test for entry in test[col]]
e = [entry for col in data for entry in data[col]]
for i in range(len(res)):
exp = op(e[i])
assert res[i] == exp