|
|
@@ -1,14 +1,58 @@
|
|
|
package ua.ansymo.hintco.test
|
|
|
|
|
|
+import java.io.File
|
|
|
+import org.intocps.fmi.jnifmuapi.Factory
|
|
|
import org.junit.Test
|
|
|
import ua.ansymo.hintco.CandidatesGenerator
|
|
|
import ua.ansymo.hintco.CosimRunner
|
|
|
import ua.ansymo.hintco.ModelStorage
|
|
|
|
|
|
+import static org.junit.Assert.*
|
|
|
+import org.intocps.fmi.IFmuCallback
|
|
|
+import org.intocps.fmi.Fmi2Status
|
|
|
+
|
|
|
class CosimRunnerTest {
|
|
|
val generator = new CandidatesGenerator()
|
|
|
val loader = new ModelStorage()
|
|
|
|
|
|
+ @Test
|
|
|
+ def void loadAndRunFMUTest(){
|
|
|
+ val fmu = Factory.create(new File("resources/watertank.fmu"))
|
|
|
+ assertNotNull(fmu)
|
|
|
+ fmu.load()
|
|
|
+ val fmuInstance = fmu.instantiate("{8c4e810f-3df3-4a00-8276-176fa3c9f001}", "watertank", true, true, new IFmuCallback()
|
|
|
+ {
|
|
|
+ override log(String instanceName, Fmi2Status status, String category, String message) {
|
|
|
+ println("log: " + instanceName + " " + status + " "
|
|
|
+ + category + " " + message);
|
|
|
+ }
|
|
|
+
|
|
|
+ override stepFinished(Fmi2Status status) {
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ val valve = #[4l]
|
|
|
+ val level = #[2l]
|
|
|
+
|
|
|
+ fmuInstance.setupExperiment(false,0.0,0.0,false,0.0)
|
|
|
+ fmuInstance.enterInitializationMode()
|
|
|
+ fmuInstance.setBooleans(valve, #[false])
|
|
|
+ fmuInstance.exitInitializationMode()
|
|
|
+
|
|
|
+ var l = fmuInstance.getReal(level)
|
|
|
+ assertTrue(l.status == Fmi2Status.OK)
|
|
|
+ assertTrue(l.result.head > 0.9 && l.result.head < 1.1)
|
|
|
+
|
|
|
+ fmuInstance.setBooleans(valve, #[false])
|
|
|
+ fmuInstance.doStep(0.0, 1.0, true)
|
|
|
+
|
|
|
+ l = fmuInstance.getReal(level)
|
|
|
+ assertTrue(l.status == Fmi2Status.OK)
|
|
|
+ assertTrue(l.result.head > 1.5)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@Test
|
|
|
def void executeCosimulationTest(){
|
|
|
val src = loader.loadCandidates("instances/execute_cosim_test.xmi")
|
|
|
@@ -26,4 +70,6 @@ class CosimRunnerTest {
|
|
|
])
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
}
|