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