diff --git a/commons-numbers-combinatorics/src/test/java/org/apache/commons/numbers/combinatorics/FactorialDoubleTest.java b/commons-numbers-combinatorics/src/test/java/org/apache/commons/numbers/combinatorics/FactorialDoubleTest.java
index 9862b76..414ba0d 100644
--- a/commons-numbers-combinatorics/src/test/java/org/apache/commons/numbers/combinatorics/FactorialDoubleTest.java
+++ b/commons-numbers-combinatorics/src/test/java/org/apache/commons/numbers/combinatorics/FactorialDoubleTest.java
@@ -39,15 +39,15 @@
     @Test
     void testLargestFactorialDouble() {
         final int n = 170;
-        Assertions.assertTrue(
-                Double.POSITIVE_INFINITY != FactorialDouble.create().value(n), n + "!");
+        Assertions.assertNotEquals(
+            Double.POSITIVE_INFINITY, FactorialDouble.create().value(n), () -> n + "!");
     }
 
     @Test
     void testFactorialDoubleTooLarge() {
         final int n = 171;
         Assertions.assertEquals(
-                Double.POSITIVE_INFINITY, FactorialDouble.create().value(n), 0d, n + "!");
+                Double.POSITIVE_INFINITY, FactorialDouble.create().value(n), () -> n + "!");
     }
 
     @Test
diff --git a/commons-numbers-quaternion/src/test/java/org/apache/commons/numbers/quaternion/QuaternionTest.java b/commons-numbers-quaternion/src/test/java/org/apache/commons/numbers/quaternion/QuaternionTest.java
index 4ea8545..e3022ce 100644
--- a/commons-numbers-quaternion/src/test/java/org/apache/commons/numbers/quaternion/QuaternionTest.java
+++ b/commons-numbers-quaternion/src/test/java/org/apache/commons/numbers/quaternion/QuaternionTest.java
@@ -395,22 +395,22 @@
 
         x = Quaternion.of(0.0, 0.0, 0.0, 0.0);
         y = Quaternion.of(-0.0, 0.0, 0.0, 0.0);
-        Assertions.assertTrue(x.hashCode() != y.hashCode());
+        Assertions.assertNotEquals(x.hashCode(), y.hashCode());
         Assertions.assertNotEquals(x, y, msg);
 
         x = Quaternion.of(0.0, 0.0, 0.0, 0.0);
         y = Quaternion.of(0.0, -0.0, 0.0, 0.0);
-        Assertions.assertTrue(x.hashCode() != y.hashCode());
+        Assertions.assertNotEquals(x.hashCode(), y.hashCode());
         Assertions.assertNotEquals(x, y, msg);
 
         x = Quaternion.of(0.0, 0.0, 0.0, 0.0);
         y = Quaternion.of(0.0, 0.0, -0.0, 0.0);
-        Assertions.assertTrue(x.hashCode() != y.hashCode());
+        Assertions.assertNotEquals(x.hashCode(), y.hashCode());
         Assertions.assertNotEquals(x, y, msg);
 
         x = Quaternion.of(0.0, 0.0, 0.0, 0.0);
         y = Quaternion.of(0.0, 0.0, 0.0, -0.0);
-        Assertions.assertTrue(x.hashCode() != y.hashCode());
+        Assertions.assertNotEquals(x.hashCode(), y.hashCode());
         Assertions.assertNotEquals(x, y, msg);
     }
 
