11import pandas as pd
22import pytest
3-
4- from tests .eia_part3 import (
3+ from eia_part3 import (
54 add_week_ending_friday_column ,
65 build_df_from_eia_data ,
76 coerce_numeric_and_dropna ,
1110 validate_required_columns ,
1211)
1312
13+ # Constants used in tests to satisfy Ruff PLR2004 (no "magic numbers" in comparisons)
14+ EXPECTED_FIRST_VALUE = 100
15+ EXPECTED_FILTERED_VALUE = 2
16+ EXPECTED_LATEST_VALUE = 500.0
17+ EXPECTED_WEEK_COUNT = 2
18+ EXPECTED_WEEK1_SUM = 17
19+ EXPECTED_WEEK2_SUM = 3
20+ EXPECTED_SINGLE_VALUE = 10
21+
1422
1523def test_build_df_from_eia_data_parses_and_drops_bad_rows ():
1624 # includes: valid row, invalid date, invalid value
@@ -26,7 +34,7 @@ def test_build_df_from_eia_data_parses_and_drops_bad_rows():
2634 assert pd .api .types .is_datetime64_any_dtype (df ["week" ])
2735 assert pd .api .types .is_numeric_dtype (df ["value" ])
2836 assert df ["week" ].iloc [0 ] == pd .to_datetime ("2012-01-06" )
29- assert df ["value" ].iloc [0 ] == 100
37+ assert df ["value" ].iloc [0 ] == EXPECTED_FIRST_VALUE
3038
3139
3240def test_filter_since_keeps_2012_and_after ():
@@ -39,7 +47,7 @@ def test_filter_since_keeps_2012_and_after():
3947
4048 assert len (df2 ) == 1
4149 assert df2 ["week" ].iloc [0 ] == pd .to_datetime ("2012-01-06" )
42- assert df2 ["value" ].iloc [0 ] == 2
50+ assert df2 ["value" ].iloc [0 ] == EXPECTED_FILTERED_VALUE
4351
4452
4553def test_latest_value_returns_value_of_most_recent_date_even_if_unsorted ():
@@ -52,7 +60,7 @@ def test_latest_value_returns_value_of_most_recent_date_even_if_unsorted():
5260 df = build_df_from_eia_data (data )
5361 v = latest_value (df , date_col = "week" , value_col = "value" )
5462
55- assert v == 500.0
63+ assert v == EXPECTED_LATEST_VALUE
5664
5765
5866def test_latest_value_raises_on_empty_df ():
@@ -70,9 +78,14 @@ def test_sum_by_week_sums_duplicates():
7078 out = sum_by_week (df , date_col = "week" , value_col = "value" )
7179
7280 assert list (out .columns ) == ["week" , "value" ]
73- assert len (out ) == 2
74- assert out .loc [out ["week" ] == pd .to_datetime ("2012-01-06" ), "value" ].iloc [0 ] == 17
75- assert out .loc [out ["week" ] == pd .to_datetime ("2012-01-13" ), "value" ].iloc [0 ] == 3
81+ assert len (out ) == EXPECTED_WEEK_COUNT
82+ assert (
83+ out .loc [out ["week" ] == pd .to_datetime ("2012-01-06" ), "value" ].iloc [0 ] == EXPECTED_WEEK1_SUM
84+ )
85+ assert (
86+ out .loc [out ["week" ] == pd .to_datetime ("2012-01-13" ), "value" ].iloc [0 ] == EXPECTED_WEEK2_SUM
87+ )
88+
7689
7790def test_validate_required_columns_passes_when_present ():
7891 df = pd .DataFrame ({"week" : [pd .to_datetime ("2012-01-06" )], "value" : [1 ]})
@@ -99,4 +112,4 @@ def test_coerce_numeric_and_dropna_drops_invalid_values():
99112 out = coerce_numeric_and_dropna (df , value_col = "value" )
100113
101114 assert len (out ) == 1
102- assert out ["value" ].iloc [0 ] == 10
115+ assert out ["value" ].iloc [0 ] == EXPECTED_SINGLE_VALUE
0 commit comments