Search in sources :

Example 1 with Process

use of org.openlca.core.model.Process in project olca-modules by GreenDelta.

the class ProcessReferenceSearchTest method createModel.

@Override
protected Process createModel() {
    Process process = new Process();
    process.category = insertAndAddExpected("category", new Category());
    process.location = insertAndAddExpected("location", new Location());
    process.dqSystem = insertAndAddExpected("dqSystem", new DQSystem());
    process.exchangeDqSystem = insertAndAddExpected("exchangeDqSystem", new DQSystem());
    process.socialDqSystem = insertAndAddExpected("socialDqSystem", new DQSystem());
    String n1 = generateName();
    String n2 = generateName();
    String n3 = generateName();
    String n4 = generateName();
    String n5 = generateName();
    createExchange(process, 3d, true);
    createExchange(process, "2*" + n4, false);
    process.parameters.add(createParameter(n1, 3d, false));
    process.parameters.add(createParameter(n2, n1 + "*2*" + n3, false));
    process.socialAspects.add(createSocialAspect());
    process.socialAspects.add(createSocialAspect());
    process.documentation = createDocumentation();
    insertAndAddExpected(n3, createParameter(n3, "5*5", true));
    // formula with parameter to see if added as reference (unexpected)
    insertAndAddExpected(n4, createParameter(n4, "3*" + n5, true));
    Parameter globalUnreferenced = createParameter(n1, "3*3", true);
    Parameter globalUnreferenced2 = createParameter(n5, "3*3", true);
    // must be inserted manually
    globalUnreferenced = db.insert(globalUnreferenced);
    globalUnreferenced2 = db.insert(globalUnreferenced2);
    process = db.insert(process);
    for (Exchange e : process.exchanges) {
        addExpected("flow", e.flow, "exchanges", Exchange.class, e.id);
        addExpected("flowPropertyFactor", e.flowPropertyFactor, "exchanges", Exchange.class, e.id);
        addExpected("flowProperty", e.flowPropertyFactor.flowProperty, "flowPropertyFactor", FlowPropertyFactor.class, e.flowPropertyFactor.id);
        addExpected("unit", e.unit, "exchanges", Exchange.class, e.id);
        Process provider = processes.get(e.defaultProviderId);
        if (provider != null)
            addExpected("defaultProviderId", provider, "exchanges", Exchange.class, e.id);
    }
    for (SocialAspect a : process.socialAspects) {
        addExpected("indicator", a.indicator, "socialAspects", SocialAspect.class, a.id);
        addExpected("source", a.source, "socialAspects", SocialAspect.class, a.id);
    }
    ProcessDocumentation doc = process.documentation;
    addExpected("dataDocumentor", doc.dataDocumentor, "documentation", ProcessDocumentation.class, doc.id);
    addExpected("dataGenerator", doc.dataGenerator, "documentation", ProcessDocumentation.class, doc.id);
    addExpected("dataSetOwner", doc.dataSetOwner, "documentation", ProcessDocumentation.class, doc.id);
    addExpected("reviewer", doc.reviewer, "documentation", ProcessDocumentation.class, doc.id);
    addExpected("publication", doc.publication, "documentation", ProcessDocumentation.class, doc.id);
    for (Source s : process.documentation.sources) addExpected("sources", s, "documentation", ProcessDocumentation.class, doc.id);
    return process;
}
Also used : Exchange(org.openlca.core.model.Exchange) Category(org.openlca.core.model.Category) SocialAspect(org.openlca.core.model.SocialAspect) DQSystem(org.openlca.core.model.DQSystem) Parameter(org.openlca.core.model.Parameter) Process(org.openlca.core.model.Process) ProcessDocumentation(org.openlca.core.model.ProcessDocumentation) Source(org.openlca.core.model.Source) Location(org.openlca.core.model.Location)

Example 2 with Process

use of org.openlca.core.model.Process in project olca-modules by GreenDelta.

the class ProductSystemReferenceSearchTest method createModel.

