Skip to content

Commit 1dc4a23

Browse files
committed
lib: add test for Trace and Sequences/range(double)
1 parent 0b8752e commit 1dc4a23

File tree

2 files changed

+99
-1
lines changed

2 files changed

+99
-1
lines changed

lib/src/test/java/jtamaro/data/SequencesTest.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,15 @@ public void testRangeFiveUntilFourStepOne() {
170170
}
171171

172172
@Test
173-
public void testRangeDoubleEmpty() {
173+
public void testRangeDoubleEmptySame() {
174174
TestUtil.assertSequenceEquals(Sequences.empty(), Sequences.range(0.0, 0.0, 0.1));
175175
}
176176

177+
@Test
178+
public void testRangeDoubleEmptyInv() {
179+
TestUtil.assertSequenceEquals(Sequences.empty(), Sequences.range(1.0, 0.0, 0.1));
180+
}
181+
177182
@Test
178183
public void testRangeDoubleOneElem() {
179184
TestUtil.assertSequenceEquals(Sequences.of(0.0), Sequences.range(0.0, 0.1, 0.1));
@@ -707,6 +712,11 @@ public void testRangeStepZero() {
707712
Sequences.range(0, 1, 0);
708713
}
709714

715+
@Test(expected = IllegalArgumentException.class)
716+
public void testRangeStepZeroDouble() {
717+
Sequences.range(0.0, 0.1, 0);
718+
}
719+
710720
@Test(expected = IllegalArgumentException.class)
711721
public void testRangeClosedStepZero() {
712722
Sequences.rangeClosed(0, 1, 0);
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package jtamaro.interaction;
2+
3+
import java.awt.event.KeyEvent;
4+
import java.util.concurrent.atomic.AtomicInteger;
5+
import jtamaro.data.Sequence;
6+
import jtamaro.data.Sequences;
7+
import org.junit.Assert;
8+
import org.junit.Test;
9+
10+
public final class TraceTest {
11+
12+
@Test
13+
public void defaultLenZero() {
14+
Assert.assertEquals(0, new Trace<>().length());
15+
}
16+
17+
@Test(expected = UnsupportedOperationException.class)
18+
public void getEmpty() {
19+
new Trace<>().get(0);
20+
}
21+
22+
@Test(expected = UnsupportedOperationException.class)
23+
public void getOutOfBounds() {
24+
new Trace<>().get(1);
25+
}
26+
27+
@Test
28+
public void getFirst() {
29+
final Trace<Character> trace = new Trace<>();
30+
trace.append(new TraceEvent.KeyboardCharEvent<>(
31+
new KeyboardChar('~'),
32+
(_, k) -> k.keyChar()
33+
));
34+
35+
Assert.assertEquals((Character) '~', trace.get(0).process(' '));
36+
}
37+
38+
@Test
39+
public void getSecond() {
40+
final Trace<String> trace = new Trace<>();
41+
trace.append(new TraceEvent.Tick<>(s -> s + s, 1L));
42+
trace.append(new TraceEvent.GlobalMouseEvent<>(
43+
"press",
44+
new Coordinate(0, 0),
45+
new MouseButton(MouseButton.PRIMARY),
46+
(s, _, _) -> s + s
47+
));
48+
trace.append(new TraceEvent.MouseEvent<>(
49+
"move",
50+
new Coordinate(10, 20),
51+
new MouseButton(MouseButton.NO_BUTTON),
52+
(c, _) -> c.toString()
53+
));
54+
55+
Assert.assertEquals("..", trace.get(1).process("."));
56+
}
57+
58+
@Test
59+
public void getEventSequence() {
60+
final Trace<String> trace = new Trace<>();
61+
final Sequence<TraceEvent<String>> events = Sequences.of(
62+
new TraceEvent.Tick<>(s -> s + s, 1L),
63+
new TraceEvent.Tick<>(s -> s + s, 2L),
64+
new TraceEvent.Tick<>(s -> s + s, 3L)
65+
);
66+
events.forEach(trace::append);
67+
68+
Assert.assertEquals(events.reverse(), trace.getEventSequence());
69+
}
70+
71+
@Test
72+
public void testListener() {
73+
final AtomicInteger counter = new AtomicInteger(0);
74+
final Trace<Double> trace = new Trace<>();
75+
final TraceListener lInc = _ -> counter.getAndIncrement();
76+
final TraceListener lDec = _ -> counter.getAndDecrement();
77+
trace.addTraceListener(lInc);
78+
trace.addTraceListener(lDec);
79+
trace.append(new TraceEvent.KeyboardKeyEvent<>(
80+
new KeyboardKey(KeyEvent.VK_1),
81+
(x, _) -> x + 1.0
82+
));
83+
trace.removeTraceListener(lDec);
84+
trace.append(new TraceEvent.Tick<>(x -> x * 2.0, 1L));
85+
86+
Assert.assertEquals(1, counter.get());
87+
}
88+
}

0 commit comments

Comments
 (0)