Fix RockSim import/export unit tests

This commit is contained in:
SiboVG 2024-01-27 04:34:19 +01:00
parent 01df928f3c
commit a249c2dddc
2 changed files with 22 additions and 18 deletions

View File

@ -127,24 +127,26 @@ public class RockSimDocumentDTOTest extends RockSimTestBase {
List<RocketComponent> originalChildren = originalRocket.getAllChildren();
List<RocketComponent> importedChildren = importedRocket.getAllChildren();
assertEquals(" Number of total children doesn't match",
originalChildren.size(), importedChildren.size());
originalChildren.size() + 5, importedChildren.size()); // More children because RockSim has individual podsets
assertEquals(" Number of rocket children doesn't match", 1, importedRocket.getChildCount());
AxialStage stage = (AxialStage) importedRocket.getChild(0);
assertEquals(" Number of stage children doesn't match", 2, stage.getChildCount());
BodyTube tube = (BodyTube) stage.getChild(1);
assertEquals(" Number of body tube children doesn't match", 3, tube.getChildCount());
assertEquals(" Number of body tube children doesn't match", 6, tube.getChildCount());
PodSet pod1 = (PodSet) tube.getChild(0);
assertEquals(" Number of pod 1 children doesn't match", 1, pod1.getChildCount());
PodSet pod2 = (PodSet) tube.getChild(1);
assertEquals(" Number of pod 2 children doesn't match", 2, pod2.getChildCount());
PodSet pod3 = (PodSet) tube.getChild(2);
PodSet pod3 = (PodSet) tube.getChild(3);
assertEquals(" Number of pod 3 children doesn't match", 0, pod3.getChildCount());
// Test component names
for (int i = 1; i < originalChildren.size(); i++) {
assertEquals(" Child " + i + " does not match",
originalChildren.get(i).getName(), importedChildren.get(i).getName());
}
assertEquals(" Name does not match", "Pod 1", importedChildren.get(3).getName());
assertEquals(" Name does not match", "Pod 2 #1", importedChildren.get(5).getName());
assertEquals(" Name does not match", "Pod 2 #2", importedChildren.get(8).getName());
assertEquals(" Name does not match", "Pod 3 #1", importedChildren.get(11).getName());
assertEquals(" Name does not match", "Pod 3 #2", importedChildren.get(12).getName());
assertEquals(" Name does not match", "Pod 3 #3", importedChildren.get(13).getName());
// Test pod parameters
assertEquals(-0.14, pod1.getAxialOffset(), 0.0001);
@ -163,6 +165,7 @@ public class RockSimDocumentDTOTest extends RockSimTestBase {
stream.close();
Files.delete(output);
}
/**
* Tests exporting a design where a tube coupler has children, which is not supported by RockSim, so the children
* need to be moved outside the tube coupler.
@ -232,7 +235,7 @@ public class RockSimDocumentDTOTest extends RockSimTestBase {
pod2.setName("Pod 2");
tube.addChild(pod2);
PodSet pod3 = new PodSet();
pod2.setName("Pod 3");
pod3.setName("Pod 3");
tube.addChild(pod3);
// Pod 1 children

View File

@ -15,6 +15,7 @@ import net.sf.openrocket.rocketcomponent.InnerTube;
import net.sf.openrocket.rocketcomponent.MassComponent;
import net.sf.openrocket.rocketcomponent.NoseCone;
import net.sf.openrocket.rocketcomponent.Parachute;
import net.sf.openrocket.rocketcomponent.ParallelStage;
import net.sf.openrocket.rocketcomponent.PodSet;
import net.sf.openrocket.rocketcomponent.RocketComponent;
import net.sf.openrocket.rocketcomponent.Transition;
@ -205,7 +206,7 @@ public class RockSimLoaderTest extends BaseTestCase {
rocket = doc.getRocket();
Assert.assertNotNull(rocket);
Assert.assertEquals("Three Stage Everything Included Rocket - Override Total Mass/CG", doc.getRocket().getName());
Assert.assertEquals(3, rocket.getStageCount());
Assert.assertEquals(4, rocket.getStageCount());
stage1 = (AxialStage) rocket.getChild(0);
stage2 = (AxialStage) rocket.getChild(1);
stage3 = (AxialStage) rocket.getChild(2);
@ -249,11 +250,11 @@ public class RockSimLoaderTest extends BaseTestCase {
Assert.assertEquals("Launch lug", bt1.getChild(3).getName());
Assert.assertEquals("Pod", bt1.getChild(4).getName());
PodSet pod = (PodSet) bt1.getChild(4);
Assert.assertEquals(1, pod.getChildCount());
c = pod.getChild(0);
ParallelStage booster = (ParallelStage) bt1.getChild(4);
Assert.assertEquals(1, booster.getChildCount());
c = booster.getChild(0);
Assert.assertEquals(BodyTube.class, c.getClass());
Assert.assertEquals("Body tube", pod.getChild(0).getName());
Assert.assertEquals("Body tube", booster.getChild(0).getName());
Assert.assertEquals(1, stage2.getChildCount());
Assert.assertEquals("2nd Stage Tube", stage2.getChild(0).getName());
@ -392,7 +393,7 @@ public class RockSimLoaderTest extends BaseTestCase {
Rocket rocket = doc.getRocket();
Assert.assertNotNull(rocket);
Assert.assertEquals("Pod Test", doc.getRocket().getName());
Assert.assertEquals(3, loader.getWarnings().size());
Assert.assertEquals(5, loader.getWarnings().size());
InputStream stream = this.getClass().getResourceAsStream("PodTest.rkt");
Assert.assertNotNull("Could not open PodTest.rkt", stream);
@ -406,7 +407,7 @@ public class RockSimLoaderTest extends BaseTestCase {
Assert.assertNotNull(doc);
rocket = doc.getRocket();
Assert.assertNotNull(rocket);
Assert.assertEquals(1, rocket.getStageCount());
Assert.assertEquals(3, rocket.getStageCount());
AxialStage stage1 = (AxialStage) rocket.getChild(0);
Assert.assertEquals(3, stage1.getChildCount());
@ -427,7 +428,7 @@ public class RockSimLoaderTest extends BaseTestCase {
Assert.assertEquals(2, bodyTube1.getChildCount());
RocketComponent pod2 = bodyTube1.getChild(0);
Assert.assertEquals(PodSet.class, pod2.getClass());
Assert.assertEquals(ParallelStage.class, pod2.getClass());
Assert.assertEquals("Pod 2", pod2.getName());
component = bodyTube1.getChild(1);
Assert.assertEquals(Bulkhead.class, component.getClass());
@ -454,7 +455,7 @@ public class RockSimLoaderTest extends BaseTestCase {
Assert.assertEquals(TrapezoidFinSet.class, component.getClass());
Assert.assertEquals("Fin set 2", component.getName());
RocketComponent pod3 = bodyTube2.getChild(1);
Assert.assertEquals(PodSet.class, pod3.getClass());
Assert.assertEquals(ParallelStage.class, pod3.getClass());
Assert.assertEquals("Pod 3", pod3.getName());
component = bodyTube2.getChild(2);
Assert.assertEquals(LaunchLug.class, component.getClass());
@ -465,7 +466,7 @@ public class RockSimLoaderTest extends BaseTestCase {
Assert.assertEquals(BodyTube.class, component.getClass());
Assert.assertEquals("Body tube 3", component.getName());
Assert.assertEquals(0.04, pod3.getAxialOffset(), MathUtil.EPSILON);
Assert.assertEquals(Math.PI / 2, pod3.getAngleOffset(), 0.0001);
Assert.assertEquals(1.76043, pod3.getAngleOffset(), 0.0001);
Assert.assertEquals(0.05, pod3.getRadiusOffset(), MathUtil.EPSILON);
Assert.assertEquals(1, transition1.getChildCount());