Skip to content

Commit 30989b9

Browse files
committed
Tests for new tables
1 parent 679d3ae commit 30989b9

2 files changed

Lines changed: 65 additions & 17 deletions

File tree

src/muse/new_input/readers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def read_commodity_costs_csv(buffer_, con):
6969
con.sql(sql)
7070
rel = con.read_csv(buffer_, header=True, delimiter=",") # noqa: F841
7171
con.sql("""INSERT INTO commodity_costs SELECT
72-
commidity_id, region_id, year, value FROM rel;""")
72+
commodity_id, region_id, year, value FROM rel;""")
7373
return con.sql("SELECT * from commodity_costs").fetchnumpy()
7474

7575

tests/test_new_readers.py

Lines changed: 64 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,26 @@ def populate_commodities(default_new_input, con):
2727
return read_commodities_csv(f, con)
2828

2929

30+
@fixture
31+
def populate_commodity_trade(
32+
default_new_input, con, populate_commodities, populate_regions
33+
):
34+
from muse.new_input.readers import read_commodity_trade_csv
35+
36+
with open(default_new_input / "commodity_trade.csv") as f:
37+
return read_commodity_trade_csv(f, con)
38+
39+
40+
@fixture
41+
def populate_commodity_costs(
42+
default_new_input, con, populate_commodities, populate_regions
43+
):
44+
from muse.new_input.readers import read_commodity_costs_csv
45+
46+
with open(default_new_input / "commodity_costs.csv") as f:
47+
return read_commodity_costs_csv(f, con)
48+
49+
3050
@fixture
3151
def populate_demand(default_new_input, con, populate_regions, populate_commodities):
3252
from muse.new_input.readers import read_demand_csv
@@ -35,6 +55,16 @@ def populate_demand(default_new_input, con, populate_regions, populate_commoditi
3555
return read_demand_csv(f, con)
3656

3757

58+
@fixture
59+
def populate_demand_slicing(
60+
default_new_input, con, populate_regions, populate_commodities
61+
):
62+
from muse.new_input.readers import read_demand_slicing_csv
63+
64+
with open(default_new_input / "demand_slicing.csv") as f:
65+
return read_demand_slicing_csv(f, con)
66+
67+
3868
@fixture
3969
def populate_regions(default_new_input, con):
4070
from muse.new_input.readers import read_regions_csv
@@ -43,17 +73,43 @@ def populate_regions(default_new_input, con):
4373
return read_regions_csv(f, con)
4474

4575

46-
def test_read_regions(populate_regions):
47-
assert populate_regions["id"] == np.array(["R1"])
48-
49-
50-
def test_read_new_global_commodities(populate_commodities):
76+
def test_read_commodities_csv(populate_commodities):
5177
data = populate_commodities
5278
assert list(data["id"]) == ["electricity", "gas", "heat", "wind", "CO2f"]
5379
assert list(data["type"]) == ["energy"] * 5
5480
assert list(data["unit"]) == ["PJ"] * 4 + ["kt"]
5581

5682

83+
def test_read_commodity_trade_csv(populate_commodity_trade):
84+
data = populate_commodity_trade
85+
assert data["commodity"].size == 0
86+
assert data["region"].size == 0
87+
assert data["year"].size == 0
88+
assert data["import"].size == 0
89+
assert data["export"].size == 0
90+
91+
92+
def test_read_commodity_costs_csv(populate_commodity_costs):
93+
data = populate_commodity_costs
94+
# Only checking the first element of each array, as the table is large
95+
assert next(iter(data["commodity"])) == "electricity"
96+
assert next(iter(data["region"])) == "R1"
97+
assert next(iter(data["year"])) == 2010
98+
assert next(iter(data["value"])) == approx(14.81481)
99+
100+
101+
def test_read_demand_csv(populate_demand):
102+
data = populate_demand
103+
assert np.all(data["year"] == np.array([2020, 2050]))
104+
assert np.all(data["commodity"] == np.array(["heat", "heat"]))
105+
assert np.all(data["region"] == np.array(["R1", "R1"]))
106+
assert np.all(data["demand"] == np.array([10, 30]))
107+
108+
109+
def test_read_regions_csv(populate_regions):
110+
assert populate_regions["id"] == np.array(["R1"])
111+
112+
57113
def test_calculate_global_commodities(populate_commodities):
58114
from muse.new_input.readers import calculate_global_commodities
59115

@@ -69,23 +125,15 @@ def test_calculate_global_commodities(populate_commodities):
69125
assert list(data.data_vars["unit"].values) == list(populate_commodities["unit"])
70126

71127

72-
def test_read_new_global_commodities_type_constraint(default_new_input, con):
128+
def test_read_global_commodities_type_constraint(default_new_input, con):
73129
from muse.new_input.readers import read_commodities_csv
74130

75131
csv = StringIO("id,type,unit\nfoo,invalid,bar\n")
76132
with raises(duckdb.ConstraintException):
77133
read_commodities_csv(csv, con)
78134

79135

80-
def test_new_read_demand_csv(populate_demand):
81-
data = populate_demand
82-
assert np.all(data["year"] == np.array([2020, 2050]))
83-
assert np.all(data["commodity"] == np.array(["heat", "heat"]))
84-
assert np.all(data["region"] == np.array(["R1", "R1"]))
85-
assert np.all(data["demand"] == np.array([10, 30]))
86-
87-
88-
def test_new_read_demand_csv_commodity_constraint(
136+
def test_read_demand_csv_commodity_constraint(
89137
default_new_input, con, populate_commodities, populate_regions
90138
):
91139
from muse.new_input.readers import read_demand_csv
@@ -95,7 +143,7 @@ def test_new_read_demand_csv_commodity_constraint(
95143
read_demand_csv(csv, con)
96144

97145

98-
def test_new_read_demand_csv_region_constraint(
146+
def test_read_demand_csv_region_constraint(
99147
default_new_input, con, populate_commodities, populate_regions
100148
):
101149
from muse.new_input.readers import read_demand_csv

0 commit comments

Comments
 (0)