From be540b31238467e73df6d6450bae765a05c32878 Mon Sep 17 00:00:00 2001 From: Jeff Chambliss Date: Tue, 14 May 2024 16:02:29 -0400 Subject: [PATCH] Updated ATP tests --- adjacent.png | Bin 0 -> 26033 bytes combined.png | Bin 0 -> 30002 bytes dummy_test.html | 292 +++++++ test.html | 633 +++++++-------- test/conftest.py | 4 +- test/html.py | 34 + test/test_dummy.py | 22 + test/test_triton_cal.py | 1 + test_triton_cal.json | 1704 +++++++++++++++++++-------------------- triton_cal_plots.py | 496 ++++++------ 10 files changed, 1782 insertions(+), 1404 deletions(-) create mode 100644 adjacent.png create mode 100644 combined.png create mode 100644 dummy_test.html create mode 100644 test/test_dummy.py diff --git a/adjacent.png b/adjacent.png new file mode 100644 index 0000000000000000000000000000000000000000..c3b5088738f5ab06228288d440570bcd970ee36e GIT binary patch literal 26033 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 ZOmVF?4?afKy~g}f%23Z(w}9>t_-{Rm*s%Zr literal 0 HcmV?d00001 diff --git a/dummy_test.html b/dummy_test.html new file mode 100644 index 000000000..025727616 --- /dev/null +++ b/dummy_test.html @@ -0,0 +1,292 @@ + + + + + pyadi-iio Test Report + + + +

pyadi-iio Test Report

+

Report generated on 10-May-2024 at 11:56:32 by pytest-html v3.2.0

+

Summary

+

This is a custom report summary


+

2 tests ran in 0.05 seconds.

+ 2 passed, 0 skipped, 0 failed, 0 errors, 0 expected failures, 0 unexpected passes<div>random_test</div> + <img src='C:/ADI/Triton/pyadi-iio/adjacent.png'> + <img src='C:/ADI/Triton/pyadi-iio/combined.png'> +

Results

+ + + + + + + + + + + + + + + + + + + + + + + + +
ResultTestDurationLinks
Passedtest/test_dummy.py::test_history0.00
+
1234
+
No log output captured.
Passedtest/test_dummy.py::test_history20.00
+
[5678, 1234]
+
No log output captured.
\ No newline at end of file diff --git a/test.html b/test.html index a90bc954a..87465eaa5 100644 --- a/test.html +++ b/test.html @@ -253,9 +253,10 @@ }

pyadi-iio Test Report

-

Report generated on 12-Apr-2024 at 10:14:26 by pytest-html v3.2.0

+

Report generated on 15-Apr-2024 at 13:29:36 by pytest-html v3.2.0

Summary

-

170 tests ran in 623.83 seconds.

+

extras.image('adjacent.png')

+

170 tests ran in 595.91 seconds.

170 passed, 0 skipped, 0 failed, 0 errors, 0 expected failures, 0 unexpected passes

Results

@@ -271,7 +272,7 @@

Results

- + @@ -292,46 +293,46 @@

Results

- + - + - + @@ -344,33 +345,33 @@

Results

- + - + @@ -383,27 +384,27 @@

Results

- + - + - + - + - + - + - + - + - + - + @@ -528,14 +529,14 @@

Results

- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -859,20 +860,20 @@

Results

- + @@ -885,53 +886,53 @@

Results

- + - + - + - + - + - + - + - + - + @@ -1017,53 +1018,53 @@

Results

- + - + - + - + - + - + @@ -1110,20 +1111,20 @@

Results

- + @@ -1136,7 +1137,7 @@

Results

@@ -1149,53 +1150,53 @@

Results

- + - + - + - + @@ -1216,46 +1217,46 @@

Results

- + - + - + @@ -1268,66 +1269,66 @@

Results

- + - + - + - + - + - + - + - + - + - + @@ -1413,53 +1414,53 @@

Results

- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1677,53 +1678,53 @@

Results

- + - + - + - + - + @@ -1757,33 +1758,33 @@

Results

- + - + @@ -1796,66 +1797,66 @@

Results

- + - + - + - + - + - + - + - + @@ -1915,33 +1916,33 @@

Results

- + - + @@ -1954,20 +1955,20 @@

Results

- + @@ -1980,14 +1981,14 @@

Results

- + - + - + - + - + - + @@ -2073,53 +2074,53 @@

Results

- + - + - + - + - + @@ -2153,7 +2154,7 @@

Results

@@ -2166,92 +2167,92 @@

Results

- + - + - + - + - + - + - + - + @@ -2285,46 +2286,46 @@

Results

- + - + - + @@ -2337,7 +2338,7 @@

Results

@@ -2350,40 +2351,40 @@

Results

- + - + - + - + - + - + - + - + - + @@ -2484,32 +2485,32 @@

Results

- + - +
Passed test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):8000]25.2227.56
@@ -279,7 +280,7 @@

Results

Connect signal generator into channel 0 input and connect spectrum analyzer into channel 0 output. Press Enter when complete -Power level (dBm): -2.713206E+00 +Power level (dBm): -2.382866E+00
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.077999E+00 +Power level (dBm): -2.662026E+00
Passed test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):10000]2.052.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.643141E+00 +Power level (dBm): -3.536682E+00
Passed test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):11000]2.012.04
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.773222E+00 +Power level (dBm): -4.419151E+00
Passed test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):12000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.158241E+00 +Power level (dBm): -3.877325E+00
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.503376E+01 +Power level (dBm): -5.947359E+01
Passed test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):9000]2.032.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.784751E+01 +Power level (dBm): -6.108541E+01
Passed test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):10000]2.052.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.924398E+01 +Power level (dBm): -5.890023E+01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.968870E+01 +Power level (dBm): -5.993606E+01
Passed test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):12000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.190278E+01 +Power level (dBm): -5.966877E+01
Passed test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):8000]23.6811.75
@@ -411,111 +412,111 @@

Results

Connect signal generator into channel 1 input and connect spectrum analyzer into channel 1 output. Press Enter when complete -Power level (dBm): -2.712696E+00 +Power level (dBm): -2.165264E+00
Passed test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):9000]2.012.04
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.529439E+00 +Power level (dBm): -2.426431E+00
Passed test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):10000]2.082.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.683637E+00 +Power level (dBm): -3.246375E+00
Passed test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):11000]2.082.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.721067E+00 +Power level (dBm): -4.487059E+00
Passed test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):12000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.196872E+00 +Power level (dBm): -4.120660E+00
Passed test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):8000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.501656E+01 +Power level (dBm): -4.406171E+01
Passed test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):9000]2.032.04
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.768188E+01 +Power level (dBm): -4.772047E+01
Passed test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):10000]2.072.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.913830E+01 +Power level (dBm): -4.759569E+01
Passed test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):11000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.892950E+01 +Power level (dBm): -5.014235E+01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.163880E+01 +Power level (dBm): -5.198330E+01
Passed test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):8000]14.449.26
@@ -543,131 +544,131 @@

Results

Connect signal generator into channel 2 input and connect spectrum analyzer into channel 2 output. Press Enter when complete -Power level (dBm): -2.661754E+00 +Power level (dBm): -2.158925E+00
Passed test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):9000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.482011E+00 +Power level (dBm): -2.337748E+00
Passed test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):10000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.598088E+00 +Power level (dBm): -3.237141E+00
Passed test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):11000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.722182E+00 +Power level (dBm): -4.320259E+00
Passed test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):12000]2.032.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.291178E+00 +Power level (dBm): -3.806279E+00
Passed test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):8000]2.032.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.503860E+01 +Power level (dBm): -4.519575E+01
Passed test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):9000]2.022.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.823097E+01 +Power level (dBm): -4.660887E+01
Passed test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):10000]2.032.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.863151E+01 +Power level (dBm): -4.870622E+01
Passed test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):11000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.899025E+01 +Power level (dBm): -4.948697E+01
Passed test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):12000]2.012.04
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.224553E+01 +Power level (dBm): -5.156590E+01
Passed test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):8000]14.5218.15
@@ -675,131 +676,131 @@

Results

Connect signal generator into channel 3 input and connect spectrum analyzer into channel 3 output. Press Enter when complete -Power level (dBm): -2.342948E+00 +Power level (dBm): -1.900280E+00
Passed test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):9000]2.042.07
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.918662E+00 +Power level (dBm): -2.049615E+00
Passed test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):10000]2.012.05
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.774200E+00 +Power level (dBm): -2.978225E+00
Passed test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):11000]2.032.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.650813E+00 +Power level (dBm): -4.213542E+00
Passed test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):12000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.172471E+00 +Power level (dBm): -3.674493E+00
Passed test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):8000]2.042.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.458621E+01 +Power level (dBm): -4.485643E+01
Passed test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):9000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.767281E+01 +Power level (dBm): -4.641379E+01
Passed test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):10000]2.032.06
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.916175E+01 +Power level (dBm): -4.851912E+01
Passed test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):11000]2.072.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.929842E+01 +Power level (dBm): -4.935519E+01
Passed test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):12000]2.082.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.165910E+01 +Power level (dBm): -5.147760E+01
Passed test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):8000]13.539.58
@@ -807,46 +808,46 @@

Results

Connect signal generator into channel 4 input and connect spectrum analyzer into channel 4 output. Press Enter when complete -Power level (dBm): -2.346485E+00 +Power level (dBm): -2.018319E+00
Passed test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):9000]2.012.04
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.890784E+00 +Power level (dBm): -2.224654E+00
Passed test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):10000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.732337E+00 +Power level (dBm): -3.173595E+00
Passed test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):11000]2.062.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.733950E+00 +Power level (dBm): -4.373484E+00
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.250496E+00 +Power level (dBm): -3.813734E+00
Passed test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):8000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.484545E+01 +Power level (dBm): -4.431443E+01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.764614E+01 +Power level (dBm): -4.712474E+01
Passed test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):10000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.916323E+01 +Power level (dBm): -4.846744E+01
Passed test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):11000]2.012.07
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.781840E+01 +Power level (dBm): -4.915854E+01
Passed test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):12000]2.012.07
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.223407E+01 +Power level (dBm): -5.158439E+01
Passed test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):8000]13.068.55
@@ -939,72 +940,72 @@

Results

Connect signal generator into channel 5 input and connect spectrum analyzer into channel 5 output. Press Enter when complete -Power level (dBm): -2.313940E+00 +Power level (dBm): -1.923913E+00
Passed test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):9000]2.032.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.900420E+00 +Power level (dBm): -2.103073E+00
Passed test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):10000]2.032.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.842905E+00 +Power level (dBm): -3.058268E+00
Passed test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):11000]2.032.05
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.664529E+00 +Power level (dBm): -4.297559E+00
Passed test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):12000]2.062.07
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.128291E+00 +Power level (dBm): -3.711453E+00
Passed test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):8000]2.032.04
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.491219E+01 +Power level (dBm): -4.455524E+01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.765752E+01 +Power level (dBm): -4.671149E+01
Passed test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):10000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.932526E+01 +Power level (dBm): -4.830944E+01
Passed test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):11000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.932955E+01 +Power level (dBm): -4.879952E+01
Passed test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):12000]2.042.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.170701E+01 +Power level (dBm): -5.115681E+01
Passed test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):8000]11.5211.06
@@ -1071,33 +1072,33 @@

Results

Connect signal generator into channel 6 input and connect spectrum analyzer into channel 6 output. Press Enter when complete -Power level (dBm): -2.312365E+00 +Power level (dBm): -1.941558E+00
Passed test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):9000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.846671E+00 +Power level (dBm): -2.157139E+00
Passed test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):10000]2.022.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.834120E+00 +Power level (dBm): -3.032162E+00
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.760614E+00 +Power level (dBm): -4.354725E+00
Passed test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):12000]2.022.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.226539E+00 +Power level (dBm): -3.856872E+00
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.496972E+01 +Power level (dBm): -4.446358E+01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.739670E+01 +Power level (dBm): -4.652696E+01
Passed test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):10000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.962469E+01 +Power level (dBm): -4.845677E+01
Passed test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):11000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.898659E+01 +Power level (dBm): -4.899574E+01
Passed test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):12000]2.022.14
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.226951E+01 +Power level (dBm): -5.144669E+01
Passed test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):8000]12.109.54
@@ -1203,7 +1204,7 @@

Results

Connect signal generator into channel 7 input and connect spectrum analyzer into channel 7 output. Press Enter when complete -Power level (dBm): -2.519439E+00 +Power level (dBm): -1.945059E+00
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.127526E+00 +Power level (dBm): -2.214692E+00
Passed test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):10000]2.022.11
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.807360E+00 +Power level (dBm): -3.130521E+00
Passed test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):11000]2.032.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.814937E+00 +Power level (dBm): -4.438068E+00
Passed test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):12000]2.032.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.256808E+00 +Power level (dBm): -3.810322E+00
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.495648E+01 +Power level (dBm): -4.449106E+01
Passed test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):9000]2.022.05
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.767289E+01 +Power level (dBm): -4.685756E+01
Passed test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):10000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.966882E+01 +Power level (dBm): -4.863996E+01
Passed test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):11000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.901686E+01 +Power level (dBm): -4.892315E+01
Passed test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):12000]2.022.07
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.221202E+01 +Power level (dBm): -5.198967E+01
Passed test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):8000]12.7410.48
@@ -1335,72 +1336,72 @@

Results

Connect signal generator into channel 8 input and connect spectrum analyzer into channel 8 output. Press Enter when complete -Power level (dBm): -2.395231E+00 +Power level (dBm): -1.984880E+00
Passed test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):9000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.873094E+00 +Power level (dBm): -2.277297E+00
Passed test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):10000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.800642E+00 +Power level (dBm): -3.215463E+00
Passed test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):11000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.804201E+00 +Power level (dBm): -4.355400E+00
Passed test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):12000]2.022.08
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.315011E+00 +Power level (dBm): -3.717851E+00
Passed test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):8000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.275085E+01 +Power level (dBm): -4.449504E+01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.543575E+01 +Power level (dBm): -4.721465E+01
Passed test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):10000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.286495E+01 +Power level (dBm): -4.870928E+01
Passed test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):11000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.367478E+01 +Power level (dBm): -4.884847E+01
Passed test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):12000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.702797E+01 +Power level (dBm): -5.161604E+01
Passed test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):8000]10.1110.23
@@ -1467,131 +1468,131 @@

Results

Connect signal generator into channel 9 input and connect spectrum analyzer into channel 9 output. Press Enter when complete -Power level (dBm): -2.483236E+00 +Power level (dBm): -1.976288E+00
Passed test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):9000]2.012.06
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.312871E+00 +Power level (dBm): -2.247581E+00
Passed test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):10000]2.042.10
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.545246E+00 +Power level (dBm): -3.111230E+00
Passed test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):11000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.634131E+00 +Power level (dBm): -4.363839E+00
Passed test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):12000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.135194E+00 +Power level (dBm): -3.781742E+00
Passed test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):8000]2.032.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.312883E+01 +Power level (dBm): -4.451257E+01
Passed test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):9000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.741263E+01 +Power level (dBm): -4.689417E+01
Passed test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):10000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.228085E+01 +Power level (dBm): -4.851461E+01
Passed test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):11000]2.012.04
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.346947E+01 +Power level (dBm): -4.903589E+01
Passed test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):12000]2.022.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.679384E+01 +Power level (dBm): -5.138336E+01
Passed test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):8000]12.8516.18
@@ -1599,72 +1600,72 @@

