diff --git a/core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/Article.java b/core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/Article.java similarity index 95% rename from core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/Article.java rename to core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/Article.java index 3cd2a00da1..7b9ef00078 100644 --- a/core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/Article.java +++ b/core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/Article.java @@ -1,4 +1,4 @@ -package com.baeldung.spliteratorAPI; +package com.baeldung.spliterator; import java.util.List; diff --git a/core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/Author.java b/core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/Author.java similarity index 94% rename from core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/Author.java rename to core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/Author.java index 18bbbd073e..ae204657b5 100644 --- a/core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/Author.java +++ b/core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/Author.java @@ -1,4 +1,4 @@ -package com.baeldung.spliteratorAPI; +package com.baeldung.spliterator; public class Author { private String name; diff --git a/core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/Executor.java b/core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/Executor.java similarity index 93% rename from core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/Executor.java rename to core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/Executor.java index dd124948d8..225925dd9b 100644 --- a/core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/Executor.java +++ b/core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/Executor.java @@ -1,4 +1,4 @@ -package com.baeldung.spliteratorAPI; +package com.baeldung.spliterator; import java.util.List; import java.util.stream.Collectors; diff --git a/core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/RelatedAuthorCounter.java b/core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/RelatedAuthorCounter.java similarity index 95% rename from core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/RelatedAuthorCounter.java rename to core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/RelatedAuthorCounter.java index 282c0be727..8800eac55b 100644 --- a/core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/RelatedAuthorCounter.java +++ b/core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/RelatedAuthorCounter.java @@ -1,4 +1,4 @@ -package com.baeldung.spliteratorAPI; +package com.baeldung.spliterator; public class RelatedAuthorCounter { private final int counter; diff --git a/core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/RelatedAuthorSpliterator.java b/core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/RelatedAuthorSpliterator.java similarity index 96% rename from core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/RelatedAuthorSpliterator.java rename to core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/RelatedAuthorSpliterator.java index 094638da37..93c83b8127 100644 --- a/core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/RelatedAuthorSpliterator.java +++ b/core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/RelatedAuthorSpliterator.java @@ -1,4 +1,4 @@ -package com.baeldung.spliteratorAPI; +package com.baeldung.spliterator; import java.util.List; import java.util.Spliterator; diff --git a/core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/Task.java b/core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/Task.java similarity index 94% rename from core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/Task.java rename to core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/Task.java index 06a124cc98..74dc467edd 100644 --- a/core-java-modules/core-java-8/src/main/java/com/baeldung/spliteratorAPI/Task.java +++ b/core-java-modules/core-java-8/src/main/java/com/baeldung/spliterator/Task.java @@ -1,4 +1,4 @@ -package com.baeldung.spliteratorAPI; +package com.baeldung.spliterator; import java.util.Spliterator; import java.util.concurrent.Callable; diff --git a/core-java-modules/core-java-8/src/test/java/com/baeldung/spliterator/ExecutorUnitTest.java b/core-java-modules/core-java-8/src/test/java/com/baeldung/spliterator/ExecutorUnitTest.java new file mode 100644 index 0000000000..5dadd29168 --- /dev/null +++ b/core-java-modules/core-java-8/src/test/java/com/baeldung/spliterator/ExecutorUnitTest.java @@ -0,0 +1,66 @@ +package com.baeldung.spliterator; + +import java.util.Arrays; +import java.util.List; +import java.util.Spliterator; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; + +import static org.assertj.core.api.Assertions.*; +import org.junit.Before; +import org.junit.Test; + +import com.baeldung.spliterator.Article; +import com.baeldung.spliterator.Author; +import com.baeldung.spliterator.Executor; +import com.baeldung.spliterator.RelatedAuthorSpliterator; +import com.baeldung.spliterator.Task; + +public class ExecutorUnitTest { + Article article; + Stream stream; + Spliterator spliterator; + Spliterator
split1; + Spliterator
split2; + + @Before + public void init() { + article = new Article(Arrays.asList(new Author("Ahmad", 0), new Author("Eugen", 0), new Author("Alice", 1), new Author("Alice", 1), new Author("Mike", 0), new Author("Alice", 1), new Author("Mike", 0), new Author("Alice", 1), new Author("Mike", 0), + new Author("Alice", 1), new Author("Mike", 0), new Author("Mike", 0), new Author("Alice", 1), new Author("Mike", 0), new Author("Alice", 1), new Author("Mike", 0), new Author("Alice", 1), new Author("Mike", 0), new Author("Alice", 1), + new Author("Mike", 0), new Author("Michał", 0), new Author("Loredana", 1)), 0); + stream = article.getListOfAuthors() + .stream(); + split1 = Executor.generateElements() + .spliterator(); + split2 = split1.trySplit(); + spliterator = new RelatedAuthorSpliterator(article.getListOfAuthors()); + } + + @Test + public void givenAstreamOfAuthors_whenProcessedInParallelWithCustomSpliterator_coubtProducessRightOutput() { + Stream stream2 = StreamSupport.stream(spliterator, true); + assertThat(Executor.countAutors(stream2.parallel())).isEqualTo(9); + } + + @Test + public void givenSpliterator_whenAppliedToAListOfArticle_thenSplittedInHalf() { + assertThat(new Task(split1).call()).containsSequence(Executor.generateElements() + .size() / 2 + ""); + assertThat(new Task(split2).call()).containsSequence(Executor.generateElements() + .size() / 2 + ""); + } + + @Test + public void givenAstreamOfArticles_whenProcessedInSequentiallyWithSpliterator_ProducessRightOutput() { + List
articles = Stream.generate(() -> new Article("Java")) + .limit(35000) + .collect(Collectors.toList()); + + Spliterator
spliterator = articles.spliterator(); + while (spliterator.tryAdvance(article -> article.setName(article.getName() + .concat("- published by Baeldung")))); + + articles.forEach(article -> assertThat(article.getName()).isEqualTo("Java- published by Baeldung")); + } +} diff --git a/core-java-modules/core-java-8/src/test/java/com/baeldung/spliteratorAPI/ExecutorUnitTest.java b/core-java-modules/core-java-8/src/test/java/com/baeldung/spliteratorAPI/ExecutorUnitTest.java deleted file mode 100644 index 1cf08a854a..0000000000 --- a/core-java-modules/core-java-8/src/test/java/com/baeldung/spliteratorAPI/ExecutorUnitTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.baeldung.spliteratorAPI; - -import java.util.Arrays; -import java.util.List; -import java.util.Spliterator; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import java.util.stream.StreamSupport; - -import static org.assertj.core.api.Assertions.*; -import org.junit.Before; -import org.junit.Test; - -public class ExecutorUnitTest { - Article article; - Stream stream; - Spliterator spliterator; - Spliterator
split1; - Spliterator
split2; - - @Before - public void init() { - article = new Article(Arrays.asList(new Author("Ahmad", 0), new Author("Eugen", 0), new Author("Alice", 1), - new Author("Alice", 1), new Author("Mike", 0), new Author("Alice", 1), new Author("Mike", 0), - new Author("Alice", 1), new Author("Mike", 0), new Author("Alice", 1), new Author("Mike", 0), - new Author("Mike", 0), new Author("Alice", 1), new Author("Mike", 0), new Author("Alice", 1), - new Author("Mike", 0), new Author("Alice", 1), new Author("Mike", 0), new Author("Alice", 1), - new Author("Mike", 0), new Author("Michał", 0), new Author("Loredana", 1)), 0); - stream = article.getListOfAuthors().stream(); - split1 = Executor.generateElements().spliterator(); - split2 = split1.trySplit(); - spliterator = new RelatedAuthorSpliterator(article.getListOfAuthors()); - } - - @Test - public void givenAstreamOfAuthors_whenProcessedInParallelWithCustomSpliterator_coubtProducessRightOutput() { - Stream stream2 = StreamSupport.stream(spliterator, true); - assertThat(Executor.countAutors(stream2.parallel())).isEqualTo(9); - } - - @Test - public void givenSpliterator_whenAppliedToAListOfArticle_thenSplittedInHalf() { - assertThat(new Task(split1).call()).containsSequence(Executor.generateElements().size() / 2 + ""); - assertThat(new Task(split2).call()).containsSequence(Executor.generateElements().size() / 2 + ""); - } - - @Test - public void givenAstreamOfArticles_whenProcessedInSequentiallyWithSpliterator_ProducessRightOutput() { - List
articles = Stream.generate(() -> new Article("Java")).limit(35000).collect(Collectors.toList()); - Spliterator
spliterator = articles.spliterator(); - while (spliterator.tryAdvance(article -> article.setName(article.getName().concat("- published by Baeldung")))); - - articles.forEach(article -> assertThat(article.getName()).isEqualTo("Java- published by Baeldung")); - } -}