From e2ca7c402140b0f2b9aacec47ee45eddd80a339d Mon Sep 17 00:00:00 2001
From: LolloBici <lorenzo.amici@skywarder.eu>
Date: Wed, 11 Jun 2025 11:39:32 +0200
Subject: [PATCH] [unit-test-updates] Added Setup and Teardown methods and
 fixed HRE test

---
 .../testSimulator/HRE/referenceState_HRE.mat  |  4 +-
 .../ballistic/referenceState_ballistic.mat    |  4 +-
 .../engineCut/referenceState_engineCut.mat    |  4 +-
 .../multipleAB/referenceState_multipleAB.mat  |  4 +-
 .../solid/referenceState_solid.mat            |  4 +-
 unitTests/tests/TestSimulator.m               | 74 ++++++++++---------
 6 files changed, 50 insertions(+), 44 deletions(-)

diff --git a/unitTests/data/testSimulator/HRE/referenceState_HRE.mat b/unitTests/data/testSimulator/HRE/referenceState_HRE.mat
index 2322be59..3ff707f4 100644
--- a/unitTests/data/testSimulator/HRE/referenceState_HRE.mat
+++ b/unitTests/data/testSimulator/HRE/referenceState_HRE.mat
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:b59a1ce9094c77e8b49372d2b7506618553c36ab066f54016de7bd1d427c58a5
-size 81007984
+oid sha256:0467b74a556ebf31ae1175c70f3544aa2445c7d96036e06e91503651fa69312b
+size 80937255
diff --git a/unitTests/data/testSimulator/ballistic/referenceState_ballistic.mat b/unitTests/data/testSimulator/ballistic/referenceState_ballistic.mat
index a16d4002..6a7447b5 100644
--- a/unitTests/data/testSimulator/ballistic/referenceState_ballistic.mat
+++ b/unitTests/data/testSimulator/ballistic/referenceState_ballistic.mat
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:da148d37baf11593053b5c4de858b92b2418caa024b77796a43dbb449b9c695e
-size 80282383
+oid sha256:8f9ed6b470f14e519542f06adaeae08a698c3d05db66ca22c28ebe2b37f9a79c
+size 80258344
diff --git a/unitTests/data/testSimulator/engineCut/referenceState_engineCut.mat b/unitTests/data/testSimulator/engineCut/referenceState_engineCut.mat
index 082b671a..b65d4ff5 100644
--- a/unitTests/data/testSimulator/engineCut/referenceState_engineCut.mat
+++ b/unitTests/data/testSimulator/engineCut/referenceState_engineCut.mat
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:d73735a073e896c78191d5f45798181d28fbb8b51e6b9d79def178803ac2bb0e
-size 80930900
+oid sha256:7121f30f477becacda5bcc92e9e9868ad3f1c9a02fdad5fcc1f2c8ca0466e608
+size 80973706
diff --git a/unitTests/data/testSimulator/multipleAB/referenceState_multipleAB.mat b/unitTests/data/testSimulator/multipleAB/referenceState_multipleAB.mat
index b8a3fa07..126547f9 100644
--- a/unitTests/data/testSimulator/multipleAB/referenceState_multipleAB.mat
+++ b/unitTests/data/testSimulator/multipleAB/referenceState_multipleAB.mat
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:338e3960adae4e04ef9eee7a56b399674b27f23115dd1bcd914ac33c76a3f7b1
-size 80876038
+oid sha256:35fe398dc348a018eeb1d15d489d935aa7f4387dd31a8d933bff85c2f0af3820
+size 80900181
diff --git a/unitTests/data/testSimulator/solid/referenceState_solid.mat b/unitTests/data/testSimulator/solid/referenceState_solid.mat
index 984ec936..e70ea65c 100644
--- a/unitTests/data/testSimulator/solid/referenceState_solid.mat
+++ b/unitTests/data/testSimulator/solid/referenceState_solid.mat
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:69a49aeddfad717fb4849a369866d1a3b782472568cfdbdf850d45a23df70ad7
-size 80976751
+oid sha256:eb8af06e30dbe69ad92b0fa84a186ea73605f6cb52939a34e612bdcfd83d5594
+size 80978018
diff --git a/unitTests/tests/TestSimulator.m b/unitTests/tests/TestSimulator.m
index 5b80c568..f4ad54ad 100644
--- a/unitTests/tests/TestSimulator.m
+++ b/unitTests/tests/TestSimulator.m
@@ -7,12 +7,16 @@ classdef TestSimulator < UnitTest
         refSimulator
     end
 
