From 16354971a457eb30e74ae6f95aa071fa093ec62c Mon Sep 17 00:00:00 2001 From: SiboVG Date: Wed, 9 Nov 2022 05:32:05 +0100 Subject: [PATCH] Update unit tests --- .../rocketcomponent/OverrideTest.java | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/core/test/net/sf/openrocket/rocketcomponent/OverrideTest.java b/core/test/net/sf/openrocket/rocketcomponent/OverrideTest.java index 1ad797970..71bfa9ab5 100644 --- a/core/test/net/sf/openrocket/rocketcomponent/OverrideTest.java +++ b/core/test/net/sf/openrocket/rocketcomponent/OverrideTest.java @@ -361,5 +361,82 @@ public class OverrideTest extends BaseTestCase { assertNull(bulkhead.getMassOverriddenBy()); assertEquals(bodyTube, bulkhead.getCGOverriddenBy()); assertEquals(bodyTube, bulkhead.getCDOverriddenBy()); + + // Set body tube mass override, reset CG & CD, and move inner tube back to body tube + bodyTube.setMassOverridden(true); + bodyTube.setSubcomponentsOverriddenMass(true); + bodyTube.setCGOverridden(false); + bodyTube.setCDOverridden(false); + noseCone.removeChild(innerTube); + bodyTube.addChild(innerTube); + + assertNull(noseCone.getMassOverriddenBy()); + assertNull(noseCone.getCGOverriddenBy()); + assertNull(noseCone.getCDOverriddenBy()); + assertNull(bodyTube.getMassOverriddenBy()); + assertNull(bodyTube.getCGOverriddenBy()); + assertNull(bodyTube.getCDOverriddenBy()); + assertEquals(bodyTube, finSet.getMassOverriddenBy()); + assertNull(finSet.getCGOverriddenBy()); + assertNull(finSet.getCDOverriddenBy()); + assertEquals(bodyTube, launchLug.getMassOverriddenBy()); + assertNull(launchLug.getCGOverriddenBy()); + assertNull(launchLug.getCDOverriddenBy()); + assertEquals(bodyTube, parachute.getMassOverriddenBy()); + assertNull(parachute.getCGOverriddenBy()); + assertNull(parachute.getCDOverriddenBy()); + assertEquals(bodyTube, bulkhead.getMassOverriddenBy()); + assertNull(bulkhead.getCGOverriddenBy()); + assertNull(bulkhead.getCDOverriddenBy()); + assertEquals(bodyTube, innerTube.getMassOverriddenBy()); + assertNull(innerTube.getCGOverriddenBy()); + assertNull(innerTube.getCDOverriddenBy()); + assertEquals(bodyTube, engineBlock.getMassOverriddenBy()); + assertEquals(innerTube, engineBlock.getCGOverriddenBy()); + assertNull(engineBlock.getCDOverriddenBy()); + + // Toggle the body tube CG override for all subcomponents + bodyTube.setCGOverridden(true); + bodyTube.setSubcomponentsOverriddenCG(true); + + assertEquals(bodyTube, finSet.getMassOverriddenBy()); + assertEquals(bodyTube, finSet.getCGOverriddenBy()); + assertNull(finSet.getCDOverriddenBy()); + assertEquals(bodyTube, launchLug.getMassOverriddenBy()); + assertEquals(bodyTube, launchLug.getCGOverriddenBy()); + assertNull(launchLug.getCDOverriddenBy()); + assertEquals(bodyTube, parachute.getMassOverriddenBy()); + assertEquals(bodyTube, parachute.getCGOverriddenBy()); + assertNull(parachute.getCDOverriddenBy()); + assertEquals(bodyTube, bulkhead.getMassOverriddenBy()); + assertEquals(bodyTube, bulkhead.getCGOverriddenBy()); + assertNull(bulkhead.getCDOverriddenBy()); + assertEquals(bodyTube, innerTube.getMassOverriddenBy()); + assertEquals(bodyTube, innerTube.getCGOverriddenBy()); + assertNull(innerTube.getCDOverriddenBy()); + assertEquals(bodyTube, engineBlock.getMassOverriddenBy()); + assertEquals(bodyTube, engineBlock.getCGOverriddenBy()); + assertNull(engineBlock.getCDOverriddenBy()); + + // Toggle back + bodyTube.setSubcomponentsOverriddenCG(false); + assertEquals(bodyTube, finSet.getMassOverriddenBy()); + assertNull(finSet.getCGOverriddenBy()); + assertNull(finSet.getCDOverriddenBy()); + assertEquals(bodyTube, launchLug.getMassOverriddenBy()); + assertNull(launchLug.getCGOverriddenBy()); + assertNull(launchLug.getCDOverriddenBy()); + assertEquals(bodyTube, parachute.getMassOverriddenBy()); + assertNull(parachute.getCGOverriddenBy()); + assertNull(parachute.getCDOverriddenBy()); + assertEquals(bodyTube, bulkhead.getMassOverriddenBy()); + assertNull(bulkhead.getCGOverriddenBy()); + assertNull(bulkhead.getCDOverriddenBy()); + assertEquals(bodyTube, innerTube.getMassOverriddenBy()); + assertNull(innerTube.getCGOverriddenBy()); + assertNull(innerTube.getCDOverriddenBy()); + assertEquals(bodyTube, engineBlock.getMassOverriddenBy()); + assertEquals(innerTube, engineBlock.getCGOverriddenBy()); + assertNull(engineBlock.getCDOverriddenBy()); } }