This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git


The following commit(s) were added to refs/heads/master by this push:
     new a15b3e68 Simplify conversion of numbers to unsigned
a15b3e68 is described below

commit a15b3e68136dd94ea20e4085afc45aa73d46362e
Author: Alex Herbert <aherb...@apache.org>
AuthorDate: Sun Dec 24 16:57:58 2023 +0000

    Simplify conversion of numbers to unsigned
---
 .../java/org/apache/commons/numbers/core/ArithmeticUtilsTest.java | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/commons-numbers-core/src/test/java/org/apache/commons/numbers/core/ArithmeticUtilsTest.java
 
b/commons-numbers-core/src/test/java/org/apache/commons/numbers/core/ArithmeticUtilsTest.java
index 4063f440..0b4aa797 100644
--- 
a/commons-numbers-core/src/test/java/org/apache/commons/numbers/core/ArithmeticUtilsTest.java
+++ 
b/commons-numbers-core/src/test/java/org/apache/commons/numbers/core/ArithmeticUtilsTest.java
@@ -28,6 +28,8 @@ import org.junit.jupiter.api.Test;
  *
  */
 class ArithmeticUtilsTest {
+    /** 2^63. */
+    private static final BigInteger TWO_POW_63 = BigInteger.ONE.shiftLeft(63);
 
     @Test
     void testGcd() {
@@ -538,7 +540,7 @@ class ArithmeticUtilsTest {
     }
 
     private static long toUnsignedLong(int number) {
-        return number < 0 ? 0x100000000L + (long)number : (long)number;
+        return Integer.toUnsignedLong(number);
     }
 
     private static int remainderUnsignedExpected(int dividend, int divisor) {
@@ -550,7 +552,9 @@ class ArithmeticUtilsTest {
     }
 
     private static BigInteger toUnsignedBigInteger(long number) {
-        return number < 0L ? 
BigInteger.ONE.shiftLeft(64).add(BigInteger.valueOf(number)) : 
BigInteger.valueOf(number);
+        return number < 0 ?
+            TWO_POW_63.or(BigInteger.valueOf(number & Long.MAX_VALUE)) :
+            BigInteger.valueOf(number);
     }
 
     private static long remainderUnsignedExpected(long dividend, long divisor) 
{

Reply via email to