new
This commit is contained in:
44
tests/test_ring_buffer.py
Normal file
44
tests/test_ring_buffer.py
Normal file
@ -0,0 +1,44 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import numpy as np
|
||||
import unittest
|
||||
|
||||
from rfg_adc_plotter.state.ring_buffer import RingBuffer
|
||||
|
||||
|
||||
class RingBufferTests(unittest.TestCase):
|
||||
def test_ring_buffer_initializes_on_first_push(self):
|
||||
ring = RingBuffer(max_sweeps=4)
|
||||
sweep = np.linspace(-1.0, 1.0, 64, dtype=np.float32)
|
||||
ring.push(sweep, np.linspace(3.3, 14.3, 64))
|
||||
self.assertIsNotNone(ring.ring)
|
||||
self.assertIsNotNone(ring.ring_fft)
|
||||
self.assertIsNotNone(ring.ring_time)
|
||||
self.assertIsNotNone(ring.distance_axis)
|
||||
self.assertIsNotNone(ring.last_fft_db)
|
||||
self.assertEqual(ring.ring.shape[0], 4)
|
||||
self.assertEqual(ring.ring_fft.shape, (4, ring.fft_bins))
|
||||
|
||||
def test_ring_buffer_reallocates_when_sweep_width_grows(self):
|
||||
ring = RingBuffer(max_sweeps=3)
|
||||
ring.push(np.ones((32,), dtype=np.float32), np.linspace(3.3, 14.3, 32))
|
||||
first_width = ring.width
|
||||
ring.push(np.ones((2048,), dtype=np.float32), np.linspace(3.3, 14.3, 2048))
|
||||
self.assertGreater(ring.width, first_width)
|
||||
self.assertIsNotNone(ring.ring)
|
||||
self.assertEqual(ring.ring.shape, (3, ring.width))
|
||||
|
||||
def test_ring_buffer_tracks_latest_fft_and_display_arrays(self):
|
||||
ring = RingBuffer(max_sweeps=2)
|
||||
ring.push(np.linspace(0.0, 1.0, 64, dtype=np.float32), np.linspace(3.3, 14.3, 64))
|
||||
ring.push(np.linspace(1.0, 0.0, 64, dtype=np.float32), np.linspace(3.3, 14.3, 64))
|
||||
raw = ring.get_display_raw()
|
||||
fft = ring.get_display_fft_linear()
|
||||
self.assertEqual(raw.shape[1], 2)
|
||||
self.assertEqual(fft.shape[1], 2)
|
||||
self.assertIsNotNone(ring.last_fft_db)
|
||||
self.assertEqual(ring.last_fft_db.shape, (ring.fft_bins,))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user