Source code for bw_graph_tools.testing

from numbers import Number
from typing import Union

import numpy as np

from bw_graph_tools import Edge, Flow, Node


[docs] def equal_dict(a: Union[Node, Edge, Flow], b: dict, fields: list[str]): for field in fields: if field in b: if isinstance(b[field], Number): assert np.allclose(getattr(a, field), b[field]) else: assert getattr(a, field) == b[field]
[docs] def edge_equal_dict(a: Edge, b: dict): FIELDS = [ "consumer_index", "consumer_unique_id", "producer_index", "producer_unique_id", "product_index", "amount", ] equal_dict(a, b, FIELDS)
[docs] def flow_equal_dict(a: Flow, b: dict): FIELDS = [ "flow_datapackage_id", "flow_index", "activity_unique_id", "activity_id", "activity_index", "amount", "score", ] equal_dict(a, b, FIELDS)
[docs] def node_equal_dict(a: Node, b: dict): FIELDS = [ "unique_id", "activity_datapackage_id", "activity_index", "reference_product_datapackage_id", "reference_product_index", "reference_product_production_amount", "supply_amount", "cumulative_score", "direct_emissions_score", ] equal_dict(a, b, FIELDS)