@Override
protected ProductSystem createModel() {
    ProductSystem system = new ProductSystem();
    system.category = insertAndAddExpected("category", new Category());
    system.referenceProcess = createProcess();
    system.referenceExchange = system.referenceProcess.exchanges.get(0);
    system.targetFlowPropertyFactor = system.referenceExchange.flowPropertyFactor;
    system.targetUnit = system.targetFlowPropertyFactor.flowProperty.unitGroup.units.get(0);
    system.processes.add(system.referenceProcess.id);
    Process p1 = insertAndAddExpected("processes", new Process());
    Process p2 = insertAndAddExpected("processes", new Process());
    Process p3 = insertAndAddExpected("processes", new Process());
    system.processes.add(p1.id);
    system.processes.add(p2.id);
    system.processes.add(p3.id);
    system.processLinks.add(createLink(p1, p2));
    system.processLinks.add(createLink(p2, p3));
    String n1 = generateName();
    String n2 = generateName();
    String n3 = generateName();
    // TODO: find parameter references
    // system.parameterRedefs.add(createParameterRedef(n1, p1.id));
    // formula with parameter to see if added as reference (unexpected)
    // system.parameterRedefs.add(createParameterRedef(n2, n3 + "*5"));
    Parameter globalUnreferenced = createParameter(n1, "3*3", true);
    Parameter globalUnreferenced2 = createParameter(n3, "3*3", true);
    // must be inserted manually
    globalUnreferenced = db.insert(globalUnreferenced);
    globalUnreferenced2 = db.insert(globalUnreferenced2);
    return db.insert(system);
}
Also used : Category(org.openlca.core.model.Category) ProductSystem(org.openlca.core.model.ProductSystem) Parameter(org.openlca.core.model.Parameter) Process(org.openlca.core.model.Process)

Example 3 with Process

use of org.openlca.core.model.Process in project olca-modules by GreenDelta.

the class TestSystem method link.

public TestSystem link(Process process) {
    if (processes.contains(process))
        return this;
    index(process);
    for (Process p : processes) {
        for (Exchange e : p.exchanges) {
            if (isProvider(e))
                continue;
            if (e.flow == null || e.flow.flowType == FlowType.ELEMENTARY_FLOW)
                continue;
            long flowId = e.flow.id;
            Process provider = providers.get(flowId);
            if (provider == null)
                continue;
            ProcessLink link = new ProcessLink();
            link.providerId = provider.id;
            link.flowId = flowId;
            link.processId = p.id;
            link.exchangeId = e.id;
            if (!system.processLinks.contains(link)) {
                system.processLinks.add(link);
            }
        }
    }
    return this;
}
Also used : Exchange(org.openlca.core.model.Exchange) ProcessLink(org.openlca.core.model.ProcessLink) Process(org.openlca.core.model.Process)

Example 4 with Process

use of org.openlca.core.model.Process in project olca-modules by GreenDelta.

the class ExchangeUseSearchTest method setUp.

@Before
public void setUp() {
    db.clear();
    p = new Process();
    q = new Process();
    addExchanges();
    ProcessDao dao = new ProcessDao(db);
    p = dao.insert(p);
    q = dao.insert(q);
    modelStack.push(p);
    modelStack.push(q);
    createSystem();
}
Also used : ProcessDao(org.openlca.core.database.ProcessDao) Process(org.openlca.core.model.Process) Before(org.junit.Before)

Example 5 with Process

use of org.openlca.core.model.Process in project olca-modules by GreenDelta.

the class FlowPropertyFactorUseSearchTest method testFindInProcesses.

@Test
public void testFindInProcesses() {
    Process process = createProcess();
    List<RootDescriptor> results = search.findUses(factor);
    new ProcessDao(database).delete(process);
    Descriptor expected = Descriptor.of(process);
    Assert.assertEquals(1, results.size());
    Assert.assertEquals(expected, results.get(0));
}
Also used : ProcessDao(org.openlca.core.database.ProcessDao) RootDescriptor(org.openlca.core.model.descriptors.RootDescriptor) Descriptor(org.openlca.core.model.descriptors.Descriptor) RootDescriptor(org.openlca.core.model.descriptors.RootDescriptor) Process(org.openlca.core.model.Process) Test(org.junit.Test)

Aggregations

Process (org.openlca.core.model.Process)105 Test (org.junit.Test)35 ProcessDao (org.openlca.core.database.ProcessDao)28 Exchange (org.openlca.core.model.Exchange)22 TestProcess (org.openlca.core.TestProcess)15 Flow (org.openlca.core.model.Flow)14 ProductSystem (org.openlca.core.model.ProductSystem)14 Parameter (org.openlca.core.model.Parameter)13 IDatabase (org.openlca.core.database.IDatabase)10 Before (org.junit.Before)9 ProcessDocumentation (org.openlca.core.model.ProcessDocumentation)9 ProcessDescriptor (org.openlca.core.model.descriptors.ProcessDescriptor)9 AbstractZipTest (org.openlca.jsonld.AbstractZipTest)8 AllocationMethod (org.openlca.core.model.AllocationMethod)6 FlowProperty (org.openlca.core.model.FlowProperty)6 ImpactMethod (org.openlca.core.model.ImpactMethod)6 Location (org.openlca.core.model.Location)6 File (java.io.File)5 UnitGroup (org.openlca.core.model.UnitGroup)5 FullResult (org.openlca.core.results.FullResult)5