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