jdk/test/java/math/BigDecimal/DivideTests.java
changeset 3710 65a5d7914736
parent 2922 dd6d609861f0
child 4347 ab0a9f495844
equal deleted inserted replaced
3709:e7cf22d025bb 3710:65a5d7914736
    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;