blob: 79a5307f65981832045ad4404d49eb591c7b6d72 [file] [log] [blame]
# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from fuzzy_check import FuzzyCheck
from validators import *
from mtlib.gesture_log import ScrollGesture
def Validate(raw, events, gestures, original_values=None):
fuzzy = FuzzyCheck()
# Make sure the values always match the original ones we recorded
fuzzy.expected = [
ScrollValidator("== %d ~ %d" %
(original_values[0], original_values[0] * 0.2)),
ScrollValidator("== %d ~ %d" %
(original_values[1], original_values[1] * 0.2)),
ScrollValidator("== %d ~ %d" %
(original_values[2], original_values[2] * 0.2)),
ScrollValidator("== %d ~ %d" %
(original_values[3], original_values[3] * 0.2)),
]
fuzzy.unexpected = [
FlingValidator(">=0", merge=True),
MotionValidator("<10", merge=True),
FlingStopValidator("<10"),
]
return fuzzy.Check(gestures)
def GenerateOriginalValues(raw, events, gestures):
# Sanity check
fuzzy = FuzzyCheck()
fuzzy.expected = [
ScrollValidator("> 50 ~ 50"),
ScrollValidator("> 50 ~ 50"),
ScrollValidator("> 200 ~ 200"),
ScrollValidator("> 200 ~ 200"),
]
fuzzy.unexpected = [
FlingValidator(">=0", merge=True),
MotionValidator("<10", merge=True),
FlingStopValidator("<20"),
]
ret = fuzzy.Check(gestures)
if ret[0]:
# Sanity check passed; generate original values
original_values = []
for gesture in gestures:
if isinstance(gesture, ScrollGesture):
original_values.append(gesture.Distance())
if len(original_values) != 4:
return (False, "Incorrect number of scrolls", None)
ret = ret + tuple([original_values])
else:
ret = ret + (None,)
return ret
def UserInstructions():
return "Using 2 fingers, scroll in these directions: up, right, down, left"
def InstructRobot(robot):
robot.Line((0.5, 0.1, -45, 20), (0.5, 0.5, -45, 20),
(1, 0, 1, 0), 70, "basic", 0.5)
robot.Line((0.5, 0.5, -45, 20), (0.5, 0.1, -45, 20),
(1, 0, 1, 0), 70, "basic", 0.5)
robot.Line((0.2, 0.3, -45, 20), (0.8, 0.3, -45, 20),
(1, 0, 1, 0), 70, "basic", 0.5)
robot.Line((0.8, 0.3, -45, 20), (0.2, 0.3, -45, 20),
(1, 0, 1, 0), 70, "basic", 0.5)