Skip to content

Commit

Permalink
Add failing test cases to illustrate potentially conflicting information
Browse files Browse the repository at this point in the history
  • Loading branch information
phackstock committed Jan 25, 2024
1 parent 87311de commit 6c50319
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
model: m_a
native_regions: [region_A, region_B]
common_regions:
- region_C: [region_A, region_B]
63 changes: 63 additions & 0 deletions tests/test_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -483,3 +483,66 @@ def test_region_aggregation_unknown_region(simple_df, simple_definition, caplog)
text in caplog.text
for text in ["not defined in the 'region' codelist", "unknown region"]
)


def test_region_aggregation_overlapping_instructions_case_1():
# region-aggregation variable is provided
res = RegionProcessor.from_directory(
TEST_DATA_DIR / "region_processing" / "overlapping_instructions",
DataStructureDefinition(TEST_DATA_DIR / "region_processing" / "dsd"),
).apply(
IamDataFrame(
pd.DataFrame(
[
["m_a", "s_a", "region_A", "Variable A", "EJ/yr", 1],
["m_a", "s_a", "region_B", "Variable A", "EJ/yr", 1],
["m_a", "s_a", "region_A", "Variable A (max)", "EJ/yr", 1],
["m_a", "s_a", "region_B", "Variable A (max)", "EJ/yr", 1],
],
columns=IAMC_IDX + [2020],
)
)
)
assert False


def test_region_aggregation_overlapping_instructions_case_2():
# region-aggregation variable is provided at base and aggregation level for
# aggregation region -> takes priority
res = RegionProcessor.from_directory(
TEST_DATA_DIR / "region_processing" / "overlapping_instructions",
DataStructureDefinition(TEST_DATA_DIR / "region_processing" / "dsd"),
).apply(
IamDataFrame(
pd.DataFrame(
[
["m_a", "s_a", "region_A", "Variable A", "EJ/yr", 1],
["m_a", "s_a", "region_B", "Variable A", "EJ/yr", 1],
["m_a", "s_a", "region_C", "Variable A (max)", "EJ/yr", 2],
],
columns=IAMC_IDX + [2020],
)
)
)
print(res.data)
assert False


def test_region_aggregation_overlapping_instructions_case_3():
# only base variable is provided -> all good
res = RegionProcessor.from_directory(
TEST_DATA_DIR / "region_processing" / "overlapping_instructions",
DataStructureDefinition(TEST_DATA_DIR / "region_processing" / "dsd"),
).apply(
IamDataFrame(
pd.DataFrame(
[
["m_a", "s_a", "region_A", "Variable A", "EJ/yr", 1],
["m_a", "s_a", "region_B", "Variable A", "EJ/yr", 2],
],
columns=IAMC_IDX + [2020],
)
)
)
print(res.data)
assert False

0 comments on commit 6c50319

Please sign in to comment.