This commit is contained in:
awe
2026-04-27 18:28:56 +03:00
parent c40df97085
commit 75bc502fe1
4 changed files with 74 additions and 16 deletions

View File

@ -17,10 +17,12 @@ from rfg_adc_plotter.gui.pyqtgraph_backend import (
compute_aux_phase_curve,
convert_tty_i16_to_voltage,
decimate_curve_for_display,
is_short_sweep,
resolve_axis_bounds,
resolve_heavy_refresh_stride,
resolve_initial_window_size,
resolve_distance_cut_start,
update_expected_sweep_width,
sanitize_curve_data_for_display,
sanitize_image_for_display,
set_image_rect_if_ready,
@ -337,15 +339,15 @@ class ProcessingTests(unittest.TestCase):
def test_coalesce_packets_for_ui_keeps_newest_packets(self):
packets = [
(np.asarray([float(idx)], dtype=np.float32), {"sweep": idx}, None)
for idx in range(6)
for idx in range(12)
]
kept, skipped = coalesce_packets_for_ui(packets, max_packets=2)
kept, skipped = coalesce_packets_for_ui(packets, max_packets=8, backlog_packets=12)
self.assertEqual(skipped, 4)
self.assertEqual(skipped, 10)
self.assertEqual(len(kept), 2)
self.assertEqual(int(kept[0][1]["sweep"]), 4)
self.assertEqual(int(kept[1][1]["sweep"]), 5)
self.assertEqual(int(kept[0][1]["sweep"]), 10)
self.assertEqual(int(kept[1][1]["sweep"]), 11)
def test_coalesce_packets_for_ui_never_returns_empty_for_non_empty_input(self):
packets = [
@ -372,8 +374,23 @@ class ProcessingTests(unittest.TestCase):
def test_resolve_heavy_refresh_stride_increases_with_backlog(self):
self.assertEqual(resolve_heavy_refresh_stride(0, max_packets=8), 1)
self.assertEqual(resolve_heavy_refresh_stride(20, max_packets=8), 2)
self.assertEqual(resolve_heavy_refresh_stride(40, max_packets=8), 4)
self.assertEqual(resolve_heavy_refresh_stride(8, max_packets=8), 2)
self.assertEqual(resolve_heavy_refresh_stride(16, max_packets=8), 4)
def test_update_expected_sweep_width_initializes_from_first_valid_sweep(self):
self.assertEqual(update_expected_sweep_width(0, 411), 411)
def test_update_expected_sweep_width_ignores_tiny_and_short_outliers(self):
expected = update_expected_sweep_width(0, 411)
self.assertEqual(update_expected_sweep_width(expected, 4), 411)
self.assertEqual(update_expected_sweep_width(expected, 180), 411)
def test_update_expected_sweep_width_applies_ema_for_normal_sweeps(self):
self.assertEqual(update_expected_sweep_width(411, 420), 412)
def test_is_short_sweep_compares_against_dynamic_expected_width(self):
self.assertFalse(is_short_sweep(411, 411))
self.assertTrue(is_short_sweep(180, 411))
def test_sanitize_curve_data_for_display_rejects_fully_nonfinite_series(self):
xs, ys = sanitize_curve_data_for_display(