diff --git a/tests/edu/caltech/cs2/datastructures/LinkedDequeTests.java b/tests/edu/caltech/cs2/datastructures/LinkedDequeTests.java
index 6a4982145b8d50ecc2db6cd0c1b9d7f01025b266..f9898b5019e7d578c206ded4c646b90cc4e896d4 100644
--- a/tests/edu/caltech/cs2/datastructures/LinkedDequeTests.java
+++ b/tests/edu/caltech/cs2/datastructures/LinkedDequeTests.java
@@ -296,10 +296,10 @@ public class LinkedDequeTests implements DequeTests, StackTests, QueueTests {
         impl.addFront(num);
       }
       if (reference.size() > 1 && impl.size() > 1) {
-        if (num % 3 == 0) {
+        if (num % 5 == 0) {
           reference.removeFirst();
           impl.removeFront();
-        } else if (num % 4 == 0) {
+        } else if (num % 7 == 0) {
           reference.removeLast();
           impl.removeBack();
         }
@@ -331,10 +331,10 @@ public class LinkedDequeTests implements DequeTests, StackTests, QueueTests {
         impl.addFront(num);
       }
       if (reference.size() > 1 && impl.size() > 1) {
-        if (num % 3 == 0) {
+        if (num % 5 == 0) {
           reference.removeFirst();
           impl.removeFront();
-        } else if (num % 4 == 0) {
+        } else if (num % 7 == 0) {
           reference.removeLast();
           impl.removeBack();
         }
diff --git a/tests/edu/caltech/cs2/helpers/NodeChecker.java b/tests/edu/caltech/cs2/helpers/NodeChecker.java
index 56cbb7980bae5d6a73c23ecdcdd991bd5eefe6de..75e3ef4cd3abbe9acc557215d41700eaddae73f8 100644
--- a/tests/edu/caltech/cs2/helpers/NodeChecker.java
+++ b/tests/edu/caltech/cs2/helpers/NodeChecker.java
@@ -11,7 +11,6 @@ import java.util.stream.Stream;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.fail;
 
-import static org.hamcrest.MatcherAssert.assertThat;
 import org.hamcrest.collection.IsIterableContainingInOrder;
 
 import edu.caltech.cs2.interfaces.IDeque;
@@ -24,7 +23,7 @@ public class NodeChecker {
     /**
      * This method checks whether a given class is a linked node or not.
      *
-     * @param clazz the class you want to check
+     * @param clazz        the class you want to check
      * @param doublyLinked whether or not the list <em>can</em> be doubly linked
      */
     public static void isNode(Class clazz, boolean doublyLinked) {
@@ -39,9 +38,8 @@ public class NodeChecker {
         }
 
         // Get fields
-        SortedSet<String> fields = new TreeSet<>(Stream.of(clazz.getDeclaredFields())
-                .map(x -> x.getName())
-                .collect(Collectors.toList()));
+        SortedSet<String> fields = new TreeSet<>(
+                Stream.of(clazz.getDeclaredFields()).map(x -> x.getName()).collect(Collectors.toList()));
 
         boolean hasData = false;
         boolean hasNode = false;
@@ -65,22 +63,18 @@ public class NodeChecker {
                 }
                 // Linked to another node
                 hasNode = true;
-            }
-            else if (f.getType().toString().equals("class java.lang.Object")) {
+            } else if (f.getType().toString().equals("class java.lang.Object")) {
                 if (!Modifier.isFinal(f.getModifiers())) {
-                    fail("Field \"" + field + "\" in class " + clazz.getName() +
-                            " is not final");
+                    fail("Field \"" + field + "\" in class " + clazz.getName() + " is not final");
                 }
                 // Has a generic type to store data
                 if (hasData) {
                     // Checks for multiple data fields
-                    fail("Class " + clazz.getName() + " has multiple generic fields: \""
-                            + field + "\"");
+                    fail("Class " + clazz.getName() + " has multiple generic fields: \"" + field + "\"");
                     return;
                 }
                 hasData = true;
-            }
-            else {
+            } else {
                 fail("Field \"" + field + "\" is not a generic type in " + clazz.getTypeName());
             }
         }
@@ -99,11 +93,10 @@ public class NodeChecker {
                         return;
                     }
                     hasConstructor = true;
-                }
-                else if (!type.toString().equals("class " + clazz.getTypeName())) {
+                } else if (!type.toString().equals("class " + clazz.getTypeName())) {
                     // Check for invalid argument types
-                    fail("Constructor \"" + c.getName() + "\" has an argument that is not a " +
-                            "generic type in class " + clazz.getTypeName());
+                    fail("Constructor \"" + c.getName() + "\" has an argument that is not a " + "generic type in class "
+                            + clazz.getTypeName());
                 }
             }
         }
@@ -112,7 +105,7 @@ public class NodeChecker {
     /**
      * This method performs a node check on every internal class.
      *
-     * @param clazz the class you want to check
+     * @param clazz        the class you want to check
      * @param doublyLinked whether or not the list <em>can</em> be doubly linked
      */
     public static void checkInternalClasses(Class clazz, boolean doublyLinked) {
@@ -138,7 +131,7 @@ public class NodeChecker {
     /**
      * This method gets a valid, internal node class from a given class.
      *
-     * @param clazz the class you want to check
+     * @param clazz        the class you want to check
      * @param doublyLinked whether or not the list <em>can</em> be doubly linked
      * @return the node class
      */
@@ -162,7 +155,7 @@ public class NodeChecker {
      * This method gets fields of specified type from a given class.
      *
      * @param clazz the class you want to check
-     * @param type the type of field you want
+     * @param type  the type of field you want
      * @return a list of fields matching the given type
      */
     public static List<Field> getFields(Class clazz, Class type) {
@@ -178,12 +171,15 @@ public class NodeChecker {
     }
 
     /**
-     * This method checks whether a given pointer permutation in a deque contains a cycle.
+     * This method checks whether a given pointer permutation in a deque contains a
+     * cycle.
      *
-     * @param deque the deque you want to check
-     * @param nextField the field corresponding to the next pointer in a linked node
-     * @param dequeField the field corresponding to the head pointer in a linked deque
-     * @param <E> the generic type of the data field in a linked node
+     * @param deque      the deque you want to check
+     * @param nextField  the field corresponding to the next pointer in a linked
+     *                   node
+     * @param dequeField the field corresponding to the head pointer in a linked
+     *                   deque
+     * @param <E>        the generic type of the data field in a linked node
      * @return an array containing the indices of the cyclic nodes
      */
     public static <E> int[] checkCycle(IDeque<E> deque, Field nextField, Field dequeField) {
@@ -206,7 +202,7 @@ public class NodeChecker {
                 // Check if memory locations are equal
                 if (nodes[j] == nodes[i]) {
                     // Return indices of nodes that create a cycle
-                    return new int[] {i, j};
+                    return new int[] { i, j };
                 }
             }
             try {
@@ -219,15 +215,15 @@ public class NodeChecker {
             i++;
         }
         // No cycle
-        return new int[] {-1, -1};
+        return new int[] { -1, -1 };
     }
 
     /**
      * This method checks whether a given deque contains a cycle.
      *
-     * @param deque the deque you want to check
+     * @param deque        the deque you want to check
      * @param doublyLinked whether or not the list <em>can</em> be doubly linked
-     * @param <E> the generic type of the data field in a linked node
+     * @param <E>          the generic type of the data field in a linked node
      */
     public static <E> void cycleDetection(IDeque<E> deque, boolean doublyLinked) {
         Class nodeClass = getNodeClass(deque.getClass(), doublyLinked);
@@ -246,30 +242,27 @@ public class NodeChecker {
                     continue;
                 }
                 if (nodes[0] == deque.size() && nodes[1] == 0) {
-                    fail("The last node is connected to the first node in " +
-                                nodeClass.getName() + " object");
-                }
-                else {
-                    fail("Node " + nodes[0] + " is connected to Node " + nodes[1] +
-                                " in " + nodeClass.getName() + " object");
+                    fail("The last node is connected to the first node in " + nodeClass.getName() + " object");
+                } else {
+                    fail("Node " + nodes[0] + " is connected to Node " + nodes[1] + " in " + nodeClass.getName()
+                            + " object");
                 }
             }
         }
     }
 
     /**
-     * This method checks whether iterating through a list forwards and backwards returns the same values.
+     * This method checks whether iterating through a list forwards and backwards
+     * returns the same values.
      *
      * @param deque the deque you want to check
-     * @param <E> the generic type of the data field in a linked node
+     * @param <E>   the generic type of the data field in a linked node
      */
     public static <E> void checkReverse(IDeque<E> deque) {
         // Grab the linked node class and possible pointers to the head and tail
         Class nodeClass = getNodeClass(deque.getClass(), true);
         List<Field> dequePointers = getFields(deque.getClass(), nodeClass);
         assertEquals(2, dequePointers.size(), "List does not have one head and tail pointer");
-        // The tests should pass only twice (head/next and tail/previous combinations)
-        int flag = 2;
         // Try all permutations of pointers
         try {
             for (int i = 0; i < 2; i++) {
@@ -308,13 +301,9 @@ public class NodeChecker {
                         temp = prev.get(temp);
                     }
                     Collections.reverse(backwardValues);
-                    try {
-                        // Assert the reverse of the backwards equals the forwards
-                        assertThat(backwardValues,
-                                IsIterableContainingInOrder.contains(forwardValues.toArray()));
-                    } catch (AssertionError e) {
-                        // Mark failed test
-                        flag--;
+                    // Test the reverse of the backwards equals the forwards
+                    if (IsIterableContainingInOrder.contains(forwardValues.toArray()).matches(backwardValues)) {
+                        return;
                     }
                 }
             }
@@ -322,8 +311,8 @@ public class NodeChecker {
             ex.printStackTrace();
             fail();
         }
-        // A flag of zero indicates success as it passed twice
-        assertEquals(0, flag, "Forwards and backwards lists of values do not agree");
+        // Exiting the loop indicates failure
+        fail("Forwards and backwards lists of values do not agree");
     }
 
 }