Forráskód Böngészése

convert unit test to not access FS

Claudio Gomes 5 éve
szülő
commit
a54b2bf213

+ 77 - 0
HintCOEngine/instances/generated/create_default_candidate_space_test.xmi

@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="ASCII"?>
+<hintco:HintConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hintco="ua.ansymo.hintco">
+  <candidates identifier="Original">
+    <cosimunits xsi:type="hintco:CosimUnitInstance" identifier="Scenario" declaration="//@csuDeclarations.0">
+      <adaptation xsi:type="hintco:MultiRateAdaptation" rate="10"/>
+      <ports xsi:type="hintco:OutputPortInstance" identifier="psuvolt" valueTo="//@candidates.0/@cosimunits.2/@ports.1"/>
+      <ports xsi:type="hintco:OutputPortInstance" identifier="ref" valueTo="//@candidates.0/@cosimunits.1/@ports.2"/>
+    </cosimunits>
+    <cosimunits xsi:type="hintco:CosimUnitInstance" identifier="DLoopController_FixedEuler_1Em6" declaration="//@csuDeclarations.1">
+      <adaptation xsi:type="hintco:MultiRateAdaptation" rate="10"/>
+      <ports xsi:type="hintco:InputPortInstance" identifier="VEL_FB@expseu_" valueFrom="//@candidates.0/@cosimunits.2/@ports.4">
+        <adaptation xsi:type="hintco:XorPortAdaptation">
+          <children xsi:type="hintco:ExtrapolationAdaptation" implies="//@candidates.0/@cosimunits.1/@ports.0/@adaptation/@children.0 //@candidates.0/@cosimunits.1/@ports.1/@adaptation/@children.0 //@candidates.0/@cosimunits.1/@ports.2/@adaptation/@children.0 //@candidates.0/@cosimunits.1/@adaptation" order="1"/>
+          <children xsi:type="hintco:InterpolationAdaptation" weight="10" implies="//@candidates.0/@cosimunits.1/@ports.0/@adaptation/@children.1 //@candidates.0/@cosimunits.1/@ports.1/@adaptation/@children.1 //@candidates.0/@cosimunits.1/@ports.2/@adaptation/@children.1 //@candidates.0/@cosimunits.1/@adaptation" order="1"/>
+        </adaptation>
+      </ports>
+      <ports xsi:type="hintco:InputPortInstance" identifier="POS_FB@expseu_" valueFrom="//@candidates.0/@cosimunits.3/@ports.1">
+        <adaptation xsi:type="hintco:XorPortAdaptation">
+          <children xsi:type="hintco:ExtrapolationAdaptation" implies="//@candidates.0/@cosimunits.1/@ports.0/@adaptation/@children.0 //@candidates.0/@cosimunits.1/@ports.1/@adaptation/@children.0 //@candidates.0/@cosimunits.1/@ports.2/@adaptation/@children.0 //@candidates.0/@cosimunits.1/@adaptation" order="1"/>
+          <children xsi:type="hintco:InterpolationAdaptation" weight="10" implies="//@candidates.0/@cosimunits.1/@ports.0/@adaptation/@children.1 //@candidates.0/@cosimunits.1/@ports.1/@adaptation/@children.1 //@candidates.0/@cosimunits.1/@ports.2/@adaptation/@children.1 //@candidates.0/@cosimunits.1/@adaptation" order="1"/>
+        </adaptation>
+      </ports>
+      <ports xsi:type="hintco:InputPortInstance" identifier="REFERENCE@expseu_" valueFrom="//@candidates.0/@cosimunits.0/@ports.1">
+        <adaptation xsi:type="hintco:XorPortAdaptation">
+          <children xsi:type="hintco:ExtrapolationAdaptation" implies="//@candidates.0/@cosimunits.1/@ports.0/@adaptation/@children.0 //@candidates.0/@cosimunits.1/@ports.1/@adaptation/@children.0 //@candidates.0/@cosimunits.1/@ports.2/@adaptation/@children.0 //@candidates.0/@cosimunits.1/@adaptation" order="1"/>
+          <children xsi:type="hintco:InterpolationAdaptation" weight="10" implies="//@candidates.0/@cosimunits.1/@ports.0/@adaptation/@children.1 //@candidates.0/@cosimunits.1/@ports.1/@adaptation/@children.1 //@candidates.0/@cosimunits.1/@ports.2/@adaptation/@children.1 //@candidates.0/@cosimunits.1/@adaptation" order="1"/>
+        </adaptation>
+      </ports>
+      <ports xsi:type="hintco:OutputPortInstance" identifier="OUTPUT@expseu_" valueTo="//@candidates.0/@cosimunits.2/@ports.0"/>
+    </cosimunits>
+    <cosimunits xsi:type="hintco:CosimUnitInstance" identifier="EMAPlantNoLoad_FixedEuler_1Em6" declaration="//@csuDeclarations.2">
+      <adaptation xsi:type="hintco:MultiRateAdaptation" rate="10"/>
+      <ports xsi:type="hintco:InputPortInstance" identifier="torque_input@expseu_" valueFrom="//@candidates.0/@cosimunits.1/@ports.3">
+        <adaptation xsi:type="hintco:XorPortAdaptation">
+          <children xsi:type="hintco:ExtrapolationAdaptation" implies="//@candidates.0/@cosimunits.2/@ports.0/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@ports.1/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@ports.2/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@ports.3/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@adaptation" order="1"/>
+          <children xsi:type="hintco:InterpolationAdaptation" weight="10" implies="//@candidates.0/@cosimunits.2/@ports.0/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@ports.1/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@ports.2/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@ports.3/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@adaptation" order="1"/>
+        </adaptation>
+      </ports>
+      <ports xsi:type="hintco:InputPortInstance" identifier="psu_vol_input_v@expseu_" valueFrom="//@candidates.0/@cosimunits.0/@ports.0">
+        <adaptation xsi:type="hintco:XorPortAdaptation">
+          <children xsi:type="hintco:ExtrapolationAdaptation" implies="//@candidates.0/@cosimunits.2/@ports.0/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@ports.1/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@ports.2/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@ports.3/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@adaptation" order="1"/>
+          <children xsi:type="hintco:InterpolationAdaptation" weight="10" implies="//@candidates.0/@cosimunits.2/@ports.0/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@ports.1/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@ports.2/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@ports.3/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@adaptation" order="1"/>
+        </adaptation>
+      </ports>
+      <ports xsi:type="hintco:InputPortInstance" identifier="V_IN@expseu_" valueFrom="//@candidates.0/@cosimunits.3/@ports.2">
+        <adaptation xsi:type="hintco:XorPortAdaptation">
+          <children xsi:type="hintco:ExtrapolationAdaptation" implies="//@candidates.0/@cosimunits.2/@ports.0/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@ports.1/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@ports.2/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@ports.3/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@adaptation" order="1"/>
+          <children xsi:type="hintco:InterpolationAdaptation" weight="10" implies="//@candidates.0/@cosimunits.2/@ports.0/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@ports.1/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@ports.2/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@ports.3/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@adaptation" order="1"/>
+        </adaptation>
+      </ports>
+      <ports xsi:type="hintco:InputPortInstance" identifier="X_IN@expseu_" valueFrom="//@candidates.0/@cosimunits.3/@ports.3">
+        <adaptation xsi:type="hintco:XorPortAdaptation">
+          <children xsi:type="hintco:ExtrapolationAdaptation" implies="//@candidates.0/@cosimunits.2/@ports.0/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@ports.1/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@ports.2/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@ports.3/@adaptation/@children.0 //@candidates.0/@cosimunits.2/@adaptation" order="1"/>
+          <children xsi:type="hintco:InterpolationAdaptation" weight="10" implies="//@candidates.0/@cosimunits.2/@ports.0/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@ports.1/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@ports.2/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@ports.3/@adaptation/@children.1 //@candidates.0/@cosimunits.2/@adaptation" order="1"/>
+        </adaptation>
+      </ports>
+      <ports xsi:type="hintco:OutputPortInstance" identifier="ang_vel_out_rpm@expseu_" valueTo="//@candidates.0/@cosimunits.1/@ports.0"/>
+      <ports xsi:type="hintco:OutputPortInstance" identifier="F_OUT@expseu_" valueTo="//@candidates.0/@cosimunits.3/@ports.0"/>
+    </cosimunits>
+    <cosimunits xsi:type="hintco:CosimUnitInstance" identifier="LoadNSensor_FixedEuler_1Em6" declaration="//@csuDeclarations.3">
+      <adaptation xsi:type="hintco:MultiRateAdaptation" rate="10"/>
+      <ports xsi:type="hintco:InputPortInstance" identifier="F_INPUT@expseu_" valueFrom="//@candidates.0/@cosimunits.2/@ports.5">
+        <adaptation xsi:type="hintco:XorPortAdaptation">
+          <children xsi:type="hintco:ExtrapolationAdaptation" implies="//@candidates.0/@cosimunits.3/@ports.0/@adaptation/@children.0 //@candidates.0/@cosimunits.3/@adaptation" order="1"/>
+          <children xsi:type="hintco:InterpolationAdaptation" weight="10" implies="//@candidates.0/@cosimunits.3/@ports.0/@adaptation/@children.1 //@candidates.0/@cosimunits.3/@adaptation" order="1"/>
+        </adaptation>
+      </ports>
+      <ports xsi:type="hintco:OutputPortInstance" identifier="X_AFTER_LOAD@expseu_" valueTo="//@candidates.0/@cosimunits.1/@ports.1"/>
+      <ports xsi:type="hintco:OutputPortInstance" identifier="V_OUTPUT@expseu_" valueTo="//@candidates.0/@cosimunits.2/@ports.2"/>
+      <ports xsi:type="hintco:OutputPortInstance" identifier="X_OUTPUT@expseu_" valueTo="//@candidates.0/@cosimunits.2/@ports.3"/>
+    </cosimunits>
+  </candidates>
+  <csuDeclarations identifier="Scenario"/>
+  <csuDeclarations identifier="DLoopController_FixedEuler_1Em6"/>
+  <csuDeclarations identifier="EMAPlantNoLoad_FixedEuler_1Em6"/>
+  <csuDeclarations identifier="LoadNSensor_FixedEuler_1Em6"/>
+</hintco:HintConfiguration>

