### Question:
ReactorDemo implements ReactiveStreamsDemo { public static List<Integer> doParallelSquares() { return Flux.range(1, 64).flatMap(v -> Mono.just(v).subscribeOn(Schedulers.parallel()).map(w -> w * w)) .doOnError(ex -> ex.printStackTrace()) .doOnComplete(() -> System.out.println("Completed")) .subscribeOn(Schedulers.immediate()).collectList().block(); }  static Flux<Long> exampleSquaresUsingGenerate(); 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 useProcessor();  }### Answer:
@Test public void testDoParallelSquares() { List result = demo.doParallelSquares() .stream().sorted().collect(Collectors.toList()); assertArrayEquals(squares.toArray(), result.toArray()); }