check
This commit is contained in:
@ -10,6 +10,7 @@ from rfg_adc_plotter.gui.pyqtgraph_backend import (
|
||||
apply_working_range,
|
||||
apply_working_range_to_aux_curves,
|
||||
compute_background_subtracted_bscan_levels,
|
||||
resolve_visible_fft_curves,
|
||||
resolve_visible_aux_curves,
|
||||
)
|
||||
from rfg_adc_plotter.processing.calibration import (
|
||||
@ -28,6 +29,7 @@ from rfg_adc_plotter.processing.fft import (
|
||||
build_positive_only_centered_ifft_spectrum,
|
||||
build_symmetric_ifft_spectrum,
|
||||
compute_distance_axis,
|
||||
compute_fft_complex_row,
|
||||
compute_fft_mag_row,
|
||||
compute_fft_row,
|
||||
fft_mag_to_db,
|
||||
@ -287,14 +289,51 @@ class ProcessingTests(unittest.TestCase):
|
||||
def test_compute_fft_helpers_accept_complex_input(self):
|
||||
sweep = np.exp(1j * np.linspace(0.0, 2.0 * np.pi, 128)).astype(np.complex64)
|
||||
freqs = np.linspace(3.3, 14.3, 128, dtype=np.float64)
|
||||
complex_row = compute_fft_complex_row(sweep, freqs, 513, mode="positive_only")
|
||||
mag = compute_fft_mag_row(sweep, freqs, 513, mode="positive_only")
|
||||
row = compute_fft_row(sweep, freqs, 513, mode="positive_only")
|
||||
|
||||
self.assertEqual(complex_row.shape, (513,))
|
||||
self.assertTrue(np.iscomplexobj(complex_row))
|
||||
self.assertEqual(mag.shape, (513,))
|
||||
self.assertEqual(row.shape, (513,))
|
||||
self.assertTrue(np.allclose(mag, np.abs(complex_row), equal_nan=True))
|
||||
self.assertTrue(np.any(np.isfinite(mag)))
|
||||
self.assertTrue(np.any(np.isfinite(row)))
|
||||
|
||||
def test_resolve_visible_fft_curves_handles_complex_mode(self):
|
||||
complex_row = np.asarray([1.0 + 2.0j, -3.0 + 4.0j], dtype=np.complex64)
|
||||
mag = np.abs(complex_row).astype(np.float32)
|
||||
|
||||
abs_curve, real_curve, imag_curve = resolve_visible_fft_curves(
|
||||
complex_row,
|
||||
mag,
|
||||
complex_mode=True,
|
||||
show_abs=True,
|
||||
show_real=False,
|
||||
show_imag=True,
|
||||
)
|
||||
|
||||
self.assertTrue(np.allclose(abs_curve, mag))
|
||||
self.assertIsNone(real_curve)
|
||||
self.assertTrue(np.allclose(imag_curve, np.asarray([2.0, 4.0], dtype=np.float32)))
|
||||
|
||||
def test_resolve_visible_fft_curves_preserves_legacy_abs_mode(self):
|
||||
mag = np.asarray([1.0, 2.0, 3.0], dtype=np.float32)
|
||||
|
||||
abs_curve, real_curve, imag_curve = resolve_visible_fft_curves(
|
||||
None,
|
||||
mag,
|
||||
complex_mode=False,
|
||||
show_abs=True,
|
||||
show_real=True,
|
||||
show_imag=True,
|
||||
)
|
||||
|
||||
self.assertTrue(np.allclose(abs_curve, mag))
|
||||
self.assertIsNone(real_curve)
|
||||
self.assertIsNone(imag_curve)
|
||||
|
||||
def test_symmetric_distance_axis_uses_windowed_frequency_bounds(self):
|
||||
freqs = np.linspace(4.0, 10.0, 128, dtype=np.float64)
|
||||
axis = compute_distance_axis(freqs, 513, mode="symmetric")
|
||||
|
||||
Reference in New Issue
Block a user