Results

Connect signal generator into channel 10 input and connect spectrum analyzer into channel 10 output. Press Enter when complete -Power level (dBm): -2.164186E+00 +Power level (dBm): -2.022574E+00
Passed test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):9000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.510386E+00 +Power level (dBm): -2.278409E+00
Passed test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):10000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.549183E+00 +Power level (dBm): -3.115813E+00
Passed test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):11000]2.042.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.743786E+00 +Power level (dBm): -4.334831E+00
Passed test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):12000]2.052.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.350555E+00 +Power level (dBm): -3.884731E+00
Passed test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):8000]2.082.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.257273E+01 +Power level (dBm): -4.458133E+01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.561184E+01 +Power level (dBm): -4.677707E+01
Passed test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):10000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.253985E+01 +Power level (dBm): -4.870263E+01
Passed test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):11000]2.012.05
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.323700E+01 +Power level (dBm): -4.920901E+01
Passed test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):12000]2.022.04
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.767017E+01 +Power level (dBm): -5.171465E+01
Passed test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):8000]14.869.42
@@ -1731,20 +1732,20 @@

Results

Connect signal generator into channel 11 input and connect spectrum analyzer into channel 11 output. Press Enter when complete -Power level (dBm): -2.356942E+00 +Power level (dBm): -1.972390E+00
Passed test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):9000]2.022.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.598222E+00 +Power level (dBm): -2.177869E+00
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.478525E+00 +Power level (dBm): -3.077784E+00
Passed test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):11000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.630241E+00 +Power level (dBm): -4.340207E+00
Passed test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):12000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.091098E+00 +Power level (dBm): -3.959832E+00
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.202808E+01 +Power level (dBm): -4.439508E+01
Passed test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):9000]2.042.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.525541E+01 +Power level (dBm): -4.703568E+01
Passed test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):10000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.240377E+01 +Power level (dBm): -4.860241E+01
Passed test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):11000]2.062.07
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.370574E+01 +Power level (dBm): -4.919012E+01
Passed test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):12000]2.032.04
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.741838E+01 +Power level (dBm): -5.163225E+01
Passed test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):8000]16.619.12
@@ -1863,46 +1864,46 @@

Results

Connect signal generator into channel 12 input and connect spectrum analyzer into channel 12 output. Press Enter when complete -Power level (dBm): -2.278384E+00 +Power level (dBm): -2.014783E+00
Passed test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):9000]2.032.08
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.644547E+00 +Power level (dBm): -2.310140E+00
Passed test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):10000]2.032.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.697013E+00 +Power level (dBm): -3.155472E+00
Passed test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):11000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.888481E+00 +Power level (dBm): -4.410947E+00
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.292100E+00 +Power level (dBm): -3.958745E+00
Passed test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):8000]2.042.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.531174E+01 +Power level (dBm): -4.433162E+01
Passed test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):9000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.764869E+01 +Power level (dBm): -4.707146E+01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.866454E+01 +Power level (dBm): -4.867657E+01
Passed test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):11000]2.022.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.920344E+01 +Power level (dBm): -4.910048E+01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.269677E+01 +Power level (dBm): -5.178027E+01
Passed test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):8000]11.7811.02
@@ -1995,72 +1996,72 @@

Results

Connect signal generator into channel 13 input and connect spectrum analyzer into channel 13 output. Press Enter when complete -Power level (dBm): -2.253842E+00 +Power level (dBm): -2.183205E+00
Passed test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):9000]2.022.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.614228E+00 +Power level (dBm): -2.471416E+00
Passed test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):10000]2.042.05
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.647749E+00 +Power level (dBm): -3.260308E+00
Passed test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):11000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.771245E+00 +Power level (dBm): -4.379913E+00
Passed test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):12000]2.082.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.305930E+00 +Power level (dBm): -4.046019E+00
Passed test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):8000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.525736E+01 +Power level (dBm): -4.452149E+01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.732505E+01 +Power level (dBm): -4.703831E+01
Passed test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):10000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.840231E+01 +Power level (dBm): -4.849106E+01
Passed test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):11000]2.022.06
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.938793E+01 +Power level (dBm): -4.904001E+01
Passed test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):12000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.238020E+01 +Power level (dBm): -5.154198E+01
Passed test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):8000]13.5810.78
@@ -2127,20 +2128,20 @@

Results

Connect signal generator into channel 14 input and connect spectrum analyzer into channel 14 output. Press Enter when complete -Power level (dBm): -2.335880E+00 +Power level (dBm): -2.141396E+00
Passed test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):9000]2.022.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.659169E+00 +Power level (dBm): -2.391362E+00
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.654425E+00 +Power level (dBm): -3.244143E+00
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.771632E+00 +Power level (dBm): -4.533673E+00
Passed test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):12000]2.022.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.310846E+00 +Power level (dBm): -4.042763E+00
Passed test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):8000]2.032.06
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.553709E+01 +Power level (dBm): -4.456880E+01
Passed test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):9000]2.042.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.733204E+01 +Power level (dBm): -4.679732E+01
Passed test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):10000]2.012.08
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.862777E+01 +Power level (dBm): -4.898911E+01
Passed test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):11000]2.052.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.957783E+01 +Power level (dBm): -4.950690E+01
Passed test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):12000]2.032.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.287206E+01 +Power level (dBm): -5.168207E+01
Passed test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):8000]10.3110.08
@@ -2259,20 +2260,20 @@

Results

Connect signal generator into channel 15 input and connect spectrum analyzer into channel 15 output. Press Enter when complete -Power level (dBm): -2.392153E+00 +Power level (dBm): -2.231021E+00
Passed test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):9000]2.012.05
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.800071E+00 +Power level (dBm): -2.430204E+00
------------------------------Captured stdout call------------------------------
-Power level (dBm): -3.758259E+00 +Power level (dBm): -3.259252E+00
Passed test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):11000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.838159E+00 +Power level (dBm): -4.610565E+00
Passed test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):12000]2.012.04
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.427161E+00 +Power level (dBm): -4.114966E+00
Passed test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):8000]2.032.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.544890E+01 +Power level (dBm): -4.439728E+01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.794281E+01 +Power level (dBm): -4.731952E+01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.924738E+01 +Power level (dBm): -4.901336E+01
Passed test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):11000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -4.977777E+01 +Power level (dBm): -4.952678E+01
Passed test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):12000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -5.307273E+01 +Power level (dBm): -5.163340E+01
Passed test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):8000]28.9628.78
@@ -2391,66 +2392,66 @@

Results

Connect signal generator into channel 0 input. Connect spectrum analyzer to the combined Tx out SMA port on top of the board. Press enter when complete -Power level (dBm): -1.834334E+01 +Power level (dBm): -3.174071E+01
Passed test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):9000]2.012.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -1.987976E+01 +Power level (dBm): -3.407167E+01
Passed test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):10000]2.072.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.136182E+01 +Power level (dBm): -3.492603E+01
Passed test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):11000]2.022.01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.212036E+01 +Power level (dBm): -3.632546E+01
Passed test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):12000]2.022.08
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.349445E+01 +Power level (dBm): -3.544490E+01
Passed test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):8000]48.9258.27
@@ -2458,20 +2459,20 @@

Results

