Skip to content

Commit d243169

Browse files
committed
interim commit - need to fix interactive tests
Signed-off-by: Konstantin Läufer <laufer@cs.luc.edu>
1 parent 237a522 commit d243169

7 files changed

Lines changed: 18 additions & 14 deletions

File tree

src/main/java/edu/luc/cs/consoleapp/Main.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public static void main(final String[] args) {
3434
}
3535

3636
final var input = new Scanner(System.in).useDelimiter("(?U)[^\\p{Alpha}0-9']+");
37-
final var queue = new CircularFifoQueue<>(lastNWords);
37+
final var queue = new CircularFifoQueue<String>(lastNWords);
3838

3939
input.forEachRemaining(
4040
word -> {

src/main/java/edu/luc/cs/consoleapp/MainLeaky.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ private static class LeakyQueue {
5656
private final Queue<String> queue;
5757

5858
public LeakyQueue(final int capacity) {
59-
queue = new CircularFifoQueue<>(capacity);
59+
queue = new CircularFifoQueue<String>(capacity);
6060
}
6161

6262
private List<Queue<String>> process(final Stream<String> input) {

src/main/java/edu/luc/cs/consoleapp/MainStream.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public static void main(final String[] args) {
3535
}
3636

3737
final var input = new Scanner(System.in).useDelimiter("(?U)[^\\p{Alpha}0-9']+");
38-
final var queue = new CircularFifoQueue<>(lastNWords);
38+
final var queue = new CircularFifoQueue<String>(lastNWords);
3939

4040
input
4141
.tokens()

src/main/java/edu/luc/cs/consoleapp/MainTestable.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,15 @@ public static void main(final String[] args) {
3333
}
3434

3535
final var input = new Scanner(System.in).useDelimiter("(?U)[^\\p{Alpha}0-9']+");
36-
final var slidingQueue = new SlidingQueue(lastNWords);
37-
3836
// an observer instance that sends updates to the console
3937
final OutputObserver outputToConsole =
4038
value -> {
4139
System.out.println(value);
4240
// terminate on I/O error such as SIGPIPE
4341
return !System.out.checkError();
4442
};
43+
final var slidingQueue = new SlidingQueue(lastNWords, input.tokens(), outputToConsole);
4544

46-
slidingQueue.process(input.tokens(), outputToConsole);
45+
slidingQueue.process();
4746
}
4847
}

src/main/java/edu/luc/cs/consoleapp/SlidingQueue.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,17 @@ class SlidingQueue {
99

1010
protected final Queue<String> queue;
1111

12-
public SlidingQueue(final int queueSize) {
12+
protected final Stream<String> input;
13+
14+
protected final OutputObserver output;
15+
16+
public SlidingQueue(final int queueSize, final Stream<String> input, final OutputObserver output) {
1317
this.queue = new CircularFifoQueue<>(queueSize);
18+
this.input = input;
19+
this.output = output;
1420
}
1521

16-
public void process(final Stream<String> input, final OutputObserver output) {
22+
public void process() {
1723
input
1824
.takeWhile(
1925
word -> {

src/test/java/edu/luc/cs/consoleapp/TestSlidingQueue.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,20 @@ public class TestSlidingQueue {
1414

1515
@Test
1616
public void testSlidingWindowEmpty() {
17-
final var sut = new SlidingQueue(3);
1817
final var input = Stream.<String>empty();
19-
// an observer instance that sends updates to a buffer (list) for testing
2018
final var outputToList = new OutputToList();
21-
sut.process(input, outputToList);
19+
final var sut = new SlidingQueue(3, input, outputToList);
20+
sut.process();
2221
final var result = outputToList.result;
2322
assertTrue(result.isEmpty());
2423
}
2524

2625
@Test
2726
public void testSlidingWindowNonempty() {
28-
final var sut = new SlidingQueue(3);
2927
final var input = Stream.of("asdf", "qwer", "oiui", "zxcv");
3028
final var outputToList = new OutputToList();
31-
sut.process(input, outputToList);
29+
final var sut = new SlidingQueue(3, input, outputToList);
30+
sut.process();
3231
final var result = outputToList.result;
3332
assertEquals(4, result.size());
3433
assertEquals(List.of("asdf"), result.get(0));

src/test/java/edu/luc/cs/consoleapp/TestSlidingQueueInteractive.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public void testInteractiveBehavior() {
2626
expectedTrace.add(new InputEvent("zxcv"));
2727
expectedTrace.add(new OutputEvent("qwer", "oiui", "zxcv"));
2828
// create and exercise the SUT
29-
final var sut = new SlidingQueue(3);
29+
final var sut = new SlidingQueue(3, input,);
3030
final var actualTrace = new Tracing(sut).run(input);
3131
// make sure the expected and actual traces match
3232
assertEquals(expectedTrace, actualTrace);

0 commit comments

Comments
 (0)