Skip to content

Commit 9042ed4

Browse files
committed
Add williamsR tests
1 parent 1355763 commit 9042ed4

File tree

2 files changed

+2372
-0
lines changed

2 files changed

+2372
-0
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import pandas as pd
2+
import polars as pl
3+
import pandas.testing as pdt
4+
from polars.testing import assert_frame_equal
5+
6+
from tests.resources import TestBaseline
7+
from pyindicators import willr
8+
9+
10+
class Test(TestBaseline):
11+
correct_output_csv_filename = \
12+
"WILLR_BTC-EUR_BINANCE_15m_2023-12-01:00:00_2023-12-25:00:00.csv"
13+
14+
def generate_pandas_df(self, polars_source_df):
15+
polars_source_df = willr(data=polars_source_df)
16+
return polars_source_df
17+
18+
def generate_polars_df(self, pandas_source_df):
19+
pandas_source_df = willr(data=pandas_source_df)
20+
return pandas_source_df
21+
22+
def test_comparison_pandas(self):
23+
24+
# Load the correct output in a pandas dataframe
25+
correct_output_pd = pd.read_csv(self.get_correct_output_csv_path())
26+
27+
# Load the source in a pandas dataframe
28+
source = pd.read_csv(self.get_source_csv_path())
29+
30+
# Generate the pandas dataframe
31+
output = self.generate_pandas_df(source)
32+
output = output[correct_output_pd.columns]
33+
output["Datetime"] = \
34+
pd.to_datetime(output["Datetime"]).dt.tz_localize(None)
35+
correct_output_pd["Datetime"] = \
36+
pd.to_datetime(correct_output_pd["Datetime"]).dt.tz_localize(None)
37+
38+
pdt.assert_frame_equal(correct_output_pd, output)
39+
40+
def test_comparison_polars(self):
41+
42+
# Load the correct output in a polars dataframe
43+
correct_output_pl = pl.read_csv(self.get_correct_output_csv_path())
44+
45+
# Load the source in a polars dataframe
46+
source = pl.read_csv(self.get_source_csv_path())
47+
48+
# Generate the polars dataframe
49+
output = self.generate_polars_df(source)
50+
51+
# Convert the datetime columns to datetime
52+
# Convert the 'Datetime' column in both DataFrames to datetime
53+
output = output.with_columns(
54+
pl.col("Datetime").str.strptime(pl.Datetime).alias("Datetime")
55+
)
56+
57+
correct_output_pl = correct_output_pl.with_columns(
58+
pl.col("Datetime").str.strptime(pl.Datetime).alias("Datetime")
59+
)
60+
output = output[correct_output_pl.columns]
61+
output = self.make_polars_column_datetime_naive(output, "Datetime")
62+
correct_output_pl = self.make_polars_column_datetime_naive(
63+
correct_output_pl, "Datetime"
64+
)
65+
66+
assert_frame_equal(correct_output_pl, output)

0 commit comments

Comments
 (0)