fix update

This commit is contained in:
awe
2026-04-29 19:08:17 +03:00
parent ecd05568c6
commit 1d807d0afc
5 changed files with 401 additions and 40 deletions

View File

@ -3,8 +3,11 @@ from __future__ import annotations
import math
import unittest
import numpy as np
from rfg_adc_plotter.io.sweep_parser_core import (
AsciiSweepParser,
BatchPointEvent,
ComplexAsciiSweepParser,
LegacyBinaryParser,
LogScale16BitX2BinaryParser,
@ -185,6 +188,54 @@ class SweepParserCoreTests(unittest.TestCase):
self.assertEqual(events[2].aux, (120.0, 95.0))
self.assertEqual(events[2].signal_kind, "bin_iq")
def test_legacy_binary_parser_batch_mode_emits_tty_batch_event(self):
parser = LegacyBinaryParser(batch_events=True)
stream = b"".join(
[
_pack_tty_start(),
_pack_tty_point(1, 100, 90),
_pack_tty_point(2, 120, 95),
]
)
events = parser.feed(stream)
self.assertEqual(len(events), 2)
self.assertIsInstance(events[0], StartEvent)
self.assertIsInstance(events[1], BatchPointEvent)
self.assertTrue(np.array_equal(events[1].xs, np.asarray([1, 2], dtype=np.int64)))
self.assertTrue(np.allclose(events[1].ys, np.asarray([18100.0, 23425.0], dtype=np.float32)))
self.assertIsNotNone(events[1].aux)
self.assertTrue(np.allclose(events[1].aux[0], np.asarray([100.0, 120.0], dtype=np.float32)))
self.assertTrue(np.allclose(events[1].aux[1], np.asarray([90.0, 95.0], dtype=np.float32)))
self.assertEqual(events[1].signal_kind, "bin_iq")
def test_sweep_assembler_consumes_tty_batch_event(self):
assembler = SweepAssembler(fancy=False, apply_inversion=False)
packet = assembler.consume(
BatchPointEvent(
ch=0,
xs=np.asarray([1, 2], dtype=np.int64),
ys=np.asarray([18100.0, 23425.0], dtype=np.float32),
aux=(
np.asarray([100.0, 120.0], dtype=np.float32),
np.asarray([90.0, 95.0], dtype=np.float32),
),
signal_kind="bin_iq",
)
)
self.assertIsNone(packet)
sweep, info, aux = assembler.finalize_current()
self.assertEqual(info["signal_kind"], "bin_iq")
self.assertEqual(sweep.shape[0], 3)
self.assertAlmostEqual(float(sweep[1]), 18100.0, places=6)
self.assertAlmostEqual(float(sweep[2]), 23425.0, places=6)
self.assertIsNotNone(aux)
self.assertAlmostEqual(float(aux[0][1]), 100.0, places=6)
self.assertAlmostEqual(float(aux[1][2]), 95.0, places=6)
def test_legacy_binary_parser_detects_new_tty_sweep_on_step_reset(self):
parser = LegacyBinaryParser()
stream = b"".join(