Connect signal generator into Rx SMA input on top of the board. Connect spectrum analyzer into channel 0 output. Press enter when complete -Power level (dBm): -1.901320E+01 +Power level (dBm): -1.851318E+01
Passed test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):9000]2.052.03
------------------------------Captured stdout call------------------------------
-Power level (dBm): -1.962891E+01 +Power level (dBm): -1.921726E+01
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.158308E+01 +Power level (dBm): -2.056622E+01
Passed test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):11000]2.012.02
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.251577E+01 +Power level (dBm): -2.154653E+01
Passed test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):12000]2.042.05
------------------------------Captured stdout call------------------------------
-Power level (dBm): -2.400306E+01 +Power level (dBm): -2.317224E+01
\ No newline at end of file diff --git a/test/conftest.py b/test/conftest.py index b9fe7cf16..caf160fd9 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -13,8 +13,8 @@ from test.dma_tests import * from test.generics import iio_attribute_single_value from test.globals import * -from test.html import pytest_html_report_title, pytest_runtest_makereport - +# from test.html import pytest_html_report_title, pytest_runtest_makereport, pytest_html_results_table_header, generate_header_with_image, image_to_base64 +from test.html import pytest_runtest_makereport, pytest_html_results_summary, pytest_html_report_title import adi import numpy as np import pytest diff --git a/test/html.py b/test/html.py index 0fb8351c6..a0bcfb690 100644 --- a/test/html.py +++ b/test/html.py @@ -1,10 +1,39 @@ import plotly.express as px import pytest +from docutils import nodes +import pytest_html +from py.xml import html def pytest_html_report_title(report): report.title = "pyadi-iio Test Report" +def pytest_html_results_summary(prefix, summary, postfix): + + # Add html paragraph to prefix + prefix.extend([html.p("This is a custom report summary")]) + + # Add line break to prefix + prefix.extend([html.br()]) + + # Add image to prefix, must be relative to the html output (not absolute path) + image_loc = "adjacent.png" + image2_loc = "combined.png" + image = html.img(src=image_loc, style="width: 300px;") + image2 = html.img(src=image2_loc, style="width: 300px;") + prefix.extend([image]) + prefix.extend([image2]) + + + print(summary) + print('test123') + summary.extend([r'
random_test
']) + summary.append(html.html("")) + summary.append(html.html("")) + + for item in summary: + print(type(item)) + @pytest.hookimpl(hookwrapper=True) def pytest_runtest_makereport(item, call): @@ -17,3 +46,8 @@ def pytest_runtest_makereport(item, call): if hasattr(pytest, "data_log") and "html" in pytest.data_log.keys(): extra.append(pytest_html.extras.html(pytest.data_log["html"])) report.extra = extra + if hasattr(pytest, "data"): + # extra.append(pytest_html.extras.html(pytest.data["html"])) + extra.append(pytest_html.extras.html(f'
{pytest.data}
')) + report.extra = extra + diff --git a/test/test_dummy.py b/test/test_dummy.py new file mode 100644 index 000000000..bfcf07772 --- /dev/null +++ b/test/test_dummy.py @@ -0,0 +1,22 @@ +import adi +import pytest +import test +import numpy as np +import pyvisa + +import pyfirmata +import time + +# def test_dummy(): +# x = 2 +# y = 3 +# assert x+y==5 + + +def test_history(): + pytest.data= 1234 + +def test_history2(): + if hasattr(pytest, 'data'): + print('found data') + pytest.data = [5678, pytest.data] \ No newline at end of file diff --git a/test/test_triton_cal.py b/test/test_triton_cal.py index a3907e405..97f775f90 100644 --- a/test/test_triton_cal.py +++ b/test/test_triton_cal.py @@ -187,6 +187,7 @@ def test_rx_combined_in(frequency): _set_output('ON', HMCT2220) # Set sig gen output on time.sleep(1) # Buffer time of 1 second + # Set up spectrum analyzer _set_mode('SA', FieldFox) # Select spectrum analyzer mode for FieldFox _set_attenuation_level(0, FieldFox) # Set attenuation level to 0 dB diff --git a/test_triton_cal.json b/test_triton_cal.json index 0a3018669..382743721 100644 --- a/test_triton_cal.json +++ b/test_triton_cal.json @@ -7,3740 +7,3740 @@ "tests": [ { "name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):8000]", - "duration": 25.224134100019, + "duration": 27.5693725000001, "run_index": 0, "setup": { "name": "setup", - "duration": 0.0013481999922078103, + "duration": 0.0013952999997854931, "outcome": "passed" }, "call": { "name": "call", - "duration": 25.22092000002158, + "duration": 27.56615950000014, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 0 input and connect spectrum analyzer into channel 0 output. Press Enter when complete \n\nPower level (dBm): -2.713206E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 0 input and connect spectrum analyzer into channel 0 output. Press Enter when complete \n\nPower level (dBm): -2.382866E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.000517700013006106, + "duration": 0.00042240000038873404, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.0275682000501547, + "duration": 2.0284425000008923, "run_index": 1, "setup": { "name": "setup", - "duration": 0.0007087000121828169, + "duration": 0.0005172000001039123, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0257846000022255, + "duration": 2.0270393999999214, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.077999E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.662026E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003662000235635787, + "duration": 0.00036870000076305587, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.051024000014877, + "duration": 2.019431099997746, "run_index": 2, "setup": { "name": "setup", - "duration": 0.0004743000026792288, + "duration": 0.0005514999993465608, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0494874000141863, + "duration": 2.01796800000011, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.643141E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.536682E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0005879999953322113, + "duration": 0.000360099998943042, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.020910199993523, + "duration": 2.041431300000113, "run_index": 3, "setup": { "name": "setup", - "duration": 0.0009751000034157187, + "duration": 0.00045700000009674113, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0185849999834318, + "duration": 2.040135100000043, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.773222E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.419151E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.000375000003259629, + "duration": 0.00038219999987632036, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:0-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.0282843000022694, + "duration": 2.0368254000004526, "run_index": 4, "setup": { "name": "setup", - "duration": 0.0007431999838445336, + "duration": 0.0007628000003023772, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0264030000253115, + "duration": 2.0349375999994663, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.158241E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.877325E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003949000092688948, + "duration": 0.00036220000038156286, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):8000]", - "duration": 2.0301445000222884, + "duration": 2.0256485999998404, "run_index": 5, "setup": { "name": "setup", - "duration": 0.000513100007083267, + "duration": 0.0004515000000537839, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.028404500015313, + "duration": 2.0243845000004512, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.503376E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.947359E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0007137999928090721, + "duration": 0.00036109999928157777, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):9000]", - "duration": 2.0383357999962755, + "duration": 2.019422500003202, "run_index": 6, "setup": { "name": "setup", - "duration": 0.0008709999965503812, + "duration": 0.0004971000016666949, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0361946999910288, + "duration": 2.018092500000421, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.784751E+01\n\n" + "stdout": "\n\nPower level (dBm): -6.108541E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003991000121459365, + "duration": 0.0003357999994477723, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):10000]", - "duration": 2.0603773000184447, + "duration": 2.017935799996849, "run_index": 7, "setup": { "name": "setup", - "duration": 0.0005441000103019178, + "duration": 0.0004890999989584088, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0568306999921333, + "duration": 2.0166052999993553, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.924398E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.890023E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0024584000057075173, + "duration": 0.00035229999957664404, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):11000]", - "duration": 2.0277273999527097, + "duration": 2.0256578999978956, "run_index": 8, "setup": { "name": "setup", - "duration": 0.001545099978102371, + "duration": 0.0006780999992770376, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0241550999926403, + "duration": 2.0239340999996784, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.968870E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.993606E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00048210000386461616, + "duration": 0.0003675999996630708, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:0-combined_loopback-Frequency (MHz):12000]", - "duration": 2.02794920001179, + "duration": 2.0312381999992795, "run_index": 9, "setup": { "name": "setup", - "duration": 0.0004447000101208687, + "duration": 0.0004487999995035352, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0267165999975987, + "duration": 2.030011099999683, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.190278E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.966877E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003431999939493835, + "duration": 0.00032950000058917794, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):8000]", - "duration": 23.680717200011713, + "duration": 11.754367500001536, "run_index": 10, "setup": { "name": "setup", - "duration": 0.00045029999455437064, + "duration": 0.0004776999994646758, "outcome": "passed" }, "call": { "name": "call", - "duration": 23.679457000020193, + "duration": 11.75305500000104, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 1 input and connect spectrum analyzer into channel 1 output. Press Enter when complete \n\nPower level (dBm): -2.712696E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 1 input and connect spectrum analyzer into channel 1 output. Press Enter when complete \n\nPower level (dBm): -2.165264E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00035960000241175294, + "duration": 0.00035710000156541355, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.018089700024575, + "duration": 2.0471488000002864, "run_index": 11, "setup": { "name": "setup", - "duration": 0.00043310000910423696, + "duration": 0.0004492999996728031, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0167687000066508, + "duration": 2.0457378000010067, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.529439E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.426431E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00045479999971576035, + "duration": 0.0005123999999341322, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.081904199993005, + "duration": 2.0184143999995285, "run_index": 12, "setup": { "name": "setup", - "duration": 0.0007116000051610172, + "duration": 0.00047649999942223076, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0799415999790654, + "duration": 2.0171293999992486, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.683637E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.246375E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0005394000036176294, + "duration": 0.00033200000143551733, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.08764670000528, + "duration": 2.0333687999973336, "run_index": 13, "setup": { "name": "setup", - "duration": 0.0004262000147718936, + "duration": 0.0004768999988300493, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0864591999852564, + "duration": 2.032086999999592, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.721067E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.487059E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003350999904796481, + "duration": 0.0003280000000813743, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:1-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.0274353000277188, + "duration": 2.0337129999988974, "run_index": 14, "setup": { "name": "setup", - "duration": 0.00048160000005736947, + "duration": 0.00047110000014072284, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0261150000151247, + "duration": 2.0324217999987013, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.196872E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.120660E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00035710001247934997, + "duration": 0.00034899999991466757, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):8000]", - "duration": 2.024892799992813, + "duration": 2.035396799999944, "run_index": 15, "setup": { "name": "setup", - "duration": 0.00048019998939707875, + "duration": 0.0004982999998901505, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.023594199999934, + "duration": 2.033733399999619, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.501656E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.406171E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00033820001408457756, + "duration": 0.0006668000005447539, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):9000]", - "duration": 2.0342018000374082, + "duration": 2.0427099999997154, "run_index": 16, "setup": { "name": "setup", - "duration": 0.0005330000130925328, + "duration": 0.0004720999986602692, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0328102000057697, + "duration": 2.041222400001061, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.768188E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.772047E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00032560000545345247, + "duration": 0.0005434000013337936, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):10000]", - "duration": 2.0742179999651853, + "duration": 2.026191300001301, "run_index": 17, "setup": { "name": "setup", - "duration": 0.0004264999879524112, + "duration": 0.0004516000008152332, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0728451999893878, + "duration": 2.0249585999990813, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.913830E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.759569E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0005197999998927116, + "duration": 0.00032950000058917794, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):11000]", - "duration": 2.020534399955068, + "duration": 2.0393550999979198, "run_index": 18, "setup": { "name": "setup", - "duration": 0.0005139999848324805, + "duration": 0.00043509999886737205, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.019029799994314, + "duration": 2.038145299999087, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.892950E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.014235E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0004765999910887331, + "duration": 0.00033960000109800603, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:1-combined_loopback-Frequency (MHz):12000]", - "duration": 2.022318399976939, + "duration": 2.0269105000006675, "run_index": 19, "setup": { "name": "setup", - "duration": 0.0004670000053010881, + "duration": 0.00047730000005685724, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.021054099983303, + "duration": 2.0256171000000904, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.163880E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.198330E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003302999830339104, + "duration": 0.00033880000046337955, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):8000]", - "duration": 14.442593100015074, + "duration": 9.261315200001263, "run_index": 20, "setup": { "name": "setup", - "duration": 0.0005082999996375293, + "duration": 0.0005318000003171619, "outcome": "passed" }, "call": { "name": "call", - "duration": 14.44124070001999, + "duration": 9.259907999999996, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 2 input and connect spectrum analyzer into channel 2 output. Press Enter when complete \n\nPower level (dBm): -2.661754E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 2 input and connect spectrum analyzer into channel 2 output. Press Enter when complete \n\nPower level (dBm): -2.158925E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00033579999580979347, + "duration": 0.00034360000063315965, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.017765500000678, + "duration": 2.034061299998939, "run_index": 21, "setup": { "name": "setup", - "duration": 0.0005434000049717724, + "duration": 0.0005153999991307501, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0163185999845155, + "duration": 2.0322890000006737, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.482011E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.337748E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003601000062189996, + "duration": 0.0007415000000037253, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.017580999963684, + "duration": 2.0224847000008594, "run_index": 22, "setup": { "name": "setup", - "duration": 0.0004332999815233052, + "duration": 0.0005839999994350364, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0159586000081617, + "duration": 2.0208317000015086, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.598088E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.237141E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0007557999924756587, + "duration": 0.0004850000004807953, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.017938899982255, + "duration": 2.0222072999986267, "run_index": 23, "setup": { "name": "setup", - "duration": 0.0004245000018272549, + "duration": 0.0004988999990018783, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.016764699976193, + "duration": 2.020890200001304, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.722182E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.320259E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003252000024076551, + "duration": 0.0003192999993189005, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:2-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.03314110005158, + "duration": 2.0174108000010165, "run_index": 24, "setup": { "name": "setup", - "duration": 0.0004870000120718032, + "duration": 0.0004415000003064051, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0318183000199497, + "duration": 2.016191599999729, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.291178E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.806279E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003488000074867159, + "duration": 0.0003362000006745802, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):8000]", - "duration": 2.0330489999614656, + "duration": 2.018010300002061, "run_index": 25, "setup": { "name": "setup", - "duration": 0.00046809998457320035, + "duration": 0.0005438000007416122, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.031769199995324, + "duration": 2.016595499999312, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.503860E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.519575E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00034359999699518085, + "duration": 0.00032720000126573723, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):9000]", - "duration": 2.025897600018652, + "duration": 2.01735689999623, "run_index": 26, "setup": { "name": "setup", - "duration": 0.0010947000118903816, + "duration": 0.00044129999878350645, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.022126500000013, + "duration": 2.0161123999987467, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.823097E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.660887E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0015816999948583543, + "duration": 0.00036189999991620425, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):10000]", - "duration": 2.0366648999915924, + "duration": 2.025028200001543, "run_index": 27, "setup": { "name": "setup", - "duration": 0.0004422999918460846, + "duration": 0.0004960000005667098, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.035436500009382, + "duration": 2.0236941000002844, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.863151E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.870622E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003437999985180795, + "duration": 0.000342100000125356, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):11000]", - "duration": 2.0177288000122644, + "duration": 2.0280501000015647, "run_index": 28, "setup": { "name": "setup", - "duration": 0.0006279000081121922, + "duration": 0.00044239999988349155, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.015979099989636, + "duration": 2.0268179000013333, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.899025E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.948697E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0004939000064041466, + "duration": 0.000347400000464404, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:2-combined_loopback-Frequency (MHz):12000]", - "duration": 2.0190851000370458, + "duration": 2.0492822999985947, "run_index": 29, "setup": { "name": "setup", - "duration": 0.00043420001748017967, + "duration": 0.00044799999886890873, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0171288999845274, + "duration": 2.0480079999997542, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.224553E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.156590E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0010878000175580382, + "duration": 0.0003783000011026161, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):8000]", - "duration": 14.530033999995794, + "duration": 18.156763899998623, "run_index": 30, "setup": { "name": "setup", - "duration": 0.001660000008996576, + "duration": 0.00043000000005122274, "outcome": "passed" }, "call": { "name": "call", - "duration": 14.526364499994088, + "duration": 18.15555569999924, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 3 input and connect spectrum analyzer into channel 3 output. Press Enter when complete \n\nPower level (dBm): -2.342948E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 3 input and connect spectrum analyzer into channel 3 output. Press Enter when complete \n\nPower level (dBm): -1.900280E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003494999837130308, + "duration": 0.0003481999992800411, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.0449755999434274, + "duration": 2.0778590999998414, "run_index": 31, "setup": { "name": "setup", - "duration": 0.00043299997923895717, + "duration": 0.000920300000871066, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0423071999975946, + "duration": 2.0756586999996216, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.918662E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.049615E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0018023999873548746, + "duration": 0.0003597999984776834, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.020245400053682, + "duration": 2.05859319999945, "run_index": 32, "setup": { "name": "setup", - "duration": 0.0010542000236455351, + "duration": 0.0004714999995485414, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.017807099997299, + "duration": 2.0573079000005237, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.774200E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.978225E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003299000090919435, + "duration": 0.0003422999998292653, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.037068300007377, + "duration": 2.0284250999993674, "run_index": 33, "setup": { "name": "setup", - "duration": 0.0009061000018846244, + "duration": 0.0005244000003585825, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0336478000099305, + "duration": 2.0270452000004298, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.650813E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.213542E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0016082999936770648, + "duration": 0.0003310999982204521, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:3-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.019261200039182, + "duration": 2.0311822000003303, "run_index": 34, "setup": { "name": "setup", - "duration": 0.0005326000100467354, + "duration": 0.0006345000001601875, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0177433000062592, + "duration": 2.029561299999841, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.172471E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.674493E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00045270001282915473, + "duration": 0.0003519000001688255, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):8000]", - "duration": 2.0421332000405528, + "duration": 2.0210093000005145, "run_index": 35, "setup": { "name": "setup", - "duration": 0.000499200017657131, + "duration": 0.0004576999999699183, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.040746599988779, + "duration": 2.019553800000722, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.458621E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.485643E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003882000164594501, + "duration": 0.0005400999998528278, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):9000]", - "duration": 2.019442299962975, + "duration": 2.0300639999986743, "run_index": 36, "setup": { "name": "setup", - "duration": 0.00044389997492544353, + "duration": 0.0004386000000522472, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.018115700018825, + "duration": 2.0284658999989915, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.767281E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.641379E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00043879999429918826, + "duration": 0.0007208999995782506, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):10000]", - "duration": 2.035095199942589, + "duration": 2.0657274999994115, "run_index": 37, "setup": { "name": "setup", - "duration": 0.0004663999716285616, + "duration": 0.0015193999988696305, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.033828600018751, + "duration": 2.0623474000003625, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.916175E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.851912E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00033379998058080673, + "duration": 0.00034130000130971894, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):11000]", - "duration": 2.075030899984995, + "duration": 2.0225537000005716, "run_index": 38, "setup": { "name": "setup", - "duration": 0.000760499999159947, + "duration": 0.0004828000000998145, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0731524999719113, + "duration": 2.0212522000001627, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.929842E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.935519E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.000357400014763698, + "duration": 0.0003359000002092216, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:3-combined_loopback-Frequency (MHz):12000]", - "duration": 2.0881914000201505, + "duration": 2.0357880999981717, "run_index": 39, "setup": { "name": "setup", - "duration": 0.0004749000072479248, + "duration": 0.0006482999997388106, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0868934000027366, + "duration": 2.034128100000089, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.165910E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.147760E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003482000029180199, + "duration": 0.0003633999986050185, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):8000]", - "duration": 13.53111730000819, + "duration": 9.584094800000457, "run_index": 40, "setup": { "name": "setup", - "duration": 0.00047110000741668046, + "duration": 0.0007040000000415603, "outcome": "passed" }, "call": { "name": "call", - "duration": 13.528836000012234, + "duration": 9.581972899999528, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 4 input and connect spectrum analyzer into channel 4 output. Press Enter when complete \n\nPower level (dBm): -2.346485E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 4 input and connect spectrum analyzer into channel 4 output. Press Enter when complete \n\nPower level (dBm): -2.018319E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0013390999811235815, + "duration": 0.0007139000008464791, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.020732200006023, + "duration": 2.041410099996938, "run_index": 41, "setup": { "name": "setup", - "duration": 0.0010344000183977187, + "duration": 0.00047309999899880495, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.018337399989832, + "duration": 2.040143700000044, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.890784E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.224654E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00032599997939541936, + "duration": 0.00032019999889598694, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.017580999963684, + "duration": 2.0251108999964345, "run_index": 42, "setup": { "name": "setup", - "duration": 0.00043799998820759356, + "duration": 0.00048379999861936085, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.016369599994505, + "duration": 2.0238133999991987, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.732337E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.173595E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003353999927639961, + "duration": 0.0003298999999969965, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.0614640999992844, + "duration": 2.0263544999979786, "run_index": 43, "setup": { "name": "setup", - "duration": 0.00046629999997094274, + "duration": 0.0004745999995066086, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0601755999960005, + "duration": 2.0248402999986865, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.733950E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.373484E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003559000033419579, + "duration": 0.0005650000002788147, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:4-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.02892859998974, + "duration": 2.0275535000000673, "run_index": 44, "setup": { "name": "setup", - "duration": 0.0005044999998062849, + "duration": 0.0005062000000179978, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.027587399992626, + "duration": 2.0261959999988903, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.250496E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.813734E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003321999975014478, + "duration": 0.0003451000011409633, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):8000]", - "duration": 2.0174719000060577, + "duration": 2.0230056999989756, "run_index": 45, "setup": { "name": "setup", - "duration": 0.0004579999949783087, + "duration": 0.00048319999950763304, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.016195800009882, + "duration": 2.0216925000004267, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.484545E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.431443E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003601000062189996, + "duration": 0.0003467999995336868, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):9000]", - "duration": 2.022106500022346, + "duration": 2.022476199999801, "run_index": 46, "setup": { "name": "setup", - "duration": 0.0005400000081863254, + "duration": 0.0005220999992161524, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0203266000025906, + "duration": 2.020986500001527, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.764614E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.712474E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0006999000033829361, + "duration": 0.00044549999984155875, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):10000]", - "duration": 2.0257447000185493, + "duration": 2.032922399999734, "run_index": 47, "setup": { "name": "setup", - "duration": 0.0016394999984186143, + "duration": 0.0005087999998067971, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0216348000103608, + "duration": 2.0315578000008827, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.916323E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.846744E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0008309000113513321, + "duration": 0.00034699999923759606, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):11000]", - "duration": 2.018900700059021, + "duration": 2.0794759999989765, "run_index": 48, "setup": { "name": "setup", - "duration": 0.0012038000277243555, + "duration": 0.00046689999908267055, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0161313000135124, + "duration": 2.078204999999798, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.781840E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.915854E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003617999900598079, + "duration": 0.000337200001013116, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:4-combined_loopback-Frequency (MHz):12000]", - "duration": 2.019706800027052, + "duration": 2.0738197000009677, "run_index": 49, "setup": { "name": "setup", - "duration": 0.0004734999965876341, + "duration": 0.0006360000006679911, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.01767720002681, + "duration": 2.0718725999995513, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.223407E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.158439E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0010826000070665032, + "duration": 0.0006751000000804197, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):8000]", - "duration": 13.061177900031907, + "duration": 8.556738000001133, "run_index": 50, "setup": { "name": "setup", - "duration": 0.00045190000673756003, + "duration": 0.0005398000012064585, "outcome": "passed" }, "call": { "name": "call", - "duration": 13.059838400018634, + "duration": 8.555321199999526, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 5 input and connect spectrum analyzer into channel 5 output. Press Enter when complete \n\nPower level (dBm): -2.313940E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 5 input and connect spectrum analyzer into channel 5 output. Press Enter when complete \n\nPower level (dBm): -1.923913E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00043569999979808927, + "duration": 0.0003371999991941266, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.0312887000618502, + "duration": 2.020006300002933, "run_index": 51, "setup": { "name": "setup", - "duration": 0.0005725000228267163, + "duration": 0.00047840000115684234, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0298140000086278, + "duration": 2.0186850000009144, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.900420E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.103073E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00032970000756904483, + "duration": 0.0003644999997050036, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.0324695000599604, + "duration": 2.031331800000771, "run_index": 52, "setup": { "name": "setup", - "duration": 0.0005148000200279057, + "duration": 0.0017182000010507181, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0310952000145335, + "duration": 2.0275510999999824, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.842905E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.058268E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00034470000537112355, + "duration": 0.0003442999986873474, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.0305780999769922, + "duration": 2.0571131000015157, "run_index": 53, "setup": { "name": "setup", - "duration": 0.0004962999955751002, + "duration": 0.0006011000004946254, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.029182199999923, + "duration": 2.0555674000006547, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.664529E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.297559E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00040329998591914773, + "duration": 0.0003434999998717103, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:5-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.0676422999822535, + "duration": 2.071070600002713, "run_index": 54, "setup": { "name": "setup", - "duration": 0.00044579998939298093, + "duration": 0.0005439000015030615, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0664244999934454, + "duration": 2.0696446000001743, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.128291E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.711453E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003262000100221485, + "duration": 0.00033819999953266233, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):8000]", - "duration": 2.032872199983103, + "duration": 2.046693899999809, "run_index": 55, "setup": { "name": "setup", - "duration": 0.0008509999897796661, + "duration": 0.0005667999994329875, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.030826900008833, + "duration": 2.0452212000000145, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.491219E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.455524E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00034329999471083283, + "duration": 0.00033910000092873815, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):9000]", - "duration": 2.0202114000567235, + "duration": 2.0178319000006013, "run_index": 56, "setup": { "name": "setup", - "duration": 0.0008389000140596181, + "duration": 0.0004924000004393747, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0181872000102885, + "duration": 2.016484199999468, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.765752E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.671149E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003464000183157623, + "duration": 0.00036290000025474, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):10000]", - "duration": 2.02805459999945, + "duration": 2.0404074999987643, "run_index": 57, "setup": { "name": "setup", - "duration": 0.0004354999982751906, + "duration": 0.0004565999988699332, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.026856799988309, + "duration": 2.0391362000009394, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.932526E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.830944E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003268000145908445, + "duration": 0.0003581000000849599, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):11000]", - "duration": 2.0199505999626126, + "duration": 2.0220827000011923, "run_index": 58, "setup": { "name": "setup", - "duration": 0.0004831999831367284, + "duration": 0.0004910000006930204, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0186603000038303, + "duration": 2.02042849999998, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.932955E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.879952E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00032389999250881374, + "duration": 0.0006721999998262618, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:5-combined_loopback-Frequency (MHz):12000]", - "duration": 2.046733099996345, + "duration": 2.0277313999977196, "run_index": 59, "setup": { "name": "setup", - "duration": 0.0007642999989911914, + "duration": 0.0004709999993792735, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.044870699988678, + "duration": 2.0264169000001857, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.170701E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.115681E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003338000096846372, + "duration": 0.0003724999987753108, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):8000]", - "duration": 11.525539100024616, + "duration": 11.0697667000004, "run_index": 60, "setup": { "name": "setup", - "duration": 0.0005203000036999583, + "duration": 0.0019231000005675014, "outcome": "passed" }, "call": { "name": "call", - "duration": 11.52416590001667, + "duration": 11.065565699998842, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 6 input and connect spectrum analyzer into channel 6 output. Press Enter when complete \n\nPower level (dBm): -2.312365E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 6 input and connect spectrum analyzer into channel 6 output. Press Enter when complete \n\nPower level (dBm): -1.941558E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00033260000054724514, + "duration": 0.00035480000042298343, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.0189286000386346, + "duration": 2.0279613000002428, "run_index": 61, "setup": { "name": "setup", - "duration": 0.0006102000188548118, + "duration": 0.0009358999996038619, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.016963100002613, + "duration": 2.025686900000437, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.846671E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.157139E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.000745099998312071, + "duration": 0.0004026000005978858, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.0301497000618838, + "duration": 2.017959900000278, "run_index": 62, "setup": { "name": "setup", - "duration": 0.000499500019941479, + "duration": 0.0004840000001422595, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.028803200024413, + "duration": 2.0166528999998263, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.834120E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.032162E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00034749999758787453, + "duration": 0.0003390000001672888, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.021387299988419, + "duration": 2.025068300001294, "run_index": 63, "setup": { "name": "setup", - "duration": 0.0004721999866887927, + "duration": 0.0004797000001417473, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.020109200006118, + "duration": 2.0234096000003774, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.760614E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.354725E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00033370000892318785, + "duration": 0.0006993000006332295, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:6-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.0301386999490205, + "duration": 2.0176986000005854, "run_index": 64, "setup": { "name": "setup", - "duration": 0.0008120999846141785, + "duration": 0.0004912000003969297, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0280836999882013, + "duration": 2.016135399999257, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.226539E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.856872E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0004307999915909022, + "duration": 0.0005808000005345093, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):8000]", - "duration": 2.0273736000526696, + "duration": 2.0264212999991287, "run_index": 65, "setup": { "name": "setup", - "duration": 0.0005021000106353313, + "duration": 0.0007949999999254942, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.025204700010363, + "duration": 2.024460499998895, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.496972E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.446358E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0011647000210359693, + "duration": 0.0003708000003825873, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):9000]", - "duration": 2.019815400009975, + "duration": 2.0201574999991863, "run_index": 66, "setup": { "name": "setup", - "duration": 0.0007767000060994178, + "duration": 0.0006118000001151813, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0179059999936726, + "duration": 2.0185954999997193, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.739670E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.652696E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00035600000410340726, + "duration": 0.0003383999992365716, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):10000]", - "duration": 2.0176601000712253, + "duration": 2.030628300000899, "run_index": 67, "setup": { "name": "setup", - "duration": 0.000893000018550083, + "duration": 0.0007820999999239575, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0155231000098865, + "duration": 2.028722500001095, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.962469E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.845677E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003510000242386013, + "duration": 0.00034159999995608814, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):11000]", - "duration": 2.0189304000523407, + "duration": 2.037244000002829, "run_index": 68, "setup": { "name": "setup", - "duration": 0.0004382000188343227, + "duration": 0.0005037000009906478, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.017382500023814, + "duration": 2.035897499999919, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.898659E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.899574E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0006714999908581376, + "duration": 0.00033910000092873815, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:6-combined_loopback-Frequency (MHz):12000]", - "duration": 2.0299372999579646, + "duration": 2.1450617000027705, "run_index": 69, "setup": { "name": "setup", - "duration": 0.00042299999040551484, + "duration": 0.0004605000012816163, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0287076999957208, + "duration": 2.143790000000081, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.226951E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.144669E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003835999814327806, + "duration": 0.0003507000001263805, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):8000]", - "duration": 12.101038299966604, + "duration": 9.545419300000503, "run_index": 70, "setup": { "name": "setup", - "duration": 0.00043200000072829425, + "duration": 0.0007974000000103842, "outcome": "passed" }, "call": { "name": "call", - "duration": 12.099846499972045, + "duration": 9.543473300000187, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 7 input and connect spectrum analyzer into channel 7 output. Press Enter when complete \n\nPower level (dBm): -2.519439E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 7 input and connect spectrum analyzer into channel 7 output. Press Enter when complete \n\nPower level (dBm): -1.945059E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003277999931015074, + "duration": 0.00035120000029564835, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.0241266000666656, + "duration": 2.023984199997358, "run_index": 71, "setup": { "name": "setup", - "duration": 0.001115400023991242, + "duration": 0.0005377999987103976, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.021471999993082, + "duration": 2.0225657999999385, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.127526E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.214692E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00042380002560094, + "duration": 0.00034279999999853317, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.0233222000242677, + "duration": 2.118193499998597, "run_index": 72, "setup": { "name": "setup", - "duration": 0.00047900000936351717, + "duration": 0.00043559999903663993, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0220059000130277, + "duration": 2.11698559999968, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.807360E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.130521E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00035829999251291156, + "duration": 0.0003367000008438481, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.03516229998786, + "duration": 2.03069069999583, "run_index": 73, "setup": { "name": "setup", - "duration": 0.0004592000041157007, + "duration": 0.000756899999032612, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0335370999819133, + "duration": 2.0288601999982347, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.814937E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.438068E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0007067999977152795, + "duration": 0.0003166999995301012, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:7-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.030543000000762, + "duration": 2.024442399999316, "run_index": 74, "setup": { "name": "setup", - "duration": 0.0004282000008970499, + "duration": 0.0004345999986981042, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0293584000028204, + "duration": 2.021971800000756, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.256808E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.810322E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003281999961473048, + "duration": 0.0016014000011637108, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):8000]", - "duration": 2.059477400034666, + "duration": 2.0573285999980726, "run_index": 75, "setup": { "name": "setup", - "duration": 0.00042970001231878996, + "duration": 0.0004793999996763887, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.058273900009226, + "duration": 2.0560093999993114, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.495648E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.449106E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00034410000080242753, + "duration": 0.0003603999994084006, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):9000]", - "duration": 2.0222573000064585, + "duration": 2.0524347000009584, "run_index": 76, "setup": { "name": "setup", - "duration": 0.00045479999971576035, + "duration": 0.0013347000003705034, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0210184000025038, + "duration": 2.049421199999415, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.767289E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.685756E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003293000045232475, + "duration": 0.00034410000080242753, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):10000]", - "duration": 2.0186480000265874, + "duration": 2.0219268999971973, "run_index": 77, "setup": { "name": "setup", - "duration": 0.00045330001739785075, + "duration": 0.000818799999251496, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0173960000101943, + "duration": 2.0199593999986973, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.966882E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.863996E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00034539998159743845, + "duration": 0.0003298999999969965, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):11000]", - "duration": 2.0227269000315573, + "duration": 2.0359057000005123, "run_index": 78, "setup": { "name": "setup", - "duration": 0.0005563000158872455, + "duration": 0.00044770000022253953, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.021174900000915, + "duration": 2.034661199999391, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.901686E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.892315E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0004393999988678843, + "duration": 0.0003491000006761169, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:7-combined_loopback-Frequency (MHz):12000]", - "duration": 2.0226025000447407, + "duration": 2.076303599998937, "run_index": 79, "setup": { "name": "setup", - "duration": 0.0004607000155374408, + "duration": 0.0004888999992544996, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.021301400003722, + "duration": 2.074982199999795, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.221202E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.198967E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003797000099439174, + "duration": 0.00034360000063315965, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):8000]", - "duration": 12.749495399999432, + "duration": 10.482392300000356, "run_index": 80, "setup": { "name": "setup", - "duration": 0.000547999981790781, + "duration": 0.0004523999996308703, "outcome": "passed" }, "call": { "name": "call", - "duration": 12.748064300016267, + "duration": 10.481149300001562, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 8 input and connect spectrum analyzer into channel 8 output. Press Enter when complete \n\nPower level (dBm): -2.395231E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 8 input and connect spectrum analyzer into channel 8 output. Press Enter when complete \n\nPower level (dBm): -1.984880E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00033510001958347857, + "duration": 0.00033819999953266233, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.0207597999833524, + "duration": 2.032035899999755, "run_index": 81, "setup": { "name": "setup", - "duration": 0.0017728999955579638, + "duration": 0.0005959000009170268, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0165621000051033, + "duration": 2.030491899999106, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.873094E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.277297E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0006518999871332198, + "duration": 0.0003521999988151947, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.022006799990777, + "duration": 2.0358886000012717, "run_index": 82, "setup": { "name": "setup", - "duration": 0.001418200001353398, + "duration": 0.000487299999804236, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.016624399984721, + "duration": 2.0345553000006475, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.800642E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.215463E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.002546000003349036, + "duration": 0.0003587000010156771, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.019042400032049, + "duration": 2.030223899999328, "run_index": 83, "setup": { "name": "setup", - "duration": 0.0010077000188175589, + "duration": 0.00046610000026703347, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.016675499995472, + "duration": 2.028868399998828, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.804201E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.355400E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00035149999894201756, + "duration": 0.00042329999996582046, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:8-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.028342999983579, + "duration": 2.084106199998132, "run_index": 84, "setup": { "name": "setup", - "duration": 0.0005621000018436462, + "duration": 0.00044809999963035807, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0268533999915235, + "duration": 2.082826899999418, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.315011E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.717851E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00036539998836815357, + "duration": 0.0003830999994534068, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):8000]", - "duration": 2.0191080000658985, + "duration": 2.0373215999970853, "run_index": 85, "setup": { "name": "setup", - "duration": 0.0006833000225014985, + "duration": 0.0005674999993061647, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0173593000217807, + "duration": 2.035856899999999, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.275085E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.449504E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.000382099999114871, + "duration": 0.0003296999984740978, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):9000]", - "duration": 2.0215327000187244, + "duration": 2.0266880999988643, "run_index": 86, "setup": { "name": "setup", - "duration": 0.00044380000326782465, + "duration": 0.0005559999990509823, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0202901000157, + "duration": 2.0252467000009347, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.543575E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.721465E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003549999964889139, + "duration": 0.0003293999998277286, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):10000]", - "duration": 2.022336899972288, + "duration": 2.03090069999962, "run_index": 87, "setup": { "name": "setup", - "duration": 0.0007932999869808555, + "duration": 0.0004447999999683816, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.020426300005056, + "duration": 2.0295927000006486, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.286495E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.870928E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003239999932702631, + "duration": 0.000418399999034591, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):11000]", - "duration": 2.021168800070882, + "duration": 2.032765300000392, "run_index": 88, "setup": { "name": "setup", - "duration": 0.0004726000188384205, + "duration": 0.00042940000093949493, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0198824000253808, + "duration": 2.031537099999696, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.367478E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.884847E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003412000078242272, + "duration": 0.0003693999988172436, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:8-combined_loopback-Frequency (MHz):12000]", - "duration": 2.0203374000266194, + "duration": 2.0221988999983296, "run_index": 89, "setup": { "name": "setup", - "duration": 0.0007578000077046454, + "duration": 0.00047839999933785293, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.018129600008251, + "duration": 2.0209083999998256, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.702797E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.161604E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0006922000029589981, + "duration": 0.00033369999982824083, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):8000]", - "duration": 10.114015399973141, + "duration": 10.23174580000159, "run_index": 90, "setup": { "name": "setup", - "duration": 0.0004603999841492623, + "duration": 0.00044830000115325674, "outcome": "passed" }, "call": { "name": "call", - "duration": 10.112756799993804, + "duration": 10.230305699999008, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 9 input and connect spectrum analyzer into channel 9 output. Press Enter when complete \n\nPower level (dBm): -2.483236E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 9 input and connect spectrum analyzer into channel 9 output. Press Enter when complete \n\nPower level (dBm): -1.976288E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003378000110387802, + "duration": 0.0005435000002762536, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.0192229000094812, + "duration": 2.06749260000106, "run_index": 91, "setup": { "name": "setup", - "duration": 0.0004768000217154622, + "duration": 0.0005968000004941132, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.017548399977386, + "duration": 2.065940700000283, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.312871E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.247581E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0007208999886643142, + "duration": 0.00035829999978886917, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.0406361000204924, + "duration": 2.105132099999537, "run_index": 92, "setup": { "name": "setup", - "duration": 0.00048370001604780555, + "duration": 0.0005006999999750406, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0392308999726083, + "duration": 2.1037766999997984, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.545246E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.111230E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00043780001578852534, + "duration": 0.00035399999978835694, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.023260999994818, + "duration": 2.03346170000259, "run_index": 93, "setup": { "name": "setup", - "duration": 0.00046629999997094274, + "duration": 0.0007218000009743264, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.021954800002277, + "duration": 2.0316868999998405, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.634131E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.363839E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003735999925993383, + "duration": 0.00033120000080089085, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:9-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.0215744000161067, + "duration": 2.033457300000009, "run_index": 94, "setup": { "name": "setup", - "duration": 0.0004791000101249665, + "duration": 0.0005144000006112037, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0197916999750305, + "duration": 2.0320724999983213, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.135194E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.781742E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0008245000208262354, + "duration": 0.00035600000046542846, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):8000]", - "duration": 2.0326407000247855, + "duration": 2.0266546000002563, "run_index": 95, "setup": { "name": "setup", - "duration": 0.001358500012429431, + "duration": 0.0011493000001792097, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.029578199988464, + "duration": 2.0239923000008275, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.312883E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.451257E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00034550001146271825, + "duration": 0.0003636999990703771, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):9000]", - "duration": 2.0183104000170715, + "duration": 2.0261093999997684, "run_index": 96, "setup": { "name": "setup", - "duration": 0.0004807999939657748, + "duration": 0.0007982999995874707, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0170018000062555, + "duration": 2.0241805000005115, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.741263E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.689417E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003470000228844583, + "duration": 0.00033230000008188654, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):10000]", - "duration": 2.0276937000162434, + "duration": 2.037820899999133, "run_index": 97, "setup": { "name": "setup", - "duration": 0.00045200000749900937, + "duration": 0.0006632999993598787, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.026364299992565, + "duration": 2.036102399999436, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.228085E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.851461E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0004254000086802989, + "duration": 0.0003919000009773299, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):11000]", - "duration": 2.0184487999940757, + "duration": 2.0414782999996532, "run_index": 98, "setup": { "name": "setup", - "duration": 0.0006049000076018274, + "duration": 0.00043139999979757704, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0169166999985464, + "duration": 2.04027700000006, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.346947E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.903589E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00032229998032562435, + "duration": 0.00033849999999802094, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:9-combined_loopback-Frequency (MHz):12000]", - "duration": 2.0246145999699365, + "duration": 2.0198719999989407, "run_index": 99, "setup": { "name": "setup", - "duration": 0.001133099984144792, + "duration": 0.0004642999992938712, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0219966000004206, + "duration": 2.0186068000002706, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.679384E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.138336E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00035180000122636557, + "duration": 0.00033660000008239876, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):8000]", - "duration": 12.852610399975674, + "duration": 16.185600499995417, "run_index": 100, "setup": { "name": "setup", - "duration": 0.0004692999937105924, + "duration": 0.0005773999982920941, "outcome": "passed" }, "call": { "name": "call", - "duration": 12.851333800004795, + "duration": 16.184084199998324, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 10 input and connect spectrum analyzer into channel 10 output. Press Enter when complete \n\nPower level (dBm): -2.164186E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 10 input and connect spectrum analyzer into channel 10 output. Press Enter when complete \n\nPower level (dBm): -2.022574E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00033799998345784843, + "duration": 0.0003615000005083857, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.0174065999744926, + "duration": 2.0246377999992546, "run_index": 101, "setup": { "name": "setup", - "duration": 0.0005109999910928309, + "duration": 0.0004439000003912952, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0160001999756787, + "duration": 2.023304600001211, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.510386E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.278409E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003844000166282058, + "duration": 0.00044539999726112, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.0193726000143215, + "duration": 2.028040499993949, "run_index": 102, "setup": { "name": "setup", - "duration": 0.001363799994578585, + "duration": 0.0014998999977251515, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.01630820002174, + "duration": 2.0246881999992183, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.549183E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.115813E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00033680000342428684, + "duration": 0.0003524999992805533, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.045286499982467, + "duration": 2.02651970000079, "run_index": 103, "setup": { "name": "setup", - "duration": 0.0006102999905124307, + "duration": 0.0005258000019239262, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0436771000095177, + "duration": 2.0251265999977477, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.743786E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.334831E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003887999919243157, + "duration": 0.0003414999991946388, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:10-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.054466700035846, + "duration": 2.0292815000066184, "run_index": 104, "setup": { "name": "setup", - "duration": 0.00047080000513233244, + "duration": 0.0004715000031865202, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.052011100022355, + "duration": 2.0279570999991847, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.350555E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.884731E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0015140000032261014, + "duration": 0.0003814000010606833, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):8000]", - "duration": 2.0853470000147354, + "duration": 2.0334686000060174, "run_index": 105, "setup": { "name": "setup", - "duration": 0.00047450000420212746, + "duration": 0.0004904000015812926, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0840624000120442, + "duration": 2.031944000002113, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.257273E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.458133E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003355999942868948, + "duration": 0.0005438000007416122, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):9000]", - "duration": 2.017689699976472, + "duration": 2.020509599995421, "run_index": 106, "setup": { "name": "setup", - "duration": 0.0009101000032387674, + "duration": 0.0006562999988091178, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0154408999951556, + "duration": 2.0188271000006353, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.561184E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.677707E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0004285999748390168, + "duration": 0.0003698999971675221, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):10000]", - "duration": 2.0187895000271965, + "duration": 2.0317063000074995, "run_index": 107, "setup": { "name": "setup", - "duration": 0.00042490000487305224, + "duration": 0.0007619000025442801, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0175726000161376, + "duration": 2.0295580999991216, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.253985E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.870263E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003671000013127923, + "duration": 0.0006244000032893382, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):11000]", - "duration": 2.0176731999672484, + "duration": 2.0527346999988367, "run_index": 108, "setup": { "name": "setup", - "duration": 0.0004724999889731407, + "duration": 0.0006905000009282958, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0163676999800373, + "duration": 2.0509888999986288, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.323700E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.920901E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00036050000926479697, + "duration": 0.0003647999983513728, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:10-combined_loopback-Frequency (MHz):12000]", - "duration": 2.027019900007872, + "duration": 2.0445010000003094, "run_index": 109, "setup": { "name": "setup", - "duration": 0.0004675000091083348, + "duration": 0.0004393999988678843, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0256321000051685, + "duration": 2.0420749000004434, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.767017E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.171465E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0004527999844867736, + "duration": 0.0015473000021302141, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):8000]", - "duration": 14.864491100015584, + "duration": 9.4208411000036, "run_index": 110, "setup": { "name": "setup", - "duration": 0.00043670000741258264, + "duration": 0.000496600001497427, "outcome": "passed" }, "call": { "name": "call", - "duration": 14.863261300022714, + "duration": 9.419509899998957, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 11 input and connect spectrum analyzer into channel 11 output. Press Enter when complete \n\nPower level (dBm): -2.356942E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 11 input and connect spectrum analyzer into channel 11 output. Press Enter when complete \n\nPower level (dBm): -1.972390E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00035639997804537416, + "duration": 0.00033800000164774247, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.0225723999610636, + "duration": 2.019560899992939, "run_index": 111, "setup": { "name": "setup", - "duration": 0.0007161999819800258, + "duration": 0.0004656999990402255, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0208146999939345, + "duration": 2.0182809999969322, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.598222E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.177869E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00032530000316910446, + "duration": 0.0003484999979264103, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.029283999989275, + "duration": 2.026848700006667, "run_index": 112, "setup": { "name": "setup", - "duration": 0.0007205999863799661, + "duration": 0.0005301000019244384, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0265002000087406, + "duration": 2.0254012000004877, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.478525E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.077784E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0013426000077743083, + "duration": 0.0003873000023304485, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.030625399958808, + "duration": 2.0307040000006964, "run_index": 113, "setup": { "name": "setup", - "duration": 0.0006438999844249338, + "duration": 0.0004721000004792586, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0289790999959223, + "duration": 2.029406600002403, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.630241E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.340207E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00035849999403581023, + "duration": 0.00035319999733474106, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:11-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.016955000028247, + "duration": 2.0267886000001454, "run_index": 114, "setup": { "name": "setup", - "duration": 0.0004975000047124922, + "duration": 0.00046640000073239207, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.015620200021658, + "duration": 2.0254979000019375, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.091098E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.959832E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003397999971639365, + "duration": 0.0003578999967430718, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):8000]", - "duration": 2.0211673000012524, + "duration": 2.0258250999941083, "run_index": 115, "setup": { "name": "setup", - "duration": 0.00045930000487715006, + "duration": 0.000521999998454703, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.01901769998949, + "duration": 2.0244277999991027, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.202808E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.439508E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0012310000020079315, + "duration": 0.0003532999980961904, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):9000]", - "duration": 2.041964700038079, + "duration": 2.0249253000001772, "run_index": 116, "setup": { "name": "setup", - "duration": 0.0004526000120677054, + "duration": 0.0006552999984705821, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0407245000242256, + "duration": 2.0232531000001472, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.525541E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.703568E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003349999897181988, + "duration": 0.00036160000308882445, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):10000]", - "duration": 2.0193961999902967, + "duration": 2.03758359999847, "run_index": 117, "setup": { "name": "setup", - "duration": 0.001116400002501905, + "duration": 0.0015692999986640643, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0164529999892693, + "duration": 2.0336999999999534, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.240377E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.860241E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0007103999960236251, + "duration": 0.0007450000011886004, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):11000]", - "duration": 2.0660433000011835, + "duration": 2.0773391999937303, "run_index": 118, "setup": { "name": "setup", - "duration": 0.0004862000059802085, + "duration": 0.0004993999973521568, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0647374000109266, + "duration": 2.0759958000016923, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.370574E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.919012E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003334999782964587, + "duration": 0.0003445999973337166, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:11-combined_loopback-Frequency (MHz):12000]", - "duration": 2.0342089000332635, + "duration": 2.042669399994338, "run_index": 119, "setup": { "name": "setup", - "duration": 0.0005055000074207783, + "duration": 0.0005755999991379213, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.031724200001918, + "duration": 2.0411755999994057, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.741838E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.163225E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0014737000165041536, + "duration": 0.0003425999966566451, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):8000]", - "duration": 16.620774999988498, + "duration": 9.128201499999705, "run_index": 120, "setup": { "name": "setup", - "duration": 0.0011042999976780266, + "duration": 0.0004788000005646609, "outcome": "passed" }, "call": { "name": "call", - "duration": 16.61813250000705, + "duration": 9.126904299999296, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 12 input and connect spectrum analyzer into channel 12 output. Press Enter when complete \n\nPower level (dBm): -2.278384E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 12 input and connect spectrum analyzer into channel 12 output. Press Enter when complete \n\nPower level (dBm): -2.014783E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0004338999860920012, + "duration": 0.00033959999927901663, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.0346807000169065, + "duration": 2.085030400005053, "run_index": 121, "setup": { "name": "setup", - "duration": 0.0011190999939572066, + "duration": 0.0004882000030193012, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.032007700006943, + "duration": 2.08370179999838, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.644547E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.310140E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0004348000220488757, + "duration": 0.0003522000006341841, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.033010299986927, + "duration": 2.028650399988692, "run_index": 122, "setup": { "name": "setup", - "duration": 0.000450999999884516, + "duration": 0.0004768999970110599, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0316100000054576, + "duration": 2.0273452999972505, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.697013E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.155472E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0004982999817002565, + "duration": 0.0003512999974191189, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.018156500009354, + "duration": 2.036192099996697, "run_index": 123, "setup": { "name": "setup", - "duration": 0.0004400000034365803, + "duration": 0.00046269999802461825, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0169261999835726, + "duration": 2.034616900000401, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.888481E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.410947E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00035030001890845597, + "duration": 0.0006498000002466142, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:12-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.024013499962166, + "duration": 2.026592999998684, "run_index": 124, "setup": { "name": "setup", - "duration": 0.00046729997848160565, + "duration": 0.0007613999987370335, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.022721699991962, + "duration": 2.0246886999993876, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.292100E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.958745E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003572000132407993, + "duration": 0.0003815000018221326, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):8000]", - "duration": 2.0449229999503586, + "duration": 2.0272747999988496, "run_index": 125, "setup": { "name": "setup", - "duration": 0.0006477999850176275, + "duration": 0.0008447000000160187, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.043291899986798, + "duration": 2.0252430999971693, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.531174E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.433162E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00033549999352544546, + "duration": 0.0003423000016482547, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):9000]", - "duration": 2.019570999982534, + "duration": 2.031013299994811, "run_index": 126, "setup": { "name": "setup", - "duration": 0.0005348999984562397, + "duration": 0.0005033999987062998, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.017187699995702, + "duration": 2.0295659999974305, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.764869E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.707146E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0013134999899193645, + "duration": 0.00044049999996786937, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):10000]", - "duration": 2.0205162999918684, + "duration": 2.0189372999957413, "run_index": 127, "setup": { "name": "setup", - "duration": 0.0007941999938338995, + "duration": 0.0004607999981089961, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0185815000149887, + "duration": 2.0175767000000633, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.866454E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.867657E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003463999892119318, + "duration": 0.00043899999946006574, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):11000]", - "duration": 2.021480800001882, + "duration": 2.018265100006829, "run_index": 128, "setup": { "name": "setup", - "duration": 0.0007138999935705215, + "duration": 0.0005058000024291687, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0197287000191864, + "duration": 2.0169209000014234, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.920344E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.910048E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003242999955546111, + "duration": 0.00033260000054724514, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:12-combined_loopback-Frequency (MHz):12000]", - "duration": 2.0318671999848448, + "duration": 2.034958900003403, "run_index": 129, "setup": { "name": "setup", - "duration": 0.0004970000009052455, + "duration": 0.0005052000014984515, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0303469999926165, + "duration": 2.0335965000012948, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.269677E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.178027E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0005261999904178083, + "duration": 0.00035199999911128543, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):8000]", - "duration": 11.790001399989706, + "duration": 11.02199240000482, "run_index": 130, "setup": { "name": "setup", - "duration": 0.0004361000028438866, + "duration": 0.0009933000001183245, "outcome": "passed" }, "call": { "name": "call", - "duration": 11.788772599975346, + "duration": 11.01967070000319, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 13 input and connect spectrum analyzer into channel 13 output. Press Enter when complete \n\nPower level (dBm): -2.253842E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 13 input and connect spectrum analyzer into channel 13 output. Press Enter when complete \n\nPower level (dBm): -2.183205E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003566000086721033, + "duration": 0.00033510000139358453, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.0303872999793384, + "duration": 2.0402009999961592, "run_index": 131, "setup": { "name": "setup", - "duration": 0.00044059997890144587, + "duration": 0.0011641999990388285, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0291755000071134, + "duration": 2.037532899998041, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.614228E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.471416E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00033060001442208886, + "duration": 0.00033970000004046597, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.045456899970304, + "duration": 2.059398900004453, "run_index": 132, "setup": { "name": "setup", - "duration": 0.00041849998524412513, + "duration": 0.0005166000009921845, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.04425559999072, + "duration": 2.0580248000005668, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.647749E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.260308E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003643000090960413, + "duration": 0.0003409000019019004, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.0182088000001386, + "duration": 2.031918399999995, "run_index": 133, "setup": { "name": "setup", - "duration": 0.0004845999937970191, + "duration": 0.0007939999995869584, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0158633000100963, + "duration": 2.0292277000007743, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.771245E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.379913E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0013763000024482608, + "duration": 0.0011027000000467524, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:13-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.080884100025287, + "duration": 2.0210598000085156, "run_index": 134, "setup": { "name": "setup", - "duration": 0.0005085000011604279, + "duration": 0.0005513000032806303, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0794150000147056, + "duration": 2.0196002000011504, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.305930E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.046019E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0004521000082604587, + "duration": 0.0003570000008039642, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):8000]", - "duration": 2.0196575000009034, + "duration": 2.0224880000023404, "run_index": 135, "setup": { "name": "setup", - "duration": 0.000454399996669963, + "duration": 0.0005715000006603077, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0183642000192776, + "duration": 2.0208701999981713, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.525736E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.452149E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00038449998828582466, + "duration": 0.00047480000284849666, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):9000]", - "duration": 2.0255447999516036, + "duration": 2.0206720999958634, "run_index": 136, "setup": { "name": "setup", - "duration": 0.00047369999811053276, + "duration": 0.0005411999991338234, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0241645999776665, + "duration": 2.0185798999991675, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.732505E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.703831E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0004327999777160585, + "duration": 0.0010097999984282069, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):10000]", - "duration": 2.01925710006617, + "duration": 2.0347778999966977, "run_index": 137, "setup": { "name": "setup", - "duration": 0.000663500017253682, + "duration": 0.0004822999981115572, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.017412700020941, + "duration": 2.0334728000016185, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.840231E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.849106E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.000517400010721758, + "duration": 0.00034049999885610305, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):11000]", - "duration": 2.0285874999826774, + "duration": 2.0643788000052155, "run_index": 138, "setup": { "name": "setup", - "duration": 0.0011765999952331185, + "duration": 0.00046270000166259706, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0258695000084117, + "duration": 2.0631063000000722, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.938793E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.904001E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00036479998379945755, + "duration": 0.0003471000018180348, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:13-combined_loopback-Frequency (MHz):12000]", - "duration": 2.018114100006642, + "duration": 2.032577099995251, "run_index": 139, "setup": { "name": "setup", - "duration": 0.0004345000197645277, + "duration": 0.0008101999992504716, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.016602799994871, + "duration": 2.030492999998387, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.238020E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.154198E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0006422999722417444, + "duration": 0.000463699998363154, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):8000]", - "duration": 13.587779200053774, + "duration": 10.780710699997144, "run_index": 140, "setup": { "name": "setup", - "duration": 0.0004534000181593001, + "duration": 0.00047339999946416356, "outcome": "passed" }, "call": { "name": "call", - "duration": 13.586473200004548, + "duration": 10.779406599998765, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 14 input and connect spectrum analyzer into channel 14 output. Press Enter when complete \n\nPower level (dBm): -2.335880E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 14 input and connect spectrum analyzer into channel 14 output. Press Enter when complete \n\nPower level (dBm): -2.141396E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003992000129073858, + "duration": 0.0003572999994503334, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.024637199967401, + "duration": 2.018499799996789, "run_index": 141, "setup": { "name": "setup", - "duration": 0.0004301999870222062, + "duration": 0.00048179999794228934, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.02324999999837, + "duration": 2.017213700000866, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.659169E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.391362E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0005267999949865043, + "duration": 0.00032250000003841706, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.037326099962229, + "duration": 2.033005500004947, "run_index": 142, "setup": { "name": "setup", - "duration": 0.0015414999797940254, + "duration": 0.0004837000014958903, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0339074000075925, + "duration": 2.031386900001962, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.654425E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.244143E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00033569999504834414, + "duration": 0.0006511999999929685, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.0195060999540146, + "duration": 2.0181149000018195, "run_index": 143, "setup": { "name": "setup", - "duration": 0.0004631999763660133, + "duration": 0.0004937000012432691, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0182378999888897, + "duration": 2.016801599998871, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.771632E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.533673E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00034180001239292324, + "duration": 0.00032590000046184286, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:14-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.0258868999953847, + "duration": 2.0176618000004964, "run_index": 144, "setup": { "name": "setup", - "duration": 0.00046239999937824905, + "duration": 0.0005486000009113923, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0246136999921873, + "duration": 2.0162196999990556, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.310846E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.042763E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00034840000444091856, + "duration": 0.0003448999996180646, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):8000]", - "duration": 2.0363043999823276, + "duration": 2.068249399999331, "run_index": 145, "setup": { "name": "setup", - "duration": 0.0007213999924715608, + "duration": 0.0006893999998283107, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0345257000008132, + "duration": 2.065850099999807, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.553709E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.456880E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003358999965712428, + "duration": 0.0010204999998677522, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):9000]", - "duration": 2.0471745999529958, + "duration": 2.0182754999987083, "run_index": 146, "setup": { "name": "setup", - "duration": 0.0004897999751847237, + "duration": 0.00047389999963343143, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.045874100003857, + "duration": 2.016984900001262, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.733204E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.679732E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003208999987691641, + "duration": 0.00034279999817954376, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):10000]", - "duration": 2.017479399975855, + "duration": 2.080555699994875, "run_index": 147, "setup": { "name": "setup", - "duration": 0.0004910999850835651, + "duration": 0.000468999998702202, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0161585999885574, + "duration": 2.0792535999971733, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.862777E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.898911E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003386000171303749, + "duration": 0.00036410000029718503, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):11000]", - "duration": 2.0522181000269484, + "duration": 2.029328100001294, "run_index": 148, "setup": { "name": "setup", - "duration": 0.0005431000026874244, + "duration": 0.0008818999995128252, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0506755000096746, + "duration": 2.027213000001211, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.957783E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.950690E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00045640001189894974, + "duration": 0.0003513000010570977, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:14-combined_loopback-Frequency (MHz):12000]", - "duration": 2.0390670000051614, + "duration": 2.026992100003554, "run_index": 149, "setup": { "name": "setup", - "duration": 0.0005010000022593886, + "duration": 0.00044180000259075314, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0375179999973625, + "duration": 2.0257700999973167, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.287206E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.168207E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0005470000032801181, + "duration": 0.000338400001055561, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):8000]", - "duration": 10.31725860000006, + "duration": 10.090105599996605, "run_index": 150, "setup": { "name": "setup", - "duration": 0.0006882000016048551, + "duration": 0.0005161999979463872, "outcome": "passed" }, "call": { "name": "call", - "duration": 10.314065099984873, + "duration": 10.08874360000118, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 15 input and connect spectrum analyzer into channel 15 output. Press Enter when complete \n\nPower level (dBm): -2.392153E+00\n\n" + "stdout": "\n\nConnect signal generator into channel 15 input and connect spectrum analyzer into channel 15 output. Press Enter when complete \n\nPower level (dBm): -2.231021E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0018171000119764358, + "duration": 0.0003295999995316379, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):9000]", - "duration": 2.017656599986367, + "duration": 2.055302800006757, "run_index": 151, "setup": { "name": "setup", - "duration": 0.0004884999943897128, + "duration": 0.0008186000013665762, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.016325600008713, + "duration": 2.0533208000015293, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.800071E+00\n\n" + "stdout": "\n\nPower level (dBm): -2.430204E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003539999888744205, + "duration": 0.0003448000024945941, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):10000]", - "duration": 2.029506900027627, + "duration": 2.023060700001224, "run_index": 152, "setup": { "name": "setup", - "duration": 0.0005508000031113625, + "duration": 0.0012954000012541655, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0280619999975897, + "duration": 2.020099699999264, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -3.758259E+00\n\n" + "stdout": "\n\nPower level (dBm): -3.259252E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0003433000238146633, + "duration": 0.0003701999994518701, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):11000]", - "duration": 2.0202380000264384, + "duration": 2.0302005000048666, "run_index": 153, "setup": { "name": "setup", - "duration": 0.0004702000005636364, + "duration": 0.00045590000081574544, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.018932200007839, + "duration": 2.0289618000024348, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.838159E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.610565E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00036540001747198403, + "duration": 0.0003269000008003786, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:15-adjacent_loopback-Frequency (MHz):12000]", - "duration": 2.0189125999750104, + "duration": 2.046934299993154, "run_index": 154, "setup": { "name": "setup", - "duration": 0.0006469999789260328, + "duration": 0.00044919999709236436, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.017269400006626, + "duration": 2.045683199998166, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.427161E+00\n\n" + "stdout": "\n\nPower level (dBm): -4.114966E+00\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00034920001053251326, + "duration": 0.000352700000803452, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):8000]", - "duration": 2.0347343999892473, + "duration": 2.028437599998142, "run_index": 155, "setup": { "name": "setup", - "duration": 0.0008634999976493418, + "duration": 0.00045559999853139743, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.032493100006832, + "duration": 2.0271685000006983, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.544890E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.439728E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0005142999871168286, + "duration": 0.00035790000038105063, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):9000]", - "duration": 2.03288700003759, + "duration": 2.0305951999980607, "run_index": 156, "setup": { "name": "setup", - "duration": 0.0014464000123552978, + "duration": 0.00045229999886942096, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0287894000066444, + "duration": 2.0293617000024824, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.794281E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.731952E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0012048000062350184, + "duration": 0.0003288999978394713, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):10000]", - "duration": 2.0292367999791168, + "duration": 2.027909099997487, "run_index": 157, "setup": { "name": "setup", - "duration": 0.0007713999948464334, + "duration": 0.0004670999987865798, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0273461999895517, + "duration": 2.026418500001455, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.924738E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.901336E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00034779999987222254, + "duration": 0.0005563999984588008, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):11000]", - "duration": 2.018250899971463, + "duration": 2.0347906000024523, "run_index": 158, "setup": { "name": "setup", - "duration": 0.0004582999972626567, + "duration": 0.00047249999988707714, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0169812999956775, + "duration": 2.0319688000017777, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -4.977777E+01\n\n" + "stdout": "\n\nPower level (dBm): -4.952678E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00035299998125992715, + "duration": 0.0018768000009004027, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_loopback[channel:15-combined_loopback-Frequency (MHz):12000]", - "duration": 2.019144000048982, + "duration": 2.0347915000020294, "run_index": 159, "setup": { "name": "setup", - "duration": 0.0007316000119317323, + "duration": 0.0005115000021760352, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0173163000144996, + "duration": 2.033414099998481, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -5.307273E+01\n\n" + "stdout": "\n\nPower level (dBm): -5.163340E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00036450001061894, + "duration": 0.0003543999991961755, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):8000]", - "duration": 28.962121399934404, + "duration": 28.78311229999599, "run_index": 160, "setup": { "name": "setup", - "duration": 0.0004550999728962779, + "duration": 0.0003935999993700534, "outcome": "passed" }, "call": { "name": "call", - "duration": 28.960806099988986, + "duration": 28.78203829999984, "outcome": "passed", - "stdout": "\n\nConnect signal generator into channel 0 input. Connect spectrum analyzer to the combined Tx out SMA port on top of the board. Press enter when complete\n\nPower level (dBm): -1.834334E+01\n\n" + "stdout": "\n\nConnect signal generator into channel 0 input. Connect spectrum analyzer to the combined Tx out SMA port on top of the board. Press enter when complete\n\nPower level (dBm): -3.174071E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0004050999996252358, + "duration": 0.00028679999741143547, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):9000]", - "duration": 2.0178675999923144, + "duration": 2.031966000002285, "run_index": 161, "setup": { "name": "setup", - "duration": 0.0003276999923400581, + "duration": 0.0004374000018287916, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0169473999994807, + "duration": 2.030790699998761, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -1.987976E+01\n\n" + "stdout": "\n\nPower level (dBm): -3.407167E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0002648000081535429, + "duration": 0.00030049999986658804, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):10000]", - "duration": 2.0708949999825563, + "duration": 2.036195599997882, "run_index": 162, "setup": { "name": "setup", - "duration": 0.0003231999871786684, + "duration": 0.0004895999991276767, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0699912999989465, + "duration": 2.0349575000000186, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.136182E+01\n\n" + "stdout": "\n\nPower level (dBm): -3.492603E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0002573000092525035, + "duration": 0.00025889999960782006, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):11000]", - "duration": 2.0216005999827757, + "duration": 2.0184485999998287, "run_index": 163, "setup": { "name": "setup", - "duration": 0.00038759998278692365, + "duration": 0.0003440000000409782, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0205316000210587, + "duration": 2.0175023000010697, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.212036E+01\n\n" + "stdout": "\n\nPower level (dBm): -3.632546E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00029379999614320695, + "duration": 0.00025829999867710285, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_tx_combined_out[Frequency (MHz):12000]", - "duration": 2.0305408999847714, + "duration": 2.089373800004978, "run_index": 164, "setup": { "name": "setup", - "duration": 0.00129489999380894, + "duration": 0.0003432000012253411, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0276821000152268, + "duration": 2.087579700000788, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.349445E+01\n\n" + "stdout": "\n\nPower level (dBm): -3.544490E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0002689999819267541, + "duration": 0.0011077000017394312, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):8000]", - "duration": 48.926655000046594, + "duration": 58.27733509999962, "run_index": 165, "setup": { "name": "setup", - "duration": 0.00040370001806877553, + "duration": 0.00034840000080293976, "outcome": "passed" }, "call": { "name": "call", - "duration": 48.92554590001237, + "duration": 58.27634559999933, "outcome": "passed", - "stdout": "\n\nConnect signal generator into Rx SMA input on top of the board. Connect spectrum analyzer into channel 0 output. Press enter when complete\n\nPower level (dBm): -1.901320E+01\n\n" + "stdout": "\n\nConnect signal generator into Rx SMA input on top of the board. Connect spectrum analyzer into channel 0 output. Press enter when complete\n\nPower level (dBm): -1.851318E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.00030169999809004366, + "duration": 0.00029269999868120067, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):9000]", - "duration": 2.05117830002564, + "duration": 2.034290100000362, "run_index": 166, "setup": { "name": "setup", - "duration": 0.0003375000087544322, + "duration": 0.000369400000636233, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0502012000069954, + "duration": 2.033233800000744, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -1.962891E+01\n\n" + "stdout": "\n\nPower level (dBm): -1.921726E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.000302100001135841, + "duration": 0.0003174999983457383, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):10000]", - "duration": 2.0179123999841977, + "duration": 2.018717499999184, "run_index": 167, "setup": { "name": "setup", - "duration": 0.0003284999984316528, + "duration": 0.0003198000013071578, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0169791000080295, + "duration": 2.0176758999987214, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.158308E+01\n\n" + "stdout": "\n\nPower level (dBm): -2.056622E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0002762999793048948, + "duration": 0.0004019999978481792, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):11000]", - "duration": 2.0178858999570366, + "duration": 2.0237873999976728, "run_index": 168, "setup": { "name": "setup", - "duration": 0.00034329999471083283, + "duration": 0.0003311000000394415, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0169329999771435, + "duration": 2.022870899996633, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.251577E+01\n\n" + "stdout": "\n\nPower level (dBm): -2.154653E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.0002662999904714525, + "duration": 0.00025430000096093863, "outcome": "passed" }, "outcome": "passed" }, { "name": "test/test_triton_cal.py::test_rx_combined_in[Frequency (MHz):12000]", - "duration": 2.0415249000070617, + "duration": 2.0515951000015775, "run_index": 169, "setup": { "name": "setup", - "duration": 0.0003406000032555312, + "duration": 0.00032890000147745013, "outcome": "passed" }, "call": { "name": "call", - "duration": 2.0229203999915626, + "duration": 2.0335521000015433, "outcome": "passed", - "stdout": "\n\nPower level (dBm): -2.400306E+01\n\n" + "stdout": "\n\nPower level (dBm): -2.317224E+01\n\n" }, "teardown": { "name": "teardown", - "duration": 0.017923300008988008, + "duration": 0.017385199997079326, "outcome": "passed" }, "outcome": "passed" @@ -3749,8 +3749,8 @@ "summary": { "passed": 170, "num_tests": 170, - "duration": 623.9100317955017 + "duration": 595.9680950641632 }, - "created_at": "2024-04-12 10:14:26.474860" + "created_at": "2024-04-15 13:29:36.129262" } } \ No newline at end of file diff --git a/triton_cal_plots.py b/triton_cal_plots.py index f04f89df9..baac78f9c 100644 --- a/triton_cal_plots.py +++ b/triton_cal_plots.py @@ -1,239 +1,267 @@ +import pytest import json import re import numpy as np import matplotlib.pyplot as plt - - -# Load the JSON data from the file -with open('test_triton_cal.json', 'r') as file: - json_data = json.load(file) - -# Initialize string variables -string_8GHz_adj = "" -string_9GHz_adj = "" -string_10GHz_adj = "" -string_11GHz_adj = "" -string_12GHz_adj = "" -string_8GHz_comb = "" -string_9GHz_comb = "" -string_10GHz_comb = "" -string_11GHz_comb = "" -string_12GHz_comb = "" - -# Initialize iteration variables -i = 0 -j = 1 -k = 2 -l = 3 -m = 4 -n = 5 -o = 6 -p = 7 -q = 8 -r = 9 - - -## Extract Adjacent Loopback data at 8 GHz -while i < 160: - string = json_data['report']['tests'][i]['call']['stdout'] - string_8GHz_adj += string - i = i+10 - -## Extract Adjacent Loopback data at 9 GHz -while j < 160: - string = json_data['report']['tests'][j]['call']['stdout'] - string_9GHz_adj += string - j = j+10 - -## Extract Adjacent Loopback data at 10 GHz -while k < 160: - string = json_data['report']['tests'][k]['call']['stdout'] - string_10GHz_adj += string - k = k+10 - -## Extract Adjacent Loopback data at 11 GHz -while l < 160: - string = json_data['report']['tests'][l]['call']['stdout'] - string_11GHz_adj += string - l = l+10 - -## Extract Adjacent Loopback data at 12 GHz -while m < 160: - string = json_data['report']['tests'][m]['call']['stdout'] - string_12GHz_adj += string - m = m+10 - -## Extract Combined Loopback data at 8 GHz -while n < 160: - string = json_data['report']['tests'][n]['call']['stdout'] - string_8GHz_comb += string - n = n+10 - -## Extract Combined Loopback data at 9 GHz -while o < 160: - string = json_data['report']['tests'][o]['call']['stdout'] - string_9GHz_comb += string - o = o+10 - -## Extract Combined Loopback data at 10 GHz -while p < 160: - string = json_data['report']['tests'][p]['call']['stdout'] - string_10GHz_comb += string - p = p+10 - -## Extract Combined Loopback data at 11 GHz -while q < 160: - string = json_data['report']['tests'][q]['call']['stdout'] - string_11GHz_comb += string - q = q+10 - -## Extract Combined Loopback data at 12 GHz -while r < 160: - string = json_data['report']['tests'][r]['call']['stdout'] - string_12GHz_comb += string - r = r+10 - -## Pattern to find scientific notation -pattern = r'[-+]?\d*\.\d+E[-+]?\d+' - -# Use regular expression module to find matching pattern -adj_8GHz = re.findall(pattern, string_8GHz_adj) -adj_9GHz = re.findall(pattern, string_9GHz_adj) -adj_10GHz = re.findall(pattern, string_10GHz_adj) -adj_11GHz = re.findall(pattern, string_11GHz_adj) -adj_12GHz = re.findall(pattern, string_12GHz_adj) -comb_8GHz = re.findall(pattern, string_8GHz_comb) -comb_9GHz = re.findall(pattern, string_9GHz_comb) -comb_10GHz = re.findall(pattern, string_10GHz_comb) -comb_11GHz = re.findall(pattern, string_11GHz_comb) -comb_12GHz = re.findall(pattern, string_12GHz_comb) - -# Convert scientific notation strings to floating-point -adj_8GHz_array = [float(num) for num in adj_8GHz] -adj_9GHz_array = [float(num) for num in adj_9GHz] -adj_10GHz_array = [float(num) for num in adj_10GHz] -adj_11GHz_array = [float(num) for num in adj_11GHz] -adj_12GHz_array = [float(num) for num in adj_12GHz] -comb_8GHz_array = [float(num) for num in comb_8GHz] -comb_9GHz_array = [float(num) for num in comb_9GHz] -comb_10GHz_array = [float(num) for num in comb_10GHz] -comb_11GHz_array = [float(num) for num in comb_11GHz] -comb_12GHz_array = [float(num) for num in comb_12GHz] - - -print(adj_8GHz_array) -print(adj_9GHz_array) -print(adj_10GHz_array) -print(adj_11GHz_array) -print(adj_12GHz_array) -print(comb_8GHz_array) -print(comb_9GHz_array) -print(comb_10GHz_array) -print(comb_11GHz_array) -print(comb_12GHz_array) - -## 1x16 channels array 0:15 -channels_array = np.arange(16) - -## 1x5 frequency array -frequency_array = [8000, 9000, 10000, 11000, 12000] - -## 1x5 channel results array for each channel in adjacent loopback state -ch0_adjresults_y = [adj_8GHz_array[0], adj_9GHz_array[0], adj_10GHz_array[0], adj_11GHz_array[0], adj_12GHz_array[0]] -ch1_adjresults_y = [adj_8GHz_array[1], adj_9GHz_array[1], adj_10GHz_array[1], adj_11GHz_array[1], adj_12GHz_array[1]] -ch2_adjresults_y = [adj_8GHz_array[2], adj_9GHz_array[2], adj_10GHz_array[2], adj_11GHz_array[2], adj_12GHz_array[2]] -ch3_adjresults_y = [adj_8GHz_array[3], adj_9GHz_array[3], adj_10GHz_array[3], adj_11GHz_array[3], adj_12GHz_array[3]] -ch4_adjresults_y = [adj_8GHz_array[4], adj_9GHz_array[4], adj_10GHz_array[4], adj_11GHz_array[4], adj_12GHz_array[4]] -ch5_adjresults_y = [adj_8GHz_array[5], adj_9GHz_array[5], adj_10GHz_array[5], adj_11GHz_array[5], adj_12GHz_array[5]] -ch6_adjresults_y = [adj_8GHz_array[6], adj_9GHz_array[6], adj_10GHz_array[6], adj_11GHz_array[6], adj_12GHz_array[6]] -ch7_adjresults_y = [adj_8GHz_array[7], adj_9GHz_array[7], adj_10GHz_array[7], adj_11GHz_array[7], adj_12GHz_array[7]] -ch8_adjresults_y = [adj_8GHz_array[8], adj_9GHz_array[8], adj_10GHz_array[8], adj_11GHz_array[8], adj_12GHz_array[8]] -ch9_adjresults_y = [adj_8GHz_array[9], adj_9GHz_array[9], adj_10GHz_array[9], adj_11GHz_array[9], adj_12GHz_array[9]] -ch10_adjresults_y = [adj_8GHz_array[10], adj_9GHz_array[10], adj_10GHz_array[10], adj_11GHz_array[10], adj_12GHz_array[10]] -ch11_adjresults_y = [adj_8GHz_array[11], adj_9GHz_array[11], adj_10GHz_array[11], adj_11GHz_array[11], adj_12GHz_array[11]] -ch12_adjresults_y = [adj_8GHz_array[12], adj_9GHz_array[12], adj_10GHz_array[12], adj_11GHz_array[12], adj_12GHz_array[12]] -ch13_adjresults_y = [adj_8GHz_array[13], adj_9GHz_array[13], adj_10GHz_array[13], adj_11GHz_array[13], adj_12GHz_array[13]] -ch14_adjresults_y = [adj_8GHz_array[14], adj_9GHz_array[14], adj_10GHz_array[14], adj_11GHz_array[14], adj_12GHz_array[14]] -ch15_adjresults_y = [adj_8GHz_array[15], adj_9GHz_array[15], adj_10GHz_array[15], adj_11GHz_array[15], adj_12GHz_array[15]] - -## 1x5 channel results array for each channel in combined loopback state -ch0_combresults_y = [comb_8GHz_array[0], comb_9GHz_array[0], comb_10GHz_array[0], comb_11GHz_array[0], comb_12GHz_array[0]] -ch1_combresults_y = [comb_8GHz_array[1], comb_9GHz_array[1], comb_10GHz_array[1], comb_11GHz_array[1], comb_12GHz_array[1]] -ch2_combresults_y = [comb_8GHz_array[2], comb_9GHz_array[2], comb_10GHz_array[2], comb_11GHz_array[2], comb_12GHz_array[2]] -ch3_combresults_y = [comb_8GHz_array[3], comb_9GHz_array[3], comb_10GHz_array[3], comb_11GHz_array[3], comb_12GHz_array[3]] -ch4_combresults_y = [comb_8GHz_array[4], comb_9GHz_array[4], comb_10GHz_array[4], comb_11GHz_array[4], comb_12GHz_array[4]] -ch5_combresults_y = [comb_8GHz_array[5], comb_9GHz_array[5], comb_10GHz_array[5], comb_11GHz_array[5], comb_12GHz_array[5]] -ch6_combresults_y = [comb_8GHz_array[6], comb_9GHz_array[6], comb_10GHz_array[6], comb_11GHz_array[6], comb_12GHz_array[6]] -ch7_combresults_y = [comb_8GHz_array[7], comb_9GHz_array[7], comb_10GHz_array[7], comb_11GHz_array[7], comb_12GHz_array[7]] -ch8_combresults_y = [comb_8GHz_array[8], comb_9GHz_array[8], comb_10GHz_array[8], comb_11GHz_array[8], comb_12GHz_array[8]] -ch9_combresults_y = [comb_8GHz_array[9], comb_9GHz_array[9], comb_10GHz_array[9], comb_11GHz_array[9], comb_12GHz_array[9]] -ch10_combresults_y = [comb_8GHz_array[10], comb_9GHz_array[10], comb_10GHz_array[10], comb_11GHz_array[10], comb_12GHz_array[10]] -ch11_combresults_y = [comb_8GHz_array[11], comb_9GHz_array[11], comb_10GHz_array[11], comb_11GHz_array[11], comb_12GHz_array[11]] -ch12_combresults_y = [comb_8GHz_array[12], comb_9GHz_array[12], comb_10GHz_array[12], comb_11GHz_array[12], comb_12GHz_array[12]] -ch13_combresults_y = [comb_8GHz_array[13], comb_9GHz_array[13], comb_10GHz_array[13], comb_11GHz_array[13], comb_12GHz_array[13]] -ch14_combresults_y = [comb_8GHz_array[14], comb_9GHz_array[14], comb_10GHz_array[14], comb_11GHz_array[14], comb_12GHz_array[14]] -ch15_combresults_y = [comb_8GHz_array[15], comb_9GHz_array[15], comb_10GHz_array[15], comb_11GHz_array[15], comb_12GHz_array[15]] - -# Create a new plot with adjacent loopback data -plt.figure() -plt.plot(frequency_array, ch0_adjresults_y, label='Channel 0') -plt.plot(frequency_array, ch1_adjresults_y, label='Channel 1') -plt.plot(frequency_array, ch2_adjresults_y, label='Channel 2') -plt.plot(frequency_array, ch3_adjresults_y, label='Channel 3') -plt.plot(frequency_array, ch4_adjresults_y, label='Channel 4') -plt.plot(frequency_array, ch5_adjresults_y, label='Channel 5') -plt.plot(frequency_array, ch6_adjresults_y, label='Channel 6') -plt.plot(frequency_array, ch7_adjresults_y, label='Channel 7') -plt.plot(frequency_array, ch8_adjresults_y, label='Channel 8') -plt.plot(frequency_array, ch9_adjresults_y, label='Channel 9') -plt.plot(frequency_array, ch10_adjresults_y, label='Channel 10') -plt.plot(frequency_array, ch11_adjresults_y, label='Channel 11') -plt.plot(frequency_array, ch12_adjresults_y, label='Channel 12') -plt.plot(frequency_array, ch13_adjresults_y, label='Channel 13') -plt.plot(frequency_array, ch14_adjresults_y, label='Channel 14') -plt.plot(frequency_array, ch15_adjresults_y, label='Channel 15') - -# Limits for y axis -plt.ylim(-80, 0) - -# Add labels and title -plt.xlabel('Frequency (MHz)') -plt.ylabel('Magnitude (dBm)') -plt.title('Calibration Board Output Magnitude vs Frequency for Adjacent Loopback State (+15 dBm Input)') - -# Add legend -plt.legend() - -# Create a new plot with adjacent loopback data -plt.figure() -plt.plot(frequency_array, ch0_combresults_y, label='Channel 0') -plt.plot(frequency_array, ch1_combresults_y, label='Channel 1') -plt.plot(frequency_array, ch2_combresults_y, label='Channel 2') -plt.plot(frequency_array, ch3_combresults_y, label='Channel 3') -plt.plot(frequency_array, ch4_combresults_y, label='Channel 4') -plt.plot(frequency_array, ch5_combresults_y, label='Channel 5') -plt.plot(frequency_array, ch6_combresults_y, label='Channel 6') -plt.plot(frequency_array, ch7_combresults_y, label='Channel 7') -plt.plot(frequency_array, ch8_combresults_y, label='Channel 8') -plt.plot(frequency_array, ch9_combresults_y, label='Channel 9') -plt.plot(frequency_array, ch10_combresults_y, label='Channel 10') -plt.plot(frequency_array, ch11_combresults_y, label='Channel 11') -plt.plot(frequency_array, ch12_combresults_y, label='Channel 12') -plt.plot(frequency_array, ch13_combresults_y, label='Channel 13') -plt.plot(frequency_array, ch14_combresults_y, label='Channel 14') -plt.plot(frequency_array, ch15_combresults_y, label='Channel 15') - -# Limits for y axis -plt.ylim(-80, 0) - -# Add labels and title -plt.xlabel('Frequency (MHz)') -plt.ylabel('Magnitude (dBm)') -plt.title('Calibration Board Output Magnitude vs Frequency for Combined Loopback State (+15 dBm Input)') - -# Add legend -plt.legend() - -# Show the plots -plt.show() +import base64 + +@pytest.fixture(scope="session") +def graph_fixture(): + # Load the JSON data from the file + with open('test_triton_cal.json', 'r') as file: + json_data = json.load(file) + + # Initialize string variables + string_8GHz_adj = "" + string_9GHz_adj = "" + string_10GHz_adj = "" + string_11GHz_adj = "" + string_12GHz_adj = "" + string_8GHz_comb = "" + string_9GHz_comb = "" + string_10GHz_comb = "" + string_11GHz_comb = "" + string_12GHz_comb = "" + string_combined_tx = "" + string_combined_rx = "" + + # Initialize iteration variables + i = 0 + j = 1 + k = 2 + l = 3 + m = 4 + n = 5 + o = 6 + p = 7 + q = 8 + r = 9 + s = 160 + t = 166 + + + ## Extract Adjacent Loopback data at 8 GHz + while i < 160: + string = json_data['report']['tests'][i]['call']['stdout'] + string_8GHz_adj += string + i = i+10 + + ## Extract Adjacent Loopback data at 9 GHz + while j < 160: + string = json_data['report']['tests'][j]['call']['stdout'] + string_9GHz_adj += string + j = j+10 + + ## Extract Adjacent Loopback data at 10 GHz + while k < 160: + string = json_data['report']['tests'][k]['call']['stdout'] + string_10GHz_adj += string + k = k+10 + + ## Extract Adjacent Loopback data at 11 GHz + while l < 160: + string = json_data['report']['tests'][l]['call']['stdout'] + string_11GHz_adj += string + l = l+10 + + ## Extract Adjacent Loopback data at 12 GHz + while m < 160: + string = json_data['report']['tests'][m]['call']['stdout'] + string_12GHz_adj += string + m = m+10 + + ## Extract Combined Loopback data at 8 GHz + while n < 160: + string = json_data['report']['tests'][n]['call']['stdout'] + string_8GHz_comb += string + n = n+10 + + ## Extract Combined Loopback data at 9 GHz + while o < 160: + string = json_data['report']['tests'][o]['call']['stdout'] + string_9GHz_comb += string + o = o+10 + + ## Extract Combined Loopback data at 10 GHz + while p < 160: + string = json_data['report']['tests'][p]['call']['stdout'] + string_10GHz_comb += string + p = p+10 + + ## Extract Combined Loopback data at 11 GHz + while q < 160: + string = json_data['report']['tests'][q]['call']['stdout'] + string_11GHz_comb += string + q = q+10 + + ## Extract Combined Loopback data at 12 GHz + while r < 160: + string = json_data['report']['tests'][r]['call']['stdout'] + string_12GHz_comb += string + r = r+10 + + # # Extract Tx Combined Out SMA data from 8-12 GHz + # while s >= 160 and s <= 165: + # string = json_data['report']['tests'][s]['call']['stdout'] + # string_combined_tx += string + # s = s+1 + + # # Extract Rx Combined In SMA data from 8-12 GHz + # while t >= 166 and t <= 170: + # string = json_data['report']['tests'][t]['call']['stdout'] + # string_combined_rx += string + # t = t+1 + + ## Pattern to find scientific notation + pattern = r'[-+]?\d*\.\d+E[-+]?\d+' + + # Use regular expression module to find matching pattern + adj_8GHz = re.findall(pattern, string_8GHz_adj) + adj_9GHz = re.findall(pattern, string_9GHz_adj) + adj_10GHz = re.findall(pattern, string_10GHz_adj) + adj_11GHz = re.findall(pattern, string_11GHz_adj) + adj_12GHz = re.findall(pattern, string_12GHz_adj) + comb_8GHz = re.findall(pattern, string_8GHz_comb) + comb_9GHz = re.findall(pattern, string_9GHz_comb) + comb_10GHz = re.findall(pattern, string_10GHz_comb) + comb_11GHz = re.findall(pattern, string_11GHz_comb) + comb_12GHz = re.findall(pattern, string_12GHz_comb) + comb_tx = re.findall(pattern, string_combined_tx) + comb_rx = re.findall(pattern, string_combined_rx) + + # Convert scientific notation strings to floating-point + adj_8GHz_array = [float(num) for num in adj_8GHz] + adj_9GHz_array = [float(num) for num in adj_9GHz] + adj_10GHz_array = [float(num) for num in adj_10GHz] + adj_11GHz_array = [float(num) for num in adj_11GHz] + adj_12GHz_array = [float(num) for num in adj_12GHz] + comb_8GHz_array = [float(num) for num in comb_8GHz] + comb_9GHz_array = [float(num) for num in comb_9GHz] + comb_10GHz_array = [float(num) for num in comb_10GHz] + comb_11GHz_array = [float(num) for num in comb_11GHz] + comb_12GHz_array = [float(num) for num in comb_12GHz] + comb_tx_array = [float(num) for num in comb_tx] + comb_rx_array = [float(num) for num in comb_rx] + + print(adj_8GHz_array) + print(adj_9GHz_array) + print(adj_10GHz_array) + print(adj_11GHz_array) + print(adj_12GHz_array) + print(comb_8GHz_array) + print(comb_9GHz_array) + print(comb_10GHz_array) + print(comb_11GHz_array) + print(comb_12GHz_array) + print(comb_tx_array) + print(comb_rx_array) + + ## 1x16 channels array 0:15 + channels_array = np.arange(16) + + ## 1x5 frequency array + frequency_array = [8000, 9000, 10000, 11000, 12000] + + ## 1x5 channel results array for each channel in adjacent loopback state + ch0_adjresults_y = [adj_8GHz_array[0], adj_9GHz_array[0], adj_10GHz_array[0], adj_11GHz_array[0], adj_12GHz_array[0]] + ch1_adjresults_y = [adj_8GHz_array[1], adj_9GHz_array[1], adj_10GHz_array[1], adj_11GHz_array[1], adj_12GHz_array[1]] + ch2_adjresults_y = [adj_8GHz_array[2], adj_9GHz_array[2], adj_10GHz_array[2], adj_11GHz_array[2], adj_12GHz_array[2]] + ch3_adjresults_y = [adj_8GHz_array[3], adj_9GHz_array[3], adj_10GHz_array[3], adj_11GHz_array[3], adj_12GHz_array[3]] + ch4_adjresults_y = [adj_8GHz_array[4], adj_9GHz_array[4], adj_10GHz_array[4], adj_11GHz_array[4], adj_12GHz_array[4]] + ch5_adjresults_y = [adj_8GHz_array[5], adj_9GHz_array[5], adj_10GHz_array[5], adj_11GHz_array[5], adj_12GHz_array[5]] + ch6_adjresults_y = [adj_8GHz_array[6], adj_9GHz_array[6], adj_10GHz_array[6], adj_11GHz_array[6], adj_12GHz_array[6]] + ch7_adjresults_y = [adj_8GHz_array[7], adj_9GHz_array[7], adj_10GHz_array[7], adj_11GHz_array[7], adj_12GHz_array[7]] + ch8_adjresults_y = [adj_8GHz_array[8], adj_9GHz_array[8], adj_10GHz_array[8], adj_11GHz_array[8], adj_12GHz_array[8]] + ch9_adjresults_y = [adj_8GHz_array[9], adj_9GHz_array[9], adj_10GHz_array[9], adj_11GHz_array[9], adj_12GHz_array[9]] + ch10_adjresults_y = [adj_8GHz_array[10], adj_9GHz_array[10], adj_10GHz_array[10], adj_11GHz_array[10], adj_12GHz_array[10]] + ch11_adjresults_y = [adj_8GHz_array[11], adj_9GHz_array[11], adj_10GHz_array[11], adj_11GHz_array[11], adj_12GHz_array[11]] + ch12_adjresults_y = [adj_8GHz_array[12], adj_9GHz_array[12], adj_10GHz_array[12], adj_11GHz_array[12], adj_12GHz_array[12]] + ch13_adjresults_y = [adj_8GHz_array[13], adj_9GHz_array[13], adj_10GHz_array[13], adj_11GHz_array[13], adj_12GHz_array[13]] + ch14_adjresults_y = [adj_8GHz_array[14], adj_9GHz_array[14], adj_10GHz_array[14], adj_11GHz_array[14], adj_12GHz_array[14]] + ch15_adjresults_y = [adj_8GHz_array[15], adj_9GHz_array[15], adj_10GHz_array[15], adj_11GHz_array[15], adj_12GHz_array[15]] + + ## 1x5 channel results array for each channel in combined loopback state + ch0_combresults_y = [comb_8GHz_array[0], comb_9GHz_array[0], comb_10GHz_array[0], comb_11GHz_array[0], comb_12GHz_array[0]] + ch1_combresults_y = [comb_8GHz_array[1], comb_9GHz_array[1], comb_10GHz_array[1], comb_11GHz_array[1], comb_12GHz_array[1]] + ch2_combresults_y = [comb_8GHz_array[2], comb_9GHz_array[2], comb_10GHz_array[2], comb_11GHz_array[2], comb_12GHz_array[2]] + ch3_combresults_y = [comb_8GHz_array[3], comb_9GHz_array[3], comb_10GHz_array[3], comb_11GHz_array[3], comb_12GHz_array[3]] + ch4_combresults_y = [comb_8GHz_array[4], comb_9GHz_array[4], comb_10GHz_array[4], comb_11GHz_array[4], comb_12GHz_array[4]] + ch5_combresults_y = [comb_8GHz_array[5], comb_9GHz_array[5], comb_10GHz_array[5], comb_11GHz_array[5], comb_12GHz_array[5]] + ch6_combresults_y = [comb_8GHz_array[6], comb_9GHz_array[6], comb_10GHz_array[6], comb_11GHz_array[6], comb_12GHz_array[6]] + ch7_combresults_y = [comb_8GHz_array[7], comb_9GHz_array[7], comb_10GHz_array[7], comb_11GHz_array[7], comb_12GHz_array[7]] + ch8_combresults_y = [comb_8GHz_array[8], comb_9GHz_array[8], comb_10GHz_array[8], comb_11GHz_array[8], comb_12GHz_array[8]] + ch9_combresults_y = [comb_8GHz_array[9], comb_9GHz_array[9], comb_10GHz_array[9], comb_11GHz_array[9], comb_12GHz_array[9]] + ch10_combresults_y = [comb_8GHz_array[10], comb_9GHz_array[10], comb_10GHz_array[10], comb_11GHz_array[10], comb_12GHz_array[10]] + ch11_combresults_y = [comb_8GHz_array[11], comb_9GHz_array[11], comb_10GHz_array[11], comb_11GHz_array[11], comb_12GHz_array[11]] + ch12_combresults_y = [comb_8GHz_array[12], comb_9GHz_array[12], comb_10GHz_array[12], comb_11GHz_array[12], comb_12GHz_array[12]] + ch13_combresults_y = [comb_8GHz_array[13], comb_9GHz_array[13], comb_10GHz_array[13], comb_11GHz_array[13], comb_12GHz_array[13]] + ch14_combresults_y = [comb_8GHz_array[14], comb_9GHz_array[14], comb_10GHz_array[14], comb_11GHz_array[14], comb_12GHz_array[14]] + ch15_combresults_y = [comb_8GHz_array[15], comb_9GHz_array[15], comb_10GHz_array[15], comb_11GHz_array[15], comb_12GHz_array[15]] + + # Create a new plot with adjacent loopback data + plt.figure() + plt.plot(frequency_array, ch0_adjresults_y, label='Channel 0') + plt.plot(frequency_array, ch1_adjresults_y, label='Channel 1') + plt.plot(frequency_array, ch2_adjresults_y, label='Channel 2') + plt.plot(frequency_array, ch3_adjresults_y, label='Channel 3') + plt.plot(frequency_array, ch4_adjresults_y, label='Channel 4') + plt.plot(frequency_array, ch5_adjresults_y, label='Channel 5') + plt.plot(frequency_array, ch6_adjresults_y, label='Channel 6') + plt.plot(frequency_array, ch7_adjresults_y, label='Channel 7') + plt.plot(frequency_array, ch8_adjresults_y, label='Channel 8') + plt.plot(frequency_array, ch9_adjresults_y, label='Channel 9') + plt.plot(frequency_array, ch10_adjresults_y, label='Channel 10') + plt.plot(frequency_array, ch11_adjresults_y, label='Channel 11') + plt.plot(frequency_array, ch12_adjresults_y, label='Channel 12') + plt.plot(frequency_array, ch13_adjresults_y, label='Channel 13') + plt.plot(frequency_array, ch14_adjresults_y, label='Channel 14') + plt.plot(frequency_array, ch15_adjresults_y, label='Channel 15') + + # Limits for y axis + plt.ylim(-70, 0) + + # Add labels and title + plt.xlabel('Frequency (MHz)') + plt.ylabel('Magnitude (dBm)') + plt.title('Adjacent Loopback State (+15 dBm Input)') + + # # Add legend + # plt.legend() + + plt.savefig('adjacent.png') + + + + + # Create a new plot with adjacent loopback data + plt.figure() + plt.plot(frequency_array, ch0_combresults_y, label='Channel 0') + plt.plot(frequency_array, ch1_combresults_y, label='Channel 1') + plt.plot(frequency_array, ch2_combresults_y, label='Channel 2') + plt.plot(frequency_array, ch3_combresults_y, label='Channel 3') + plt.plot(frequency_array, ch4_combresults_y, label='Channel 4') + plt.plot(frequency_array, ch5_combresults_y, label='Channel 5') + plt.plot(frequency_array, ch6_combresults_y, label='Channel 6') + plt.plot(frequency_array, ch7_combresults_y, label='Channel 7') + plt.plot(frequency_array, ch8_combresults_y, label='Channel 8') + plt.plot(frequency_array, ch9_combresults_y, label='Channel 9') + plt.plot(frequency_array, ch10_combresults_y, label='Channel 10') + plt.plot(frequency_array, ch11_combresults_y, label='Channel 11') + plt.plot(frequency_array, ch12_combresults_y, label='Channel 12') + plt.plot(frequency_array, ch13_combresults_y, label='Channel 13') + plt.plot(frequency_array, ch14_combresults_y, label='Channel 14') + plt.plot(frequency_array, ch15_combresults_y, label='Channel 15') + + # Limits for y axis + plt.ylim(-80, 0) + + # Add labels and title + plt.xlabel('Frequency (MHz)') + plt.ylabel('Magnitude (dBm)') + plt.title('Combined Loopback State (+15 dBm Input)') + + # # Add legend + # plt.legend() + + plt.savefig('combined.png')