--- a/jdk/test/java/math/BigDecimal/DivideTests.java Thu Aug 27 11:48:35 2009 -0700
+++ b/jdk/test/java/math/BigDecimal/DivideTests.java Thu Aug 27 18:00:16 2009 -0700
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 4851776 4907265 6177836
+ * @bug 4851776 4907265 6177836 6876282
* @summary Some tests for the divide methods.
* @author Joseph D. Darcy
* @compile -source 1.5 DivideTests.java
@@ -328,6 +328,35 @@
}
}
+ // 6876282
+ BigDecimal[][] testCases2 = {
+ // { dividend, divisor, expected quotient }
+ { new BigDecimal(3090), new BigDecimal(7), new BigDecimal(441) },
+ { new BigDecimal("309000000000000000000000"), new BigDecimal("700000000000000000000"),
+ new BigDecimal(441) },
+ { new BigDecimal("962.430000000000"), new BigDecimal("8346463.460000000000"),
+ new BigDecimal("0.000115309916") },
+ { new BigDecimal("18446744073709551631"), new BigDecimal("4611686018427387909"),
+ new BigDecimal(4) },
+ { new BigDecimal("18446744073709551630"), new BigDecimal("4611686018427387909"),
+ new BigDecimal(4) },
+ { new BigDecimal("23058430092136939523"), new BigDecimal("4611686018427387905"),
+ new BigDecimal(5) },
+ { new BigDecimal("-18446744073709551661"), new BigDecimal("-4611686018427387919"),
+ new BigDecimal(4) },
+ { new BigDecimal("-18446744073709551660"), new BigDecimal("-4611686018427387919"),
+ new BigDecimal(4) },
+ };
+
+ for (BigDecimal test[] : testCases2) {
+ BigDecimal quo = test[0].divide(test[1], RoundingMode.HALF_UP);
+ if (!quo.equals(test[2])) {
+ failures++;
+ System.err.println("Unexpected quotient from " + test[0] + " / " + test[1] +
+ " rounding mode HALF_UP" +
+ "; expected " + test[2] + " got " + quo);
+ }
+ }
return failures;
}