Merge branch 'develop' into documentation

This commit is contained in:
fjosw 2023-07-19 14:06:38 +00:00
commit af8ab0a59f
4 changed files with 46 additions and 3 deletions

View file

@ -1056,6 +1056,13 @@ class Corr:
__array_priority__ = 10000
def __eq__(self, y):
if isinstance(y, Corr):
comp = np.asarray(y.content, dtype=object)
else:
comp = np.asarray(y)
return np.asarray(self.content, dtype=object) == comp
def __add__(self, y):
if isinstance(y, Corr):
if ((self.N != y.N) or (self.T != y.T)):

View file

@ -773,11 +773,10 @@ class Obs:
return self.value >= other
def __eq__(self, other):
if other is None:
return False
return (self - other).is_zero()
def __ne__(self, other):
return not (self - other).is_zero()
# Overload math operations
def __add__(self, y):
if isinstance(y, Obs):

View file

@ -713,3 +713,39 @@ def test_corr_roll():
tt = mcorr.roll(T) - mcorr
for el in tt:
assert np.all(el == 0)
def test_correlator_comparison():
scorr = pe.Corr([pe.pseudo_Obs(0.3, 0.1, "test") for o in range(4)])
mcorr = pe.Corr(np.array([[scorr, scorr], [scorr, scorr]]))
for corr in [scorr, mcorr]:
assert (corr == corr).all()
assert np.all(corr == 1 * corr)
assert np.all(corr == (1 + 1e-16) * corr)
assert not np.all(corr == (1 + 1e-5) * corr)
assert np.all(corr == 1 / (1 / corr))
assert np.all(corr - corr == 0)
assert np.all(corr * 0 == 0)
assert np.all(0 * corr == 0)
assert np.all(0 * corr + scorr[2] == scorr[2])
assert np.all(-corr == 0 - corr)
assert np.all(corr ** 2 == corr * corr)
acorr = pe.Corr([scorr[0]] * 6)
assert np.all(acorr == scorr[0])
assert not np.all(acorr == scorr[1])
mcorr[1][0, 1] = None
assert not np.all(mcorr == pe.Corr(np.array([[scorr, scorr], [scorr, scorr]])))
pcorr = pe.Corr([pe.pseudo_Obs(0.25, 0.1, "test") for o in range(2)], padding=[1, 1])
assert np.all(pcorr == pcorr)
assert np.all(1 * pcorr == pcorr)
def test_corr_item():
corr_aa = _gen_corr(1)
corr_ab = 0.5 * corr_aa
corr_mat = pe.Corr(np.array([[corr_aa, corr_ab], [corr_ab, corr_aa]]))
corr_mat.item(0, 0)
assert corr_mat[0].item(0, 1) == corr_mat.item(0, 1)[0]

View file

@ -103,6 +103,7 @@ def test_comparison():
test_obs1 = pe.pseudo_Obs(value1, 0.1, 't')
value2 = np.random.normal(0, 100)
test_obs2 = pe.pseudo_Obs(value2, 0.1, 't')
assert test_obs1 != None
assert (value1 > value2) == (test_obs1 > test_obs2)
assert (value1 < value2) == (test_obs1 < test_obs2)
assert (value1 >= value2) == (test_obs1 >= test_obs2)