xref: /aosp_15_r20/external/libchrome-gestures/src/finger_metrics_unittest.cc (revision aed3e5085e770be5b69ce25295ecf6ddf906af95)
1*aed3e508SAndroid Build Coastguard Worker // Copyright 2022 The ChromiumOS Authors
2*aed3e508SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*aed3e508SAndroid Build Coastguard Worker // found in the LICENSE file.
4*aed3e508SAndroid Build Coastguard Worker 
5*aed3e508SAndroid Build Coastguard Worker #include <gtest/gtest.h>
6*aed3e508SAndroid Build Coastguard Worker 
7*aed3e508SAndroid Build Coastguard Worker #include "include/finger_metrics.h"
8*aed3e508SAndroid Build Coastguard Worker #include "include/gestures.h"
9*aed3e508SAndroid Build Coastguard Worker 
10*aed3e508SAndroid Build Coastguard Worker namespace gestures {
11*aed3e508SAndroid Build Coastguard Worker 
12*aed3e508SAndroid Build Coastguard Worker class FingerMetricsTest : public ::testing::Test {};
13*aed3e508SAndroid Build Coastguard Worker 
14*aed3e508SAndroid Build Coastguard Worker // This test adds code coverage for finger_metrics.
15*aed3e508SAndroid Build Coastguard Worker 
TEST(FingerMetricsTest,SimpleTest)16*aed3e508SAndroid Build Coastguard Worker TEST(FingerMetricsTest, SimpleTest) {
17*aed3e508SAndroid Build Coastguard Worker   Vector2 v1 = {1.0, 1.0};
18*aed3e508SAndroid Build Coastguard Worker   Vector2 v2 = {2.0, 2.0};
19*aed3e508SAndroid Build Coastguard Worker 
20*aed3e508SAndroid Build Coastguard Worker   Vector2 v3 = Add(v1, v2);
21*aed3e508SAndroid Build Coastguard Worker   EXPECT_EQ(v3.x, 3.0);
22*aed3e508SAndroid Build Coastguard Worker   EXPECT_EQ(v3.y, 3.0);
23*aed3e508SAndroid Build Coastguard Worker 
24*aed3e508SAndroid Build Coastguard Worker   float mag = v3.Mag();
25*aed3e508SAndroid Build Coastguard Worker   EXPECT_GT(mag, 4.242);
26*aed3e508SAndroid Build Coastguard Worker   EXPECT_LT(mag, 4.243);
27*aed3e508SAndroid Build Coastguard Worker 
28*aed3e508SAndroid Build Coastguard Worker   EXPECT_TRUE(v1 == v1);
29*aed3e508SAndroid Build Coastguard Worker   EXPECT_TRUE(v1 != v2);
30*aed3e508SAndroid Build Coastguard Worker 
31*aed3e508SAndroid Build Coastguard Worker   EXPECT_EQ(Dot(v1, v2), 4.0);
32*aed3e508SAndroid Build Coastguard Worker 
33*aed3e508SAndroid Build Coastguard Worker   FingerState fs = {
34*aed3e508SAndroid Build Coastguard Worker     44.0, 24.0,
35*aed3e508SAndroid Build Coastguard Worker     30.0, 10.0,
36*aed3e508SAndroid Build Coastguard Worker     100.0,
37*aed3e508SAndroid Build Coastguard Worker     0.0,
38*aed3e508SAndroid Build Coastguard Worker     123.0, 321.0,
39*aed3e508SAndroid Build Coastguard Worker     42,
40*aed3e508SAndroid Build Coastguard Worker     0
41*aed3e508SAndroid Build Coastguard Worker   };
42*aed3e508SAndroid Build Coastguard Worker   FingerMetrics fm = {fs, 0.0};
43*aed3e508SAndroid Build Coastguard Worker   EXPECT_EQ(fm.position(), Vector2(123.0, 321.0));
44*aed3e508SAndroid Build Coastguard Worker 
45*aed3e508SAndroid Build Coastguard Worker   fm.Update(fs, 0.1, true);
46*aed3e508SAndroid Build Coastguard Worker   EXPECT_EQ(Vector2(0.0, 0.0), fm.delta());
47*aed3e508SAndroid Build Coastguard Worker   EXPECT_EQ(Vector2(123.0, 321.0), fm.origin_position());
48*aed3e508SAndroid Build Coastguard Worker   EXPECT_EQ(0.0, fm.origin_time());
49*aed3e508SAndroid Build Coastguard Worker   EXPECT_EQ(Vector2(0.0, 0.0), fm.origin_delta());
50*aed3e508SAndroid Build Coastguard Worker   EXPECT_EQ(Vector2(123.0, 321.0), fm.start_position());
51*aed3e508SAndroid Build Coastguard Worker   EXPECT_EQ(0.1, fm.start_time());
52*aed3e508SAndroid Build Coastguard Worker   EXPECT_EQ(Vector2(0.0, 0.0), fm.start_delta());
53*aed3e508SAndroid Build Coastguard Worker }
54*aed3e508SAndroid Build Coastguard Worker 
55*aed3e508SAndroid Build Coastguard Worker }  // namespace gestures
56