----------------------------------------
-----------Sun Devil Rocketry-----------
-----------Unit Test Results------------
----------------------------------------

----------------------------------------
------------Test Environment------------
----------------------------------------

--General Build Information--
Test Name:        state_transition.c
Test Type:        Unit Test
Build Date:       Oct 10 2026
Build Time:       23:26:16
Run Date:         Oct 10 2026
Run Time:         23:26:17
ISO C?:           1
C Standard:       201710

--GNU C Compiler (GCC) Info--
GCC Version:      13.3.0

--GCOVR Info--
GCOVR Version:    8.6

----------------------------------------
----------------Results-----------------
----------------------------------------


--BEGIN TEST GROUP: Check test environment--

Test Environment: Release build
Actual: TRUE | Expected: TRUE

Test Environment: ISO C standard is C17 or greater
Actual: 201710 | Expected: 201700

Test Environment: Compiler at/above minimum GCC version
Actual: 13 | Expected: 8

Test Environment: Compiler at/below maximum GCC version
Actual: 13 | Expected: 15

Test Environment: Coverage tool at/above minimum GCOVR version
Actual: 8 | Expected: 7

Test Environment: Coverage tool at/below maximum GCOVR version
Actual: 8 | Expected: 8

--TEST GROUP RESULTS:--
Group Passes: 6
Group Fails:  0
--END TEST GROUP: Check test environment--


--BEGIN TEST GROUP: launch_detection--

-> BEGIN TEST CASE 0: 

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

-> END TEST CASE

-> BEGIN TEST CASE 1: 

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the error code matches the expected.
Actual: 28 | Expected: 28

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

-> END TEST CASE

-> BEGIN TEST CASE 2: 

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 1 | Expected: 1

Test that the launch detect time is updated correctly.
Actual: 1 | Expected: 1

-> END TEST CASE

-> BEGIN TEST CASE 3: 

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

-> END TEST CASE

-> BEGIN TEST CASE 4: 

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

-> END TEST CASE

-> BEGIN TEST CASE 5: 

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 0 | Expected: 0

Test that the launch detect time is updated correctly.
Actual: 0 | Expected: 0

Test that the accel flag is/isn't set.
Actual: 1 | Expected: 1

Test that the launch detect time is updated correctly.
Actual: 1 | Expected: 1

-> END TEST CASE

--TEST GROUP RESULTS:--
Group Passes: 133
Group Fails:  0
--END TEST GROUP: launch_detection--


--BEGIN TEST GROUP: apogee_detect--

Simple Apogee (window=3)
Actual: 1 | Expected: 1

No Apogee (window=3)
Actual: 0 | Expected: 0

Interrupted Decrease (window=2)
Actual: 1 | Expected: 1

No Decrease (window=2)
Actual: 0 | Expected: 0

Single Drop (window=1)
Actual: 1 | Expected: 1

First Nonzero Sample (window=2)
Actual: 1 | Expected: 1

Oscillating (window=2)
Actual: 0 | Expected: 0

--TEST GROUP RESULTS:--
Group Passes: 7
Group Fails:  0
--END TEST GROUP: apogee_detect--


--BEGIN TEST GROUP: coast_detect--

Detects coast after five low readings
Actual: 1 | Expected: 1

Does not detect coast before five low readings
Actual: 0 | Expected: 0

Threshold reading resets the low reading count
Actual: 0 | Expected: 0

Threshold readings do not count as low acceleration
Actual: 0 | Expected: 0

Detects coast after a reset and five low readings
Actual: 1 | Expected: 1

--TEST GROUP RESULTS:--
Group Passes: 5
Group Fails:  0
--END TEST GROUP: coast_detect--

----------------------------------------
-------------Test Complete--------------
----------------------------------------
Passes: 151
Fails:  0
Result: PASS
----------------------------------------
