def test_delete_activity_parameters(): db = DatabaseChooser("example") db.register() a = db.new_activity(code="A", name="An activity") a.save() b = db.new_activity(code="B", name="Another activity") b.save() a.new_exchange( amount=0, input=b, type="technosphere", formula="foo * bar + 4" ).save() activity_data = [ { "name": "reference_me", "formula": "sqrt(25)", "database": "example", "code": "B", }, { "name": "bar", "formula": "reference_me + 2", "database": "example", "code": "A", }, ] parameters.new_activity_parameters(activity_data, "my group") parameters.add_exchanges_to_group("my group", a) assert ActivityParameter.select().count() == 2 assert ParameterizedExchange.select().count() == 1 a.delete() assert ActivityParameter.select().count() == 1 assert not ParameterizedExchange.select().count()
def test_delete_parameterized_exchange(): db = DatabaseChooser("example") db.register() a = db.new_activity(code="A", name="An activity") a.save() b = db.new_activity(code="B", name="Another activity") b.save() exc = a.new_exchange(amount=0, input=b, type="technosphere", formula="foo * bar + 4") exc.save() activity_data = [{ 'name': 'reference_me', 'formula': 'sqrt(25)', 'database': 'example', 'code': "B", }, { 'name': 'bar', 'formula': 'reference_me + 2', 'database': 'example', 'code': "A", }] parameters.new_activity_parameters(activity_data, "my group") parameters.add_exchanges_to_group("my group", a) assert ActivityParameter.select().count() == 2 assert ParameterizedExchange.select().count() == 1 exc.delete() assert ActivityParameter.select().count() == 2 assert not ParameterizedExchange.select().count()
def test_database_delete_parameters(): db = DatabaseChooser("example") db.register() a = db.new_activity(code="A", name="An activity") a.save() b = db.new_activity(code="B", name="Another activity") b.save() a.new_exchange(amount=0, input=b, type="technosphere", formula="foo * bar + 4").save() database_data = [{ 'name': 'red', 'formula': '(blue ** 2) / 5', }, { 'name': 'blue', 'amount': 12 }] parameters.new_database_parameters(database_data, "example") activity_data = [{ 'name': 'reference_me', 'formula': 'sqrt(red - 20)', 'database': 'example', 'code': "B", }, { 'name': 'bar', 'formula': 'reference_me + 2', 'database': 'example', 'code': "A", }] parameters.new_activity_parameters(activity_data, "my group") parameters.add_exchanges_to_group("my group", a) assert ActivityParameter.select().count() == 2 assert ParameterizedExchange.select().count() == 1 assert DatabaseParameter.select().count() == 2 assert len(parameters) == 4 del databases['example'] assert not len(parameters) assert not ParameterizedExchange.select().count()
def test_calculate_matrix_presamples(): data = { ("test-db", 'b'): { 'exchanges': [], 'type': 'emission', }, ("test-db", 't1'): { 'exchanges': [{ 'amount': 1, 'input': ('test-db', 't2'), 'type': 'technosphere', 'formula': 'foo + bar' }, { 'amount': 1, 'input': ('test-db', 'b'), 'type': 'biosphere', 'formula': 'foo - bar + pppp' }], 'type': 'process', }, ("test-db", 't2'): { 'exchanges': [], 'type': 'process', }, } Database("test-db").write(data) Group.create(name="E", order=[]) data = [{ 'name': 'foo', 'database': 'test-db', 'code': 't1', 'amount': 7, 'uncertainty_type': 4, 'minimum': 0, 'maximum': 14, }, { 'name': 'bar', 'database': 'test-db', 'code': 't1', 'amount': 11, }] parameters.new_project_parameters([{'name': 'pppp', 'amount': 12}]) parameters.new_activity_parameters(data, 'A') parameters.add_exchanges_to_group('A', get_activity(("test-db", 't1'))) parameters.recalculate() pbm = ParameterizedBrightwayModel("A") pbm.load_parameter_data() pbm.calculate_static() pbm.calculate_matrix_presamples() id_, dirpath = pbm.save_presample('test-everything') # Check for file contents pp = PresamplesPackage(dirpath) resources = pp.resources assert len(resources) == 3 assert resources[0]['type'] == 'biosphere' assert resources[0]['samples']['shape'] == [1, 1] assert resources[1]['type'] == 'technosphere' assert resources[1]['samples']['shape'] == [1, 1] assert resources[2]['label'] == 'test-everything' assert resources[2]['samples']['shape'] == [3, 1]