21 * have any questions. |
21 * have any questions. |
22 */ |
22 */ |
23 |
23 |
24 /* |
24 /* |
25 * @test |
25 * @test |
26 * @bug 4851776 4907265 6177836 |
26 * @bug 4851776 4907265 6177836 6876282 |
27 * @summary Some tests for the divide methods. |
27 * @summary Some tests for the divide methods. |
28 * @author Joseph D. Darcy |
28 * @author Joseph D. Darcy |
29 * @compile -source 1.5 DivideTests.java |
29 * @compile -source 1.5 DivideTests.java |
30 * @run main DivideTests |
30 * @run main DivideTests |
31 */ |
31 */ |
326 " scale " + scale + " rounding mode " + RoundingMode.valueOf(rm) + |
326 " scale " + scale + " rounding mode " + RoundingMode.valueOf(rm) + |
327 "; expected " + tc[3] + " got " + quotient); |
327 "; expected " + tc[3] + " got " + quotient); |
328 } |
328 } |
329 } |
329 } |
330 |
330 |
|
331 // 6876282 |
|
332 BigDecimal[][] testCases2 = { |
|
333 // { dividend, divisor, expected quotient } |
|
334 { new BigDecimal(3090), new BigDecimal(7), new BigDecimal(441) }, |
|
335 { new BigDecimal("309000000000000000000000"), new BigDecimal("700000000000000000000"), |
|
336 new BigDecimal(441) }, |
|
337 { new BigDecimal("962.430000000000"), new BigDecimal("8346463.460000000000"), |
|
338 new BigDecimal("0.000115309916") }, |
|
339 { new BigDecimal("18446744073709551631"), new BigDecimal("4611686018427387909"), |
|
340 new BigDecimal(4) }, |
|
341 { new BigDecimal("18446744073709551630"), new BigDecimal("4611686018427387909"), |
|
342 new BigDecimal(4) }, |
|
343 { new BigDecimal("23058430092136939523"), new BigDecimal("4611686018427387905"), |
|
344 new BigDecimal(5) }, |
|
345 { new BigDecimal("-18446744073709551661"), new BigDecimal("-4611686018427387919"), |
|
346 new BigDecimal(4) }, |
|
347 { new BigDecimal("-18446744073709551660"), new BigDecimal("-4611686018427387919"), |
|
348 new BigDecimal(4) }, |
|
349 }; |
|
350 |
|
351 for (BigDecimal test[] : testCases2) { |
|
352 BigDecimal quo = test[0].divide(test[1], RoundingMode.HALF_UP); |
|
353 if (!quo.equals(test[2])) { |
|
354 failures++; |
|
355 System.err.println("Unexpected quotient from " + test[0] + " / " + test[1] + |
|
356 " rounding mode HALF_UP" + |
|
357 "; expected " + test[2] + " got " + quo); |
|
358 } |
|
359 } |
331 return failures; |
360 return failures; |
332 } |
361 } |
333 |
362 |
334 public static void main(String argv[]) { |
363 public static void main(String argv[]) { |
335 int failures = 0; |
364 int failures = 0; |