-    properties (TestParameter)
+    properties (MethodSetupParameter)
         verifiable = {'multipleAB', 'ballistic', 'engineCut', 'solid', 'HRE'};
     end
 
-    methods
-        function createTest(testCase, verifiable)
+    % properties (TestParameter)
+    %     verifiable = {'multipleAB', 'ballistic', 'engineCut', 'solid', 'HRE'};
+    % end
+
+    methods (TestMethodSetup)
+        function setup(testCase, verifiable)
             currentPath = fileparts(mfilename('fullpath'));
             addpath(genpath(currentPath));
 
@@ -34,27 +38,25 @@ classdef TestSimulator < UnitTest
         end
     end
 
+    methods (TestMethodTeardown)
+        function teardown(testCase)
+            close all
+        end
+    end
+
     methods (Test)
         function mainSimulatorTest(testCase, verifiable)
             
-            testCase.createTest(verifiable);
+            % testCase.createTest(verifiable);
             
-            verifiable         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
             mainSimPath = fullfile('..', '..', 'simulator');
             addpath(genpath(mainSimPath));
 
-            testCase.rocket.airbrakes.enabled  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
             % Run main simulator
             [postp.stateA, postp.stateF] = mainSimulator(testCase.rocket, testCase.wind, testCase.environment, testCase.simulatorSettings);
             
-            max(abs(postp.stateA.state.Y(3,:)))      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
             % Verify results
-            testCase.verifyEqual(postp, testCase.refSimulator, 'AbsTol', testCase.absToll, 'RelTol', testCase.relToll);
-
-            clear all, close all
+            testCase.verifyEqual(postp, testCase.refSimulator);
         end
     end
 
@@ -66,36 +68,43 @@ classdef TestSimulator < UnitTest
 
             currentPath = fileparts(mfilename('fullpath'));
             addpath(genpath(currentPath));
-            % simPath = fullfile(fileparts(mfilename('fullpath')), '..', '..', 'simulator', 'simulatorConfig.m');
-            % odePath = fullfile(fileparts(mfilename('fullpath')), '..', '..', 'common', 'settings', 'odeConfig.m');
-            % simulatorSettings = Settings(simPath, odePath);
+            simPath = fullfile(fileparts(mfilename('fullpath')), '..', '..', 'simulator', 'simulatorConfig.m');
+            odePath = fullfile(fileparts(mfilename('fullpath')), '..', '..', 'common', 'settings', 'odeConfig.m');
+            simulatorSettings = Settings(simPath, odePath);
             
-            simulatorSettings = Settings('ode');
-
-            simConfigPath = fullfile(currentPath, '..', '..', 'simulator', 'simulatorConfig.m');
-
-            run(simConfigPath);
+            % simulatorSettings = Settings('ode');
+            % simConfigPath = fullfile(currentPath, '..', '..', 'simulator', 'simulatorConfig.m');
+            % run(simConfigPath);
 
             if strcmp(verifiable, 'ballistic')
-                simulator.ballistic = 1;
-                simulator.parafoil = 0;
+                simulatorSettings.simulator.ballistic = 1;
+                simulatorSettings.simulator.parafoil = 0;
             end
-            simulator.SMonly = 0;
-            simulator.prints = 0;
-            simulator.plots = 0;
-            simulator.landingMap = 0;
-            simulator.satellite3D = 0;
+
+            simulatorSettings.simulator.unitTest = 1;
             
-            simulatorSettings.addprop('simulator');
-            simulatorSettings.simulator = simulator;
+            % simulatorSettings.addprop('simulator');
+            % simulatorSettings.simulator = simulator;
 
             rocket = Rocket(mission);
             environment = Environment(mission, rocket.motor);
             wind = Wind(mission);
-            
+
+            if verifiable == "HRE"
+                mission = Mission("2024_Lyra_Portugal_October");
+            end
+
+            % if verifiable == "solid"
+            %   mission = Mission("2023_Pyxis_Portugal_October");
+            % end
+
             if verifiable == "multipleAB"
                 rocket.airbrakes.enabled = 1;
             end
+
+            % if verifiable == "engineCut"
+            %     rocket.motor.cutOffTime = ;
+            % end
            
             % simulator
             [stateA, stateF, simulatorSettings] = mainSimulator(rocket, wind, environment, simulatorSettings);
@@ -114,9 +123,6 @@ classdef TestSimulator < UnitTest
             
             Time = toc(Time);
             fprintf('\t %s test created in: %2.2f seconds\n',verifiable, Time)
-            
-            clear all, close all
          end
     end
-
 end
-- 
GitLab