1 /*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15 #include "gtest/gtest.h"
16 #include "test/unittest/core/gestures/gestures_common_test_ng.h"
17 #include "test/unittest/core/gestures/pan_recognizer_test_utils.h"
18
19 #include "core/components_ng/gestures/recognizers/gesture_recognizer.h"
20 #include "core/event/ace_events.h"
21 #include "core/gestures/gesture_info.h"
22
23 using namespace testing;
24 using namespace testing::ext;
25
26 namespace OHOS::Ace::NG {
27 namespace {
28 struct PanRecognizerDistanceTestCase {
29 double originDistance_ = 0.0;
30 SourceTool downSourceTool = SourceTool::UNKNOWN;
31 double moveDistance = 0.0;
32 PanRecognizer::GestureAcceptResult expectedState = PanRecognizer::GestureAcceptResult::ACCEPT;
PanRecognizerDistanceTestCaseOHOS::Ace::NG::__anon481fae240111::PanRecognizerDistanceTestCase33 PanRecognizerDistanceTestCase(double originDistance, SourceTool downSourceTool, double moveDistance,
34 PanRecognizer::GestureAcceptResult expectedState)
35 : originDistance_(originDistance), downSourceTool(downSourceTool), moveDistance(moveDistance),
36 expectedState(expectedState)
37 {}
38 };
39
40 struct PanRecognizerDistanceMapTestCase : public PanRecognizerDistanceTestCase {
41 SourceTool createSourceTool = SourceTool::UNKNOWN;
PanRecognizerDistanceMapTestCaseOHOS::Ace::NG::__anon481fae240111::PanRecognizerDistanceMapTestCase42 PanRecognizerDistanceMapTestCase(double originDistance, SourceTool downSourceTool, double moveDistance,
43 PanRecognizer::GestureAcceptResult expectedState, SourceTool createSourceTool)
44 : PanRecognizerDistanceTestCase(originDistance, downSourceTool, moveDistance, expectedState),
45 createSourceTool(createSourceTool)
46 {}
47 };
48
49 const std::vector<PanRecognizerDistanceTestCase> PAN_RECOGNIZER_DISTANCE_TEST_CASES = {
50 PanRecognizerDistanceTestCase(-1, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::DETECTING),
51 PanRecognizerDistanceTestCase(-1, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::DETECTING),
52 PanRecognizerDistanceTestCase(-1, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::ACCEPT),
53 PanRecognizerDistanceTestCase(-1, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::DETECTING),
54 PanRecognizerDistanceTestCase(-1, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::DETECTING),
55 PanRecognizerDistanceTestCase(-1, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::ACCEPT),
56 PanRecognizerDistanceTestCase(-1, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::DETECTING),
57 PanRecognizerDistanceTestCase(-1, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::DETECTING),
58 PanRecognizerDistanceTestCase(-1, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::ACCEPT),
59
60 PanRecognizerDistanceTestCase(0, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::ACCEPT),
61 PanRecognizerDistanceTestCase(0, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::ACCEPT),
62 PanRecognizerDistanceTestCase(0, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::ACCEPT),
63 PanRecognizerDistanceTestCase(0, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::ACCEPT),
64 PanRecognizerDistanceTestCase(0, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::ACCEPT),
65 PanRecognizerDistanceTestCase(0, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::ACCEPT),
66 PanRecognizerDistanceTestCase(0, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::ACCEPT),
67 PanRecognizerDistanceTestCase(0, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::ACCEPT),
68 PanRecognizerDistanceTestCase(0, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::ACCEPT),
69
70 PanRecognizerDistanceTestCase(1, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::DETECTING),
71 PanRecognizerDistanceTestCase(1, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::ACCEPT),
72 PanRecognizerDistanceTestCase(1, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::ACCEPT),
73 PanRecognizerDistanceTestCase(1, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::DETECTING),
74 PanRecognizerDistanceTestCase(1, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::ACCEPT),
75 PanRecognizerDistanceTestCase(1, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::ACCEPT),
76 PanRecognizerDistanceTestCase(1, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::DETECTING),
77 PanRecognizerDistanceTestCase(1, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::ACCEPT),
78 PanRecognizerDistanceTestCase(1, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::ACCEPT),
79 };
80
81 const std::vector<PanRecognizerDistanceMapTestCase> PAN_RECOGNIZER_DISTANCE_MAP_UNKNOWN_TEST_CASES = {
82 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
83 SourceTool::UNKNOWN),
84 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
85 SourceTool::UNKNOWN),
86 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
87 SourceTool::UNKNOWN),
88 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
89 SourceTool::UNKNOWN),
90 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
91 SourceTool::UNKNOWN),
92 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::DETECTING,
93 SourceTool::UNKNOWN),
94 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::DETECTING,
95 SourceTool::UNKNOWN),
96 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
97 SourceTool::UNKNOWN),
98 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
99 SourceTool::UNKNOWN),
100 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
101 SourceTool::UNKNOWN),
102 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
103 SourceTool::UNKNOWN),
104 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
105 SourceTool::UNKNOWN),
106 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::DETECTING,
107 SourceTool::UNKNOWN),
108 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
109 SourceTool::UNKNOWN),
110 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
111 SourceTool::UNKNOWN),
112 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 0, PanRecognizer::GestureAcceptResult::DETECTING,
113 SourceTool::UNKNOWN),
114 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 1, PanRecognizer::GestureAcceptResult::DETECTING,
115 SourceTool::UNKNOWN),
116 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
117 SourceTool::UNKNOWN),
118 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
119 SourceTool::UNKNOWN),
120 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
121 SourceTool::UNKNOWN),
122
123 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::ACCEPT,
124 SourceTool::UNKNOWN),
125 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::ACCEPT,
126 SourceTool::UNKNOWN),
127 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
128 SourceTool::UNKNOWN),
129 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
130 SourceTool::UNKNOWN),
131 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
132 SourceTool::UNKNOWN),
133 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::ACCEPT,
134 SourceTool::UNKNOWN),
135 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::ACCEPT,
136 SourceTool::UNKNOWN),
137 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
138 SourceTool::UNKNOWN),
139 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
140 SourceTool::UNKNOWN),
141 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
142 SourceTool::UNKNOWN),
143 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
144 SourceTool::UNKNOWN),
145 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
146 SourceTool::UNKNOWN),
147 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::DETECTING,
148 SourceTool::UNKNOWN),
149 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
150 SourceTool::UNKNOWN),
151 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
152 SourceTool::UNKNOWN),
153 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 0, PanRecognizer::GestureAcceptResult::ACCEPT,
154 SourceTool::UNKNOWN),
155 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 1, PanRecognizer::GestureAcceptResult::ACCEPT,
156 SourceTool::UNKNOWN),
157 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
158 SourceTool::UNKNOWN),
159 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
160 SourceTool::UNKNOWN),
161 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
162 SourceTool::UNKNOWN),
163
164 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
165 SourceTool::UNKNOWN),
166 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::ACCEPT,
167 SourceTool::UNKNOWN),
168 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
169 SourceTool::UNKNOWN),
170 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
171 SourceTool::UNKNOWN),
172 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
173 SourceTool::UNKNOWN),
174 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::DETECTING,
175 SourceTool::UNKNOWN),
176 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::ACCEPT,
177 SourceTool::UNKNOWN),
178 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
179 SourceTool::UNKNOWN),
180 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
181 SourceTool::UNKNOWN),
182 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
183 SourceTool::UNKNOWN),
184 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
185 SourceTool::UNKNOWN),
186 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
187 SourceTool::UNKNOWN),
188 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::DETECTING,
189 SourceTool::UNKNOWN),
190 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
191 SourceTool::UNKNOWN),
192 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
193 SourceTool::UNKNOWN),
194 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 0, PanRecognizer::GestureAcceptResult::DETECTING,
195 SourceTool::UNKNOWN),
196 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 1, PanRecognizer::GestureAcceptResult::ACCEPT,
197 SourceTool::UNKNOWN),
198 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
199 SourceTool::UNKNOWN),
200 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
201 SourceTool::UNKNOWN),
202 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
203 SourceTool::UNKNOWN),
204
205 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
206 SourceTool::UNKNOWN),
207 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
208 SourceTool::UNKNOWN),
209 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::DETECTING,
210 SourceTool::UNKNOWN),
211 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 8, PanRecognizer::GestureAcceptResult::DETECTING,
212 SourceTool::UNKNOWN),
213 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
214 SourceTool::UNKNOWN),
215 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::DETECTING,
216 SourceTool::UNKNOWN),
217 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::DETECTING,
218 SourceTool::UNKNOWN),
219 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::DETECTING,
220 SourceTool::UNKNOWN),
221 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 8, PanRecognizer::GestureAcceptResult::DETECTING,
222 SourceTool::UNKNOWN),
223 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
224 SourceTool::UNKNOWN),
225 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
226 SourceTool::UNKNOWN),
227 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
228 SourceTool::UNKNOWN),
229 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::DETECTING,
230 SourceTool::UNKNOWN),
231 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
232 SourceTool::UNKNOWN),
233 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
234 SourceTool::UNKNOWN),
235 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 0, PanRecognizer::GestureAcceptResult::DETECTING,
236 SourceTool::UNKNOWN),
237 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 1, PanRecognizer::GestureAcceptResult::DETECTING,
238 SourceTool::UNKNOWN),
239 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 5, PanRecognizer::GestureAcceptResult::DETECTING,
240 SourceTool::UNKNOWN),
241 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 8, PanRecognizer::GestureAcceptResult::DETECTING,
242 SourceTool::UNKNOWN),
243 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
244 SourceTool::UNKNOWN),
245 };
246
247 const std::vector<PanRecognizerDistanceMapTestCase> PAN_RECOGNIZER_DISTANCE_MAP_FINGER_TEST_CASES = {
248 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
249 SourceTool::FINGER),
250 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
251 SourceTool::FINGER),
252 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
253 SourceTool::FINGER),
254 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
255 SourceTool::FINGER),
256 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
257 SourceTool::FINGER),
258 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::DETECTING,
259 SourceTool::FINGER),
260 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::DETECTING,
261 SourceTool::FINGER),
262 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
263 SourceTool::FINGER),
264 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
265 SourceTool::FINGER),
266 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
267 SourceTool::FINGER),
268 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
269 SourceTool::FINGER),
270 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
271 SourceTool::FINGER),
272 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::DETECTING,
273 SourceTool::FINGER),
274 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
275 SourceTool::FINGER),
276 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
277 SourceTool::FINGER),
278 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 0, PanRecognizer::GestureAcceptResult::DETECTING,
279 SourceTool::FINGER),
280 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 1, PanRecognizer::GestureAcceptResult::DETECTING,
281 SourceTool::FINGER),
282 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
283 SourceTool::FINGER),
284 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
285 SourceTool::FINGER),
286 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
287 SourceTool::FINGER),
288
289 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
290 SourceTool::FINGER),
291 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
292 SourceTool::FINGER),
293 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
294 SourceTool::FINGER),
295 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
296 SourceTool::FINGER),
297 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
298 SourceTool::FINGER),
299 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::ACCEPT,
300 SourceTool::FINGER),
301 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::ACCEPT,
302 SourceTool::FINGER),
303 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
304 SourceTool::FINGER),
305 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
306 SourceTool::FINGER),
307 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
308 SourceTool::FINGER),
309 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
310 SourceTool::FINGER),
311 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
312 SourceTool::FINGER),
313 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::DETECTING,
314 SourceTool::FINGER),
315 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
316 SourceTool::FINGER),
317 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
318 SourceTool::FINGER),
319 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 0, PanRecognizer::GestureAcceptResult::DETECTING,
320 SourceTool::FINGER),
321 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 1, PanRecognizer::GestureAcceptResult::DETECTING,
322 SourceTool::FINGER),
323 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
324 SourceTool::FINGER),
325 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
326 SourceTool::FINGER),
327 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
328 SourceTool::FINGER),
329
330 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
331 SourceTool::FINGER),
332 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
333 SourceTool::FINGER),
334 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
335 SourceTool::FINGER),
336 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
337 SourceTool::FINGER),
338 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
339 SourceTool::FINGER),
340 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::DETECTING,
341 SourceTool::FINGER),
342 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::ACCEPT,
343 SourceTool::FINGER),
344 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
345 SourceTool::FINGER),
346 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
347 SourceTool::FINGER),
348 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
349 SourceTool::FINGER),
350 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
351 SourceTool::FINGER),
352 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
353 SourceTool::FINGER),
354 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::DETECTING,
355 SourceTool::FINGER),
356 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
357 SourceTool::FINGER),
358 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
359 SourceTool::FINGER),
360 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 0, PanRecognizer::GestureAcceptResult::DETECTING,
361 SourceTool::FINGER),
362 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 1, PanRecognizer::GestureAcceptResult::DETECTING,
363 SourceTool::FINGER),
364 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
365 SourceTool::FINGER),
366 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
367 SourceTool::FINGER),
368 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
369 SourceTool::FINGER),
370
371 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
372 SourceTool::FINGER),
373 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
374 SourceTool::FINGER),
375 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
376 SourceTool::FINGER),
377 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
378 SourceTool::FINGER),
379 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
380 SourceTool::FINGER),
381 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::DETECTING,
382 SourceTool::FINGER),
383 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::DETECTING,
384 SourceTool::FINGER),
385 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::DETECTING,
386 SourceTool::FINGER),
387 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 8, PanRecognizer::GestureAcceptResult::DETECTING,
388 SourceTool::FINGER),
389 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
390 SourceTool::FINGER),
391 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
392 SourceTool::FINGER),
393 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
394 SourceTool::FINGER),
395 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::DETECTING,
396 SourceTool::FINGER),
397 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
398 SourceTool::FINGER),
399 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
400 SourceTool::FINGER),
401 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 0, PanRecognizer::GestureAcceptResult::DETECTING,
402 SourceTool::FINGER),
403 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 1, PanRecognizer::GestureAcceptResult::DETECTING,
404 SourceTool::FINGER),
405 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
406 SourceTool::FINGER),
407 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
408 SourceTool::FINGER),
409 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
410 SourceTool::FINGER),
411 };
412
413 const std::vector<PanRecognizerDistanceMapTestCase> PAN_RECOGNIZER_DISTANCE_MAP_PEN_TEST_CASES = {
414 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
415 SourceTool::PEN),
416 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
417 SourceTool::PEN),
418 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
419 SourceTool::PEN),
420 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
421 SourceTool::PEN),
422 PanRecognizerDistanceMapTestCase(-1, SourceTool::UNKNOWN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
423 SourceTool::PEN),
424 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::DETECTING,
425 SourceTool::PEN),
426 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::DETECTING,
427 SourceTool::PEN),
428 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
429 SourceTool::PEN),
430 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
431 SourceTool::PEN),
432 PanRecognizerDistanceMapTestCase(-1, SourceTool::FINGER, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
433 SourceTool::PEN),
434 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
435 SourceTool::PEN),
436 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
437 SourceTool::PEN),
438 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::DETECTING,
439 SourceTool::PEN),
440 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
441 SourceTool::PEN),
442 PanRecognizerDistanceMapTestCase(-1, SourceTool::PEN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
443 SourceTool::PEN),
444 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 0, PanRecognizer::GestureAcceptResult::DETECTING,
445 SourceTool::PEN),
446 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 1, PanRecognizer::GestureAcceptResult::DETECTING,
447 SourceTool::PEN),
448 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
449 SourceTool::PEN),
450 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
451 SourceTool::PEN),
452 PanRecognizerDistanceMapTestCase(-1, SourceTool::TOUCHPAD, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
453 SourceTool::PEN),
454
455 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
456 SourceTool::PEN),
457 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
458 SourceTool::PEN),
459 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
460 SourceTool::PEN),
461 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
462 SourceTool::PEN),
463 PanRecognizerDistanceMapTestCase(0, SourceTool::UNKNOWN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
464 SourceTool::PEN),
465 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::DETECTING,
466 SourceTool::PEN),
467 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::DETECTING,
468 SourceTool::PEN),
469 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
470 SourceTool::PEN),
471 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
472 SourceTool::PEN),
473 PanRecognizerDistanceMapTestCase(0, SourceTool::FINGER, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
474 SourceTool::PEN),
475 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
476 SourceTool::PEN),
477 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
478 SourceTool::PEN),
479 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::DETECTING,
480 SourceTool::PEN),
481 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
482 SourceTool::PEN),
483 PanRecognizerDistanceMapTestCase(0, SourceTool::PEN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
484 SourceTool::PEN),
485 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 0, PanRecognizer::GestureAcceptResult::DETECTING,
486 SourceTool::PEN),
487 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 1, PanRecognizer::GestureAcceptResult::DETECTING,
488 SourceTool::PEN),
489 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
490 SourceTool::PEN),
491 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
492 SourceTool::PEN),
493 PanRecognizerDistanceMapTestCase(0, SourceTool::TOUCHPAD, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
494 SourceTool::PEN),
495
496 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
497 SourceTool::PEN),
498 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
499 SourceTool::PEN),
500 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
501 SourceTool::PEN),
502 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
503 SourceTool::PEN),
504 PanRecognizerDistanceMapTestCase(1, SourceTool::UNKNOWN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
505 SourceTool::PEN),
506 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::DETECTING,
507 SourceTool::PEN),
508 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::DETECTING,
509 SourceTool::PEN),
510 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
511 SourceTool::PEN),
512 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
513 SourceTool::PEN),
514 PanRecognizerDistanceMapTestCase(1, SourceTool::FINGER, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
515 SourceTool::PEN),
516 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
517 SourceTool::PEN),
518 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::ACCEPT,
519 SourceTool::PEN),
520 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
521 SourceTool::PEN),
522 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
523 SourceTool::PEN),
524 PanRecognizerDistanceMapTestCase(1, SourceTool::PEN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
525 SourceTool::PEN),
526 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 0, PanRecognizer::GestureAcceptResult::DETECTING,
527 SourceTool::PEN),
528 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 1, PanRecognizer::GestureAcceptResult::DETECTING,
529 SourceTool::PEN),
530 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
531 SourceTool::PEN),
532 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
533 SourceTool::PEN),
534 PanRecognizerDistanceMapTestCase(1, SourceTool::TOUCHPAD, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
535 SourceTool::PEN),
536
537 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
538 SourceTool::PEN),
539 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
540 SourceTool::PEN),
541 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
542 SourceTool::PEN),
543 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
544 SourceTool::PEN),
545 PanRecognizerDistanceMapTestCase(100, SourceTool::UNKNOWN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
546 SourceTool::PEN),
547 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 0, PanRecognizer::GestureAcceptResult::DETECTING,
548 SourceTool::PEN),
549 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 1, PanRecognizer::GestureAcceptResult::DETECTING,
550 SourceTool::PEN),
551 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
552 SourceTool::PEN),
553 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
554 SourceTool::PEN),
555 PanRecognizerDistanceMapTestCase(100, SourceTool::FINGER, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
556 SourceTool::PEN),
557 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 0, PanRecognizer::GestureAcceptResult::DETECTING,
558 SourceTool::PEN),
559 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 1, PanRecognizer::GestureAcceptResult::DETECTING,
560 SourceTool::PEN),
561 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 5, PanRecognizer::GestureAcceptResult::DETECTING,
562 SourceTool::PEN),
563 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 8, PanRecognizer::GestureAcceptResult::DETECTING,
564 SourceTool::PEN),
565 PanRecognizerDistanceMapTestCase(100, SourceTool::PEN, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
566 SourceTool::PEN),
567 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 0, PanRecognizer::GestureAcceptResult::DETECTING,
568 SourceTool::PEN),
569 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 1, PanRecognizer::GestureAcceptResult::DETECTING,
570 SourceTool::PEN),
571 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 5, PanRecognizer::GestureAcceptResult::ACCEPT,
572 SourceTool::PEN),
573 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 8, PanRecognizer::GestureAcceptResult::ACCEPT,
574 SourceTool::PEN),
575 PanRecognizerDistanceMapTestCase(100, SourceTool::TOUCHPAD, 100, PanRecognizer::GestureAcceptResult::ACCEPT,
576 SourceTool::PEN),
577 };
578 } // namespace
579
580 class PanRecognizerDistanceTestNg : public GesturesCommonTestNg {
581 public:
582 static void SetUpTestSuite();
583 static void TearDownTestSuite();
584 };
585
SetUpTestSuite()586 void PanRecognizerDistanceTestNg::SetUpTestSuite()
587 {
588 MockPipelineContext::SetUp();
589 }
590
TearDownTestSuite()591 void PanRecognizerDistanceTestNg::TearDownTestSuite()
592 {
593 MockPipelineContext::TearDown();
594 }
595
596 /**
597 * @tc.name: PanRecognizerPanDistanceTest001
598 * @tc.desc: Test PanRecognizer: APITest
599 * @tc.type: FUNC
600 */
601 HWTEST_F(PanRecognizerDistanceTestNg, PanRecognizerPanDistanceTest001, TestSize.Level1)
602 {
603 int32_t caseNum = 0;
604 for (const auto &testCase : PAN_RECOGNIZER_DISTANCE_TEST_CASES) {
605 /**
606 * @tc.steps: step1. create PanRecognizer.
607 */
608 PanDirection panDirection;
609 panDirection.type = PanDirection::ALL;
610 RefPtr<PanRecognizer> panRecognizer =
611 AceType::MakeRefPtr<PanRecognizer>(1, panDirection, testCase.originDistance_);
612 ASSERT_NE(panRecognizer, nullptr);
613 panRecognizer->ResetDistanceMap();
614 /**
615 * @tc.steps: step2. DispatchTouchEvent.
616 * @tc.expected: step2. refereeState_ equals.
617 */
618 Dimension dimension = Dimension(testCase.moveDistance, DimensionUnit::VP);
619 panRecognizer->averageDistance_ = Offset(0, dimension.ConvertToPx());
620 panRecognizer->deviceTool_ = testCase.downSourceTool;
621 PanRecognizer::GestureAcceptResult result;
622 result = panRecognizer->IsPanGestureAccept();
623 EXPECT_EQ(result, testCase.expectedState);
624 caseNum++;
625 }
626 }
627
628 /**
629 * @tc.name: PanRecognizerPanDistanceMapTest001
630 * @tc.desc: Test PanRecognizer: APITest
631 * @tc.type: FUNC
632 */
633 HWTEST_F(PanRecognizerDistanceTestNg, PanRecognizerPanDistanceMapTest001, TestSize.Level1)
634 {
635 int32_t caseNum = 0;
636 for (const auto &testCase : PAN_RECOGNIZER_DISTANCE_MAP_UNKNOWN_TEST_CASES) {
637 PanDistanceMap distanceMap = { { SourceTool::UNKNOWN, DEFAULT_PAN_DISTANCE.ConvertToPx() },
638 { SourceTool::PEN, DEFAULT_PEN_PAN_DISTANCE.ConvertToPx() } };
639 distanceMap[testCase.createSourceTool] = testCase.originDistance_;
640 /**
641 * @tc.steps: step1. create PanRecognizer.
642 */
643 PanDirection panDirection;
644 panDirection.type = PanDirection::ALL;
645 RefPtr<PanRecognizer> panRecognizer = AceType::MakeRefPtr<PanRecognizer>(1, panDirection, distanceMap);
646 ASSERT_NE(panRecognizer, nullptr);
647 panRecognizer->ResetDistanceMap();
648 /**
649 * @tc.steps: step2. DispatchTouchEvent.
650 * @tc.expected: step2. refereeState_ equals.
651 */
652
653 Dimension dimension = Dimension(testCase.moveDistance, DimensionUnit::VP);
654 panRecognizer->averageDistance_ = Offset(0, dimension.ConvertToPx());
655 panRecognizer->deviceTool_ = testCase.downSourceTool;
656 PanRecognizer::GestureAcceptResult result;
657 result = panRecognizer->IsPanGestureAccept();
658 EXPECT_EQ(result, testCase.expectedState);
659 caseNum++;
660 }
661 }
662
663 /**
664 * @tc.name: PanRecognizerPanDistanceMapTest002
665 * @tc.desc: Test PanRecognizer: APITest
666 * @tc.type: FUNC
667 */
668 HWTEST_F(PanRecognizerDistanceTestNg, PanRecognizerPanDistanceMapTest002, TestSize.Level1)
669 {
670 int32_t caseNum = 0;
671 for (const auto &testCase : PAN_RECOGNIZER_DISTANCE_MAP_FINGER_TEST_CASES) {
672 PanDistanceMap distanceMap = { { SourceTool::UNKNOWN, DEFAULT_PAN_DISTANCE.ConvertToPx() },
673 { SourceTool::PEN, DEFAULT_PEN_PAN_DISTANCE.ConvertToPx() } };
674 distanceMap[testCase.createSourceTool] = testCase.originDistance_;
675 /**
676 * @tc.steps: step1. create PanRecognizer.
677 */
678 PanDirection panDirection;
679 panDirection.type = PanDirection::ALL;
680 RefPtr<PanRecognizer> panRecognizer = AceType::MakeRefPtr<PanRecognizer>(1, panDirection, distanceMap);
681 ASSERT_NE(panRecognizer, nullptr);
682 panRecognizer->ResetDistanceMap();
683 /**
684 * @tc.steps: step2. DispatchTouchEvent.
685 * @tc.expected: step2. refereeState_ equals.
686 */
687 Dimension dimension = Dimension(testCase.moveDistance, DimensionUnit::VP);
688 panRecognizer->averageDistance_ = Offset(0, dimension.ConvertToPx());
689 panRecognizer->deviceTool_ = testCase.downSourceTool;
690 PanRecognizer::GestureAcceptResult result;
691 result = panRecognizer->IsPanGestureAccept();
692 EXPECT_EQ(result, testCase.expectedState);
693 caseNum++;
694 }
695 }
696
697 /**
698 * @tc.name: PanRecognizerPanDistanceMapTest003
699 * @tc.desc: Test PanRecognizer: APITest
700 * @tc.type: FUNC
701 */
702 HWTEST_F(PanRecognizerDistanceTestNg, PanRecognizerPanDistanceMapTest003, TestSize.Level1)
703 {
704 int32_t caseNum = 0;
705 for (const auto &testCase : PAN_RECOGNIZER_DISTANCE_MAP_PEN_TEST_CASES) {
706 PanDistanceMap distanceMap = { { SourceTool::UNKNOWN, DEFAULT_PAN_DISTANCE.ConvertToPx() },
707 { SourceTool::PEN, DEFAULT_PEN_PAN_DISTANCE.ConvertToPx() } };
708 distanceMap[testCase.createSourceTool] = testCase.originDistance_ > 0 ?
709 testCase.originDistance_ : DEFAULT_PEN_PAN_DISTANCE.ConvertToPx();
710 /**
711 * @tc.steps: step1. create PanRecognizer.
712 */
713 PanDirection panDirection;
714 panDirection.type = PanDirection::ALL;
715 RefPtr<PanRecognizer> panRecognizer = AceType::MakeRefPtr<PanRecognizer>(1, panDirection, distanceMap);
716 ASSERT_NE(panRecognizer, nullptr);
717 panRecognizer->ResetDistanceMap();
718 /**
719 * @tc.steps: step2. DispatchTouchEvent.
720 * @tc.expected: step2. refereeState_ equals.
721 */
722 Dimension dimension = Dimension(testCase.moveDistance, DimensionUnit::VP);
723 panRecognizer->averageDistance_ = Offset(0, dimension.ConvertToPx());
724 panRecognizer->deviceTool_ = testCase.downSourceTool;
725 PanRecognizer::GestureAcceptResult result;
726 result = panRecognizer->IsPanGestureAccept();
727 EXPECT_EQ(result, testCase.expectedState);
728 caseNum++;
729 }
730 }
731 /**
732 * @tc.name: PanRecognizerPanDistanceMapTest004
733 * @tc.desc: Test GestureEventHub SetPanEvent Distance
734 * @tc.type: FUNC
735 */
736 HWTEST_F(PanRecognizerDistanceTestNg, PanRecognizerPanDistanceMapTest004, TestSize.Level1)
737 {
738 /**
739 * @tc.steps: step1. create GestureEventHub.
740 */
741 auto frameNode = FrameNode::CreateFrameNode("myButton", 100, AceType::MakeRefPtr<Pattern>());
742 auto gestureEventHub = frameNode->GetOrCreateGestureEventHub();
743 /**
744 * @tc.steps: step2. SetPanEvent EVENT_PAN_GESTURE_LEFT|EVENT_PAN_GESTURE_UP
745 */
746 PanDirection panDirection;
747 panDirection.type = PanDirection::RIGHT | PanDirection::UP;
748 auto panEvent = AceType::MakeRefPtr<PanEvent>(nullptr, nullptr, nullptr, nullptr);
749 PanDistanceMap distanceMap = { { SourceTool::UNKNOWN, 1 } };
750 gestureEventHub->AddPanEvent(panEvent, panDirection, 1, distanceMap);
751 /**
752 * @tc.steps: step3. Calculate pan recognizer distance.
753 */
754 auto panEventActuator = gestureEventHub->panEventActuator_;
755 ASSERT_NE(panEventActuator, nullptr);
756 auto panRecognizer = panEventActuator->panRecognizer_;
757 ASSERT_NE(panRecognizer, nullptr);
758 EXPECT_EQ(panRecognizer->GetDistance(), 1);
759 }
760 } // namespace OHOS::Ace::NG