Skip to content

Commit 644d19c

Browse files
committed
layout: add tests with 2 sequences intertwined
(cherry picked from commit 30343989a9f3f40c4cefd5175661e6c5a1c8477b)
1 parent 82a5c96 commit 644d19c

1 file changed

Lines changed: 36 additions & 1 deletion

File tree

src/layout.rs

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1333,7 +1333,7 @@ mod test {
13331333

13341334
#[test]
13351335
fn sequences() {
1336-
static LAYERS: Layers<5, 1, 1> = [[[
1336+
static LAYERS: Layers<6, 1, 1> = [[[
13371337
Sequence(
13381338
// Simple Ctrl-C sequence/macro
13391339
&[
@@ -1419,6 +1419,14 @@ mod test {
14191419
]
14201420
.as_slice(),
14211421
),
1422+
Sequence(
1423+
&[
1424+
SequenceEvent::Tap(X),
1425+
SequenceEvent::Tap(Y),
1426+
SequenceEvent::Tap(Z),
1427+
]
1428+
.as_slice(),
1429+
),
14221430
]]];
14231431
let mut layout = Layout::new(&LAYERS);
14241432
// Test a basic sequence
@@ -1583,5 +1591,32 @@ mod test {
15831591
layout.event(Release(0, 4));
15841592
assert_eq!(CustomEvent::NoEvent, layout.tick());
15851593
assert_keys(&[], layout.keycodes());
1594+
1595+
// Test two sequences
1596+
assert_eq!(CustomEvent::NoEvent, layout.tick());
1597+
assert_keys(&[], layout.keycodes());
1598+
layout.event(Press(0, 5));
1599+
assert_eq!(CustomEvent::NoEvent, layout.tick()); // Sequence detected & added
1600+
assert_keys(&[], layout.keycodes());
1601+
layout.event(Press(0, 4));
1602+
assert_eq!(CustomEvent::NoEvent, layout.tick()); // Tap(X)
1603+
assert_keys(&[X], layout.keycodes());
1604+
layout.event(Release(0, 5));
1605+
assert_eq!(CustomEvent::NoEvent, layout.tick()); // Release(X), Tap(Q)
1606+
assert_keys(&[Q], layout.keycodes());
1607+
layout.event(Release(0, 4));
1608+
assert_eq!(CustomEvent::NoEvent, layout.tick()); // Tap(Y), Release(Q)
1609+
assert_keys(&[Y], layout.keycodes());
1610+
assert_eq!(CustomEvent::NoEvent, layout.tick()); // Release(Y), Press(W)
1611+
assert_keys(&[W], layout.keycodes());
1612+
assert_eq!(CustomEvent::NoEvent, layout.tick()); // Press(Z), Release(W)
1613+
assert_keys(&[Z], layout.keycodes());
1614+
assert_eq!(CustomEvent::NoEvent, layout.tick()); // Release(Z), Press(E)
1615+
assert_keys(&[E], layout.keycodes());
1616+
assert_eq!(CustomEvent::NoEvent, layout.tick()); // Release(E)
1617+
assert_keys(&[], layout.keycodes());
1618+
assert_eq!(CustomEvent::NoEvent, layout.tick()); // Sequence is
1619+
// finished
1620+
assert_keys(&[], layout.keycodes());
15861621
}
15871622
}

0 commit comments

Comments
 (0)