Esempio n. 1
0
 def test_replace_tap(self):
     self.assertEqual(replace_with_tap([KeyDown(KC_A)]), [KeyDown(KC_A)])
     self.assertEqual(replace_with_tap([KeyDown(KC_A),
                                        KeyUp(KC_A)]), [KeyTap(KC_A)])
     self.assertEqual(replace_with_tap([KeyUp(KC_A),
                                        KeyDown(KC_A)]),
                      [KeyUp(KC_A), KeyDown(KC_A)])
Esempio n. 2
0
    def test_remove_repeats(self):
        self.assertEqual(remove_repeats([KeyDown(KC_A),
                                         KeyDown(KC_A)]), [KeyDown(KC_A)])
        self.assertEqual(
            remove_repeats([
                KeyDown(KC_A),
                KeyDown(KC_B),
                KeyDown(KC_B),
                KeyDown(KC_C),
                KeyDown(KC_C)
            ]), [KeyDown(KC_A), KeyDown(KC_B),
                 KeyDown(KC_C)])

        # don't remove repeated taps
        self.assertEqual(remove_repeats([KeyTap(KC_A),
                                         KeyTap(KC_A)]),
                         [KeyTap(KC_A), KeyTap(KC_A)])
Esempio n. 3
0
def replace_with_tap(sequence):
    """ Replaces a sequence of Down/Up with a Tap """
    out = []
    sequence = sequence[:]
    while len(sequence) > 0:
        if len(sequence) >= 2 and isinstance(sequence[0], KeyDown) and isinstance(sequence[1], KeyUp) and \
                sequence[0].keycode == sequence[1].keycode:
            key = KeyTap(sequence[0].keycode)
            out.append(key)
            sequence.pop(0)
            sequence.pop(0)
        else:
            out.append(sequence[0])
            sequence.pop(0)
    return out
Esempio n. 4
0
 def test_replace_string(self):
     self.assertEqual(replace_with_string([KeyTap(KC_A),
                                           KeyTap(KC_B)]),
                      [KeyString("ab")])