From 25ba50f8d5bed7fa42b976d088a6e2da32013ee0 Mon Sep 17 00:00:00 2001
From: Dinesh Atchuthan <datchuth@laas.fr>
Date: Mon, 12 Dec 2016 11:57:17 +0100
Subject: [PATCH] gtest_processor_imu -> add acc_y

---
 src/test/gtest_processor_imu.cpp | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/src/test/gtest_processor_imu.cpp b/src/test/gtest_processor_imu.cpp
index a4b4ff626..5f1bab2c5 100644
--- a/src/test/gtest_processor_imu.cpp
+++ b/src/test/gtest_processor_imu.cpp
@@ -67,6 +67,26 @@ TEST(ProcessorIMU, acc_x)
     ASSERT_TRUE((problem->getCurrentState() - x).isMuchSmallerThan(1, EPS_SMALL));
 }
 
+TEST(ProcessorIMU, acc_y)
+{
+    t.set(0); // clock in 0,1 ms ticks
+    x0 << 0,0,0,  0,0,0,1,  0,0,0,  0,0,0,  0,0,0; // Try some non-zero biases
+
+    problem->getProcessorMotionPtr()->setOrigin(x0, t);
+
+    data << 0, 20, 9.8, 0, 0, 0; // only acc_y, but measure gravity!
+
+    cap_imu_ptr->setData(data);
+    cap_imu_ptr->setTimeStamp(0.001);
+    sensor_ptr->process(cap_imu_ptr);
+
+    // Expected state after one integration
+    VectorXs x(16);
+    x << 0,0.00001,0, 0,0,0,1, 0,0.02,0, 0,0,0, 0,0,0; // advanced at a=20m/s2 during 0.001s ==> dx = 0.5*20*0.001^2 = 0.00001; dvx = 20*0.001 = 0.02
+
+    ASSERT_TRUE((problem->getCurrentState() - x).isMuchSmallerThan(1, EPS_SMALL));
+}
+
 TEST(ProcessorIMU, acc_z)
 {
     t.set(0); // clock in 0,1 ms ticks
-- 
GitLab