public boolean testOutputEvent(OutputEvent actualOutputEvent) {
        final InputOutputEventType expectedInputOutputEventType = inputOutputEventTypes.poll();
        final WordPredicate wordPredicate = outputWordPredicates.peek();
        boolean isCorrectSoFar;
        if (expectedInputOutputEventType != actualOutputEvent.getEventType() || !wordPredicate.isCorrect(actualOutputEvent.getWord())) {
            errorStringBuilder.append(makeErrorLineStringBuilder(expectedInputOutputEventType, actualOutputEvent));
            isCorrectSoFar = false;
        } else {
            errorStringBuilder.append(getActualActionStringBuilder(actualOutputEvent));
            isCorrectSoFar = true;
        }
        outputWordPredicates.poll();
        return isCorrectSoFar;
    }