xref: /aosp_15_r20/external/libchrome-gestures/src/filter_interpreter_unittest.cc (revision aed3e5085e770be5b69ce25295ecf6ddf906af95)
1 // Copyright 2020 The ChromiumOS Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include <string>
6 
7 #include <gtest/gtest.h>
8 
9 #include "include/filter_interpreter.h"
10 #include "include/gestures.h"
11 #include "include/unittest_util.h"
12 #include "include/util.h"
13 
14 using std::string;
15 
16 namespace gestures {
17 
18 class FilterInterpreterTest : public ::testing::Test {
19  public:
FilterInterpreterTest()20   FilterInterpreterTest() : interpreter(nullptr, nullptr, nullptr, false) {}
21 
22  protected:
23   FilterInterpreter interpreter;
24 };
25 
TEST_F(FilterInterpreterTest,DeadlineSettingNoDeadlines)26 TEST_F(FilterInterpreterTest, DeadlineSettingNoDeadlines) {
27   stime_t timeout_val =
28     interpreter.SetNextDeadlineAndReturnTimeoutVal(10000.0, NO_DEADLINE,
29                                                    NO_DEADLINE);
30   EXPECT_FLOAT_EQ(NO_DEADLINE, timeout_val);
31   EXPECT_FLOAT_EQ(NO_DEADLINE, interpreter.next_timer_deadline_);
32 }
33 
TEST_F(FilterInterpreterTest,DeadlineSettingLocalOnly)34 TEST_F(FilterInterpreterTest, DeadlineSettingLocalOnly) {
35   stime_t timeout_val =
36     interpreter.SetNextDeadlineAndReturnTimeoutVal(10000.0, 10001.0,
37                                                    NO_DEADLINE);
38   EXPECT_FLOAT_EQ(1.0, timeout_val);
39   EXPECT_FLOAT_EQ(NO_DEADLINE, interpreter.next_timer_deadline_);
40 
41   EXPECT_FALSE(interpreter.ShouldCallNextTimer(10001.00));
42 }
43 
TEST_F(FilterInterpreterTest,DeadlineSettingNextOnly)44 TEST_F(FilterInterpreterTest, DeadlineSettingNextOnly) {
45   stime_t timeout_val =
46     interpreter.SetNextDeadlineAndReturnTimeoutVal(10000.0, NO_DEADLINE, 1.0);
47   EXPECT_FLOAT_EQ(1.0, timeout_val);
48   EXPECT_FLOAT_EQ(10001.0, interpreter.next_timer_deadline_);
49 
50   EXPECT_TRUE(interpreter.ShouldCallNextTimer(NO_DEADLINE));
51 }
52 
TEST_F(FilterInterpreterTest,DeadlineSettingLocalBeforeNext)53 TEST_F(FilterInterpreterTest, DeadlineSettingLocalBeforeNext) {
54   stime_t timeout_val =
55     interpreter.SetNextDeadlineAndReturnTimeoutVal(10000.0, 10001.0, 2.0);
56   EXPECT_FLOAT_EQ(1.0, timeout_val);
57   EXPECT_FLOAT_EQ(10002.0, interpreter.next_timer_deadline_);
58 
59   EXPECT_FALSE(interpreter.ShouldCallNextTimer(10001.0));
60 }
61 
TEST_F(FilterInterpreterTest,DeadlineSettingNextBeforeLocal)62 TEST_F(FilterInterpreterTest, DeadlineSettingNextBeforeLocal) {
63   stime_t timeout_val =
64     interpreter.SetNextDeadlineAndReturnTimeoutVal(10000.0, 10002.0, 1.0);
65   EXPECT_FLOAT_EQ(1.0, timeout_val);
66   EXPECT_FLOAT_EQ(10001.0, interpreter.next_timer_deadline_);
67 
68   EXPECT_TRUE(interpreter.ShouldCallNextTimer(10002.0));
69 }
70 
71 }  // namespace gestures
72