Source code for message_ix_models.tests.model.transport.test_ustimes_ma3t

from message_ix_models.model.structure import get_codes
from message_ix_models.model.transport import testing
from message_ix_models.model.transport.ustimes_ma3t import read_USTIMES_MA3T


[docs] @testing.make_mark[5]("R11/ldv-cost-efficiency.xlsx") def test_read_USTIMES_MA3T(): """Data from the US-TIMES / MA³T source can be read. .. todo:: Adapt to be more like :func:`.test_build.test_debug`, using the output of :func:`.ldv.prepare_computer`. """ all_nodes = get_codes("node/R11") nodes = all_nodes[all_nodes.index("World")].child data = read_USTIMES_MA3T(nodes, "R11") # Expected contents names = ["fix_cost", "fuel economy", "inv_cost"] assert set(names) == set(data.keys()) # Correct units assert data["inv_cost"].units.dimensionality == {"[currency]": 1, "[vehicle]": -1} assert data["fix_cost"].units.dimensionality == {"[currency]": 1, "[vehicle]": -1} assert data["fuel economy"].units.dimensionality == { "[vehicle]": 1, "[length]": -1, "[mass]": -1, "[time]": 2, } for name in names: # Quantity has the expected name assert data[name].name == name # Quantity has the expected dimensions assert {"n", "t", "y"} == set(data[name].dims) # Data is returned for all regions assert set(data[name].coords["n"].to_index()) == set(map(str, nodes))