### Question:
RxJavaDemo implements ReactiveStreamsDemo { public static List<Integer> doParallelSquares() { List<Integer> squares = new ArrayList<>(); Flowable.range(1, 64) .flatMap(v -> Flowable.just(v) .subscribeOn(Schedulers.computation()) .map(w -> w * w) ) .doOnError(ex -> ex.printStackTrace()) .doOnComplete(() -> System.out.println("Completed")) .blockingSubscribe(squares::add); return squares; }  static List<Integer> doSquares(); static List<Integer> doParallelSquares(); @Override Future<List<Integer>> doSquaresAsync(int count); @Override Future<String> doStringConcatAsync(int count); @Override Future<List<Integer>> doParallelSquaresAsync(int count); @Override Future<String> doParallelStringConcatAsync(int count); static void runComputation(); static void writeFile(File file); static void readFile(File file); static void readFile2(File file); static int countUsingBackpressure(long sleepMillis);  }### Answer:
@Test public void testDoParallelSquares() { List result = demo.doParallelSquares() .stream().sorted().collect(Collectors.toList()); assertArrayEquals(squares.toArray(), result.toArray()); }