new background remove algoritm
This commit is contained in:
44
tests/test_background_buffer.py
Normal file
44
tests/test_background_buffer.py
Normal file
@ -0,0 +1,44 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import numpy as np
|
||||
import unittest
|
||||
|
||||
from rfg_adc_plotter.state.background_buffer import BackgroundMedianBuffer
|
||||
|
||||
|
||||
class BackgroundMedianBufferTests(unittest.TestCase):
|
||||
def test_buffer_returns_median_for_partial_fill(self):
|
||||
buffer = BackgroundMedianBuffer(max_rows=4)
|
||||
buffer.push(np.asarray([1.0, 5.0, 9.0], dtype=np.float32))
|
||||
buffer.push(np.asarray([3.0, 7.0, 11.0], dtype=np.float32))
|
||||
|
||||
median = buffer.median()
|
||||
|
||||
self.assertIsNotNone(median)
|
||||
self.assertTrue(np.allclose(median, np.asarray([2.0, 6.0, 10.0], dtype=np.float32)))
|
||||
|
||||
def test_buffer_wraparound_keeps_latest_rows(self):
|
||||
buffer = BackgroundMedianBuffer(max_rows=2)
|
||||
buffer.push(np.asarray([1.0, 5.0], dtype=np.float32))
|
||||
buffer.push(np.asarray([3.0, 7.0], dtype=np.float32))
|
||||
buffer.push(np.asarray([9.0, 11.0], dtype=np.float32))
|
||||
|
||||
median = buffer.median()
|
||||
|
||||
self.assertIsNotNone(median)
|
||||
self.assertTrue(np.allclose(median, np.asarray([6.0, 9.0], dtype=np.float32)))
|
||||
|
||||
def test_buffer_reset_clears_state(self):
|
||||
buffer = BackgroundMedianBuffer(max_rows=2)
|
||||
buffer.push(np.asarray([1.0, 2.0], dtype=np.float32))
|
||||
|
||||
buffer.reset()
|
||||
|
||||
self.assertIsNone(buffer.rows)
|
||||
self.assertIsNone(buffer.median())
|
||||
self.assertEqual(buffer.count, 0)
|
||||
self.assertEqual(buffer.head, 0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user