diff --git a/pyerrors/correlators.py b/pyerrors/correlators.py index 90dcf193..e2d8648e 100644 --- a/pyerrors/correlators.py +++ b/pyerrors/correlators.py @@ -65,14 +65,16 @@ class Corr: def __getitem__(self, idx): """Return the content of timeslice idx""" - if len(self.content[idx]) == 1: + if self.content[idx] is None: + return None + elif len(self.content[idx]) == 1: return self.content[idx][0] else: return self.content[idx] @property def reweighted(self): - bool_array = np.array([list(map(lambda x: x.reweighted, o)) for o in self.content]) + bool_array = np.array([list(map(lambda x: x.reweighted, o)) for o in list(filter(None.__ne__, self.content))]) if np.all(bool_array == 1): return True elif np.all(bool_array == 0): diff --git a/tests/correlators_test.py b/tests/correlators_test.py index 6c3418f8..0f43c8d6 100644 --- a/tests/correlators_test.py +++ b/tests/correlators_test.py @@ -99,6 +99,14 @@ def test_plateau(): with pytest.raises(Exception): my_corr.plateau() + +def test_padded_correlator(): + my_list = [pe.Obs([np.random.normal(1.0, 0.1, 100)], ['ens1']) for o in range(8)] + my_corr = pe.Corr(my_list, padding_front=7, padding_back=3) + my_corr.reweighted + [o for o in my_corr] + + def test_utility(): corr_content = [] for t in range(8):