From c619cea5469a2854b2c0f6043c92d3d74d6c1082 Mon Sep 17 00:00:00 2001 From: Alina Voilova <91426818+Pizza2Pizza@users.noreply.github.com> Date: Wed, 10 Apr 2024 11:40:46 +0200 Subject: [PATCH] Concat (#83) * added slice property & tests * changed toml * created branch concat * first commit * works for flat pflines, nested not yet * draft of concat function done, need more testing though * created error_case tests for concat * wrote test_func for concat_pflines, improved the code for concat * added test cases for concat pfstates, requires approval(!) * changed test_function * change general to take iterable as argument --------- Co-authored-by: Alina Voilova --- dev_scripts/checks.py | 42 +++++ docs/core/pfline.rst | 23 +++ docs/savefig/fig_hedge.png | Bin 32613 -> 32711 bytes docs/savefig/fig_offtake.png | Bin 64383 -> 64411 bytes docs/savefig/fig_plot_pfl.png | Bin 28115 -> 28115 bytes docs/savefig/fig_plot_pfs.png | Bin 43127 -> 43127 bytes portfolyo/__init__.py | 6 +- portfolyo/core/pfline/classes.py | 2 +- portfolyo/core/pfstate/pfstate.py | 2 +- portfolyo/core/{mixins => shared}/__init__.py | 0 portfolyo/core/shared/concat.py | 149 +++++++++++++++++ .../core/{mixins => shared}/excelclipboard.py | 0 portfolyo/core/{mixins => shared}/plot.py | 0 portfolyo/core/{mixins => shared}/text.py | 0 tests/core/shared/test_concat_error_cases.py | 137 ++++++++++++++++ tests/core/shared/test_concat_pfline.py | 151 ++++++++++++++++++ tests/core/shared/test_concat_pfstate.py | 100 ++++++++++++ 17 files changed, 608 insertions(+), 4 deletions(-) create mode 100644 dev_scripts/checks.py rename portfolyo/core/{mixins => shared}/__init__.py (100%) create mode 100644 portfolyo/core/shared/concat.py rename portfolyo/core/{mixins => shared}/excelclipboard.py (100%) rename portfolyo/core/{mixins => shared}/plot.py (100%) rename portfolyo/core/{mixins => shared}/text.py (100%) create mode 100644 tests/core/shared/test_concat_error_cases.py create mode 100644 tests/core/shared/test_concat_pfline.py create mode 100644 tests/core/shared/test_concat_pfstate.py diff --git a/dev_scripts/checks.py b/dev_scripts/checks.py new file mode 100644 index 0000000..265a864 --- /dev/null +++ b/dev_scripts/checks.py @@ -0,0 +1,42 @@ +import pandas as pd +import portfolyo as pf +from portfolyo.core.shared import concat + + +def get_idx( + startdate: str, starttime: str, tz: str, freq: str, enddate: str +) -> pd.DatetimeIndex: + # Empty index. + if startdate is None: + return pd.DatetimeIndex([], freq=freq, tz=tz) + # Normal index. + ts_start = pd.Timestamp(f"{startdate} {starttime}", tz=tz) + ts_end = pd.Timestamp(f"{enddate} {starttime}", tz=tz) + return pd.date_range(ts_start, ts_end, freq=freq, inclusive="left") + + +index = pd.date_range("2020", "2024", freq="QS", inclusive="left") +# index2 = pd.date_range("2023", "2025", freq="QS", inclusive="left") +# pfl = pf.dev.get_flatpfline(index) +# pfl2 = pf.dev.get_flatpfline(index2) +# print(pfl) +# print(pfl2) + +# pfs = pf.dev.get_pfstate(index) + +# pfs2 = pf.dev.get_pfstate(index2) +# pfl3 = concat.general(pfl, pfl2) +# print(pfl3) + +# print(index) +# print(index2) + +whole_pfl = pf.dev.get_nestedpfline(index) +pfl_a = whole_pfl.slice[:"2021"] + +pfl_b = whole_pfl.slice["2021":"2022"] +pfl_c = whole_pfl.slice["2022":] +result = concat.concat_pflines(pfl_a, pfl_b, pfl_c) +result2 = concat.concat_pflines(pfl_b, pfl_c, pfl_a) +print(result) +print(result2) diff --git a/docs/core/pfline.rst b/docs/core/pfline.rst index 5a6756d..2c907cc 100644 --- a/docs/core/pfline.rst +++ b/docs/core/pfline.rst @@ -270,6 +270,29 @@ Another slicing method is implemented with the ``.slice[]`` property. The improv +Concatenation +============= + +Portfolio lines can be concatenated with the ``portfolio.concat()`` function. This only works if the input portfolio lines have contain compatible information (the same frequency, timezone, start-of-day, kind, etc) and, crucially, their indices are gapless and without overlap. To remove any overlap, use the ``.slice[]`` property. + +.. exec_code:: + + # --- hide: start --- + import portfolyo as pf, pandas as pd + index = pd.date_range('2024', freq='AS', periods=3) + input_df = pd.DataFrame({'w':[200, 220, 300], 'p': [100, 150, 200]}, index) + pfl = pf.PfLine(input_df) + # --- hide: stop --- + # continuation of previous code example + index2 = pd.date_range('2025', freq='AS', periods=3) # 2 years' overlap with pfl + pfl2 = pf.PfLine(pd.DataFrame({'w':[22, 30, 40], 'p': [15, 20, 21]}, index)) + # first two datapoints (until/excl 2026) from pfl, last two datapoints (from/incl 2026) from pfl2 + pf.concat([pfl.slice[:'2026'], pfl2.slice['2026':]]) + # --- hide: start --- + print(pf.concat([pfl.slice[:'2026'], pfl2.slice['2026':]])) + # --- hide: stop --- + + Volume-only, price-only or revenue-only ======================================= diff --git a/docs/savefig/fig_hedge.png b/docs/savefig/fig_hedge.png index c898c477d788411da4e25d083a6e39c94ae702e1..2fea7c3c50f503dfd026e57b4eb206d02733e835 100644 GIT binary patch literal 32711 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 literal 32613 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�*$ktTxQ^= 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 delta 43 zcmcb7oAL5(#t9yBMmh=^B_##LR{Hw6i6sR&`6W4-NqYH3>G}%4{~g(wmYWLzgIp3x diff --git a/docs/savefig/fig_plot_pfs.png b/docs/savefig/fig_plot_pfs.png index a00e5dedb5c03afe737427465f69ed908388476b..8ac43f358a1efca6344000a1507cac83569e32e5 100644 GIT binary patch delta 43 zcmexH6}j%B36A1Xln6e-sd1 delta 43 zcmexG}%4{~g(wCb$9si(e94 diff --git a/portfolyo/__init__.py b/portfolyo/__init__.py index a10d888..504d5e3 100644 --- a/portfolyo/__init__.py +++ b/portfolyo/__init__.py @@ -1,10 +1,9 @@ """Package to analyse and manipulate timeseries related to power and gas offtake portfolios.""" - from . import _version, dev, tools from .core import extendpandas # extend functionalty of pandas from .core import suppresswarnings -from .core.mixins.plot import plot_pfstates +from .core.shared.plot import plot_pfstates from .core.pfline import Kind, PfLine, Structure, create from .core.pfstate import PfState from .prices.hedge import hedge @@ -15,6 +14,9 @@ from .tools.tzone import force_agnostic, force_aware from .tools.unit import Q_, ureg, Unit from .tools.wavg import general as wavg +from .core.shared.concat import general as concat + +# from .core.shared.concat import general as concat VOLUME = Kind.VOLUME PRICE = Kind.PRICE diff --git a/portfolyo/core/pfline/classes.py b/portfolyo/core/pfline/classes.py index a2aa855..740bea2 100644 --- a/portfolyo/core/pfline/classes.py +++ b/portfolyo/core/pfline/classes.py @@ -8,7 +8,7 @@ import pandas as pd from ... import tools -from ..mixins import ExcelClipboardOutput, PfLinePlot, PfLineText +from ..shared import ExcelClipboardOutput, PfLinePlot, PfLineText from ..ndframelike import NDFrameLike from . import ( create, diff --git a/portfolyo/core/pfstate/pfstate.py b/portfolyo/core/pfstate/pfstate.py index ed127a4..cd634ac 100644 --- a/portfolyo/core/pfstate/pfstate.py +++ b/portfolyo/core/pfstate/pfstate.py @@ -12,7 +12,7 @@ import pandas as pd from ... import tools -from ..mixins import ExcelClipboardOutput, PfStatePlot, PfStateText +from ..shared import ExcelClipboardOutput, PfStatePlot, PfStateText from ..ndframelike import NDFrameLike from ..pfline import PfLine, create from . import pfstate_helper diff --git a/portfolyo/core/mixins/__init__.py b/portfolyo/core/shared/__init__.py similarity index 100% rename from portfolyo/core/mixins/__init__.py rename to portfolyo/core/shared/__init__.py diff --git a/portfolyo/core/shared/concat.py b/portfolyo/core/shared/concat.py new file mode 100644 index 0000000..5f105d2 --- /dev/null +++ b/portfolyo/core/shared/concat.py @@ -0,0 +1,149 @@ +# import pandas as pd +# import portfolyo as pf +from __future__ import annotations +from typing import Iterable +import pandas as pd +from portfolyo import tools + +from ..pfstate import PfState +from ..pfline.enums import Structure + +from ..pfline import PfLine, create +from .. import pfstate + + +def general(pfl_or_pfs: Iterable[PfLine | PfState]) -> None: + """ + Based on passed parameters calls either concat_pflines() or concat_pfstates(). + + Parameters + ---------- + pfl_or_pfs: Iterable[PfLine | PfState] + The input values. Can be either a list of Pflines or PfStates to concatenate. + + Returns + ------- + None + + Notes + ----- + Input portfolio lines must contain compatible information, i.e., same frequency, + timezone, start-of-day, and kind. Their indices must be gapless and without overlap. + + For nested pflines, the number and names of their children must match; concatenation + is done on a name-by-name basis. + + Concatenation returns the same result regardless of input order. + + """ + if all(isinstance(item, PfLine) for item in pfl_or_pfs): + return concat_pflines(pfl_or_pfs) + elif all(isinstance(item, PfState) for item in pfl_or_pfs): + return concat_pfstates(pfl_or_pfs) + else: + raise NotImplementedError( + "Concatenation is implemented only for PfState or PfLine." + ) + + +def concat_pflines(pfls: Iterable[PfLine]) -> PfLine: + """ + Concatenate porfolyo lines along their index. + + Parameters + ---------- + pfls: Iterable[PfLine] + The input values. + + Returns + ------- + PfLine + Concatenated version of PfLines. + + Notes + ----- + Input portfolio lines must contain compatible information, i.e., same frequency, + timezone, start-of-day, and kind. Their indices must be gapless and without overlap. + + For nested pflines, the number and names of their children must match; concatenation + is done on a name-by-name basis. + + Concatenation returns the same result regardless of input order. + """ + if len(pfls) < 2: + raise NotImplementedError( + "Cannot perform operation with less than 2 portfolio lines." + ) + if len({pfl.kind for pfl in pfls}) != 1: + raise TypeError("Not possible to concatenate PfLines of different kinds.") + if len({pfl.index.freq for pfl in pfls}) != 1: + raise TypeError("Not possible to concatenate PfLines of different frequencies.") + if len({pfl.index.tz for pfl in pfls}) != 1: + raise TypeError("Not possible to concatenate PfLines of different time zones.") + if len({tools.startofday.get(pfl.index, "str") for pfl in pfls}) != 1: + raise TypeError( + "Not possible to concatenate PfLines of different start_of_day." + ) + # we can concatenate only pflines of the same type: nested of flat + # with this test and check whether pfls are the same types and they have the same number of children + if len({pfl.structure for pfl in pfls}) != 1: + raise TypeError("Not possible to concatenate PfLines of different structures.") + if pfls[0].structure is Structure.NESTED: + child_names = pfls[0].children.keys() + for pfl in pfls: + diffs = set(child_names) ^ set(pfl.children.keys()) + if len(diffs) != 0: + raise TypeError( + "Not possible to concatenate PfLines with different children names." + ) + # If we reach here, all pfls have same kind, same number and names of children. + + # concat(a,b) and concat(b,a) should give the same result: + sorted_pfls = sorted(pfls, key=lambda pfl: pfl.index[0]) + if pfls[0].structure is Structure.FLAT: + # create flat dataframe of parent + dataframes_flat = [pfl.df for pfl in sorted_pfls] + # concatenate dataframes into one + concat_data = pd.concat(dataframes_flat, axis=0) + try: + # Call create.flatpfline() and catch any ValueError + return create.flatpfline(concat_data) + except ValueError as e: + # Handle the error + raise ValueError( + "Error by creating PfLine. PfLine is either not gapless or has overlaps" + ) from e + child_data = {} + child_names = pfls[0].children.keys() + for cname in child_names: + # for every name in children need to concatenate elements + child_values = [pfl.children[cname] for pfl in sorted_pfls] + child_data[cname] = concat_pflines(child_values) + + # create pfline from dataframes: -> + # call the constructor of pfl to check check gaplesnes and overplap + return create.nestedpfline(child_data) + + +def concat_pfstates(pfss: Iterable[PfState]) -> PfState: + """ + Concatenate porfolyo states along their index. + + Parameters + ---------- + pfss: Iterable[PfState] + The input values. + + Returns + ------- + PfState + Concatenated version of PfStates. + + """ + if len(pfss) < 2: + print("Concatenate needs at least two elements.") + return + offtakevolume = concat_pflines([pfs.offtakevolume for pfs in pfss]) + sourced = concat_pflines([pfs.sourced for pfs in pfss]) + unsourcedprice = concat_pflines([pfs.unsourcedprice for pfs in pfss]) + return pfstate.PfState(offtakevolume, unsourcedprice, sourced) diff --git a/portfolyo/core/mixins/excelclipboard.py b/portfolyo/core/shared/excelclipboard.py similarity index 100% rename from portfolyo/core/mixins/excelclipboard.py rename to portfolyo/core/shared/excelclipboard.py diff --git a/portfolyo/core/mixins/plot.py b/portfolyo/core/shared/plot.py similarity index 100% rename from portfolyo/core/mixins/plot.py rename to portfolyo/core/shared/plot.py diff --git a/portfolyo/core/mixins/text.py b/portfolyo/core/shared/text.py similarity index 100% rename from portfolyo/core/mixins/text.py rename to portfolyo/core/shared/text.py diff --git a/tests/core/shared/test_concat_error_cases.py b/tests/core/shared/test_concat_error_cases.py new file mode 100644 index 0000000..a5eb551 --- /dev/null +++ b/tests/core/shared/test_concat_error_cases.py @@ -0,0 +1,137 @@ +"""Test different error cases for concatenation of PfStates and PfLines.""" + +import pandas as pd +import pytest + + +from portfolyo import dev +from portfolyo.core.pfline.enums import Kind +from portfolyo.core.pfstate.pfstate import PfState +from portfolyo.core.shared import concat + + +def test_general(): + """Test if concatenating PfLine with PfState raises error.""" + index = pd.date_range("2020", "2024", freq="QS", inclusive="left") + index2 = pd.date_range("2024", "2025", freq="QS", inclusive="left") + pfl = dev.get_flatpfline(index) + pfs = dev.get_pfstate(index2) + with pytest.raises(NotImplementedError): + _ = concat.general([pfl, pfs]) + + +def test_diff_freq(): + """Test if concatenating of two flat PfLines with different freq raises error.""" + index = pd.date_range("2020", "2024", freq="QS", inclusive="left") + index2 = pd.date_range("2024", "2025", freq="AS", inclusive="left") + pfl = dev.get_flatpfline(index) + pfl2 = dev.get_flatpfline(index2) + with pytest.raises(TypeError): + _ = concat.concat_pflines([pfl, pfl2]) + + +def test_diff_sod(): + """Test if concatenating of two flat PfLines with different sod raises error.""" + index = pd.date_range("2020-01-01 00:00", "2024", freq="QS", inclusive="left") + index2 = pd.date_range("2024-01-01 06:00", "2025", freq="QS", inclusive="left") + pfl = dev.get_flatpfline(index) + pfl2 = dev.get_flatpfline(index2) + with pytest.raises(TypeError): + _ = concat.concat_pflines([pfl, pfl2]) + + +def test_slice_not_sod(): + """Test if concatenating of two flat PfLines with different sod raises error.""" + index = pd.date_range("2020-01-01 00:00", "2020-03-01", freq="H", inclusive="left") + index2 = pd.date_range( + "2020-02-01 06:00", "2020-04-01 06:00", freq="H", inclusive="left" + ) + pfl_a = dev.get_flatpfline(index) + pfl_b = dev.get_flatpfline(index2) + with pytest.raises(TypeError): + _ = concat.concat_pflines([pfl_a, pfl_b]) + + +def test_diff_tz(): + """Test if concatenating of two flat PfLines with different tz raises error.""" + index = pd.date_range( + "2020-01-01", "2024", freq="QS", tz="Europe/Berlin", inclusive="left" + ) + index2 = pd.date_range("2024-01-01", "2025", freq="QS", tz=None, inclusive="left") + pfl = dev.get_flatpfline(index) + pfl2 = dev.get_flatpfline(index2) + with pytest.raises(TypeError): + _ = concat.concat_pflines([pfl, pfl2]) + + +def test_diff_kind(): + """Test if concatenating of two flat PfLines with different kind raises error.""" + index = pd.date_range("2020-01-01", "2024", freq="QS", inclusive="left") + index2 = pd.date_range("2024-01-01", "2025", freq="QS", inclusive="left") + pfl = dev.get_flatpfline(index, kind=Kind.COMPLETE) + pfl2 = dev.get_flatpfline(index2, kind=Kind.VOLUME) + with pytest.raises(TypeError): + _ = concat.concat_pflines([pfl, pfl2]) + + +def test_app_lenght(): + """Test if concatenatination raises error if we pass only one parameter.""" + index = pd.date_range("2020-01-01", "2024", freq="QS", inclusive="left") + pfl = dev.get_flatpfline(index) + with pytest.raises(NotImplementedError): + _ = concat.concat_pflines([pfl]) + + +def test_concat_with_overlap(): + """Test if concatenatination raises error if there is overlap in indices of PfLines.""" + index = pd.date_range("2020-01-01", "2024", freq="QS", inclusive="left") + index2 = pd.date_range("2020-01-01", "2023", freq="QS", inclusive="left") + pfl = dev.get_flatpfline(index) + pfl2 = dev.get_flatpfline(index2) + with pytest.raises(ValueError): + _ = concat.concat_pflines([pfl, pfl2]) + + +def test_concat_with_gaps(): + """Test if concatenatination raises error if there is a gap in indices of PfLines.""" + index = pd.date_range("2020-01-01", "2023", freq="QS", inclusive="left") + index2 = pd.date_range("2024-01-01", "2025", freq="QS", inclusive="left") + pfl = dev.get_flatpfline(index) + pfl2 = dev.get_flatpfline(index2) + with pytest.raises(ValueError): + _ = concat.concat_pflines([pfl, pfl2]) + + +def test_concat_children(): + """Test if concatenating of flat PfLine with nested PfLine raises error.""" + index = pd.date_range("2020-01-01", "2024", freq="QS", inclusive="left") + index2 = pd.date_range("2024-01-01", "2025", freq="QS", inclusive="left") + pfl = dev.get_flatpfline(index) + pfl2 = dev.get_nestedpfline(index2) + with pytest.raises(TypeError): + _ = concat.concat_pflines([pfl, pfl2]) + + +def test_concat_diff_children(): + """Test if concatenating of two nested PfLines with different children raises error.""" + index = pd.date_range("2020-01-01", "2024", freq="QS", inclusive="left") + index2 = pd.date_range("2024-01-01", "2025", freq="QS", inclusive="left") + pfl = dev.get_nestedpfline(index) + pfl2 = dev.get_nestedpfline(index2).drop_child(name="a") + with pytest.raises(TypeError): + _ = concat.concat_pflines([pfl, pfl2]) + + +def test_concat_pfss(): + """Test if concatenating of Pfstate with "nested" PfState + (meaning that offtakevolume, sourced and unsourcedprice are nested Pflines) raises error. + """ + index = pd.date_range("2020-01-01", "2024", freq="QS", inclusive="left") + index2 = pd.date_range("2024-01-01", "2025", freq="QS", inclusive="left") + pfs1 = dev.get_pfstate(index) + offtakevolume = dev.get_nestedpfline(index2, kind=Kind.VOLUME) + sourced = dev.get_nestedpfline(index2, kind=Kind.COMPLETE) + unsourcedprice = dev.get_nestedpfline(index2, kind=Kind.PRICE) + pfs2 = PfState(offtakevolume, unsourcedprice, sourced) + with pytest.raises(TypeError): + _ = concat.concat_pfstates([pfs1, pfs2]) diff --git a/tests/core/shared/test_concat_pfline.py b/tests/core/shared/test_concat_pfline.py new file mode 100644 index 0000000..f066602 --- /dev/null +++ b/tests/core/shared/test_concat_pfline.py @@ -0,0 +1,151 @@ +"""Test if concatenation of PfLines works properly with different test cases.""" + +import pandas as pd +import pytest +from portfolyo import dev +from portfolyo.core.shared import concat + + +TESTCASES2 = [ # whole idx, freq, where + ( + ("2020-01-01", "2023-04-01"), + "QS", + "2022-04-01", + ), + (("2020", "2022"), "AS", "2021-01-01"), + ( + ("2020-05-01", "2023-04-01"), + "MS", + "2022-11-01", + ), + (("2022-03-20", "2022-07-28"), "D", "2022-05-28"), +] + +TESTCASES3 = [ # whole idx, freq, where + ( + ("2020-01-01", "2023-04-01"), + "QS", + ("2022-04-01", "2023-01-01"), + ), + (("2020", "2023"), "AS", ("2021-01-01", "2022-01-01")), + ( + ("2020-05-01", "2023-04-01"), + "MS", + ("2022-11-01", "2023-01-01"), + ), + (("2022-03-20", "2022-07-28"), "D", ("2022-04-28", "2022-05-15")), +] + + +def get_idx( + startdate: str, starttime: str, tz: str, freq: str, enddate: str +) -> pd.DatetimeIndex: + # Empty index. + if startdate is None: + return pd.DatetimeIndex([], freq=freq, tz=tz) + # Normal index. + ts_start = pd.Timestamp(f"{startdate} {starttime}", tz=tz) + ts_end = pd.Timestamp(f"{enddate} {starttime}", tz=tz) + return pd.date_range(ts_start, ts_end, freq=freq, inclusive="left") + + +@pytest.mark.parametrize("tz", [None, "Europe/Berlin", "Asia/Kolkata"]) +@pytest.mark.parametrize("starttime", ["00:00", "06:00"]) +@pytest.mark.parametrize(("whole_idx", "freq", "where"), TESTCASES2) +@pytest.mark.parametrize("test_fn", ["general", "concat_pflines"]) +def test_concat_flat_pflines( + whole_idx: str, starttime: str, tz: str, freq: str, where: str, test_fn: str +): + """Test that two flat pflines with the same attributes (i.e., same frequency, + timezone, start-of-day, and kind) get concatenated properly.""" + idx = get_idx(whole_idx[0], starttime, tz, freq, whole_idx[1]) + whole_pfl = dev.get_flatpfline(idx) + pfl_a = whole_pfl.slice[:where] + pfl_b = whole_pfl.slice[where:] + fn = concat.general if test_fn == "general" else concat.concat_pflines + result = fn([pfl_a, pfl_b]) + result2 = fn([pfl_b, pfl_a]) + assert whole_pfl == result + assert whole_pfl == result2 + + +@pytest.mark.parametrize("tz", [None, "Europe/Berlin", "Asia/Kolkata"]) +@pytest.mark.parametrize("starttime", ["00:00", "06:00"]) +@pytest.mark.parametrize(("whole_idx", "freq", "where"), TESTCASES2) +@pytest.mark.parametrize("test_fn", ["general", "concat_pflines"]) +def test_concat_nested_pflines( + whole_idx: str, + starttime: str, + tz: str, + freq: str, + where: str, + test_fn: str, +): + """Test that two nested pflines with the same attributes (i.e., same frequency, + timezone, start-of-day, and kind) and the same number of children and children names + get concatenated properly.""" + idx = get_idx(whole_idx[0], starttime, tz, freq, whole_idx[1]) + whole_pfl = dev.get_nestedpfline(idx) + pfl_a = whole_pfl.slice[:where] + pfl_b = whole_pfl.slice[where:] + fn = concat.general if test_fn == "general" else concat.concat_pflines + result = fn([pfl_a, pfl_b]) + result2 = fn([pfl_b, pfl_a]) + assert whole_pfl == result + assert whole_pfl == result2 + + +@pytest.mark.parametrize("tz", [None, "Europe/Berlin", "Asia/Kolkata"]) +@pytest.mark.parametrize("starttime", ["00:00", "06:00"]) +@pytest.mark.parametrize(("whole_idx", "freq", "where"), TESTCASES3) +@pytest.mark.parametrize("test_fn", ["general", "concat_pflines"]) +def test_concat_three_flatpflines( + whole_idx: str, + starttime: str, + tz: str, + freq: str, + where: str, + test_fn: str, +): + """Test that three flat pflines with the same attributes (i.e., same frequency, + timezone, start-of-day, and kind) get concatenated properly.""" + idx = get_idx(whole_idx[0], starttime, tz, freq, whole_idx[1]) + whole_pfl = dev.get_flatpfline(idx) + split_one = where[0] + split_two = where[1] + pfl_a = whole_pfl.slice[:split_one] + pfl_b = whole_pfl.slice[split_one:split_two] + pfl_c = whole_pfl.slice[split_two:] + fn = concat.general if test_fn == "general" else concat.concat_pflines + result = fn([pfl_a, pfl_b, pfl_c]) + result2 = fn([pfl_b, pfl_c, pfl_a]) + assert whole_pfl == result + assert whole_pfl == result2 + + +@pytest.mark.parametrize("tz", [None, "Europe/Berlin", "Asia/Kolkata"]) +@pytest.mark.parametrize("starttime", ["00:00", "06:00"]) +@pytest.mark.parametrize(("whole_idx", "freq", "where"), TESTCASES3) +@pytest.mark.parametrize("test_fn", ["general", "concat_pflines"]) +def test_concat_three_nestedpflines( + whole_idx: str, + starttime: str, + tz: str, + freq: str, + where: str, + test_fn: str, +): + """Test that three nested pflines with the same attributes ( aka kind, freq, sod, etc.) + and the same number of children and children names get concatenated properly.""" + idx = get_idx(whole_idx[0], starttime, tz, freq, whole_idx[1]) + whole_pfl = dev.get_nestedpfline(idx) + split_one = where[0] + split_two = where[1] + pfl_a = whole_pfl.slice[:split_one] + pfl_b = whole_pfl.slice[split_one:split_two] + pfl_c = whole_pfl.slice[split_two:] + fn = concat.general if test_fn == "general" else concat.concat_pflines + result = fn([pfl_a, pfl_b, pfl_c]) + result2 = fn([pfl_b, pfl_c, pfl_a]) + assert whole_pfl == result + assert whole_pfl == result2 diff --git a/tests/core/shared/test_concat_pfstate.py b/tests/core/shared/test_concat_pfstate.py new file mode 100644 index 0000000..3ce923e --- /dev/null +++ b/tests/core/shared/test_concat_pfstate.py @@ -0,0 +1,100 @@ +"""Test if concatenation of PfStates works properly with different test cases.""" + +import pandas as pd +import pytest +from portfolyo import dev +from portfolyo.core.shared import concat + + +TESTCASES2 = [ # whole idx, freq, where + ( + ("2020-01-01", "2023-04-01"), + "QS", + "2022-04-01", + ), + (("2020", "2022"), "AS", "2021-01-01"), + ( + ("2020-05-01", "2023-04-01"), + "MS", + "2022-11-01", + ), + (("2022-03-20", "2022-07-28"), "D", "2022-05-28"), +] + +TESTCASES3 = [ # whole idx, freq, where + ( + ("2020-01-01", "2023-04-01"), + "QS", + ("2022-04-01", "2023-01-01"), + ), + (("2020", "2023"), "AS", ("2021-01-01", "2022-01-01")), + ( + ("2020-05-01", "2023-04-01"), + "MS", + ("2022-11-01", "2023-01-01"), + ), + (("2022-03-20", "2022-07-28"), "D", ("2022-04-28", "2022-05-15")), +] + + +def get_idx( + startdate: str, starttime: str, tz: str, freq: str, enddate: str +) -> pd.DatetimeIndex: + # Empty index. + if startdate is None: + return pd.DatetimeIndex([], freq=freq, tz=tz) + # Normal index. + ts_start = pd.Timestamp(f"{startdate} {starttime}", tz=tz) + ts_end = pd.Timestamp(f"{enddate} {starttime}", tz=tz) + return pd.date_range(ts_start, ts_end, freq=freq, inclusive="left") + + +@pytest.mark.parametrize("tz", [None, "Europe/Berlin", "Asia/Kolkata"]) +@pytest.mark.parametrize("starttime", ["00:00", "06:00"]) +@pytest.mark.parametrize(("whole_idx", "freq", "where"), TESTCASES2) +@pytest.mark.parametrize("test_fn", ["general", "concat_pfstates"]) +def test_concat_pfstates( + whole_idx: str, + starttime: str, + tz: str, + freq: str, + where: str, + test_fn: str, +): + """Test that two PfStates get concatenated properly.""" + idx = get_idx(whole_idx[0], starttime, tz, freq, whole_idx[1]) + whole_pfs = dev.get_pfstate(idx) + pfs_a = whole_pfs.slice[:where] + pfs_b = whole_pfs.slice[where:] + fn = concat.general if test_fn == "general" else concat.concat_pfstates + result = fn([pfs_a, pfs_b]) + result2 = fn([pfs_b, pfs_a]) + assert whole_pfs == result + assert whole_pfs == result2 + + +@pytest.mark.parametrize("tz", [None, "Europe/Berlin", "Asia/Kolkata"]) +@pytest.mark.parametrize("starttime", ["00:00", "06:00"]) +@pytest.mark.parametrize(("whole_idx", "freq", "where"), TESTCASES3) +@pytest.mark.parametrize("test_fn", ["general", "concat_pfstates"]) +def test_concat_three_pfstates( + whole_idx: str, + starttime: str, + tz: str, + freq: str, + where: str, + test_fn: str, +): + """Test that three PfStates get concatenated properly.""" + idx = get_idx(whole_idx[0], starttime, tz, freq, whole_idx[1]) + whole_pfs = dev.get_pfstate(idx) + split_one = where[0] + split_two = where[1] + pfs_a = whole_pfs.slice[:split_one] + pfs_b = whole_pfs.slice[split_one:split_two] + pfs_c = whole_pfs.slice[split_two:] + fn = concat.general if test_fn == "general" else concat.concat_pfstates + result = fn([pfs_a, pfs_b, pfs_c]) + result2 = fn([pfs_b, pfs_c, pfs_a]) + assert whole_pfs == result + assert whole_pfs == result2