From 165e294b90b58d6882febe36ea6e465b0780786f Mon Sep 17 00:00:00 2001 From: Fabian Joswig Date: Thu, 12 May 2022 16:08:42 +0100 Subject: [PATCH 1/2] tests: test for Corr.matrix_symmetric added. --- tests/correlators_test.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/correlators_test.py b/tests/correlators_test.py index bdae7255..03f8eea3 100644 --- a/tests/correlators_test.py +++ b/tests/correlators_test.py @@ -278,6 +278,18 @@ def test_matrix_corr(): corr_0.matrix_symmetric() +def test_matrix_symmetric(): + corr_aa = _gen_corr(1) + corr_ab = _gen_corr(0.3) + corr_ba = _gen_corr(0.2) + corr_bb = _gen_corr(0.8) + corr_mat = pe.Corr(np.array([[corr_aa, corr_ab], [corr_ba, corr_bb]])) + + sym_corr_mat = corr_mat.matrix_symmetric() + + assert np.all([np.all(o == o.T) for o in sym_corr_mat]) + + def test_hankel(): corr_content = [] for t in range(8): From 57834be62e0b78aa4c2c5fe87bdabd88d621a87e Mon Sep 17 00:00:00 2001 From: Fabian Joswig Date: Fri, 13 May 2022 16:42:22 +0100 Subject: [PATCH 2/2] feat: argument save added to Obs.plot_piechart --- pyerrors/obs.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pyerrors/obs.py b/pyerrors/obs.py index 01ed28f6..a0848c11 100644 --- a/pyerrors/obs.py +++ b/pyerrors/obs.py @@ -571,9 +571,15 @@ class Obs: plt.title(e_name + f'\nskew: {skew(y_test):.3f} (p={skewtest(y_test).pvalue:.3f}), kurtosis: {kurtosis(y_test):.3f} (p={kurtosistest(y_test).pvalue:.3f})') plt.draw() - def plot_piechart(self): + def plot_piechart(self, save=None): """Plot piechart which shows the fractional contribution of each - ensemble to the error and returns a dictionary containing the fractions.""" + ensemble to the error and returns a dictionary containing the fractions. + + Parameters + ---------- + save : str + saves the figure to a file named 'save' if. + """ if not hasattr(self, 'e_dvalue'): raise Exception('Run the gamma method first.') if np.isclose(0.0, self._dvalue, atol=1e-15): @@ -584,6 +590,8 @@ class Obs: ax1.pie(sizes, labels=labels, startangle=90, normalize=True) ax1.axis('equal') plt.draw() + if save: + fig1.savefig(save) return dict(zip(self.e_names, sizes))