From 16f0d0668d1ea7146fbaa1d8ff0d091f673b3031 Mon Sep 17 00:00:00 2001 From: Macy Libed Date: Tue, 8 Apr 2025 10:19:42 +0800 Subject: [PATCH 1/3] Changed two-tone test assertions Signed-off-by: Macy Libed --- test/dma_tests.py | 53 ++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/test/dma_tests.py b/test/dma_tests.py index 4f9ead2c3c..f52c095a8f 100644 --- a/test/dma_tests.py +++ b/test/dma_tests.py @@ -418,12 +418,16 @@ def dds_two_tone( raise Exception(e) del sdr tone_peaks, tone_freqs = spec.spec_est(data, fs=RXFS, ref=2 ** 15) - indx = heapq.nlargest(2, range(len(tone_peaks)), tone_peaks.__getitem__) - s1 = "Peak 1: " + str(tone_peaks[indx[0]]) + " @ " + str(tone_freqs[indx[0]]) - s2 = "Peak 2: " + str(tone_peaks[indx[1]]) + " @ " + str(tone_freqs[indx[1]]) + indx1 = min(range(len(tone_freqs)), key=lambda i: abs(tone_freqs[i] - frequency1)) + s1 = f"Peak 1: {tone_peaks[indx1]} @ {tone_freqs[indx1]}" print(s1) + + # Find closest frequency match for frequency2 + indx2 = min(range(len(tone_freqs)), key=lambda i: abs(tone_freqs[i] - frequency2)) + s2 = f"Peak 2: {tone_peaks[indx2]} @ {tone_freqs[indx2]}" print(s2) + if do_html_log: pytest.data_log = { "html": gen_line_plot_html( @@ -435,29 +439,26 @@ def dds_two_tone( ) } - if (abs(frequency1 - tone_freqs[indx[0]]) <= (frequency1 * 0.01)) and ( - abs(frequency2 - tone_freqs[indx[1]]) <= (frequency2 * 0.01) - ): - diff1 = np.abs(tone_freqs[indx[0]] - frequency1) - diff2 = np.abs(tone_freqs[indx[1]] - frequency2) - # print(frequency1, frequency2) - # print(tone_freqs[indx[0]], tone_freqs[indx[1]]) - # print(tone_peaks[indx[0]], tone_peaks[indx[1]]) - # print(diff1, diff2) - assert (frequency1 * 0.01) > diff1 - assert (frequency2 * 0.01) > diff2 - assert tone_peaks[indx[0]] > peak_min1 - assert tone_peaks[indx[1]] > peak_min2 - elif (abs(frequency2 - tone_freqs[indx[0]]) <= (frequency2 * 0.01)) and ( - abs(frequency1 - tone_freqs[indx[1]]) <= (frequency1 * 0.01) - ): - diff1 = np.abs(tone_freqs[indx[0]] - frequency2) - diff2 = np.abs(tone_freqs[indx[1]] - frequency1) - assert (frequency2 * 0.01) > diff1 - assert (frequency1 * 0.01) > diff2 - assert tone_peaks[indx[1]] > peak_min1 - assert tone_peaks[indx[0]] > peak_min2 - + # Define tolerance + tolerance1 = frequency1 * 0.01 + tolerance2 = frequency2 * 0.01 + + # Check frequency and peak values + if (abs(tone_freqs[indx1] - frequency1) <= tolerance1 and + abs(tone_freqs[indx2] - frequency2) <= tolerance2): + + assert abs(tone_freqs[indx1] - frequency1) <= tolerance1 + assert abs(tone_freqs[indx2] - frequency2) <= tolerance2 + assert tone_peaks[indx1] > peak_min1 + assert tone_peaks[indx2] > peak_min2 + + elif (abs(tone_freqs[indx1] - frequency2) <= tolerance2 and + abs(tone_freqs[indx2] - frequency1) <= tolerance1): + + assert abs(tone_freqs[indx1] - frequency2) <= tolerance2 + assert abs(tone_freqs[indx2] - frequency1) <= tolerance1 + assert tone_peaks[indx1] > peak_min1 + assert tone_peaks[indx2] > peak_min2 def nco_loopback(uri, classname, param_set, channel, frequency, peak_min): """nco_loopback: TX/DAC Test tone loopback with connected loopback cables. From aafad171e847bdc94359b43802ce5afa250b19ab Mon Sep 17 00:00:00 2001 From: Macy Libed Date: Tue, 15 Apr 2025 10:47:24 +0800 Subject: [PATCH 2/3] Changed assertion of Two tone test Signed-off-by: Macy Libed --- test/dma_tests.py | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/test/dma_tests.py b/test/dma_tests.py index f52c095a8f..cc5a3b35ee 100644 --- a/test/dma_tests.py +++ b/test/dma_tests.py @@ -439,27 +439,16 @@ def dds_two_tone( ) } - # Define tolerance - tolerance1 = frequency1 * 0.01 - tolerance2 = frequency2 * 0.01 - - # Check frequency and peak values - if (abs(tone_freqs[indx1] - frequency1) <= tolerance1 and - abs(tone_freqs[indx2] - frequency2) <= tolerance2): - - assert abs(tone_freqs[indx1] - frequency1) <= tolerance1 - assert abs(tone_freqs[indx2] - frequency2) <= tolerance2 - assert tone_peaks[indx1] > peak_min1 - assert tone_peaks[indx2] > peak_min2 - - elif (abs(tone_freqs[indx1] - frequency2) <= tolerance2 and - abs(tone_freqs[indx2] - frequency1) <= tolerance1): - - assert abs(tone_freqs[indx1] - frequency2) <= tolerance2 - assert abs(tone_freqs[indx2] - frequency1) <= tolerance1 - assert tone_peaks[indx1] > peak_min1 - assert tone_peaks[indx2] > peak_min2 - + # Assertions + diff1 = abs(tone_freqs[indx1] - frequency1) + diff2 = abs(tone_freqs[indx2] - frequency2) + + assert diff1 < (frequency1 * 0.01) + assert diff2 < (frequency2 * 0.01) + assert tone_peaks[indx1] > peak_min1 + assert tone_peaks[indx2] > peak_min2 + + def nco_loopback(uri, classname, param_set, channel, frequency, peak_min): """nco_loopback: TX/DAC Test tone loopback with connected loopback cables. This test requires a devices with TX and RX onboard where the transmit From 2b9ccef3ad9604b3a01c5a3dd5ff015ddbdbcef8 Mon Sep 17 00:00:00 2001 From: Macy Libed Date: Tue, 29 Apr 2025 16:21:18 +0800 Subject: [PATCH 3/3] Fixed two-tone test assertion Signed-off-by: Macy Libed --- test/dma_tests.py | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/test/dma_tests.py b/test/dma_tests.py index 4f9ead2c3c..c6b46215a5 100644 --- a/test/dma_tests.py +++ b/test/dma_tests.py @@ -418,10 +418,13 @@ def dds_two_tone( raise Exception(e) del sdr tone_peaks, tone_freqs = spec.spec_est(data, fs=RXFS, ref=2 ** 15) - indx = heapq.nlargest(2, range(len(tone_peaks)), tone_peaks.__getitem__) - s1 = "Peak 1: " + str(tone_peaks[indx[0]]) + " @ " + str(tone_freqs[indx[0]]) - s2 = "Peak 2: " + str(tone_peaks[indx[1]]) + " @ " + str(tone_freqs[indx[1]]) + indx1 = min(range(len(tone_freqs)), key=lambda i: abs(tone_freqs[i] - frequency1)) + s1 = f"Peak 1: {tone_peaks[indx1]} @ {tone_freqs[indx1]}" print(s1) + + # Find closest frequency match for frequency2 + indx2 = min(range(len(tone_freqs)), key=lambda i: abs(tone_freqs[i] - frequency2)) + s2 = f"Peak 2: {tone_peaks[indx2]} @ {tone_freqs[indx2]}" print(s2) if do_html_log: @@ -435,28 +438,14 @@ def dds_two_tone( ) } - if (abs(frequency1 - tone_freqs[indx[0]]) <= (frequency1 * 0.01)) and ( - abs(frequency2 - tone_freqs[indx[1]]) <= (frequency2 * 0.01) - ): - diff1 = np.abs(tone_freqs[indx[0]] - frequency1) - diff2 = np.abs(tone_freqs[indx[1]] - frequency2) - # print(frequency1, frequency2) - # print(tone_freqs[indx[0]], tone_freqs[indx[1]]) - # print(tone_peaks[indx[0]], tone_peaks[indx[1]]) - # print(diff1, diff2) - assert (frequency1 * 0.01) > diff1 - assert (frequency2 * 0.01) > diff2 - assert tone_peaks[indx[0]] > peak_min1 - assert tone_peaks[indx[1]] > peak_min2 - elif (abs(frequency2 - tone_freqs[indx[0]]) <= (frequency2 * 0.01)) and ( - abs(frequency1 - tone_freqs[indx[1]]) <= (frequency1 * 0.01) - ): - diff1 = np.abs(tone_freqs[indx[0]] - frequency2) - diff2 = np.abs(tone_freqs[indx[1]] - frequency1) - assert (frequency2 * 0.01) > diff1 - assert (frequency1 * 0.01) > diff2 - assert tone_peaks[indx[1]] > peak_min1 - assert tone_peaks[indx[0]] > peak_min2 + # Assertions + diff1 = abs(tone_freqs[indx1] - frequency1) + diff2 = abs(tone_freqs[indx2] - frequency2) + + assert diff1 < (frequency1 * 0.01) + assert diff2 < (frequency2 * 0.01) + assert tone_peaks[indx1] > peak_min1 + assert tone_peaks[indx2] > peak_min2 def nco_loopback(uri, classname, param_set, channel, frequency, peak_min):