diff --git a/iterator/etc/bst.jpg b/iterator/etc/bst.jpg
new file mode 100644
index 000000000..f7ed6af82
Binary files /dev/null and b/iterator/etc/bst.jpg differ
diff --git a/iterator/etc/bst.png b/iterator/etc/bst.png
deleted file mode 100644
index 52ce7013e..000000000
Binary files a/iterator/etc/bst.png and /dev/null differ
diff --git a/iterator/pom.xml b/iterator/pom.xml
index 81a785dd1..6581b8224 100644
--- a/iterator/pom.xml
+++ b/iterator/pom.xml
@@ -48,11 +48,5 @@
junit-jupiter-params
test
-
- org.junit.platform
- junit-platform-runner
- 1.2.0
- test
-
diff --git a/iterator/src/main/java/com/iluwatar/iterator/App.java b/iterator/src/main/java/com/iluwatar/iterator/App.java
new file mode 100644
index 000000000..c3c4d0d8c
--- /dev/null
+++ b/iterator/src/main/java/com/iluwatar/iterator/App.java
@@ -0,0 +1,94 @@
+/**
+ * The MIT License Copyright (c) 2014-2016 Ilkka Seppälä
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+ * associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all copies or
+ * substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
+ * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+package com.iluwatar.iterator;
+
+import static com.iluwatar.iterator.list.ItemType.ANY;
+import static com.iluwatar.iterator.list.ItemType.POTION;
+import static com.iluwatar.iterator.list.ItemType.RING;
+import static com.iluwatar.iterator.list.ItemType.WEAPON;
+
+import com.iluwatar.iterator.bst.BstIterator;
+import com.iluwatar.iterator.bst.TreeNode;
+import com.iluwatar.iterator.list.ItemType;
+import com.iluwatar.iterator.list.TreasureChest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The Iterator pattern is a design pattern in which an iterator is used to traverse a container and
+ * access the container's elements. The Iterator pattern decouples algorithms from containers.
+ *
+ * In this example the Iterator ({@link Iterator}) adds abstraction layer on top of a collection
+ * ({@link TreasureChest}). This way the collection can change its internal implementation without
+ * affecting its clients.
+ */
+public class App {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(App.class);
+
+ private static final TreasureChest TREASURE_CHEST = new TreasureChest();
+
+ private static void demonstrateTreasureChestIteratorForType(ItemType itemType) {
+ LOGGER.info("------------------------");
+ LOGGER.info("Item Iterator for ItemType " + itemType + ": ");
+ Iterator itemIterator = TREASURE_CHEST.iterator(itemType);
+ while (itemIterator.hasNext()) {
+ LOGGER.info(itemIterator.next().toString());
+ }
+ }
+
+ private static void demonstrateBstIterator() {
+ LOGGER.info("------------------------");
+ LOGGER.info("BST Iterator: ");
+ TreeNode root = buildIntegerBst();
+ BstIterator bstIterator = new BstIterator<>(root);
+ while (bstIterator.hasNext()) {
+ LOGGER.info("Next node: " + bstIterator.next().getVal());
+ }
+ }
+
+ private static TreeNode buildIntegerBst() {
+ TreeNode root = new TreeNode<>(8);
+
+ root.insert(3);
+ root.insert(10);
+ root.insert(1);
+ root.insert(6);
+ root.insert(14);
+ root.insert(4);
+ root.insert(7);
+ root.insert(13);
+
+ return root;
+ }
+
+ /**
+ * Program entry point
+ *
+ * @param args command line args
+ */
+ public static void main(String[] args) {
+ demonstrateTreasureChestIteratorForType(RING);
+ demonstrateTreasureChestIteratorForType(POTION);
+ demonstrateTreasureChestIteratorForType(WEAPON);
+ demonstrateTreasureChestIteratorForType(ANY);
+
+ demonstrateBstIterator();
+ }
+}
diff --git a/iterator/src/main/java/com/iluwatar/iterator/interfaces/Iterator.java b/iterator/src/main/java/com/iluwatar/iterator/Iterator.java
similarity index 96%
rename from iterator/src/main/java/com/iluwatar/iterator/interfaces/Iterator.java
rename to iterator/src/main/java/com/iluwatar/iterator/Iterator.java
index a71c2440e..b46996968 100644
--- a/iterator/src/main/java/com/iluwatar/iterator/interfaces/Iterator.java
+++ b/iterator/src/main/java/com/iluwatar/iterator/Iterator.java
@@ -16,7 +16,7 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package com.iluwatar.iterator.interfaces;
+package com.iluwatar.iterator;
/**
* Iterator interface to be implemented by iterators over various data structures
diff --git a/iterator/src/main/java/com/iluwatar/iterator/binarysearchtree/BstIterator.java b/iterator/src/main/java/com/iluwatar/iterator/binarysearchtree/BstIterator.java
deleted file mode 100644
index b61482389..000000000
--- a/iterator/src/main/java/com/iluwatar/iterator/binarysearchtree/BstIterator.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * The MIT License
- * Copyright (c) 2014-2016 Ilkka Seppälä
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package com.iluwatar.iterator.binarysearchtree;
-
-import com.iluwatar.iterator.interfaces.Iterator;
-import java.util.ArrayDeque;
-
-/**
- * This BstIterator iterates IN order. For example, given a BST with Integer values,
- * expect to retrieve TreeNodes according to the Integer's natural ordering (1, 2, 3...)
- * @param This Iterator has been implemented with generic typing to allow traversal of TreeNodes of various types
- */
-public class BstIterator implements Iterator {
-
- private ArrayDeque> pathStack;
-
- public BstIterator(TreeNode root) {
- pathStack = new ArrayDeque<>();
- pushPathToNextSmallest(root);
- }
-
- /**
- * This BstIterator manages to use O(h) extra space, where h is the height of the tree
- * It achieves this by maintaining a stack of the nodes to handle (pushing all left nodes first),
- * before handling self or right node
- * @param node TreeNode that acts as root of the subtree we're interested in.
- */
- private void pushPathToNextSmallest(TreeNode node) {
- while (node != null) {
- pathStack.push(node);
- node = node.getLeft();
- }
- }
-
- /**
- * @return true if this iterator has a "next" element
- */
- @Override
- public boolean hasNext() {
- return !pathStack.isEmpty();
- }
-
- /**
- *
- * @return TreeNode next. The next element according to our in-order traversal of the given BST
- * @throws IllegalStateException if this iterator does not have a next element
- */
- @Override
- public TreeNode next() throws IllegalStateException {
- if (pathStack.isEmpty()) {
- throw new IllegalStateException();
- }
- TreeNode next = pathStack.pop();
- pushPathToNextSmallest(next.getRight());
- return next;
- }
-
-}
diff --git a/iterator/src/main/java/com/iluwatar/iterator/binarysearchtree/TreeNode.java b/iterator/src/main/java/com/iluwatar/iterator/binarysearchtree/TreeNode.java
deleted file mode 100644
index ceffa6cf5..000000000
--- a/iterator/src/main/java/com/iluwatar/iterator/binarysearchtree/TreeNode.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * The MIT License Copyright (c) 2014-2016 Ilkka Seppälä
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
- * associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
- * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-package com.iluwatar.iterator.binarysearchtree;
-
-/**
- * This TreeNode class allows for a generically typed value.
- * @param generically typed to accept various data types for the val property
- */
-public class TreeNode {
-
- private T val;
- private TreeNode left;
- private TreeNode right;
-
- /**
- * Creates a TreeNode with a given value, and null children
- * @param val The value of the given node
- */
- public TreeNode(T val) {
- this.val = val;
- this.left = null;
- this.right = null;
- }
-
- T getVal() {
- return val;
- }
-
- TreeNode getLeft() {
- return left;
- }
-
- void setLeft(TreeNode left) {
- this.left = left;
- }
-
- TreeNode getRight() {
- return right;
- }
-
- void setRight(TreeNode right) {
- this.right = right;
- }
-
- @Override
- public String toString() {
- return val.toString();
- }
-
-}
diff --git a/iterator/src/main/java/com/iluwatar/iterator/bst/BstIterator.java b/iterator/src/main/java/com/iluwatar/iterator/bst/BstIterator.java
new file mode 100644
index 000000000..81d025df5
--- /dev/null
+++ b/iterator/src/main/java/com/iluwatar/iterator/bst/BstIterator.java
@@ -0,0 +1,77 @@
+/**
+ * The MIT License Copyright (c) 2014-2016 Ilkka Seppälä
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+ * associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all copies or
+ * substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
+ * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+package com.iluwatar.iterator.bst;
+
+import com.iluwatar.iterator.Iterator;
+import java.util.ArrayDeque;
+import java.util.NoSuchElementException;
+
+/**
+ * An in-order implementation of a BST Iterator. For example, given a BST with Integer values,
+ * expect to retrieve TreeNodes according to the Integer's natural ordering (1, 2, 3...)
+ *
+ * @param This Iterator has been implemented with generic typing to allow for TreeNodes of
+ * different value types
+ */
+public class BstIterator> implements Iterator> {
+
+ private ArrayDeque> pathStack;
+
+ public BstIterator(TreeNode root) {
+ pathStack = new ArrayDeque<>();
+ pushPathToNextSmallest(root);
+ }
+
+ /**
+ * This BstIterator manages to use O(h) extra space, where h is the height of the tree It achieves
+ * this by maintaining a stack of the nodes to handle (pushing all left nodes first), before
+ * handling self or right node
+ *
+ * @param node TreeNode that acts as root of the subtree we're interested in.
+ */
+ private void pushPathToNextSmallest(TreeNode node) {
+ while (node != null) {
+ pathStack.push(node);
+ node = node.getLeft();
+ }
+ }
+
+ /**
+ * @return true if this iterator has a "next" element
+ */
+ @Override
+ public boolean hasNext() {
+ return !pathStack.isEmpty();
+ }
+
+ /**
+ * @return TreeNode next. The next element according to our in-order traversal of the given BST
+ * @throws NoSuchElementException if this iterator does not have a next element
+ */
+ @Override
+ public TreeNode next() throws NoSuchElementException {
+ if (pathStack.isEmpty()) {
+ throw new NoSuchElementException();
+ }
+ TreeNode next = pathStack.pop();
+ pushPathToNextSmallest(next.getRight());
+ return next;
+ }
+
+}
diff --git a/iterator/src/main/java/com/iluwatar/iterator/binarysearchtree/README.md b/iterator/src/main/java/com/iluwatar/iterator/bst/README.md
similarity index 98%
rename from iterator/src/main/java/com/iluwatar/iterator/binarysearchtree/README.md
rename to iterator/src/main/java/com/iluwatar/iterator/bst/README.md
index 766c4e1c5..02e8eefcb 100644
--- a/iterator/src/main/java/com/iluwatar/iterator/binarysearchtree/README.md
+++ b/iterator/src/main/java/com/iluwatar/iterator/bst/README.md
@@ -9,7 +9,7 @@ this iterator will return nodes according to "In Order" binary tree traversal.
This means that given a binary search tree like the following, the iterator would
return values in order: 1, 3, 4, 6, 7, 8, 10, 13, 14.
-
+
### How It's Done
**The trivial solution** to a binary search tree iterator would be to construct a List (or similar
diff --git a/iterator/src/main/java/com/iluwatar/iterator/bst/TreeNode.java b/iterator/src/main/java/com/iluwatar/iterator/bst/TreeNode.java
new file mode 100644
index 000000000..a8da74787
--- /dev/null
+++ b/iterator/src/main/java/com/iluwatar/iterator/bst/TreeNode.java
@@ -0,0 +1,134 @@
+/**
+ * The MIT License Copyright (c) 2014-2016 Ilkka Seppälä
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+ * associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all copies or
+ * substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
+ * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+package com.iluwatar.iterator.bst;
+
+/**
+ * TreeNode Class, representing one node in a Binary Search Tree. Allows for a generically typed
+ * value.
+ *
+ * @param generically typed to accept various data types for the val property
+ */
+public class TreeNode> {
+
+ private T val;
+ private TreeNode left;
+ private TreeNode right;
+
+ /**
+ * Creates a TreeNode with a given value, and null children
+ *
+ * @param val The value of the given node
+ */
+ public TreeNode(T val) {
+ this.val = val;
+ this.left = null;
+ this.right = null;
+ }
+
+ public T getVal() {
+ return val;
+ }
+
+ public TreeNode getLeft() {
+ return left;
+ }
+
+ private void setLeft(TreeNode left) {
+ this.left = left;
+ }
+
+ public TreeNode getRight() {
+ return right;
+ }
+
+ private void setRight(TreeNode right) {
+ this.right = right;
+ }
+
+ /**
+ * Inserts new TreeNode based on a given value into the subtree represented by self
+ *
+ * @param valToInsert The value to insert as a new TreeNode
+ */
+ public void insert(T valToInsert) {
+ TreeNode parent = getParentNodeOfValueToBeInserted(valToInsert);
+ parent.insertNewChild(valToInsert);
+ }
+
+ /**
+ * Fetch the Parent TreeNode for a given value to insert into the BST.
+ *
+ * @param valToInsert Value of the new TreeNode to be inserted
+ * @return Parent TreeNode of `valToInsert`
+ */
+ private TreeNode getParentNodeOfValueToBeInserted(T valToInsert) {
+ TreeNode parent = null;
+ TreeNode curr = this;
+
+ while (curr != null) {
+ parent = curr;
+ curr = curr.traverseOneLevelDown(valToInsert);
+ }
+
+ return parent;
+ }
+
+ /**
+ * Returns left or right child of self based on a value that would be inserted; maintaining the
+ * integrity of the BST.
+ *
+ * @param value The value of the TreeNode that would be inserted beneath self
+ * @return The child TreeNode of self which represents the subtree where `value` would be inserted
+ */
+ private TreeNode traverseOneLevelDown(T value) {
+ if (this.isGreaterThan(value)) {
+ return this.left;
+ }
+ return this.right;
+ }
+
+ /**
+ * Add a new Child TreeNode of given value to self. WARNING: This method is destructive (will
+ * overwrite existing tree structure, if any), and should be called only by this class's insert()
+ * method.
+ *
+ * @param valToInsert Value of the new TreeNode to be inserted
+ */
+ private void insertNewChild(T valToInsert) {
+ if (this.isLessThanOrEqualTo(valToInsert)) {
+ this.setRight(new TreeNode<>(valToInsert));
+ } else {
+ this.setLeft(new TreeNode<>(valToInsert));
+ }
+ }
+
+ private boolean isGreaterThan(T val) {
+ return this.val.compareTo(val) > 0;
+ }
+
+ private boolean isLessThanOrEqualTo(T val) {
+ return this.val.compareTo(val) < 1;
+ }
+
+ @Override
+ public String toString() {
+ return val.toString();
+ }
+
+}
diff --git a/iterator/src/main/java/com/iluwatar/iterator/list/App.java b/iterator/src/main/java/com/iluwatar/iterator/list/App.java
deleted file mode 100644
index 9796b4f6d..000000000
--- a/iterator/src/main/java/com/iluwatar/iterator/list/App.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * The MIT License
- * Copyright (c) 2014-2016 Ilkka Seppälä
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package com.iluwatar.iterator.list;
-
-import com.iluwatar.iterator.interfaces.Iterator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- *
- * The Iterator pattern is a design pattern in which an iterator is used to traverse a container and
- * access the container's elements. The Iterator pattern decouples algorithms from containers.
- *
- * In this example the Iterator ({@link Iterator}) adds abstraction layer on top of a collection
- * ({@link TreasureChest}). This way the collection can change its internal implementation without
- * affecting its clients.
- *
- */
-public class App {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(App.class);
-
- /**
- * Program entry point
- *
- * @param args command line args
- */
- public static void main(String[] args) {
- TreasureChest chest = new TreasureChest();
-
- ItemIterator ringIterator = chest.iterator(ItemType.RING);
- while (ringIterator.hasNext()) {
- LOGGER.info(ringIterator.next().toString());
- }
-
- LOGGER.info("----------");
-
- ItemIterator potionIterator = chest.iterator(ItemType.POTION);
- while (potionIterator.hasNext()) {
- LOGGER.info(potionIterator.next().toString());
- }
-
- LOGGER.info("----------");
-
- ItemIterator weaponIterator = chest.iterator(ItemType.WEAPON);
- while (weaponIterator.hasNext()) {
- LOGGER.info(weaponIterator.next().toString());
- }
-
- LOGGER.info("----------");
-
- ItemIterator it = chest.iterator(ItemType.ANY);
- while (it.hasNext()) {
- LOGGER.info(it.next().toString());
- }
- }
-}
diff --git a/iterator/src/main/java/com/iluwatar/iterator/list/ItemIterator.java b/iterator/src/main/java/com/iluwatar/iterator/list/ItemIterator.java
deleted file mode 100644
index d5024daf5..000000000
--- a/iterator/src/main/java/com/iluwatar/iterator/list/ItemIterator.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * The MIT License
- * Copyright (c) 2014-2016 Ilkka Seppälä
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package com.iluwatar.iterator.list;
-
-/**
- *
- * ItemIterator interface.
- *
- */
-public interface ItemIterator {
-
- boolean hasNext();
-
- Item next();
-}
diff --git a/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChest.java b/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChest.java
index 8428b2308..4cd8f371c 100644
--- a/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChest.java
+++ b/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChest.java
@@ -1,24 +1,20 @@
/**
- * The MIT License
- * Copyright (c) 2014-2016 Ilkka Seppälä
+ * The MIT License Copyright (c) 2014-2016 Ilkka Seppälä
*
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+ * associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * The above copyright notice and this permission notice shall be included in all copies or
+ * substantial portions of the Software.
*
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
+ * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.iluwatar.iterator.list;
@@ -26,9 +22,9 @@ import java.util.ArrayList;
import java.util.List;
/**
- *
+ *
* TreasureChest, the collection class.
- *
+ *
*/
public class TreasureChest {
@@ -51,7 +47,7 @@ public class TreasureChest {
items.add(new Item(ItemType.WEAPON, "Dagger of poison"));
}
- ItemIterator iterator(ItemType itemType) {
+ public TreasureChestItemIterator iterator(ItemType itemType) {
return new TreasureChestItemIterator(this, itemType);
}
diff --git a/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChestItemIterator.java b/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChestItemIterator.java
index 80f019880..fae948821 100644
--- a/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChestItemIterator.java
+++ b/iterator/src/main/java/com/iluwatar/iterator/list/TreasureChestItemIterator.java
@@ -1,35 +1,32 @@
/**
- * The MIT License
- * Copyright (c) 2014-2016 Ilkka Seppälä
+ * The MIT License Copyright (c) 2014-2016 Ilkka Seppälä
*
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+ * associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * The above copyright notice and this permission notice shall be included in all copies or
+ * substantial portions of the Software.
*
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
+ * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.iluwatar.iterator.list;
+import com.iluwatar.iterator.Iterator;
import java.util.List;
/**
- *
+ *
* TreasureChestItemIterator
*
*/
-public class TreasureChestItemIterator implements ItemIterator {
+public class TreasureChestItemIterator implements Iterator {
private TreasureChest chest;
private int idx;
@@ -59,7 +56,6 @@ public class TreasureChestItemIterator implements ItemIterator {
}
private int findNextIdx() {
-
List- items = chest.getItems();
boolean found = false;
int tempIdx = idx;
diff --git a/iterator/src/test/java/com/iluwatar/iterator/AppTest.java b/iterator/src/test/java/com/iluwatar/iterator/AppTest.java
index a879df31e..b7892db5b 100644
--- a/iterator/src/test/java/com/iluwatar/iterator/AppTest.java
+++ b/iterator/src/test/java/com/iluwatar/iterator/AppTest.java
@@ -1,33 +1,34 @@
/**
* The MIT License Copyright (c) 2014-2016 Ilkka Seppälä
- *
+ *
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
* associated documentation files (the "Software"), to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify, merge, publish, distribute,
* sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
- *
+ *
* The above copyright notice and this permission notice shall be included in all copies or
* substantial portions of the Software.
- *
+ *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
* NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
+
package com.iluwatar.iterator;
-import org.junit.platform.runner.JUnitPlatform;
-import org.junit.platform.suite.api.SelectPackages;
-import org.junit.platform.suite.api.SuiteDisplayName;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
/**
- * Runs a test suite containing all tests within the com.iluwatar.iterator package
+ * Application Test
*/
-@RunWith(JUnitPlatform.class)
-@SuiteDisplayName("Iterator Test Suite")
-@SelectPackages("com.iluwatar.iterator")
-public class AppTest {
-}
\ No newline at end of file
+class AppTest {
+
+ @Test
+ void testApp() {
+ String[] args = {};
+ App.main(args);
+ }
+}
\ No newline at end of file
diff --git a/iterator/src/test/java/com/iluwatar/iterator/binarysearchtree/TreeNodeTest.java b/iterator/src/test/java/com/iluwatar/iterator/binarysearchtree/TreeNodeTest.java
deleted file mode 100644
index 8dd2e694e..000000000
--- a/iterator/src/test/java/com/iluwatar/iterator/binarysearchtree/TreeNodeTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * The MIT License Copyright (c) 2014-2016 Ilkka Seppälä
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
- * associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
- * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-package com.iluwatar.iterator.binarysearchtree;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
-import org.junit.jupiter.api.Test;
-
-/**
- * Comprehensive tests for TreeNode POJO
- * @param generically typed for TreeNode
- */
-public class TreeNodeTest {
-
- @Test
- void treeNodeGetters() {
- TreeNode node = new TreeNode(1);
- assertEquals(node.getVal(), 1);
- assertNull(node.getLeft(), "Left child should be initialized as null.");
- assertNull(node.getRight(), "Right child should be initialized as null.");
- }
-
- @Test
- void treeNodeSetters() {
- TreeNode node = new TreeNode(3);
- node.setLeft(new TreeNode(1));
- assertEquals(node.getLeft().getVal(), 1, "Left node has a value of 1.");
- node.setRight(new TreeNode(5));
- assertEquals(node.getRight().getVal(), 5, "Right node has a value of 5");
- }
-
- @Test
- void treeNodeToString() {
- TreeNode node = new TreeNode(3);
- assertEquals(node.toString(), "3", "node.toString() should return string value.");
- }
-
-}
diff --git a/iterator/src/test/java/com/iluwatar/iterator/binarysearchtree/BstIteratorTest.java b/iterator/src/test/java/com/iluwatar/iterator/bst/BstIteratorTest.java
similarity index 58%
rename from iterator/src/test/java/com/iluwatar/iterator/binarysearchtree/BstIteratorTest.java
rename to iterator/src/test/java/com/iluwatar/iterator/bst/BstIteratorTest.java
index 09645edff..0e69b341a 100644
--- a/iterator/src/test/java/com/iluwatar/iterator/binarysearchtree/BstIteratorTest.java
+++ b/iterator/src/test/java/com/iluwatar/iterator/bst/BstIteratorTest.java
@@ -16,82 +16,83 @@
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-package com.iluwatar.iterator.binarysearchtree;
+package com.iluwatar.iterator.bst;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import com.iluwatar.iterator.AppTest;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestInstance.Lifecycle;
-@TestInstance(Lifecycle.PER_CLASS)
-class BstIteratorTest extends AppTest {
+import java.util.NoSuchElementException;
- private TreeNode nonEmptyRoot;
- private TreeNode emptyRoot;
+@TestInstance(Lifecycle.PER_CLASS)
+class BstIteratorTest {
+
+ private TreeNode nonEmptyRoot;
+ private TreeNode emptyRoot;
@BeforeAll
void createTrees() {
- nonEmptyRoot = new TreeNode(Integer.valueOf(5));
- nonEmptyRoot.setLeft(new TreeNode(3));
- nonEmptyRoot.setRight(new TreeNode(7));
- nonEmptyRoot.getLeft().setLeft(new TreeNode(1));
- nonEmptyRoot.getLeft().setRight(new TreeNode(4));
- nonEmptyRoot.getRight().setLeft(new TreeNode(6));
+ nonEmptyRoot = new TreeNode<>(5);
+ nonEmptyRoot.insert(3);
+ nonEmptyRoot.insert(7);
+ nonEmptyRoot.insert(1);
+ nonEmptyRoot.insert(4);
+ nonEmptyRoot.insert(6);
emptyRoot = null;
}
@Test
- void nextWithEmptyTree() {
- BstIterator iter = new BstIterator(emptyRoot);
- assertThrows(IllegalStateException.class, iter::next,
+ void nextForEmptyTree() {
+ BstIterator iter = new BstIterator<>(emptyRoot);
+ assertThrows(NoSuchElementException.class, iter::next,
"next() should throw an IllegalStateException if hasNext() is false.");
}
@Test
- void nextWithPopulatedTree() {
- BstIterator iter = new BstIterator(nonEmptyRoot);
- assertEquals(iter.next().getVal(), 1, "First Node is 1.");
- assertEquals(iter.next().getVal(), 3, "Second Node is 3.");
- assertEquals(iter.next().getVal(), 4, "Third Node is 4.");
- assertEquals(iter.next().getVal(), 5, "Fourth Node is 5.");
- assertEquals(iter.next().getVal(), 6, "Fifth Node is 6.");
- assertEquals(iter.next().getVal(), 7, "Sixth Node is 7.");
+ void nextOverEntirePopulatedTree() {
+ BstIterator iter = new BstIterator<>(nonEmptyRoot);
+ assertEquals(1, iter.next().getVal(), "First Node is 1.");
+ assertEquals(3, iter.next().getVal(), "Second Node is 3.");
+ assertEquals(4, iter.next().getVal(), "Third Node is 4.");
+ assertEquals(5, iter.next().getVal(), "Fourth Node is 5.");
+ assertEquals(6, iter.next().getVal(), "Fifth Node is 6.");
+ assertEquals(7, iter.next().getVal(), "Sixth Node is 7.");
}
@Test
- void hasNextWithEmptyTree() {
- BstIterator iter = new BstIterator(emptyRoot);
+ void hasNextForEmptyTree() {
+ BstIterator iter = new BstIterator<>(emptyRoot);
assertFalse(iter.hasNext(), "hasNext() should return false for empty tree.");
}
@Test
- void hasNextWithPopulatedTree() {
- BstIterator iter = new BstIterator(nonEmptyRoot);
+ void hasNextForPopulatedTree() {
+ BstIterator iter = new BstIterator<>(nonEmptyRoot);
assertTrue(iter.hasNext(), "hasNext() should return true for populated tree.");
}
@Test
- void nextAndHasNextAcrossEntirePopulatedTree() {
- BstIterator iter = new BstIterator(nonEmptyRoot);
+ void nextAndHasNextOverEntirePopulatedTree() {
+ BstIterator iter = new BstIterator<>(nonEmptyRoot);
assertTrue(iter.hasNext(), "Iterator hasNext() should be true.");
- assertEquals(iter.next().getVal(), 1, "First Node is 1.");
+ assertEquals(1, iter.next().getVal(), "First Node is 1.");
assertTrue(iter.hasNext(), "Iterator hasNext() should be true.");
- assertEquals(iter.next().getVal(), 3, "Second Node is 3.");
+ assertEquals(3, iter.next().getVal(), "Second Node is 3.");
assertTrue(iter.hasNext(), "Iterator hasNext() should be true.");
- assertEquals(iter.next().getVal(), 4, "Third Node is 4.");
+ assertEquals(4, iter.next().getVal(), "Third Node is 4.");
assertTrue(iter.hasNext(), "Iterator hasNext() should be true.");
- assertEquals(iter.next().getVal(), 5, "Fourth Node is 5.");
+ assertEquals(5, iter.next().getVal(), "Fourth Node is 5.");
assertTrue(iter.hasNext(), "Iterator hasNext() should be true.");
- assertEquals(iter.next().getVal(), 6, "Fifth Node is 6.");
+ assertEquals(6, iter.next().getVal(), "Fifth Node is 6.");
assertTrue(iter.hasNext(), "Iterator hasNext() should be true.");
- assertEquals(iter.next().getVal(), 7, "Sixth Node is 7.");
+ assertEquals(7, iter.next().getVal(), "Sixth Node is 7.");
assertFalse(iter.hasNext(), "Iterator hasNext() should be false, end of tree.");
}
diff --git a/iterator/src/test/java/com/iluwatar/iterator/list/TreasureChestTest.java b/iterator/src/test/java/com/iluwatar/iterator/list/TreasureChestTest.java
index ebfdbe9f1..af5ba22a4 100644
--- a/iterator/src/test/java/com/iluwatar/iterator/list/TreasureChestTest.java
+++ b/iterator/src/test/java/com/iluwatar/iterator/list/TreasureChestTest.java
@@ -1,41 +1,32 @@
/**
- * The MIT License
- * Copyright (c) 2014-2016 Ilkka Seppälä
+ * The MIT License Copyright (c) 2014-2016 Ilkka Seppälä
*
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
+ * associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * The above copyright notice and this permission notice shall be included in all copies or
+ * substantial portions of the Software.
*
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
+ * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.iluwatar.iterator.list;
-import com.iluwatar.iterator.list.Item;
-import com.iluwatar.iterator.list.ItemIterator;
-import com.iluwatar.iterator.list.ItemType;
-import com.iluwatar.iterator.list.TreasureChest;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
-
-import java.util.ArrayList;
-import java.util.List;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.fail;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
+
/**
* Date: 12/14/15 - 2:58 PM
*
@@ -64,13 +55,14 @@ public class TreasureChestTest {
}
/**
- * Test if the expected item can be retrieved from the chest using the {@link ItemIterator}
+ * Test if the expected item can be retrieved from the chest using the {@link
+ * TreasureChestItemIterator}
*/
@ParameterizedTest
@MethodSource("dataProvider")
public void testIterator(Item expectedItem) {
final TreasureChest chest = new TreasureChest();
- final ItemIterator iterator = chest.iterator(expectedItem.getType());
+ final TreasureChestItemIterator iterator = chest.iterator(expectedItem.getType());
assertNotNull(iterator);
while (iterator.hasNext()) {