Also store generated Java code
diff --git a/tests/org.eclipse.app4mc.multicore.partitioning.tests/.settings/org.eclipse.xtend.core.Xtend.prefs b/tests/org.eclipse.app4mc.multicore.partitioning.tests/.settings/org.eclipse.xtend.core.Xtend.prefs new file mode 100644 index 0000000..35ec109 --- /dev/null +++ b/tests/org.eclipse.app4mc.multicore.partitioning.tests/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,23 @@ +BuilderConfiguration.is_project_specific=true +autobuilding=true +eclipse.preferences.version=1 +generateGeneratedAnnotation=false +generateSuppressWarnings=true +generatedAnnotationComment= +includeDateInGenerated=false +outlet.DEFAULT_OUTPUT.cleanDirectory=false +outlet.DEFAULT_OUTPUT.cleanupDerived=false +outlet.DEFAULT_OUTPUT.createDirectory=true +outlet.DEFAULT_OUTPUT.derived=false +outlet.DEFAULT_OUTPUT.directory=xtend-gen +outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true +outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false +outlet.DEFAULT_OUTPUT.keepLocalHistory=false +outlet.DEFAULT_OUTPUT.override=true +outlet.DEFAULT_OUTPUT.sourceFolder.src.directory= +outlet.DEFAULT_OUTPUT.sourceFolder.src.ignore= +outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory= +outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.ignore= +outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder= +targetJavaVersion=JAVA5 +useJavaCompilerCompliance=true
diff --git a/tests/org.eclipse.app4mc.multicore.partitioning.tests/xtend-gen/org/eclipse/app4mc/multicore/partitioning/tests/BinPackingTest.java b/tests/org.eclipse.app4mc.multicore.partitioning.tests/xtend-gen/org/eclipse/app4mc/multicore/partitioning/tests/BinPackingTest.java new file mode 100644 index 0000000..102d4eb --- /dev/null +++ b/tests/org.eclipse.app4mc.multicore.partitioning.tests/xtend-gen/org/eclipse/app4mc/multicore/partitioning/tests/BinPackingTest.java
@@ -0,0 +1,87 @@ +/** + * Copyright (c) 2020 Dortmund University of Applied Sciences and Arts and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Dortmund University of Applied Sciences and Arts - initial API and implementation + */ +package org.eclipse.app4mc.multicore.partitioning.tests; + +import org.eclipse.app4mc.amalthea.model.ActivityGraph; +import org.eclipse.app4mc.amalthea.model.ActivityGraphItem; +import org.eclipse.app4mc.amalthea.model.Amalthea; +import org.eclipse.app4mc.amalthea.model.AmaltheaFactory; +import org.eclipse.app4mc.amalthea.model.DiscreteValueConstant; +import org.eclipse.app4mc.amalthea.model.SWModel; +import org.eclipse.app4mc.amalthea.model.Ticks; +import org.eclipse.app4mc.amalthea.model.builder.AmaltheaBuilder; +import org.eclipse.app4mc.multicore.partitioning.binpacking.BinPacking; +import org.eclipse.emf.common.util.EList; +import org.eclipse.xtext.xbase.lib.ExclusiveRange; +import org.eclipse.xtext.xbase.lib.Extension; +import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; +import org.junit.Assert; +import org.junit.Test; + +@SuppressWarnings("all") +public class BinPackingTest { + @Extension + private AmaltheaBuilder b1 = new AmaltheaBuilder(); + + private final int[] ia = { 2, 5, 3, 4, 12, 9, 1, 0, 5, 6, 2, 4 }; + + private final int bins = 3; + + @Test + public void binPackingTest() { + final Procedure1<Amalthea> _function = (Amalthea it) -> { + final Procedure1<SWModel> _function_1 = (SWModel it_1) -> { + int _length = this.ia.length; + ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, _length, true); + for (final Integer i : _doubleDotLessThan) { + EList<org.eclipse.app4mc.amalthea.model.Runnable> _runnables = it_1.getRunnables(); + org.eclipse.app4mc.amalthea.model.Runnable _createRunnable = this.createRunnable((i).intValue()); + _runnables.add(_createRunnable); + } + }; + this.b1.softwareModel(it, _function_1); + }; + final Amalthea model = this.b1.amalthea(_function); + BinPacking bp = new BinPacking(model); + bp.binPacking(this.bins, 10); + int _size = bp.getAmaltheaModel().getSwModel().getProcessPrototypes().size(); + boolean _equals = (_size == this.bins); + Assert.assertTrue(_equals); + } + + private org.eclipse.app4mc.amalthea.model.Runnable createRunnable(final int id) { + org.eclipse.app4mc.amalthea.model.Runnable _xblockexpression = null; + { + final org.eclipse.app4mc.amalthea.model.Runnable r = AmaltheaFactory.eINSTANCE.createRunnable(); + r.setName(Integer.toString(id)); + final ActivityGraph ag = AmaltheaFactory.eINSTANCE.createActivityGraph(); + final Ticks ticks = AmaltheaFactory.eINSTANCE.createTicks(); + ticks.setDefault(this.createDVC(this.ia[id])); + EList<ActivityGraphItem> _items = ag.getItems(); + _items.add(ticks); + r.setActivityGraph(ag); + _xblockexpression = r; + } + return _xblockexpression; + } + + private DiscreteValueConstant createDVC(final int upper) { + DiscreteValueConstant _xblockexpression = null; + { + final DiscreteValueConstant ret = AmaltheaFactory.eINSTANCE.createDiscreteValueConstant(); + ret.setValue(upper); + _xblockexpression = ret; + } + return _xblockexpression; + } +}
diff --git a/tests/org.eclipse.app4mc.multicore.partitioning.tests/xtend-gen/org/eclipse/app4mc/multicore/partitioning/tests/CPPTest.java b/tests/org.eclipse.app4mc.multicore.partitioning.tests/xtend-gen/org/eclipse/app4mc/multicore/partitioning/tests/CPPTest.java index 9597695..ec1230b 100644 --- a/tests/org.eclipse.app4mc.multicore.partitioning.tests/xtend-gen/org/eclipse/app4mc/multicore/partitioning/tests/CPPTest.java +++ b/tests/org.eclipse.app4mc.multicore.partitioning.tests/xtend-gen/org/eclipse/app4mc/multicore/partitioning/tests/CPPTest.java
@@ -44,114 +44,66 @@ @Test public void CPPTest() { - final Procedure1<Amalthea> _function = new Procedure1<Amalthea>() { - @Override - public void apply(final Amalthea it) { - final Procedure1<ConstraintsModel> _function = new Procedure1<ConstraintsModel>() { - @Override - public void apply(final ConstraintsModel it) { - } + final Procedure1<Amalthea> _function = (Amalthea it) -> { + final Procedure1<ConstraintsModel> _function_1 = (ConstraintsModel it_1) -> { + }; + this.b1.constraintsModel(it, _function_1); + final Procedure1<SWModel> _function_2 = (SWModel it_1) -> { + final Procedure1<Label> _function_3 = (Label it_2) -> { + it_2.setName("l1"); + it_2.setSize(this.createDS(5)); }; - CPPTest.this.b1.constraintsModel(it, _function); - final Procedure1<SWModel> _function_1 = new Procedure1<SWModel>() { - @Override - public void apply(final SWModel it) { - final Procedure1<Label> _function = new Procedure1<Label>() { - @Override - public void apply(final Label it) { - it.setName("l1"); - it.setSize(CPPTest.this.createDS(5)); - } + this.b2.label(it_1, _function_3); + final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_4 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> { + it_2.setName("r1"); + final Procedure1<ActivityGraph> _function_5 = (ActivityGraph it_3) -> { + final Procedure1<Ticks> _function_6 = (Ticks it_4) -> { + it_4.setDefault(this.createDVC(20l)); }; - CPPTest.this.b2.label(it, _function); - final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_1 = new Procedure1<org.eclipse.app4mc.amalthea.model.Runnable>() { - @Override - public void apply(final org.eclipse.app4mc.amalthea.model.Runnable it) { - it.setName("r1"); - final Procedure1<ActivityGraph> _function = new Procedure1<ActivityGraph>() { - @Override - public void apply(final ActivityGraph it) { - final Procedure1<Ticks> _function = new Procedure1<Ticks>() { - @Override - public void apply(final Ticks it) { - it.setDefault(CPPTest.this.createDVC(20l)); - } - }; - CPPTest.this.b2.ticks(it, _function); - final Procedure1<LabelAccess> _function_1 = new Procedure1<LabelAccess>() { - @Override - public void apply(final LabelAccess it) { - it.setData(CPPTest.this.b1.<Label>_find(it, Label.class, "l1")); - it.setAccess(LabelAccessEnum.WRITE); - } - }; - CPPTest.this.b2.labelAccess(it, _function_1); - } - }; - CPPTest.this.b2.activityGraph(it, _function); - } + this.b2.ticks(it_3, _function_6); + final Procedure1<LabelAccess> _function_7 = (LabelAccess it_4) -> { + it_4.setData(this.b1.<Label>_find(it_4, Label.class, "l1")); + it_4.setAccess(LabelAccessEnum.WRITE); }; - CPPTest.this.b2.runnable(it, _function_1); - final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_2 = new Procedure1<org.eclipse.app4mc.amalthea.model.Runnable>() { - @Override - public void apply(final org.eclipse.app4mc.amalthea.model.Runnable it) { - it.setName("r2"); - final Procedure1<ActivityGraph> _function = new Procedure1<ActivityGraph>() { - @Override - public void apply(final ActivityGraph it) { - final Procedure1<Ticks> _function = new Procedure1<Ticks>() { - @Override - public void apply(final Ticks it) { - it.setDefault(CPPTest.this.createDVC(30l)); - } - }; - CPPTest.this.b2.ticks(it, _function); - final Procedure1<LabelAccess> _function_1 = new Procedure1<LabelAccess>() { - @Override - public void apply(final LabelAccess it) { - it.setData(CPPTest.this.b1.<Label>_find(it, Label.class, "l1")); - it.setAccess(LabelAccessEnum.WRITE); - } - }; - CPPTest.this.b2.labelAccess(it, _function_1); - } - }; - CPPTest.this.b2.activityGraph(it, _function); - } - }; - CPPTest.this.b2.runnable(it, _function_2); - final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_3 = new Procedure1<org.eclipse.app4mc.amalthea.model.Runnable>() { - @Override - public void apply(final org.eclipse.app4mc.amalthea.model.Runnable it) { - it.setName("r3"); - final Procedure1<ActivityGraph> _function = new Procedure1<ActivityGraph>() { - @Override - public void apply(final ActivityGraph it) { - final Procedure1<Ticks> _function = new Procedure1<Ticks>() { - @Override - public void apply(final Ticks it) { - it.setDefault(CPPTest.this.createDVC(10l)); - } - }; - CPPTest.this.b2.ticks(it, _function); - final Procedure1<LabelAccess> _function_1 = new Procedure1<LabelAccess>() { - @Override - public void apply(final LabelAccess it) { - it.setData(CPPTest.this.b1.<Label>_find(it, Label.class, "l1")); - it.setAccess(LabelAccessEnum.READ); - } - }; - CPPTest.this.b2.labelAccess(it, _function_1); - } - }; - CPPTest.this.b2.activityGraph(it, _function); - } - }; - CPPTest.this.b2.runnable(it, _function_3); - } + this.b2.labelAccess(it_3, _function_7); + }; + this.b2.activityGraph(it_2, _function_5); }; - CPPTest.this.b1.softwareModel(it, _function_1); - } + this.b2.runnable(it_1, _function_4); + final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_5 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> { + it_2.setName("r2"); + final Procedure1<ActivityGraph> _function_6 = (ActivityGraph it_3) -> { + final Procedure1<Ticks> _function_7 = (Ticks it_4) -> { + it_4.setDefault(this.createDVC(30l)); + }; + this.b2.ticks(it_3, _function_7); + final Procedure1<LabelAccess> _function_8 = (LabelAccess it_4) -> { + it_4.setData(this.b1.<Label>_find(it_4, Label.class, "l1")); + it_4.setAccess(LabelAccessEnum.WRITE); + }; + this.b2.labelAccess(it_3, _function_8); + }; + this.b2.activityGraph(it_2, _function_6); + }; + this.b2.runnable(it_1, _function_5); + final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_6 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> { + it_2.setName("r3"); + final Procedure1<ActivityGraph> _function_7 = (ActivityGraph it_3) -> { + final Procedure1<Ticks> _function_8 = (Ticks it_4) -> { + it_4.setDefault(this.createDVC(10l)); + }; + this.b2.ticks(it_3, _function_8); + final Procedure1<LabelAccess> _function_9 = (LabelAccess it_4) -> { + it_4.setData(this.b1.<Label>_find(it_4, Label.class, "l1")); + it_4.setAccess(LabelAccessEnum.READ); + }; + this.b2.labelAccess(it_3, _function_9); + }; + this.b2.activityGraph(it_2, _function_7); + }; + this.b2.runnable(it_1, _function_6); + }; + this.b1.softwareModel(it, _function_2); }; final Amalthea model = this.b1.amalthea(_function); SWModel _swModel = model.getSwModel();