Merge "CamreaITS: several ITS tests tweak" into lmp-mr1-dev
diff --git a/apps/CameraITS/tests/scene0/test_jitter.py b/apps/CameraITS/tests/scene0/test_jitter.py
index 82e8e38..c519792 100644
--- a/apps/CameraITS/tests/scene0/test_jitter.py
+++ b/apps/CameraITS/tests/scene0/test_jitter.py
@@ -33,7 +33,8 @@
with its.device.ItsSession() as cam:
props = cam.get_camera_properties()
- its.caps.skip_unless(its.caps.manual_sensor(props))
+ its.caps.skip_unless(its.caps.manual_sensor(props) and
+ its.caps.sensor_fusion(props))
req, fmt = its.objects.get_fastest_manual_capture_settings(props)
caps = cam.do_capture([req]*50, [fmt])
diff --git a/apps/CameraITS/tests/scene0/test_param_sensitivity_burst.py b/apps/CameraITS/tests/scene0/test_param_sensitivity_burst.py
index a6a5214..c3c2147 100644
--- a/apps/CameraITS/tests/scene0/test_param_sensitivity_burst.py
+++ b/apps/CameraITS/tests/scene0/test_param_sensitivity_burst.py
@@ -24,6 +24,7 @@
"""
NUM_STEPS = 3
+ ERROR_TOLERANCE = 0.97 # Allow ISO to be rounded down by 3%
with its.device.ItsSession() as cam:
props = cam.get_camera_properties()
@@ -41,7 +42,8 @@
for i,cap in enumerate(caps):
s_req = sens_list[i]
s_res = cap["metadata"]["android.sensor.sensitivity"]
- assert(s_req == s_res)
+ assert(s_req >= s_res)
+ assert(s_res/float(s_req) > ERROR_TOLERANCE)
if __name__ == '__main__':
main()
diff --git a/apps/CameraITS/tests/sensor_fusion/test_sensor_fusion.py b/apps/CameraITS/tests/sensor_fusion/test_sensor_fusion.py
index 49f47a9..efeb665 100644
--- a/apps/CameraITS/tests/sensor_fusion/test_sensor_fusion.py
+++ b/apps/CameraITS/tests/sensor_fusion/test_sensor_fusion.py
@@ -81,9 +81,23 @@
else:
events, frames = load_data()
+ # Sanity check camera timestamps are enclosed by sensor timestamps
+ # This will catch bugs where camera and gyro timestamps go completely out
+ # of sync
+ cam_times = get_cam_times(events["cam"])
+ min_cam_time = min(cam_times) * NSEC_TO_SEC
+ max_cam_time = max(cam_times) * NSEC_TO_SEC
+ gyro_times = [e["time"] for e in events["gyro"]]
+ min_gyro_time = min(gyro_times) * NSEC_TO_SEC
+ max_gyro_time = max(gyro_times) * NSEC_TO_SEC
+ if not (min_cam_time > min_gyro_time and max_cam_time < max_gyro_time):
+ print "Test failed: camera timestamps [%f,%f] " \
+ "are not enclosed by gyro timestamps [%f, %f]" % (
+ min_cam_time, max_cam_time, min_gyro_time, max_gyro_time)
+ assert(0)
+
# Compute the camera rotation displacements (rad) between each pair of
# adjacent frames.
- cam_times = get_cam_times(events["cam"])
cam_rots = get_cam_rotations(frames)
if max(abs(cam_rots)) < THRESH_MIN_ROT:
print "Device wasn't moved enough"