+ 14 - 9
HintCOEngine/test/ua/ansymo/hintco/test/AlgebraicLoopProcessingTests.xtend

@@ -18,11 +18,10 @@ import ua.ansymo.hintco.OutputPortInstance
 import ua.ansymo.hintco.PartialTriggerSequence
 import ua.ansymo.hintco.RootCandidateScenario
 import ua.ansymo.hintco.SingleCosimRunner
-import ua.ansymo.hintco.VariantProcessor
 import ua.ansymo.hintco.VariantValidator
 
 import static org.junit.Assert.*
-import ua.ansymo.hintco.OutputProcessor
+import static ua.ansymo.hintco.ModelQuery.*
 
 class AlgebraicLoopProcessingTests {
 	
@@ -143,16 +142,22 @@ class AlgebraicLoopProcessingTests {
 	
 	@Test
 	def void executeMSDCaseStudyTest(){
-		val resultsDirPath = "results-gen/msdalglooptest"
+//		val resultsDirPath = "results-gen/msdalglooptest"
 		val loader = new ModelStorage()
 		val src = loader.loadCandidates("examples/case_study_msd_algloop.hintco")
 		
-//		val runner = new SingleCosimRunner(new IOutputProcessor{
-//			override initialize(RootCandidateScenario scenario, String variantID) {}
-//			override terminate() {}
-//			override setOutputs(int step, double time, Map<OutputPortInstance, Double> outVals) {}
-//		}, new FmuLoader)
-		val runner = new SingleCosimRunner(new OutputProcessor(resultsDirPath), new FmuLoader)
+		val v2 = findIded("v2",src)
+		
+		val runner = new SingleCosimRunner(new IOutputProcessor{
+			override initialize(RootCandidateScenario scenario, String variantID) {}
+			override terminate() {}
+			override setOutputs(int step, double time, Map<OutputPortInstance, Double> outVals) {
+				if (time > 9.9){
+					assertTrue(outVals.get(v2) < 0.1)
+				}
+			}
+		}, new FmuLoader)
+//		val runner = new SingleCosimRunner(new OutputProcessor(resultsDirPath), new FmuLoader)
 		val generator = new CandidatesGenerator(new ConstraintChecker,new VariantValidator, new AlgebraicLoopVariantProcessor(runner))
 		generator.createVariantTree(src)
 		generator.generateVariants(src, 1, true)