Update range tests for automotive sensors

Ensure that automotive sensors are capable of reporting at frequencies
and ranges within the CDD (2.5.1/[7.3.1/A-1-1], 2.5.1/[7.3.4/A-2-1],
2.5.1/[7.3.4/A-2-3])

Updates the automotive max frequency for accelerometer and gyroscope
and the automotive max range for gyroscope.

Bug: 147469359
Test: run cts -m CtsSensorTestCases -t android.hardware.cts.SensorParameterRangeTest#testGyroscopeRange
      run cts -m CtsSensorTestCases -t android.hardware.cts.SensorParameterRangeTest#testAccelerometerRange
      Tested with an automotive device

Signed-off-by: Goran Davidsson <goran.davidsson@aptiv.corp-partner.google.com>
Change-Id: I57c6ef499102bb3d2190b79c904c9695baa256f7
Merged-In: I57c6ef499102bb3d2190b79c904c9695baa256f7
(cherry picked from commit 8b93116aabcc64d0922541078eebafb1abc0b008)
diff --git a/tests/sensor/src/android/hardware/cts/SensorParameterRangeTest.java b/tests/sensor/src/android/hardware/cts/SensorParameterRangeTest.java
index f604dbe..1dbf0b4 100644
--- a/tests/sensor/src/android/hardware/cts/SensorParameterRangeTest.java
+++ b/tests/sensor/src/android/hardware/cts/SensorParameterRangeTest.java
@@ -43,6 +43,7 @@
 
     private static final double ACCELEROMETER_MAX_RANGE = 4 * 9.80; // 4g - ε
     private static final double ACCELEROMETER_MAX_FREQUENCY = 50.0;
+    private static final double ACCELEROMETER_AUTOMOTIVE_MAX_FREQUENCY = 100.0;
     private static final double ACCELEROMETER_HIFI_MAX_RANGE = 8 * 9.80; // 8g - ε
     private static final double ACCELEROMETER_HIFI_MIN_FREQUENCY = 12.50;
     private static final double ACCELEROMETER_HIFI_MAX_FREQUENCY = 400.0;
@@ -50,6 +51,8 @@
 
     private static final double GYRO_MAX_RANGE = 1000 / 57.295 - 1.0; // 1000 degrees/sec - ε
     private static final double GYRO_MAX_FREQUENCY = 50.0;
+    private static final double GYRO_AUTOMOTIVE_MAX_RANGE = 250 / 57.295 - 1.0; // 250 degrees/sec - ε
+    private static final double GYRO_AUTOMOTIVE_MAX_FREQUENCY = 100.0;
     private static final double GYRO_HIFI_MAX_RANGE = 1000 / 57.295 - 1.0; // 1000 degrees/sec - ε
     private static final double GYRO_HIFI_MIN_FREQUENCY = 12.50;
     private static final double GYRO_HIFI_MAX_FREQUENCY = 400.0;
@@ -75,6 +78,7 @@
     private static final int PROXIMITY_SENSOR_MIN_FIFO_LENGTH = 100;
     private static final int STEP_DETECTOR_MIN_FIFO_LENGTH = 100;
 
+    private boolean mIsAutomotive;
     private boolean mHasHifiSensors;
     private boolean mHasProximitySensor;
     private boolean mVrModeHighPerformance;
@@ -84,6 +88,7 @@
     public void setUp() {
         PackageManager pm = getContext().getPackageManager();
         mSensorManager = (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE);
+        mIsAutomotive = pm.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
         mHasHifiSensors = pm.hasSystemFeature(PackageManager.FEATURE_HIFI_SENSORS);
         mHasProximitySensor = pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_PROXIMITY);
         mVrModeHighPerformance = pm.hasSystemFeature(PackageManager.FEATURE_VR_MODE_HIGH_PERFORMANCE);
@@ -94,10 +99,14 @@
                 ACCELEROMETER_HIFI_MAX_FREQUENCY :
                 ACCELEROMETER_HIFI_MAX_FREQUENCY_BEFORE_N;
 
+        double accelerometerMaxFrequency = mIsAutomotive ?
+                ACCELEROMETER_AUTOMOTIVE_MAX_FREQUENCY :
+                ACCELEROMETER_MAX_FREQUENCY;
+
         checkSensorRangeAndFrequency(
                 Sensor.TYPE_ACCELEROMETER,
                 ACCELEROMETER_MAX_RANGE,
-                ACCELEROMETER_MAX_FREQUENCY,
+                accelerometerMaxFrequency,
                 ACCELEROMETER_HIFI_MAX_RANGE,
                 ACCELEROMETER_HIFI_MIN_FREQUENCY,
                 hifiMaxFrequency);
@@ -108,10 +117,19 @@
                 GYRO_HIFI_MAX_FREQUENCY :
                 GYRO_HIFI_MAX_FREQUENCY_BEFORE_N;
 
+        double gyroMaxRange = mIsAutomotive &&
+                ApiLevelUtil.isAtLeast(Build.VERSION_CODES.Q) ?
+                GYRO_AUTOMOTIVE_MAX_RANGE :
+                GYRO_MAX_RANGE;
+
+        double gyroMaxFrequency = mIsAutomotive ?
+                GYRO_AUTOMOTIVE_MAX_FREQUENCY :
+                GYRO_MAX_FREQUENCY;
+
         checkSensorRangeAndFrequency(
                 Sensor.TYPE_GYROSCOPE,
-                GYRO_MAX_RANGE,
-                GYRO_MAX_FREQUENCY,
+                gyroMaxRange,
+                gyroMaxFrequency,
                 GYRO_HIFI_MAX_RANGE,
                 GYRO_HIFI_MIN_FREQUENCY,
                 hifiMaxFrequency);