This is a lot of memory for an average with little value. Assume we want moving 3-sec average and samples are added in priority task every time (so 100/sec). Unlikely that we will have real samples at 100 Hz. Maybe 10 Hz. So recommend adding a new sample to the running average every 100 ms (every 10th time in priority task) so we can reduce the number of samples in the average from 300 to 30 to be more reasonable and save memory.
If it is not used for serial message, its OK, but if you are opting for packing , club it together , in line number 36 , or bring that structure defined on top to here
Not a comment to be done right now. But better to create arrays of test data on top of the function/file, loop through them, and call the function (verify_td_and_dd_versions) to use those. So we can more easily add multiple test data cases later to cover more edge cases.