[RTT] Validate RTT results parameters

Add validation code for RTT result parameters indicating the number
of measurement attempts and number of successful measurements. These
values should be non-zero for successful results.

Bug: 79879905
Test: above bug tracking errors in results
Change-Id: Ib94c29ba3b6423217655a888a474ba90dde33713
diff --git a/acts/framework/acts/test_utils/wifi/rtt/rtt_test_utils.py b/acts/framework/acts/test_utils/wifi/rtt/rtt_test_utils.py
index bd82a86..29fac81 100644
--- a/acts/framework/acts/test_utils/wifi/rtt/rtt_test_utils.py
+++ b/acts/framework/acts/test_utils/wifi/rtt/rtt_test_utils.py
@@ -244,6 +244,14 @@
                          the reference LCI.
      - any_lcr_mismatch: True/False - checks if all LCR results are identical to
                          the reference LCR.
+     - num_attempted_measurements: extracted list of all of the individual
+                                   number of attempted measurements.
+     - num_successful_measurements: extracted list of all of the individual
+                                    number of successful measurements.
+     - invalid_num_attempted: True/False - checks if number of attempted
+                              measurements is non-zero for successful results.
+     - invalid_num_successful: True/False - checks if number of successful
+                               measurements is non-zero for successful results.
 
   Args:
     results: List of RTT results.
@@ -264,6 +272,8 @@
   stats['num_invalid_rssi'] = 0
   stats['any_lci_mismatch'] = False
   stats['any_lcr_mismatch'] = False
+  stats['invalid_num_attempted'] = False
+  stats['invalid_num_successful'] = False
 
   range_max_mm = range_reference_mm + range_margin_mm
   range_min_mm = range_reference_mm - range_margin_mm
@@ -303,10 +313,17 @@
     if not min_rssi <= rssi <= 0:
       stats['num_invalid_rssi'] = stats['num_invalid_rssi'] + 1
 
-    num_attempted_measurements.append(
-      result[rconsts.EVENT_CB_RANGING_KEY_NUM_ATTEMPTED_MEASUREMENTS])
-    num_successful_measurements.append(
-        result[rconsts.EVENT_CB_RANGING_KEY_NUM_SUCCESSFUL_MEASUREMENTS])
+    num_attempted = result[
+      rconsts.EVENT_CB_RANGING_KEY_NUM_ATTEMPTED_MEASUREMENTS]
+    num_attempted_measurements.append(num_attempted)
+    if num_attempted == 0:
+      stats['invalid_num_attempted'] = True
+
+    num_successful = result[
+      rconsts.EVENT_CB_RANGING_KEY_NUM_SUCCESSFUL_MEASUREMENTS]
+    num_successful_measurements.append(num_successful)
+    if num_successful == 0:
+      stats['invalid_num_successful'] = True
 
     lcis.append(result[rconsts.EVENT_CB_RANGING_KEY_LCI])
     if (result[rconsts.EVENT_CB_RANGING_KEY_LCI] != reference_lci):
diff --git a/acts/tests/google/wifi/rtt/functional/RangeApSupporting11McTest.py b/acts/tests/google/wifi/rtt/functional/RangeApSupporting11McTest.py
index 523fd0c..98586cb 100644
--- a/acts/tests/google/wifi/rtt/functional/RangeApSupporting11McTest.py
+++ b/acts/tests/google/wifi/rtt/functional/RangeApSupporting11McTest.py
@@ -60,6 +60,10 @@
                            "LCI mismatch", extras=stats)
       asserts.assert_false(stat['any_lcr_mismatch'],
                            "LCR mismatch", extras=stats)
+      asserts.assert_false(stat['invalid_num_attempted'],
+                           "Invalid (0) number of attempts", extras=stats)
+      asserts.assert_false(stat['invalid_num_successful'],
+                           "Invalid (0) number of successes", extras=stats)
       asserts.assert_equal(stat['num_invalid_rssi'], 0, "Invalid RSSI",
                           extras=stats)
       asserts.assert_true(stat['num_failures'] <=
diff --git a/acts/tests/google/wifi/rtt/functional/RangeAwareTest.py b/acts/tests/google/wifi/rtt/functional/RangeAwareTest.py
index a2d5286..d4b7d41 100644
--- a/acts/tests/google/wifi/rtt/functional/RangeAwareTest.py
+++ b/acts/tests/google/wifi/rtt/functional/RangeAwareTest.py
@@ -229,6 +229,10 @@
                          "LCI mismatch", extras=extras)
     asserts.assert_false(stats['any_lcr_mismatch'],
                          "LCR mismatch", extras=extras)
+    asserts.assert_false(stats['invalid_num_attempted'],
+                         "Invalid (0) number of attempts", extras=stats)
+    asserts.assert_false(stats['invalid_num_successful'],
+                         "Invalid (0) number of successes", extras=stats)
     asserts.assert_equal(stats['num_invalid_rssi'], 0, "Invalid RSSI",
                          extras=extras)
     asserts.assert_true(