From 40da2b9b99a7e16230e3468e9d9177a0563dfed2 Mon Sep 17 00:00:00 2001 From: Alexander James Date: Wed, 1 Feb 2023 15:45:46 -0800 Subject: [PATCH 1/3] add pytest fixture for unevenly spaced series --- pyleoclim/tests/conftest.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pyleoclim/tests/conftest.py b/pyleoclim/tests/conftest.py index e79e2056..1ee8fd51 100644 --- a/pyleoclim/tests/conftest.py +++ b/pyleoclim/tests/conftest.py @@ -1,5 +1,6 @@ import pandas as pd import numpy as np +import pyleoclim as pyleo import pytest @@ -16,4 +17,13 @@ def dataframe(): """Pandas dataframe with a non-datetime index and random values""" length = 5 df = pd.DataFrame(np.ones(length)) - return df \ No newline at end of file + return df + +@pytest.fixture +def unevenly_spaced_series(): + """Pyleoclim series with unevenly spaced time axis""" + length = 10 + t = np.linspace(1,length,length) ** 2 + v = np.ones(length) + series = pyleo.Series(t,v) + return series \ No newline at end of file From bfe3322de7cc4ef355da6ff77260efdcb03e15c2 Mon Sep 17 00:00:00 2001 From: Alexander James Date: Wed, 1 Feb 2023 15:47:34 -0800 Subject: [PATCH 2/3] add tests for bin to tsutils tests --- pyleoclim/tests/test_utils_tsutils.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/pyleoclim/tests/test_utils_tsutils.py b/pyleoclim/tests/test_utils_tsutils.py index 5106915b..500608df 100644 --- a/pyleoclim/tests/test_utils_tsutils.py +++ b/pyleoclim/tests/test_utils_tsutils.py @@ -1,6 +1,6 @@ import pytest -from pyleoclim.utils import tsutils +from pyleoclim.utils import tsutils, tsbase import numpy as np @@ -142,4 +142,16 @@ def test_convert_datetime_index_nondt_index(dataframe): dataframe.index, time_unit, time_name=time_name, - ) \ No newline at end of file + ) + +def test_bin_t0(unevenly_spaced_series): + res_dict = tsutils.bin(unevenly_spaced_series.time,unevenly_spaced_series.value) + t = res_dict['bins'] + v = res_dict['binned_values'] + assert isinstance(t,np.ndarray) + assert isinstance(v,np.ndarray) + +def test_bin_t1(unevenly_spaced_series): + res_dict = tsutils.bin(unevenly_spaced_series.time,unevenly_spaced_series.value,evenly_spaced=True) + t = res_dict['bins'] + assert tsbase.is_evenly_spaced(t) \ No newline at end of file From 0fec6db309172996f4cd2acaf5a3ad2b2f2d7702 Mon Sep 17 00:00:00 2001 From: Alexander James Date: Wed, 1 Feb 2023 15:47:44 -0800 Subject: [PATCH 3/3] fix tsutils.bin returning lists --- pyleoclim/utils/tsutils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyleoclim/utils/tsutils.py b/pyleoclim/utils/tsutils.py index bde2569e..79bd9f9d 100644 --- a/pyleoclim/utils/tsutils.py +++ b/pyleoclim/utils/tsutils.py @@ -291,8 +291,8 @@ def bin(x, y, bin_size=None, start=None, stop=None, evenly_spaced = True): error.append(np.nanstd(y[idx])) res_dict = { - 'bins': bins, - 'binned_values': binned_values, + 'bins': np.array(bins), + 'binned_values': np.array(binned_values), 'n': n, 'error': error, }