xref: /aosp_15_r20/external/libchrome-gestures/src/util_unittest.cc (revision aed3e5085e770be5b69ce25295ecf6ddf906af95)
1*aed3e508SAndroid Build Coastguard Worker // Copyright 2012 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/macros.h"
8*aed3e508SAndroid Build Coastguard Worker #include "include/util.h"
9*aed3e508SAndroid Build Coastguard Worker 
10*aed3e508SAndroid Build Coastguard Worker namespace gestures {
11*aed3e508SAndroid Build Coastguard Worker 
12*aed3e508SAndroid Build Coastguard Worker class UtilTest : public ::testing::Test {};
13*aed3e508SAndroid Build Coastguard Worker 
TEST(UtilTest,DistSqTest)14*aed3e508SAndroid Build Coastguard Worker TEST(UtilTest, DistSqTest) {
15*aed3e508SAndroid Build Coastguard Worker   FingerState fs[] = {
16*aed3e508SAndroid Build Coastguard Worker     // TM, Tm, WM, Wm, Press, Orientation, X, Y, TrID
17*aed3e508SAndroid Build Coastguard Worker     {0, 0, 0, 0, 1, 0, 1, 2, 1, 0},
18*aed3e508SAndroid Build Coastguard Worker     {0, 0, 0, 0, 1, 0, 4, 6, 1, 0}
19*aed3e508SAndroid Build Coastguard Worker   };
20*aed3e508SAndroid Build Coastguard Worker   EXPECT_FLOAT_EQ(DistSq(fs[0], fs[1]), 25);
21*aed3e508SAndroid Build Coastguard Worker   EXPECT_FLOAT_EQ(DistSqXY(fs[0], 4, 6), 25);
22*aed3e508SAndroid Build Coastguard Worker }
23*aed3e508SAndroid Build Coastguard Worker 
TEST(UtilTest,ListAtTest)24*aed3e508SAndroid Build Coastguard Worker TEST(UtilTest, ListAtTest) {
25*aed3e508SAndroid Build Coastguard Worker   const int kMaxElements = 3;
26*aed3e508SAndroid Build Coastguard Worker   struct element {
27*aed3e508SAndroid Build Coastguard Worker     int x;
28*aed3e508SAndroid Build Coastguard Worker   };
29*aed3e508SAndroid Build Coastguard Worker 
30*aed3e508SAndroid Build Coastguard Worker   List<element> list;
31*aed3e508SAndroid Build Coastguard Worker 
32*aed3e508SAndroid Build Coastguard Worker   for (auto i = 0; i < kMaxElements; ++i) {
33*aed3e508SAndroid Build Coastguard Worker     auto& elem = list.emplace_back();
34*aed3e508SAndroid Build Coastguard Worker     elem.x = i;
35*aed3e508SAndroid Build Coastguard Worker   }
36*aed3e508SAndroid Build Coastguard Worker   EXPECT_EQ(list.at(-1).x, list.at(list.size() - 1).x);
37*aed3e508SAndroid Build Coastguard Worker 
38*aed3e508SAndroid Build Coastguard Worker   for (auto i = 0; i < kMaxElements; ++i) {
39*aed3e508SAndroid Build Coastguard Worker     for (auto j = 0; j < kMaxElements; ++j) {
40*aed3e508SAndroid Build Coastguard Worker       if (i == j) {
41*aed3e508SAndroid Build Coastguard Worker         EXPECT_EQ(list.at(i).x, list.at(j).x);
42*aed3e508SAndroid Build Coastguard Worker         EXPECT_EQ(&(list.at(i)), &(list.at(j)));
43*aed3e508SAndroid Build Coastguard Worker       } else {
44*aed3e508SAndroid Build Coastguard Worker         EXPECT_NE(list.at(i).x, list.at(j).x);
45*aed3e508SAndroid Build Coastguard Worker         EXPECT_NE(&(list.at(i)), &(list.at(j)));
46*aed3e508SAndroid Build Coastguard Worker       }
47*aed3e508SAndroid Build Coastguard Worker     }
48*aed3e508SAndroid Build Coastguard Worker   }
49*aed3e508SAndroid Build Coastguard Worker }
50*aed3e508SAndroid Build Coastguard Worker 
TEST(UtilTest,ListAtDeathForwardTest)51*aed3e508SAndroid Build Coastguard Worker TEST(UtilTest, ListAtDeathForwardTest) {
52*aed3e508SAndroid Build Coastguard Worker   List<int> list;
53*aed3e508SAndroid Build Coastguard Worker   const int kMaxElements = 3;
54*aed3e508SAndroid Build Coastguard Worker 
55*aed3e508SAndroid Build Coastguard Worker   for (auto i = 0; i < kMaxElements; ++i) {
56*aed3e508SAndroid Build Coastguard Worker     list.emplace_back(i);
57*aed3e508SAndroid Build Coastguard Worker   }
58*aed3e508SAndroid Build Coastguard Worker   EXPECT_DEATH(list.at(kMaxElements+1), "");
59*aed3e508SAndroid Build Coastguard Worker }
60*aed3e508SAndroid Build Coastguard Worker 
TEST(UtilTest,ListAtDeathBackwardTest)61*aed3e508SAndroid Build Coastguard Worker TEST(UtilTest, ListAtDeathBackwardTest) {
62*aed3e508SAndroid Build Coastguard Worker   List<int> list;
63*aed3e508SAndroid Build Coastguard Worker   const int kMaxElements = 3;
64*aed3e508SAndroid Build Coastguard Worker 
65*aed3e508SAndroid Build Coastguard Worker   for (auto i = 0; i < kMaxElements; ++i) {
66*aed3e508SAndroid Build Coastguard Worker     list.emplace_back(i);
67*aed3e508SAndroid Build Coastguard Worker   }
68*aed3e508SAndroid Build Coastguard Worker   EXPECT_DEATH(list.at(-(kMaxElements+1)), "");
69*aed3e508SAndroid Build Coastguard Worker }
70*aed3e508SAndroid Build Coastguard Worker 
71*aed3e508SAndroid Build Coastguard Worker }  // namespace gestures
72