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 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 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, }