update combo unit tests
This commit is contained in:
parent
400042f799
commit
35b1a5843f
@ -7,7 +7,7 @@ from tests.keyboard_test import KeyboardTest
|
|||||||
|
|
||||||
|
|
||||||
class TestCombo(unittest.TestCase):
|
class TestCombo(unittest.TestCase):
|
||||||
def test_basic_kmk_keyboard(self):
|
def setUp(self):
|
||||||
combos = Combos()
|
combos = Combos()
|
||||||
layers = Layers()
|
layers = Layers()
|
||||||
KCMO = KC.MO(1)
|
KCMO = KC.MO(1)
|
||||||
@ -20,9 +20,10 @@ class TestCombo(unittest.TestCase):
|
|||||||
Sequence((KC.N1, KC.N2), KC.X, timeout=50),
|
Sequence((KC.N1, KC.N2), KC.X, timeout=50),
|
||||||
Sequence((KC.N3, KC.N4), KC.Z, timeout=100),
|
Sequence((KC.N3, KC.N4), KC.Z, timeout=100),
|
||||||
Sequence((KC.N1, KC.N1, KC.N1), KC.W, timeout=50),
|
Sequence((KC.N1, KC.N1, KC.N1), KC.W, timeout=50),
|
||||||
|
Sequence((KC.N3, KC.N2, KC.N1), KC.Y, timeout=50, fast_reset=False),
|
||||||
Sequence((KC.LEADER, KC.N1), KC.V, timeout=50),
|
Sequence((KC.LEADER, KC.N1), KC.V, timeout=50),
|
||||||
]
|
]
|
||||||
keyboard = KeyboardTest(
|
self.keyboard = KeyboardTest(
|
||||||
[combos, layers],
|
[combos, layers],
|
||||||
[
|
[
|
||||||
[KC.A, KC.B, KC.C, KC.D, KC.E, KCMO],
|
[KC.A, KC.B, KC.C, KC.D, KC.E, KCMO],
|
||||||
@ -31,10 +32,14 @@ class TestCombo(unittest.TestCase):
|
|||||||
debug_enabled=False,
|
debug_enabled=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
t_within = 40
|
self.t_within = 40
|
||||||
t_after = 60
|
self.t_after = 60
|
||||||
|
|
||||||
|
def test_chord(self):
|
||||||
|
keyboard = self.keyboard
|
||||||
|
t_within = self.t_within
|
||||||
|
t_after = self.t_after
|
||||||
|
|
||||||
# test combos
|
|
||||||
keyboard.test(
|
keyboard.test(
|
||||||
'match: 2 combo, within timeout',
|
'match: 2 combo, within timeout',
|
||||||
[(0, True), t_within, (1, True), (0, False), (1, False), t_after],
|
[(0, True), t_within, (1, True), (0, False), (1, False), t_after],
|
||||||
@ -42,12 +47,11 @@ class TestCombo(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
keyboard.test(
|
keyboard.test(
|
||||||
'match: 3 combo, within timout, shuffled',
|
'match: 3 combo, within timeout, shuffled',
|
||||||
[
|
[
|
||||||
(0, True),
|
(0, True),
|
||||||
(2, True),
|
(2, True),
|
||||||
(1, True),
|
(1, True),
|
||||||
t_within,
|
|
||||||
(1, False),
|
(1, False),
|
||||||
(0, False),
|
(0, False),
|
||||||
(2, False),
|
(2, False),
|
||||||
@ -66,7 +70,7 @@ class TestCombo(unittest.TestCase):
|
|||||||
t_after,
|
t_after,
|
||||||
(2, True),
|
(2, True),
|
||||||
(2, False),
|
(2, False),
|
||||||
2 * t_after,
|
t_after,
|
||||||
],
|
],
|
||||||
[{KC.X}, {}, {KC.C}, {}],
|
[{KC.X}, {}, {KC.C}, {}],
|
||||||
)
|
)
|
||||||
@ -149,7 +153,42 @@ class TestCombo(unittest.TestCase):
|
|||||||
[{KC.X}, {KC.E, KC.X}, {KC.E}, {}],
|
[{KC.X}, {KC.E, KC.X}, {KC.E}, {}],
|
||||||
)
|
)
|
||||||
|
|
||||||
#
|
keyboard.test(
|
||||||
|
'match: 2 combo, partial release and repeat',
|
||||||
|
[
|
||||||
|
(0, True),
|
||||||
|
(1, True),
|
||||||
|
t_after,
|
||||||
|
(1, False),
|
||||||
|
t_after,
|
||||||
|
(1, True),
|
||||||
|
(1, False),
|
||||||
|
(0, False),
|
||||||
|
t_after,
|
||||||
|
],
|
||||||
|
[{KC.X}, {}, {KC.X}, {}],
|
||||||
|
)
|
||||||
|
|
||||||
|
keyboard.test(
|
||||||
|
'match: 2 combo, partial release and repeat',
|
||||||
|
[
|
||||||
|
(0, True),
|
||||||
|
(2, True),
|
||||||
|
(1, True),
|
||||||
|
t_after,
|
||||||
|
(1, False),
|
||||||
|
(0, False),
|
||||||
|
t_after,
|
||||||
|
(1, True),
|
||||||
|
(0, True),
|
||||||
|
(1, False),
|
||||||
|
(0, False),
|
||||||
|
(2, False),
|
||||||
|
t_after,
|
||||||
|
],
|
||||||
|
[{KC.Y}, {}, {KC.Y}, {}],
|
||||||
|
)
|
||||||
|
|
||||||
keyboard.test(
|
keyboard.test(
|
||||||
'match: 2 combo + 2 combo, after timeout',
|
'match: 2 combo + 2 combo, after timeout',
|
||||||
[
|
[
|
||||||
@ -158,7 +197,6 @@ class TestCombo(unittest.TestCase):
|
|||||||
t_after,
|
t_after,
|
||||||
(2, True),
|
(2, True),
|
||||||
(3, True),
|
(3, True),
|
||||||
2 * t_after,
|
|
||||||
(0, False),
|
(0, False),
|
||||||
(1, False),
|
(1, False),
|
||||||
(2, False),
|
(2, False),
|
||||||
@ -176,7 +214,6 @@ class TestCombo(unittest.TestCase):
|
|||||||
t_after,
|
t_after,
|
||||||
(2, True),
|
(2, True),
|
||||||
(3, True),
|
(3, True),
|
||||||
2 * t_after,
|
|
||||||
(2, False),
|
(2, False),
|
||||||
(3, False),
|
(3, False),
|
||||||
t_after,
|
t_after,
|
||||||
@ -188,7 +225,7 @@ class TestCombo(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
keyboard.test(
|
keyboard.test(
|
||||||
'no match: partial combor, after timeout',
|
'no match: partial combo, after timeout',
|
||||||
[(0, True), (0, False), t_after],
|
[(0, True), (0, False), t_after],
|
||||||
[{KC.A}, {}],
|
[{KC.A}, {}],
|
||||||
)
|
)
|
||||||
@ -212,7 +249,6 @@ class TestCombo(unittest.TestCase):
|
|||||||
keyboard.test(
|
keyboard.test(
|
||||||
'no match: partial combo, repeated',
|
'no match: partial combo, repeated',
|
||||||
[
|
[
|
||||||
t_after,
|
|
||||||
(0, True),
|
(0, True),
|
||||||
(0, False),
|
(0, False),
|
||||||
(1, True),
|
(1, True),
|
||||||
@ -258,7 +294,7 @@ class TestCombo(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
keyboard.test(
|
keyboard.test(
|
||||||
'no match: 2 + other combo within timeout',
|
'no match: 2 combo + other within timeout',
|
||||||
[
|
[
|
||||||
(0, True),
|
(0, True),
|
||||||
t_within,
|
t_within,
|
||||||
@ -274,7 +310,7 @@ class TestCombo(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
keyboard.test(
|
keyboard.test(
|
||||||
'no match: 2 Combo after timeout',
|
'no match: 2 combo after timeout',
|
||||||
[(0, True), (0, False), t_after, (1, True), (1, False), t_after],
|
[(0, True), (0, False), t_after, (1, True), (1, False), t_after],
|
||||||
[{KC.A}, {}, {KC.B}, {}],
|
[{KC.A}, {}, {KC.B}, {}],
|
||||||
)
|
)
|
||||||
@ -313,7 +349,6 @@ class TestCombo(unittest.TestCase):
|
|||||||
[
|
[
|
||||||
(5, True),
|
(5, True),
|
||||||
(2, True),
|
(2, True),
|
||||||
t_within,
|
|
||||||
(2, False),
|
(2, False),
|
||||||
(5, False),
|
(5, False),
|
||||||
t_after,
|
t_after,
|
||||||
@ -333,8 +368,13 @@ class TestCombo(unittest.TestCase):
|
|||||||
[{KC.N1}, {}],
|
[{KC.N1}, {}],
|
||||||
)
|
)
|
||||||
|
|
||||||
# test sequences
|
def test_sequence(self):
|
||||||
|
keyboard = self.keyboard
|
||||||
|
t_within = self.t_within
|
||||||
|
t_after = self.t_after
|
||||||
|
|
||||||
keyboard.keyboard.active_layers = [1]
|
keyboard.keyboard.active_layers = [1]
|
||||||
|
|
||||||
keyboard.test(
|
keyboard.test(
|
||||||
'match: leader sequence, within timeout',
|
'match: leader sequence, within timeout',
|
||||||
[(5, True), (5, False), t_within, (0, True), (0, False), t_after],
|
[(5, True), (5, False), t_within, (0, True), (0, False), t_after],
|
||||||
@ -380,12 +420,46 @@ class TestCombo(unittest.TestCase):
|
|||||||
t_within,
|
t_within,
|
||||||
(0, True),
|
(0, True),
|
||||||
(0, False),
|
(0, False),
|
||||||
t_within,
|
|
||||||
t_after,
|
t_after,
|
||||||
],
|
],
|
||||||
[{KC.W}, {}],
|
[{KC.W}, {}],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
keyboard.test(
|
||||||
|
'match: 3 sequence hold + other, within timeout',
|
||||||
|
[
|
||||||
|
(0, True),
|
||||||
|
(0, False),
|
||||||
|
(0, True),
|
||||||
|
(0, False),
|
||||||
|
(0, True),
|
||||||
|
t_after,
|
||||||
|
(4, True),
|
||||||
|
(0, False),
|
||||||
|
(4, False),
|
||||||
|
t_after,
|
||||||
|
],
|
||||||
|
[{KC.W}, {KC.W, KC.N5}, {KC.N5}, {}],
|
||||||
|
)
|
||||||
|
|
||||||
|
keyboard.test(
|
||||||
|
'match: 3 sequence, partial release and repeat',
|
||||||
|
[
|
||||||
|
(2, True),
|
||||||
|
(1, True),
|
||||||
|
(0, True),
|
||||||
|
(0, False),
|
||||||
|
(1, False),
|
||||||
|
(1, True),
|
||||||
|
(0, True),
|
||||||
|
(1, False),
|
||||||
|
(2, False),
|
||||||
|
(0, False),
|
||||||
|
t_after,
|
||||||
|
],
|
||||||
|
[{KC.Y}, {}, {KC.Y}, {}],
|
||||||
|
)
|
||||||
|
|
||||||
keyboard.test(
|
keyboard.test(
|
||||||
'no match: 2 sequence, after timeout',
|
'no match: 2 sequence, after timeout',
|
||||||
[(0, True), (0, False), t_after, (1, True), (1, False), t_after],
|
[(0, True), (0, False), t_after, (1, True), (1, False), t_after],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user