From 206ba58a7e819ee424fa5b9d29befc10a973c540 Mon Sep 17 00:00:00 2001 From: JoePfeiffer Date: Mon, 7 Sep 2020 09:04:50 -0600 Subject: [PATCH] Modified MassCalculator unit test to test at nonzero ignition time --- .../masscalc/MassCalculatorTest.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/core/test/net/sf/openrocket/masscalc/MassCalculatorTest.java b/core/test/net/sf/openrocket/masscalc/MassCalculatorTest.java index 078f7d963..f12d6e94a 100644 --- a/core/test/net/sf/openrocket/masscalc/MassCalculatorTest.java +++ b/core/test/net/sf/openrocket/masscalc/MassCalculatorTest.java @@ -2,6 +2,8 @@ package net.sf.openrocket.masscalc; import static org.junit.Assert.assertEquals; +import java.util.List; + import net.sf.openrocket.rocketcomponent.*; import net.sf.openrocket.rocketcomponent.position.AngleMethod; import net.sf.openrocket.rocketcomponent.position.AxialMethod; @@ -9,6 +11,7 @@ import net.sf.openrocket.rocketcomponent.position.RadiusMethod; import org.junit.Test; import net.sf.openrocket.motor.Motor; +import net.sf.openrocket.simulation.MotorClusterState; import net.sf.openrocket.simulation.SimulationConditions; import net.sf.openrocket.simulation.SimulationStatus; import net.sf.openrocket.util.Coordinate; @@ -135,26 +138,31 @@ public class MassCalculatorTest extends BaseTestCase { // this is probably not enough for a full-up simulation, but it IS enough for a motor-mass calculation. SimulationStatus status = new SimulationStatus(config, new SimulationConditions()); - + + // Ignite motor at 1.0 seconds + MotorClusterState currentMotorState = ((List) status.getMotors()).get(0); + final double ignitionTime = 1.0; + currentMotorState.ignite(ignitionTime); + { - final double simTime = 0.03; // almost launch + final double simTime = 1.03; // almost launch status.setSimulationTime(simTime); RigidBody actualMotorData = MassCalculator.calculateMotor(status); - double expMass = activeMotor.getTotalMass(simTime); + double expMass = activeMotor.getTotalMass(simTime - ignitionTime); assertEquals(" Motor Mass " + desig + " is incorrect: ", expMass, actualMotorData.getMass(), EPSILON); } { - final double simTime = 1.03; // middle + final double simTime = 2.03; // middle status.setSimulationTime(simTime); RigidBody actualMotorData = MassCalculator.calculateMotor(status); - double expMass = activeMotor.getTotalMass(simTime); + double expMass = activeMotor.getTotalMass(simTime - ignitionTime); assertEquals(" Motor Mass " + desig + " is incorrect: ", expMass, actualMotorData.getMass(), EPSILON); } { - final double simTime = 2.03; // after burnout + final double simTime = 3.03; // after burnout status.setSimulationTime(simTime); RigidBody actualMotorData = MassCalculator.calculateMotor(status); - double expMass = activeMotor.getTotalMass(simTime); + double expMass = activeMotor.getTotalMass(simTime - ignitionTime); assertEquals(" Motor Mass " + desig + " is incorrect: ", expMass, actualMotorData.getMass(), EPSILON); } }