예제 #1
0
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()
예제 #2
0
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()
예제 #3
0
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()
예제 #4
0
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]