use of com.opensimulationplatform.core.model.systemstructure.SystemStructure in project osp-validator by open-simulation-platform.
the class Validator method getSystemStructureErrorMessages.
private List<String> getSystemStructureErrorMessages(File ospSystemStructureFile, OspSystemStructure ospSystemStructureElement, Map<Object, Location> locations) {
SystemStructureFactory factory = new SystemStructureFactory();
SystemStructure systemStructure = factory.create(ospSystemStructureFile);
SystemStructureValidator validator = new SystemStructureValidator();
List<ValidationDiagnostic<Object>> diagnostics = validator.validate(systemStructure);
Map<Object, Object> coreToJaxb = createSystemStructureMap(systemStructure, ospSystemStructureElement);
return getErrorMessages(ospSystemStructureFile, locations, diagnostics, coreToJaxb);
}
use of com.opensimulationplatform.core.model.systemstructure.SystemStructure in project osp-validator by open-simulation-platform.
the class SimulatorsValidatorTest method invalid.
@Test
public void invalid() {
ModelDescription modelDescription = new ModelDescription();
Variable v1 = new Variable();
v1.setCausality(Variable.Causality.UNDEFINED);
v1.setType(Variable.Type.REAL);
v1.setName("not-unique");
Variable v2 = new Variable();
v2.setCausality(Variable.Causality.INPUT);
v2.setType(Variable.Type.INTEGER);
v2.setName("not-unique");
modelDescription.getVariables().add(v1);
modelDescription.getVariables().add(v2);
Generic g = new Generic();
g.setName("variable-container");
g.setVariables(Arrays.asList(v1, v2));
modelDescription.getGenerics().add(g);
Force f1 = new Force();
f1.setName("not-unique");
Variable v3 = new Variable();
v3.setName("v3");
v3.setType(Variable.Type.REAL);
v3.setCausality(Variable.Causality.OUTPUT);
f1.setVariables(Arrays.asList(v3));
Force f2 = new Force();
f2.setName("not-unique");
Variable v4 = new Variable();
v4.setName("v4");
v4.setType(Variable.Type.INTEGER);
v4.setCausality(Variable.Causality.INPUT);
f2.setVariables(Arrays.asList(v4));
modelDescription.getForces().add(f1);
modelDescription.getForces().add(f2);
Variable v5 = new Variable();
v5.setName("v5");
v5.setCausality(Variable.Causality.OUTPUT);
v5.setType(Variable.Type.REAL);
Variable v6 = new Variable();
v6.setName("v6");
v6.setCausality(Variable.Causality.INPUT);
v6.setType(Variable.Type.REAL);
Force f3 = new Force();
f3.setName("f3");
f3.setVariables(Arrays.asList(v5, v6));
modelDescription.getForces().add(f3);
Variable v7 = new Variable();
v7.setName("v7");
v7.setCausality(Variable.Causality.OUTPUT);
v7.setType(Variable.Type.REAL);
Variable v8 = new Variable();
v8.setName("v8");
v8.setCausality(Variable.Causality.OUTPUT);
v8.setType(Variable.Type.REAL);
Force f4 = new Force();
f4.setName("f4");
f4.setVariables(Arrays.asList(v7, v8));
Variable v9 = new Variable();
v9.setName("v9");
v9.setCausality(Variable.Causality.OUTPUT);
v9.setType(Variable.Type.REAL);
Variable v10 = new Variable();
v10.setName("v10");
v10.setCausality(Variable.Causality.OUTPUT);
v10.setType(Variable.Type.REAL);
LinearVelocity lv1 = new LinearVelocity();
lv1.setName("lv1");
lv1.setVariables(Arrays.asList(v9, v10));
LinearMechanicalPort lmp1 = new LinearMechanicalPort();
lmp1.setName("lmp1");
lmp1.setForce(f4);
lmp1.setLinearVelocity(lv1);
modelDescription.getLinearMechanicalPorts().add(lmp1);
Simulator s1 = new Simulator();
s1.setName("not-unique");
s1.setModelDescription(modelDescription);
Simulator s2 = new Simulator();
s2.setName("not-unique");
s2.setModelDescription(modelDescription);
SystemStructure systemStructure = new SystemStructure();
systemStructure.getSimulators().add(s1);
systemStructure.getSimulators().add(s2);
SimulatorsValidator v = new SimulatorsValidator();
List<ValidationDiagnostic<Object>> diagnostics = v.validate(systemStructure);
assertEquals(13, diagnostics.size());
}
use of com.opensimulationplatform.core.model.systemstructure.SystemStructure in project osp-validator by open-simulation-platform.
the class SimulatorsValidatorTest method valid.
@Test
public void valid() {
ModelDescription modelDescription = new ModelDescription();
Variable v1 = new Variable();
v1.setCausality(Variable.Causality.OUTPUT);
v1.setType(Variable.Type.REAL);
v1.setName("v1");
Variable v2 = new Variable();
v2.setCausality(Variable.Causality.INPUT);
v2.setType(Variable.Type.INTEGER);
v2.setName("v2");
modelDescription.getVariables().add(v1);
modelDescription.getVariables().add(v2);
Generic g = new Generic();
g.setName("variable-container");
g.setVariables(Arrays.asList(v1, v2));
modelDescription.getGenerics().add(g);
Force f1 = new Force();
f1.setName("f1");
Variable v3 = new Variable();
v3.setName("v3");
v3.setType(Variable.Type.REAL);
v3.setCausality(Variable.Causality.OUTPUT);
f1.setVariables(Arrays.asList(v3));
Force f2 = new Force();
f2.setName("f2");
Variable v4 = new Variable();
v4.setName("v4");
v4.setType(Variable.Type.INTEGER);
v4.setCausality(Variable.Causality.INPUT);
f2.setVariables(Arrays.asList(v4));
modelDescription.getForces().add(f1);
modelDescription.getForces().add(f2);
Variable v5 = new Variable();
v5.setName("v5");
v5.setCausality(Variable.Causality.OUTPUT);
v5.setType(Variable.Type.REAL);
Variable v6 = new Variable();
v6.setName("v6");
v6.setCausality(Variable.Causality.OUTPUT);
v6.setType(Variable.Type.REAL);
Force f3 = new Force();
f3.setName("f3");
f3.setVariables(Arrays.asList(v5, v6));
modelDescription.getForces().add(f3);
Variable v7 = new Variable();
v7.setName("v7");
v7.setCausality(Variable.Causality.OUTPUT);
v7.setType(Variable.Type.REAL);
Variable v8 = new Variable();
v8.setName("v8");
v8.setCausality(Variable.Causality.OUTPUT);
v8.setType(Variable.Type.REAL);
Force f4 = new Force();
f4.setName("f4");
f4.setVariables(Arrays.asList(v7, v8));
Variable v9 = new Variable();
v9.setName("v9");
v9.setCausality(Variable.Causality.INPUT);
v9.setType(Variable.Type.REAL);
Variable v10 = new Variable();
v10.setName("v10");
v10.setCausality(Variable.Causality.INPUT);
v10.setType(Variable.Type.REAL);
LinearVelocity lv1 = new LinearVelocity();
lv1.setName("lv1");
lv1.setVariables(Arrays.asList(v9, v10));
LinearMechanicalPort lmp1 = new LinearMechanicalPort();
lmp1.setName("lmp1");
lmp1.setForce(f4);
lmp1.setLinearVelocity(lv1);
modelDescription.getLinearMechanicalPorts().add(lmp1);
Simulator s1 = new Simulator();
s1.setName("s1");
s1.setModelDescription(modelDescription);
Simulator s2 = new Simulator();
s2.setName("s2");
s2.setModelDescription(modelDescription);
SystemStructure systemStructure = new SystemStructure();
systemStructure.getSimulators().add(s1);
systemStructure.getSimulators().add(s2);
SimulatorsValidator v = new SimulatorsValidator();
List<ValidationDiagnostic<Object>> diagnostics = v.validate(systemStructure);
assertTrue(diagnostics.isEmpty());
}
use of com.opensimulationplatform.core.model.systemstructure.SystemStructure in project osp-validator by open-simulation-platform.
the class NamesValidatorTest method invaliSystemStructure.
@Test
public void invaliSystemStructure() {
SystemStructure systemStructure = new SystemStructure();
Simulator s1 = new Simulator();
s1.setName("not-unique");
Simulator s2 = new Simulator();
s2.setName("not-unique");
ModelDescription modelDescription = new ModelDescription();
Variable v1 = new Variable();
v1.setName("not-unique");
Variable v2 = new Variable();
v2.setName("not-unique");
modelDescription.getVariables().add(v1);
modelDescription.getVariables().add(v2);
Generic vg1 = new Generic();
vg1.setName("not-unique");
vg1.setVariables(Arrays.asList(v1));
Generic vg2 = new Generic();
vg2.setName("not-unique");
vg2.setVariables(Arrays.asList(v2));
modelDescription.getGenerics().add(vg1);
modelDescription.getGenerics().add(vg2);
s1.setModelDescription(modelDescription);
systemStructure.getSimulators().add(s1);
systemStructure.getSimulators().add(s2);
NamesValidator namesValidator = new NamesValidator();
List<ValidationDiagnostic<Name>> diagnostics = namesValidator.validate(systemStructure);
assertEquals(3, diagnostics.size());
}
use of com.opensimulationplatform.core.model.systemstructure.SystemStructure in project osp-validator by open-simulation-platform.
the class SystemStructureValidatorTest method invalid.
@Test
public void invalid() {
Simulator s1 = new Simulator();
s1.setName("s1");
s1.setModelDescription(createInvalidModelDescription());
Simulator s2 = new Simulator();
s2.setName("s2");
s2.setModelDescription(createInvalidModelDescription());
SystemStructure systemStructure = new SystemStructure();
systemStructure.getSimulators().add(s1);
systemStructure.getSimulators().add(s2);
VariableConnection vc1 = new VariableConnection();
vc1.setSimulatorA(s1);
vc1.setSimulatorB(s2);
vc1.setVariableA(ModelDescriptionUtil.getVariableByName(s1.getModelDescription(), "v3"));
vc1.setVariableB(ModelDescriptionUtil.getVariableByName(s1.getModelDescription(), "v4"));
VariableConnection vc2 = new VariableConnection();
vc2.setSimulatorA(s1);
vc2.setSimulatorB(s2);
vc2.setVariableA(ModelDescriptionUtil.getVariableByName(s1.getModelDescription(), "v3"));
vc2.setVariableB(ModelDescriptionUtil.getVariableByName(s1.getModelDescription(), "v5"));
VariableConnection vc3 = new VariableConnection();
vc3.setSimulatorA(s1);
vc3.setSimulatorB(s2);
vc3.setVariableA(ModelDescriptionUtil.getVariableByName(s1.getModelDescription(), "v3"));
vc3.setVariableB(ModelDescriptionUtil.getVariableByName(s2.getModelDescription(), "v6"));
systemStructure.getVariableConnections().add(vc1);
systemStructure.getVariableConnections().add(vc2);
systemStructure.getVariableConnections().add(vc3);
VariableGroupConnection vgc1 = new VariableGroupConnection();
vgc1.setSimulatorA(s1);
vgc1.setSimulatorB(s2);
vgc1.setVariableGroupA(ModelDescriptionUtil.getVariableGroupByName(s1.getModelDescription(), "f3"));
vgc1.setVariableGroupB(ModelDescriptionUtil.getVariableGroupByName(s2.getModelDescription(), "lv1"));
systemStructure.getVariableGroupConnections().add(vgc1);
SystemStructureValidator v = new SystemStructureValidator();
List<ValidationDiagnostic<Object>> diagnostics = v.validate(systemStructure);
assertEquals(32, diagnostics.size());
}
Aggregations