1 // 2016 and later: Unicode, Inc. and others. 2 // License & terms of use: http://www.unicode.org/copyright.html#License 3 /* 4 ******************************************************************************* 5 * Copyright (C) 2000-2015, International Business Machines Corporation and 6 * others. All Rights Reserved. 7 ******************************************************************************* 8 */ 9 /* Generated from 'DiagBigDecimal.nrx' 27 Mar 2000 22:38:44 [v1.162] */ 10 /* Options: Binary Comments Crossref Format Java Logo Trace1 Verbose3 */ 11 /* The generated code has been manually modified. */ 12 package com.ibm.icu.dev.test.bigdec; 13 14 import java.math.BigInteger; 15 16 import org.junit.Test; 17 import org.junit.runner.RunWith; 18 import org.junit.runners.JUnit4; 19 20 import com.ibm.icu.dev.test.TestFmwk; 21 import com.ibm.icu.dev.test.TestUtil; 22 import com.ibm.icu.dev.test.TestUtil.JavaVendor; 23 import com.ibm.icu.math.BigDecimal; 24 25 /* ------------------------------------------------------------------ */ 26 /* Decimal diagnostic tests mfc */ 27 /* Copyright (c) IBM Corporation 1996-2010. All Rights Reserved. */ 28 /* ------------------------------------------------------------------ */ 29 /* DiagBigDecimal */ 30 /* */ 31 /* A class that tests the BigDecimal and MathContext classes. */ 32 /* */ 33 /* The tests here are derived from or cover the same paths as: */ 34 /* -- ANSI X3-274 testcases */ 35 /* -- Java JCK testcases */ 36 /* -- NetRexx testcases */ 37 /* -- VM/CMS S/370 REXX implementation testcases [1981+] */ 38 /* -- IBM Vienna Laboratory Rexx compiler testcases [1988+] */ 39 /* -- New testcases */ 40 /* */ 41 /* The authoritative sources for how the underlying technology */ 42 /* (arithmetic) should work are: */ 43 /* -- for digits=0 (fixed point): java.math.BigDecimal */ 44 /* -- for digits>0 (floating point): ANSI X3.274-1996 + errata */ 45 /* */ 46 /* ------------------------------------------------------------------ */ 47 /* Change list */ 48 /* 1997.09.05 Initial implementation, from DiagRexx [NetRexx tests] */ 49 /* 1998.05.02 0.07 changes (e.g., compareTo) */ 50 /* 1998.06.06 Rounding modes and format additions */ 51 /* 1998.06.25 Rename from DiagDecimal; make stand-alone [add */ 52 /* DiagException as a Minor class] */ 53 /* 1998.06.27 Start adding testcases for DIGITS=0/FORM=PLAIN cases */ 54 /* Reorganize for faster trace compilation */ 55 /* 1998.06.28 new: valueof, scale, movePointX, unscaledValue, etc. */ 56 /* 1998.07.07 Scaled divide */ 57 /* 1998.07.08 setScale */ 58 /* 1998.07.15 new scaffolding (Minor Test class) -- see diagabs */ 59 /* 1998.12.14 add toBigDecimal and BigDecimal(java.math.BigDecimal) */ 60 /* 1999.02.04 number preparation rounds instead of digits+1 trunc */ 61 /* 1999.02.09 format method now only has two signatures */ 62 /* 1999.02.27 no longer use Rexx class or RexxIO class */ 63 /* 1999.03.05 add MathContext tests */ 64 /* 1999.03.05 update for 0.96 [no null settings, etc.] */ 65 /* drop sundry constructors; no blanks; char[] gets ints */ 66 /* drop sundry converters, add Exact converters */ 67 /* 1999.05.27 additional tests for scaled arithmetic */ 68 /* 1999.06.29 additional tests for exponent overflows */ 69 /* 1999.07.03 add 'continue' option */ 70 /* 1999.07.10 additional tests for scaled arithmetic */ 71 /* 1999.07.18 randomly-generated tests added for base operators */ 72 /* 1999.10.28 weird intValueExact bad cases */ 73 /* 1999.12.21 multiplication fast path failure and edge cases */ 74 /* 2000.01.01 copyright update */ 75 /* 2000.03.26 cosmetic updates; add extra format() testcases */ 76 /* 2000.03.27 1.00 move to com.ibm.icu.math package; open source release; */ 77 /* change to javadoc comments */ 78 /* ------------------------------------------------------------------ */ 79 80 // note BINARY for conversions checking 81 82 /** 83 * The <code>DiagBigDecimal</code> class forms a standalone test suite for the 84 * <code>com.ibm.icu.math.BigDecimal</code> and 85 * <code>com.ibm.icu.math.MathContext</code> classes (or, by changing the 86 * <code>package</code> statement, other classes of the same names and 87 * definition in other packages). It may also be used as a constructed object to 88 * embed the tests in an external test harness. 89 * <p> 90 * The tests are collected into <i>groups</i>, each corresponding to a tested 91 * method or a more general grouping. By default, when run from the static 92 * {@link #main(java.lang.String[])} method, the run will end if any test fails 93 * in a group. The <code>continue</code> argument may be specified to force 94 * the tests to run to completion. 95 * 96 * @see com.ibm.icu.math.BigDecimal 97 * @see com.ibm.icu.math.MathContext 98 * @version 1.00 2000.03.27 99 * @author Mike Cowlishaw 100 */ 101 102 @RunWith(JUnit4.class) 103 public class DiagBigDecimalTest extends TestFmwk { 104 private static final com.ibm.icu.math.BigDecimal zero = com.ibm.icu.math.BigDecimal.ZERO; 105 private static final com.ibm.icu.math.BigDecimal one = com.ibm.icu.math.BigDecimal.ONE; 106 private static final com.ibm.icu.math.BigDecimal two = new com.ibm.icu.math.BigDecimal(2); 107 private static final com.ibm.icu.math.BigDecimal ten = com.ibm.icu.math.BigDecimal.TEN; 108 private static final com.ibm.icu.math.BigDecimal tenlong = new com.ibm.icu.math.BigDecimal((long) 1234554321); // 10-digiter 109 110 /* Some context objects -- [some of these are checked later] */ 111 private static final com.ibm.icu.math.MathContext mcdef = com.ibm.icu.math.MathContext.DEFAULT; 112 private static final com.ibm.icu.math.MathContext mc3 = new com.ibm.icu.math.MathContext(3); 113 private static final com.ibm.icu.math.MathContext mc6 = new com.ibm.icu.math.MathContext(6); 114 private static final com.ibm.icu.math.MathContext mc9 = new com.ibm.icu.math.MathContext(9); 115 private static final com.ibm.icu.math.MathContext mc50 = new com.ibm.icu.math.MathContext(50); 116 private static final com.ibm.icu.math.MathContext mcs = new com.ibm.icu.math.MathContext(9, com.ibm.icu.math.MathContext.SCIENTIFIC); 117 private static final com.ibm.icu.math.MathContext mce = new com.ibm.icu.math.MathContext(9, com.ibm.icu.math.MathContext.ENGINEERING); 118 private static final com.ibm.icu.math.MathContext mcld = new com.ibm.icu.math.MathContext(9, com.ibm.icu.math.MathContext.SCIENTIFIC, true); // lost digits 119 private static final com.ibm.icu.math.MathContext mcld0 = new com.ibm.icu.math.MathContext(0, com.ibm.icu.math.MathContext.SCIENTIFIC, true); // lost digits, digits=0 120 private static final com.ibm.icu.math.MathContext mcfd = new com.ibm.icu.math.MathContext(0, com.ibm.icu.math.MathContext.PLAIN); // fixed decimal style 121 122 /* boundary primitive values */ 123 private static final byte bmin = -128; 124 private static final byte bmax = 127; 125 private static final byte bzer = 0; 126 private static final byte bneg = -1; 127 private static final byte bpos = 1; 128 private static final int imin = -2147483648; 129 private static final int imax = 2147483647; 130 private static final int izer = 0; 131 private static final int ineg = -1; 132 private static final int ipos = 1; 133 private static final long lmin = -9223372036854775808L; 134 private static final long lmax = 9223372036854775807L; 135 private static final long lzer = 0; 136 private static final long lneg = -1; 137 private static final long lpos = 1; 138 private static final short smin = -32768; 139 private static final short smax = 32767; 140 private static final short szer = (short) 0; 141 private static final short sneg = (short) (-1); 142 private static final short spos = (short) 1; 143 144 /** 145 * Constructs a <code>DiagBigDecimal</code> test suite. 146 * <p> 147 * Invoke its {@link #diagrun} method to run the tests. 148 */ 149 150 public DiagBigDecimalTest() { 151 super(); 152 } 153 154 static final boolean isJDK15OrLater = 155 TestUtil.getJavaVendor() == JavaVendor.Android || 156 TestUtil.getJavaVersion() >= 5; 157 158 159 /*--------------------------------------------------------------------*/ 160 /* Diagnostic group methods */ 161 /*--------------------------------------------------------------------*/ 162 163 /** Test constructors (and {@link #toString()} for equalities). */ 164 @Test 165 public void diagconstructors() { 166 boolean flag = false; 167 java.lang.String num; 168 java.math.BigInteger bip; 169 java.math.BigInteger biz; 170 java.math.BigInteger bin; 171 com.ibm.icu.math.BigDecimal bda; 172 com.ibm.icu.math.BigDecimal bdb; 173 com.ibm.icu.math.BigDecimal bmc; 174 com.ibm.icu.math.BigDecimal bmd; 175 com.ibm.icu.math.BigDecimal bme; 176 java.lang.RuntimeException e = null; 177 char ca[]; 178 double dzer; 179 double dpos; 180 double dneg; 181 double dpos5; 182 double dneg5; 183 double dmin; 184 double dmax; 185 double d; 186 java.lang.String badstrings[]; 187 int i = 0; 188 189 // constants [statically-called constructors] 190 TestFmwk.assertTrue("con001", (com.ibm.icu.math.BigDecimal.ZERO.toString()).equals("0")); 191 TestFmwk.assertTrue("con002", (com.ibm.icu.math.BigDecimal.ONE.toString()).equals("1")); 192 TestFmwk.assertTrue("con003", (com.ibm.icu.math.BigDecimal.TEN.toString()).equals("10")); 193 TestFmwk.assertTrue("con004", (com.ibm.icu.math.BigDecimal.ZERO.intValueExact()) == 0); 194 TestFmwk.assertTrue("con005", (com.ibm.icu.math.BigDecimal.ONE.intValueExact()) == 1); 195 TestFmwk.assertTrue("con006", (com.ibm.icu.math.BigDecimal.TEN.intValueExact()) == 10); 196 197 // [java.math.] BigDecimal 198 TestFmwk.assertTrue("cbd001", ((new com.ibm.icu.math.BigDecimal(new java.math.BigDecimal("0"))).toString()).equals("0")); 199 TestFmwk.assertTrue("cbd002", ((new com.ibm.icu.math.BigDecimal(new java.math.BigDecimal("1"))).toString()).equals("1")); 200 TestFmwk.assertTrue("cbd003", ((new com.ibm.icu.math.BigDecimal(new java.math.BigDecimal("10"))).toString()).equals("10")); 201 TestFmwk.assertTrue("cbd004", ((new com.ibm.icu.math.BigDecimal(new java.math.BigDecimal("1000"))).toString()).equals("1000")); 202 TestFmwk.assertTrue("cbd005", ((new com.ibm.icu.math.BigDecimal(new java.math.BigDecimal("10.0"))).toString()).equals("10.0")); 203 TestFmwk.assertTrue("cbd006", ((new com.ibm.icu.math.BigDecimal(new java.math.BigDecimal("10.1"))).toString()).equals("10.1")); 204 TestFmwk.assertTrue("cbd007", ((new com.ibm.icu.math.BigDecimal(new java.math.BigDecimal("-1.1"))).toString()).equals("-1.1")); 205 TestFmwk.assertTrue("cbd008", ((new com.ibm.icu.math.BigDecimal(new java.math.BigDecimal("-9.0"))).toString()).equals("-9.0")); 206 TestFmwk.assertTrue("cbd009", ((new com.ibm.icu.math.BigDecimal(new java.math.BigDecimal("0.9"))).toString()).equals("0.9")); 207 208 num = "123456789.123456789"; 209 TestFmwk.assertTrue("cbd010", ((new com.ibm.icu.math.BigDecimal(new java.math.BigDecimal(num))).toString()).equals(num)); 210 num = "123456789.000000000"; 211 TestFmwk.assertTrue("cbd011", ((new com.ibm.icu.math.BigDecimal(new java.math.BigDecimal(num))).toString()).equals(num)); 212 num = "123456789000000000"; 213 TestFmwk.assertTrue("cbd012", ((new com.ibm.icu.math.BigDecimal(new java.math.BigDecimal(num))).toString()).equals(num)); 214 num = "0.00000123456789"; 215 TestFmwk.assertTrue("cbd013", ((new com.ibm.icu.math.BigDecimal(new java.math.BigDecimal(num))).toString()).equals(num)); 216 num = "0.000000123456789"; 217 218 // ignore format change issues with 1.5 219 if (!isJDK15OrLater) 220 TestFmwk.assertTrue("cbd014", ((new com.ibm.icu.math.BigDecimal(new java.math.BigDecimal(num))).toString()).equals(num)); 221 222 try { 223 new com.ibm.icu.math.BigDecimal((java.math.BigDecimal) null); 224 flag = false; 225 } catch (java.lang.NullPointerException $3) { 226 flag = true; 227 }/* checknull */ 228 TestFmwk.assertTrue("cbi015", flag); 229 230 // BigInteger 231 bip = new BigInteger("987654321987654321987654321"); // biggie +ve 232 biz = new BigInteger("0"); // biggie 0 233 bin = new BigInteger("-12345678998765432112345678"); // biggie -ve 234 TestFmwk.assertTrue("cbi001", ((new com.ibm.icu.math.BigDecimal(bip)).toString()).equals(bip.toString())); 235 TestFmwk.assertTrue("cbi002", ((new com.ibm.icu.math.BigDecimal(biz)).toString()).equals("0")); 236 TestFmwk.assertTrue("cbi003", ((new com.ibm.icu.math.BigDecimal(bin)).toString()).equals(bin.toString())); 237 try { 238 new com.ibm.icu.math.BigDecimal((java.math.BigInteger) null); 239 flag = false; 240 } catch (java.lang.NullPointerException $4) { 241 flag = true; 242 }/* checknull */ 243 TestFmwk.assertTrue("cbi004", flag); 244 245 // BigInteger with scale 246 bip = new BigInteger("123456789"); // bigish 247 bda = new com.ibm.icu.math.BigDecimal(bip); 248 bdb = new com.ibm.icu.math.BigDecimal(bip, 5); 249 bmc = new com.ibm.icu.math.BigDecimal(bip, 15); 250 TestFmwk.assertTrue("cbs001", (bda.toString()).equals("123456789")); 251 TestFmwk.assertTrue("cbs002", (bdb.toString()).equals("1234.56789")); 252 TestFmwk.assertTrue("cbs003", (bmc.toString()).equals("0.000000123456789")); 253 bip = new BigInteger("123456789123456789123456789"); // biggie 254 bda = new com.ibm.icu.math.BigDecimal(bip); 255 bdb = new com.ibm.icu.math.BigDecimal(bip, 7); 256 bmc = new com.ibm.icu.math.BigDecimal(bip, 13); 257 bmd = new com.ibm.icu.math.BigDecimal(bip, 19); 258 bme = new com.ibm.icu.math.BigDecimal(bip, 29); 259 TestFmwk.assertTrue("cbs011", (bda.toString()).equals("123456789123456789123456789")); 260 TestFmwk.assertTrue("cbs012", (bdb.toString()).equals("12345678912345678912.3456789")); 261 TestFmwk.assertTrue("cbs013", (bmc.toString()).equals("12345678912345.6789123456789")); 262 TestFmwk.assertTrue("cbs014", (bmd.toString()).equals("12345678.9123456789123456789")); 263 TestFmwk.assertTrue("cbs015", (bme.toString()).equals("0.00123456789123456789123456789")); 264 try { 265 new com.ibm.icu.math.BigDecimal((java.math.BigInteger) null, 1); 266 flag = false; 267 } catch (java.lang.NullPointerException $5) { 268 flag = true; 269 }/* checknull */ 270 TestFmwk.assertTrue("cbs004", flag); 271 try { 272 new com.ibm.icu.math.BigDecimal(bip, -8); 273 flag = false; 274 } catch (java.lang.RuntimeException $6) { 275 e = $6; 276 flag = (e.getMessage()).equals("Negative scale: -8"); 277 }/* checkscale */ 278 TestFmwk.assertTrue("cbs005", flag); 279 280 // char[] 281 // We just test it's there 282 // Functionality is tested by BigDecimal(String). 283 ca = ("123.45").toCharArray(); 284 TestFmwk.assertTrue("cca001", ((new com.ibm.icu.math.BigDecimal(ca)).toString()).equals("123.45")); 285 try { 286 new com.ibm.icu.math.BigDecimal((char[]) null); 287 flag = false; 288 } catch (java.lang.NullPointerException $7) { 289 flag = true; 290 }/* checknull */ 291 TestFmwk.assertTrue("cca010", flag); 292 293 // char[],int,int 294 // We just test it's there, and that offsets work. 295 // Functionality is tested by BigDecimal(String). 296 ca = ("123.45").toCharArray(); 297 TestFmwk.assertTrue("cca101", ((new com.ibm.icu.math.BigDecimal(ca, 0, 6)).toString()).equals("123.45")); 298 TestFmwk.assertTrue("cca102", ((new com.ibm.icu.math.BigDecimal(ca, 1, 5)).toString()).equals("23.45")); 299 TestFmwk.assertTrue("cca103", ((new com.ibm.icu.math.BigDecimal(ca, 2, 4)).toString()).equals("3.45")); 300 TestFmwk.assertTrue("cca104", ((new com.ibm.icu.math.BigDecimal(ca, 3, 3)).toString()).equals("0.45")); 301 TestFmwk.assertTrue("cca105", ((new com.ibm.icu.math.BigDecimal(ca, 4, 2)).toString()).equals("45")); 302 TestFmwk.assertTrue("cca106", ((new com.ibm.icu.math.BigDecimal(ca, 5, 1)).toString()).equals("5")); 303 304 TestFmwk.assertTrue("cca110", ((new com.ibm.icu.math.BigDecimal(ca, 0, 1)).toString()).equals("1")); 305 TestFmwk.assertTrue("cca111", ((new com.ibm.icu.math.BigDecimal(ca, 1, 1)).toString()).equals("2")); 306 TestFmwk.assertTrue("cca112", ((new com.ibm.icu.math.BigDecimal(ca, 2, 1)).toString()).equals("3")); 307 TestFmwk.assertTrue("cca113", ((new com.ibm.icu.math.BigDecimal(ca, 4, 1)).toString()).equals("4")); 308 309 TestFmwk.assertTrue("cca120", ((new com.ibm.icu.math.BigDecimal(ca, 0, 2)).toString()).equals("12")); 310 TestFmwk.assertTrue("cca121", ((new com.ibm.icu.math.BigDecimal(ca, 1, 2)).toString()).equals("23")); 311 TestFmwk.assertTrue("cca122", ((new com.ibm.icu.math.BigDecimal(ca, 2, 2)).toString()).equals("3")); 312 TestFmwk.assertTrue("cca123", ((new com.ibm.icu.math.BigDecimal(ca, 3, 2)).toString()).equals("0.4")); 313 314 TestFmwk.assertTrue("cca130", ((new com.ibm.icu.math.BigDecimal(ca, 0, 3)).toString()).equals("123")); 315 TestFmwk.assertTrue("cca131", ((new com.ibm.icu.math.BigDecimal(ca, 1, 3)).toString()).equals("23")); 316 TestFmwk.assertTrue("cca132", ((new com.ibm.icu.math.BigDecimal(ca, 2, 3)).toString()).equals("3.4")); 317 318 TestFmwk.assertTrue("cca140", ((new com.ibm.icu.math.BigDecimal(ca, 0, 4)).toString()).equals("123")); 319 TestFmwk.assertTrue("cca141", ((new com.ibm.icu.math.BigDecimal(ca, 1, 4)).toString()).equals("23.4")); 320 321 TestFmwk.assertTrue("cca150", ((new com.ibm.icu.math.BigDecimal(ca, 0, 5)).toString()).equals("123.4")); 322 323 // a couple of oddies 324 ca = ("x23.4x").toCharArray(); 325 TestFmwk.assertTrue("cca160", ((new com.ibm.icu.math.BigDecimal(ca, 1, 4)).toString()).equals("23.4")); 326 TestFmwk.assertTrue("cca161", ((new com.ibm.icu.math.BigDecimal(ca, 1, 1)).toString()).equals("2")); 327 TestFmwk.assertTrue("cca162", ((new com.ibm.icu.math.BigDecimal(ca, 4, 1)).toString()).equals("4")); 328 329 ca = ("0123456789.9876543210").toCharArray(); 330 TestFmwk.assertTrue("cca163", ((new com.ibm.icu.math.BigDecimal(ca, 0, 21)).toString()).equals("123456789.9876543210")); 331 TestFmwk.assertTrue("cca164", ((new com.ibm.icu.math.BigDecimal(ca, 1, 20)).toString()).equals("123456789.9876543210")); 332 TestFmwk.assertTrue("cca165", ((new com.ibm.icu.math.BigDecimal(ca, 2, 19)).toString()).equals("23456789.9876543210")); 333 TestFmwk.assertTrue("cca166", ((new com.ibm.icu.math.BigDecimal(ca, 2, 18)).toString()).equals("23456789.987654321")); 334 TestFmwk.assertTrue("cca167", ((new com.ibm.icu.math.BigDecimal(ca, 2, 17)).toString()).equals("23456789.98765432")); 335 TestFmwk.assertTrue("cca168", ((new com.ibm.icu.math.BigDecimal(ca, 2, 16)).toString()).equals("23456789.9876543")); 336 337 try { 338 new com.ibm.icu.math.BigDecimal((char[]) null, 0, 1); 339 flag = false; 340 } catch (java.lang.NullPointerException $8) { 341 flag = true; 342 }/* checknull */ 343 TestFmwk.assertTrue("cca200", flag); 344 345 try { 346 new com.ibm.icu.math.BigDecimal("123".toCharArray(), 0, 0); 347 flag = false; 348 } catch (java.lang.NumberFormatException $9) { 349 flag = true; 350 }/* checklen */ 351 TestFmwk.assertTrue("cca201", flag); 352 353 try { 354 new com.ibm.icu.math.BigDecimal("123".toCharArray(), 2, 4); 355 flag = false; 356 } catch (java.lang.RuntimeException $10) { // anything OK 357 flag = true; 358 }/* checkbound */ 359 TestFmwk.assertTrue("cca202", flag); 360 try { 361 new com.ibm.icu.math.BigDecimal("123".toCharArray(), -1, 2); 362 flag = false; 363 } catch (java.lang.RuntimeException $11) { // anything OK 364 flag = true; 365 }/* checkbound2 */ 366 TestFmwk.assertTrue("cca203", flag); 367 try { 368 new com.ibm.icu.math.BigDecimal("123".toCharArray(), 1, -2); 369 flag = false; 370 } catch (java.lang.RuntimeException $12) { // anything OK 371 flag = true; 372 }/* checkbound3 */ 373 TestFmwk.assertTrue("cca204", flag); 374 375 // double [deprecated] 376 // Note that many of these differ from the valueOf(double) results. 377 dzer = 0; 378 dpos = 1; 379 dpos = dpos / (10); 380 dneg = -dpos; 381 TestFmwk.assertTrue("cdo001", ((new com.ibm.icu.math.BigDecimal(dneg)).toString()).equals("-0.1000000000000000055511151231257827021181583404541015625")); 382 383 TestFmwk.assertTrue("cdo002", ((new com.ibm.icu.math.BigDecimal(dzer)).toString()).equals("0")); // NB, not '0.0' 384 TestFmwk.assertTrue("cdo003", ((new com.ibm.icu.math.BigDecimal(dpos)).toString()).equals("0.1000000000000000055511151231257827021181583404541015625")); 385 386 dpos5 = 0.5D; 387 dneg5 = -dpos5; 388 TestFmwk.assertTrue("cdo004", ((new com.ibm.icu.math.BigDecimal(dneg5)).toString()).equals("-0.5")); 389 TestFmwk.assertTrue("cdo005", ((new com.ibm.icu.math.BigDecimal(dpos5)).toString()).equals("0.5")); 390 dmin = java.lang.Double.MIN_VALUE; 391 dmax = java.lang.Double.MAX_VALUE; 392 if (!isJDK15OrLater) // for some reason we format using scientific 393 // notation on 1.5 after 30 decimals or so 394 TestFmwk.assertTrue("cdo006", ((new com.ibm.icu.math.BigDecimal(dmin)).toString()).equals("0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004940656458412465441765687928682213723650598026143247644255856825006755072702087518652998363616359923797965646954457177309266567103559397963987747960107818781263007131903114045278458171678489821036887186360569987307230500063874091535649843873124733972731696151400317153853980741262385655911710266585566867681870395603106249319452715914924553293054565444011274801297099995419319894090804165633245247571478690147267801593552386115501348035264934720193790268107107491703332226844753335720832431936092382893458368060106011506169809753078342277318329247904982524730776375927247874656084778203734469699533647017972677717585125660551199131504891101451037862738167250955837389733598993664809941164205702637090279242767544565229087538682506419718265533447265625")); 395 396 TestFmwk.assertTrue("cdo007", ((new com.ibm.icu.math.BigDecimal(dmax)).toString()).equals("179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368")); 397 398 // nasties 399 d = 9; 400 d = d / (10); 401 TestFmwk.assertTrue("cdo010", ((new com.ibm.icu.math.BigDecimal(d)).toString()).equals("0.90000000000000002220446049250313080847263336181640625")); 402 403 d = d / (10); 404 TestFmwk.assertTrue("cdo011", ((new com.ibm.icu.math.BigDecimal(d)).toString()).equals("0.0899999999999999966693309261245303787291049957275390625")); 405 406 d = d / (10); 407 TestFmwk.assertTrue("cdo012", ((new com.ibm.icu.math.BigDecimal(d)).toString()).equals("0.00899999999999999931998839741709161899052560329437255859375")); 408 409 d = d / (10); 410 TestFmwk.assertTrue("cdo013", ((new com.ibm.icu.math.BigDecimal(d)).toString()).equals("0.00089999999999999997536692664112933925935067236423492431640625")); 411 412 d = d / (10); 413 TestFmwk.assertTrue("cdo014", ((new com.ibm.icu.math.BigDecimal(d)).toString()).equals("0.00008999999999999999211568180168541175589780323207378387451171875")); 414 415 d = d / (10); 416 TestFmwk.assertTrue("cdo015", ((new com.ibm.icu.math.BigDecimal(d)).toString()).equals("0.00000899999999999999853394182236510090433512232266366481781005859375")); 417 418 d = d / (10); 419 if (!isJDK15OrLater) 420 TestFmwk.assertTrue("cdo016", ((new com.ibm.icu.math.BigDecimal(d)).toString()).equals("0.000000899999999999999853394182236510090433512232266366481781005859375")); 421 422 d = d / (10); 423 if (!isJDK15OrLater) 424 TestFmwk.assertTrue("cdo017", ((new com.ibm.icu.math.BigDecimal(d)).toString()).equals("0.0000000899999999999999853394182236510090433512232266366481781005859375")); 425 426 d = d / (10); 427 if (!isJDK15OrLater) 428 TestFmwk.assertTrue("cdo018", ((new com.ibm.icu.math.BigDecimal(d)).toString()).equals("0.000000008999999999999997872197332322678764437995369007694534957408905029296875")); 429 430 try { 431 new com.ibm.icu.math.BigDecimal( 432 java.lang.Double.POSITIVE_INFINITY); 433 flag = false; 434 } catch (java.lang.NumberFormatException $13) { 435 flag = true; 436 }/* checkpin */ 437 TestFmwk.assertTrue("cdo101", flag); 438 try { 439 new com.ibm.icu.math.BigDecimal( 440 java.lang.Double.NEGATIVE_INFINITY); 441 flag = false; 442 } catch (java.lang.NumberFormatException $14) { 443 flag = true; 444 }/* checknin */ 445 TestFmwk.assertTrue("cdo102", flag); 446 try { 447 new com.ibm.icu.math.BigDecimal(java.lang.Double.NaN); 448 flag = false; 449 } catch (java.lang.NumberFormatException $15) { 450 flag = true; 451 }/* checknan */ 452 TestFmwk.assertTrue("cdo103", flag); 453 454 // int 455 TestFmwk.assertTrue("cin001", ((new com.ibm.icu.math.BigDecimal(imin)).toString()).equals("-2147483648")); 456 TestFmwk.assertTrue("cin002", ((new com.ibm.icu.math.BigDecimal(imax)).toString()).equals("2147483647")); 457 TestFmwk.assertTrue("cin003", ((new com.ibm.icu.math.BigDecimal(ineg)).toString()).equals("-1")); 458 TestFmwk.assertTrue("cin004", ((new com.ibm.icu.math.BigDecimal(izer)).toString()).equals("0")); 459 TestFmwk.assertTrue("cin005", ((new com.ibm.icu.math.BigDecimal(ipos)).toString()).equals("1")); 460 TestFmwk.assertTrue("cin006", ((new com.ibm.icu.math.BigDecimal(10)).toString()).equals("10")); 461 TestFmwk.assertTrue("cin007", ((new com.ibm.icu.math.BigDecimal(9)).toString()).equals("9")); 462 TestFmwk.assertTrue("cin008", ((new com.ibm.icu.math.BigDecimal(5)).toString()).equals("5")); 463 TestFmwk.assertTrue("cin009", ((new com.ibm.icu.math.BigDecimal(2)).toString()).equals("2")); 464 TestFmwk.assertTrue("cin010", ((new com.ibm.icu.math.BigDecimal(-2)).toString()).equals("-2")); 465 TestFmwk.assertTrue("cin011", ((new com.ibm.icu.math.BigDecimal(-5)).toString()).equals("-5")); 466 TestFmwk.assertTrue("cin012", ((new com.ibm.icu.math.BigDecimal(-9)).toString()).equals("-9")); 467 TestFmwk.assertTrue("cin013", ((new com.ibm.icu.math.BigDecimal(-10)).toString()).equals("-10")); 468 TestFmwk.assertTrue("cin014", ((new com.ibm.icu.math.BigDecimal(-11)).toString()).equals("-11")); 469 TestFmwk.assertTrue("cin015", ((new com.ibm.icu.math.BigDecimal(-99)).toString()).equals("-99")); 470 TestFmwk.assertTrue("cin016", ((new com.ibm.icu.math.BigDecimal(-100)).toString()).equals("-100")); 471 TestFmwk.assertTrue("cin017", ((new com.ibm.icu.math.BigDecimal(-999)).toString()).equals("-999")); 472 TestFmwk.assertTrue("cin018", ((new com.ibm.icu.math.BigDecimal(-1000)).toString()).equals("-1000")); 473 474 TestFmwk.assertTrue("cin019", ((new com.ibm.icu.math.BigDecimal(11)).toString()).equals("11")); 475 TestFmwk.assertTrue("cin020", ((new com.ibm.icu.math.BigDecimal(99)).toString()).equals("99")); 476 TestFmwk.assertTrue("cin021", ((new com.ibm.icu.math.BigDecimal(100)).toString()).equals("100")); 477 TestFmwk.assertTrue("cin022", ((new com.ibm.icu.math.BigDecimal(999)).toString()).equals("999")); 478 TestFmwk.assertTrue("cin023", ((new com.ibm.icu.math.BigDecimal(1000)).toString()).equals("1000")); 479 480 // long 481 TestFmwk.assertTrue("clo001", ((new com.ibm.icu.math.BigDecimal(lmin)).toString()).equals("-9223372036854775808")); 482 TestFmwk.assertTrue("clo002", ((new com.ibm.icu.math.BigDecimal(lmax)).toString()).equals("9223372036854775807")); 483 TestFmwk.assertTrue("clo003", ((new com.ibm.icu.math.BigDecimal(lneg)).toString()).equals("-1")); 484 TestFmwk.assertTrue("clo004", ((new com.ibm.icu.math.BigDecimal(lzer)).toString()).equals("0")); 485 TestFmwk.assertTrue("clo005", ((new com.ibm.icu.math.BigDecimal(lpos)).toString()).equals("1")); 486 487 // String [many more examples are elsewhere] 488 // strings without E cannot generate E in result 489 TestFmwk.assertTrue("cst001", ((new com.ibm.icu.math.BigDecimal("12")).toString()).equals("12")); 490 TestFmwk.assertTrue("cst002", ((new com.ibm.icu.math.BigDecimal("-76")).toString()).equals("-76")); 491 TestFmwk.assertTrue("cst003", ((new com.ibm.icu.math.BigDecimal("12.76")).toString()).equals("12.76")); 492 TestFmwk.assertTrue("cst004", ((new com.ibm.icu.math.BigDecimal("+12.76")).toString()).equals("12.76")); 493 TestFmwk.assertTrue("cst005", ((new com.ibm.icu.math.BigDecimal("012.76")).toString()).equals("12.76")); 494 TestFmwk.assertTrue("cst006", ((new com.ibm.icu.math.BigDecimal("+0.003")).toString()).equals("0.003")); 495 TestFmwk.assertTrue("cst007", ((new com.ibm.icu.math.BigDecimal("17.")).toString()).equals("17")); 496 TestFmwk.assertTrue("cst008", ((new com.ibm.icu.math.BigDecimal(".5")).toString()).equals("0.5")); 497 TestFmwk.assertTrue("cst009", ((new com.ibm.icu.math.BigDecimal("044")).toString()).equals("44")); 498 TestFmwk.assertTrue("cst010", ((new com.ibm.icu.math.BigDecimal("0044")).toString()).equals("44")); 499 TestFmwk.assertTrue("cst011", ((new com.ibm.icu.math.BigDecimal("0.0005")).toString()).equals("0.0005")); 500 TestFmwk.assertTrue("cst012", ((new com.ibm.icu.math.BigDecimal("00.00005")).toString()).equals("0.00005")); 501 TestFmwk.assertTrue("cst013", ((new com.ibm.icu.math.BigDecimal("0.000005")).toString()).equals("0.000005")); 502 TestFmwk.assertTrue("cst014", ((new com.ibm.icu.math.BigDecimal("0.0000005")).toString()).equals("0.0000005")); // \NR 503 TestFmwk.assertTrue("cst015", ((new com.ibm.icu.math.BigDecimal("0.00000005")).toString()).equals("0.00000005")); // \NR 504 TestFmwk.assertTrue("cst016", ((new com.ibm.icu.math.BigDecimal("12345678.876543210")).toString()).equals("12345678.876543210")); 505 TestFmwk.assertTrue("cst017", ((new com.ibm.icu.math.BigDecimal("2345678.876543210")).toString()).equals("2345678.876543210")); 506 TestFmwk.assertTrue("cst018", ((new com.ibm.icu.math.BigDecimal("345678.876543210")).toString()).equals("345678.876543210")); 507 TestFmwk.assertTrue("cst019", ((new com.ibm.icu.math.BigDecimal("0345678.87654321")).toString()).equals("345678.87654321")); 508 TestFmwk.assertTrue("cst020", ((new com.ibm.icu.math.BigDecimal("345678.8765432")).toString()).equals("345678.8765432")); 509 TestFmwk.assertTrue("cst021", ((new com.ibm.icu.math.BigDecimal("+345678.8765432")).toString()).equals("345678.8765432")); 510 TestFmwk.assertTrue("cst022", ((new com.ibm.icu.math.BigDecimal("+0345678.8765432")).toString()).equals("345678.8765432")); 511 TestFmwk.assertTrue("cst023", ((new com.ibm.icu.math.BigDecimal("+00345678.8765432")).toString()).equals("345678.8765432")); 512 TestFmwk.assertTrue("cst024", ((new com.ibm.icu.math.BigDecimal("-345678.8765432")).toString()).equals("-345678.8765432")); 513 TestFmwk.assertTrue("cst025", ((new com.ibm.icu.math.BigDecimal("-0345678.8765432")).toString()).equals("-345678.8765432")); 514 TestFmwk.assertTrue("cst026", ((new com.ibm.icu.math.BigDecimal("-00345678.8765432")).toString()).equals("-345678.8765432")); 515 516 // exotics -- 517 TestFmwk.assertTrue("cst035", ((new com.ibm.icu.math.BigDecimal("\u0e57.\u0e50")).toString()).equals("7.0")); 518 TestFmwk.assertTrue("cst036", ((new com.ibm.icu.math.BigDecimal("\u0b66.\u0b67")).toString()).equals("0.1")); 519 TestFmwk.assertTrue("cst037", ((new com.ibm.icu.math.BigDecimal("\u0b66\u0b66")).toString()).equals("0")); 520 TestFmwk.assertTrue("cst038", ((new com.ibm.icu.math.BigDecimal("\u0b6a\u0b66")).toString()).equals("40")); 521 522 // strings with E 523 TestFmwk.assertTrue("cst040", ((new com.ibm.icu.math.BigDecimal("1E+9")).toString()).equals("1E+9")); 524 TestFmwk.assertTrue("cst041", ((new com.ibm.icu.math.BigDecimal("1e+09")).toString()).equals("1E+9")); 525 TestFmwk.assertTrue("cst042", ((new com.ibm.icu.math.BigDecimal("1E+90")).toString()).equals("1E+90")); 526 TestFmwk.assertTrue("cst043", ((new com.ibm.icu.math.BigDecimal("+1E+009")).toString()).equals("1E+9")); 527 TestFmwk.assertTrue("cst044", ((new com.ibm.icu.math.BigDecimal("0E+9")).toString()).equals("0")); 528 TestFmwk.assertTrue("cst045", ((new com.ibm.icu.math.BigDecimal("1E+9")).toString()).equals("1E+9")); 529 TestFmwk.assertTrue("cst046", ((new com.ibm.icu.math.BigDecimal("1E+09")).toString()).equals("1E+9")); 530 TestFmwk.assertTrue("cst047", ((new com.ibm.icu.math.BigDecimal("1e+90")).toString()).equals("1E+90")); 531 TestFmwk.assertTrue("cst048", ((new com.ibm.icu.math.BigDecimal("1E+009")).toString()).equals("1E+9")); 532 TestFmwk.assertTrue("cst049", ((new com.ibm.icu.math.BigDecimal("0E+9")).toString()).equals("0")); 533 TestFmwk.assertTrue("cst050", ((new com.ibm.icu.math.BigDecimal("1E9")).toString()).equals("1E+9")); 534 TestFmwk.assertTrue("cst051", ((new com.ibm.icu.math.BigDecimal("1e09")).toString()).equals("1E+9")); 535 TestFmwk.assertTrue("cst052", ((new com.ibm.icu.math.BigDecimal("1E90")).toString()).equals("1E+90")); 536 TestFmwk.assertTrue("cst053", ((new com.ibm.icu.math.BigDecimal("1E009")).toString()).equals("1E+9")); 537 TestFmwk.assertTrue("cst054", ((new com.ibm.icu.math.BigDecimal("0E9")).toString()).equals("0")); 538 TestFmwk.assertTrue("cst055", ((new com.ibm.icu.math.BigDecimal("0.000e+0")).toString()).equals("0")); 539 TestFmwk.assertTrue("cst056", ((new com.ibm.icu.math.BigDecimal("0.000E-1")).toString()).equals("0")); 540 TestFmwk.assertTrue("cst057", ((new com.ibm.icu.math.BigDecimal("4E+9")).toString()).equals("4E+9")); 541 TestFmwk.assertTrue("cst058", ((new com.ibm.icu.math.BigDecimal("44E+9")).toString()).equals("4.4E+10")); 542 TestFmwk.assertTrue("cst059", ((new com.ibm.icu.math.BigDecimal("0.73e-7")).toString()).equals("7.3E-8")); 543 TestFmwk.assertTrue("cst060", ((new com.ibm.icu.math.BigDecimal("00E+9")).toString()).equals("0")); 544 TestFmwk.assertTrue("cst061", ((new com.ibm.icu.math.BigDecimal("00E-9")).toString()).equals("0")); 545 TestFmwk.assertTrue("cst062", ((new com.ibm.icu.math.BigDecimal("10E+9")).toString()).equals("1.0E+10")); 546 TestFmwk.assertTrue("cst063", ((new com.ibm.icu.math.BigDecimal("10E+09")).toString()).equals("1.0E+10")); 547 TestFmwk.assertTrue("cst064", ((new com.ibm.icu.math.BigDecimal("10e+90")).toString()).equals("1.0E+91")); 548 TestFmwk.assertTrue("cst065", ((new com.ibm.icu.math.BigDecimal("10E+009")).toString()).equals("1.0E+10")); 549 TestFmwk.assertTrue("cst066", ((new com.ibm.icu.math.BigDecimal("100e+9")).toString()).equals("1.00E+11")); 550 TestFmwk.assertTrue("cst067", ((new com.ibm.icu.math.BigDecimal("100e+09")).toString()).equals("1.00E+11")); 551 TestFmwk.assertTrue("cst068", ((new com.ibm.icu.math.BigDecimal("100E+90")).toString()).equals("1.00E+92")); 552 TestFmwk.assertTrue("cst069", ((new com.ibm.icu.math.BigDecimal("100e+009")).toString()).equals("1.00E+11")); 553 554 TestFmwk.assertTrue("cst070", ((new com.ibm.icu.math.BigDecimal("1.265")).toString()).equals("1.265")); 555 TestFmwk.assertTrue("cst071", ((new com.ibm.icu.math.BigDecimal("1.265E-20")).toString()).equals("1.265E-20")); 556 TestFmwk.assertTrue("cst072", ((new com.ibm.icu.math.BigDecimal("1.265E-8")).toString()).equals("1.265E-8")); 557 TestFmwk.assertTrue("cst073", ((new com.ibm.icu.math.BigDecimal("1.265E-4")).toString()).equals("1.265E-4")); 558 TestFmwk.assertTrue("cst074", ((new com.ibm.icu.math.BigDecimal("1.265E-3")).toString()).equals("1.265E-3")); 559 TestFmwk.assertTrue("cst075", ((new com.ibm.icu.math.BigDecimal("1.265E-2")).toString()).equals("1.265E-2")); 560 TestFmwk.assertTrue("cst076", ((new com.ibm.icu.math.BigDecimal("1.265E-1")).toString()).equals("1.265E-1")); 561 TestFmwk.assertTrue("cst077", ((new com.ibm.icu.math.BigDecimal("1.265E-0")).toString()).equals("1.265")); 562 TestFmwk.assertTrue("cst078", ((new com.ibm.icu.math.BigDecimal("1.265E+1")).toString()).equals("1.265E+1")); 563 TestFmwk.assertTrue("cst079", ((new com.ibm.icu.math.BigDecimal("1.265E+2")).toString()).equals("1.265E+2")); 564 TestFmwk.assertTrue("cst080", ((new com.ibm.icu.math.BigDecimal("1.265E+3")).toString()).equals("1.265E+3")); 565 TestFmwk.assertTrue("cst081", ((new com.ibm.icu.math.BigDecimal("1.265E+4")).toString()).equals("1.265E+4")); 566 TestFmwk.assertTrue("cst082", ((new com.ibm.icu.math.BigDecimal("1.265E+8")).toString()).equals("1.265E+8")); 567 TestFmwk.assertTrue("cst083", ((new com.ibm.icu.math.BigDecimal("1.265E+20")).toString()).equals("1.265E+20")); 568 569 TestFmwk.assertTrue("cst090", ((new com.ibm.icu.math.BigDecimal("12.65")).toString()).equals("12.65")); 570 TestFmwk.assertTrue("cst091", ((new com.ibm.icu.math.BigDecimal("12.65E-20")).toString()).equals("1.265E-19")); 571 TestFmwk.assertTrue("cst092", ((new com.ibm.icu.math.BigDecimal("12.65E-8")).toString()).equals("1.265E-7")); 572 TestFmwk.assertTrue("cst093", ((new com.ibm.icu.math.BigDecimal("12.65E-4")).toString()).equals("1.265E-3")); 573 TestFmwk.assertTrue("cst094", ((new com.ibm.icu.math.BigDecimal("12.65E-3")).toString()).equals("1.265E-2")); 574 TestFmwk.assertTrue("cst095", ((new com.ibm.icu.math.BigDecimal("12.65E-2")).toString()).equals("1.265E-1")); 575 TestFmwk.assertTrue("cst096", ((new com.ibm.icu.math.BigDecimal("12.65E-1")).toString()).equals("1.265")); 576 TestFmwk.assertTrue("cst097", ((new com.ibm.icu.math.BigDecimal("12.65E-0")).toString()).equals("1.265E+1")); 577 TestFmwk.assertTrue("cst098", ((new com.ibm.icu.math.BigDecimal("12.65E+1")).toString()).equals("1.265E+2")); 578 TestFmwk.assertTrue("cst099", ((new com.ibm.icu.math.BigDecimal("12.65E+2")).toString()).equals("1.265E+3")); 579 TestFmwk.assertTrue("cst100", ((new com.ibm.icu.math.BigDecimal("12.65E+3")).toString()).equals("1.265E+4")); 580 TestFmwk.assertTrue("cst101", ((new com.ibm.icu.math.BigDecimal("12.65E+4")).toString()).equals("1.265E+5")); 581 TestFmwk.assertTrue("cst102", ((new com.ibm.icu.math.BigDecimal("12.65E+8")).toString()).equals("1.265E+9")); 582 TestFmwk.assertTrue("cst103", ((new com.ibm.icu.math.BigDecimal("12.65E+20")).toString()).equals("1.265E+21")); 583 584 TestFmwk.assertTrue("cst110", ((new com.ibm.icu.math.BigDecimal("126.5")).toString()).equals("126.5")); 585 TestFmwk.assertTrue("cst111", ((new com.ibm.icu.math.BigDecimal("126.5E-20")).toString()).equals("1.265E-18")); 586 TestFmwk.assertTrue("cst112", ((new com.ibm.icu.math.BigDecimal("126.5E-8")).toString()).equals("1.265E-6")); 587 TestFmwk.assertTrue("cst113", ((new com.ibm.icu.math.BigDecimal("126.5E-4")).toString()).equals("1.265E-2")); 588 TestFmwk.assertTrue("cst114", ((new com.ibm.icu.math.BigDecimal("126.5E-3")).toString()).equals("1.265E-1")); 589 TestFmwk.assertTrue("cst115", ((new com.ibm.icu.math.BigDecimal("126.5E-2")).toString()).equals("1.265")); 590 TestFmwk.assertTrue("cst116", ((new com.ibm.icu.math.BigDecimal("126.5E-1")).toString()).equals("1.265E+1")); 591 TestFmwk.assertTrue("cst117", ((new com.ibm.icu.math.BigDecimal("126.5E-0")).toString()).equals("1.265E+2")); 592 TestFmwk.assertTrue("cst118", ((new com.ibm.icu.math.BigDecimal("126.5E+1")).toString()).equals("1.265E+3")); 593 TestFmwk.assertTrue("cst119", ((new com.ibm.icu.math.BigDecimal("126.5E+2")).toString()).equals("1.265E+4")); 594 TestFmwk.assertTrue("cst120", ((new com.ibm.icu.math.BigDecimal("126.5E+3")).toString()).equals("1.265E+5")); 595 TestFmwk.assertTrue("cst121", ((new com.ibm.icu.math.BigDecimal("126.5E+4")).toString()).equals("1.265E+6")); 596 TestFmwk.assertTrue("cst122", ((new com.ibm.icu.math.BigDecimal("126.5E+8")).toString()).equals("1.265E+10")); 597 TestFmwk.assertTrue("cst123", ((new com.ibm.icu.math.BigDecimal("126.5E+20")).toString()).equals("1.265E+22")); 598 599 TestFmwk.assertTrue("cst130", ((new com.ibm.icu.math.BigDecimal("1265")).toString()).equals("1265")); 600 TestFmwk.assertTrue("cst131", ((new com.ibm.icu.math.BigDecimal("1265E-20")).toString()).equals("1.265E-17")); 601 TestFmwk.assertTrue("cst132", ((new com.ibm.icu.math.BigDecimal("1265E-8")).toString()).equals("1.265E-5")); 602 TestFmwk.assertTrue("cst133", ((new com.ibm.icu.math.BigDecimal("1265E-4")).toString()).equals("1.265E-1")); 603 TestFmwk.assertTrue("cst134", ((new com.ibm.icu.math.BigDecimal("1265E-3")).toString()).equals("1.265")); 604 TestFmwk.assertTrue("cst135", ((new com.ibm.icu.math.BigDecimal("1265E-2")).toString()).equals("1.265E+1")); 605 TestFmwk.assertTrue("cst136", ((new com.ibm.icu.math.BigDecimal("1265E-1")).toString()).equals("1.265E+2")); 606 TestFmwk.assertTrue("cst137", ((new com.ibm.icu.math.BigDecimal("1265E-0")).toString()).equals("1.265E+3")); 607 TestFmwk.assertTrue("cst138", ((new com.ibm.icu.math.BigDecimal("1265E+1")).toString()).equals("1.265E+4")); 608 TestFmwk.assertTrue("cst139", ((new com.ibm.icu.math.BigDecimal("1265E+2")).toString()).equals("1.265E+5")); 609 TestFmwk.assertTrue("cst140", ((new com.ibm.icu.math.BigDecimal("1265E+3")).toString()).equals("1.265E+6")); 610 TestFmwk.assertTrue("cst141", ((new com.ibm.icu.math.BigDecimal("1265E+4")).toString()).equals("1.265E+7")); 611 TestFmwk.assertTrue("cst142", ((new com.ibm.icu.math.BigDecimal("1265E+8")).toString()).equals("1.265E+11")); 612 TestFmwk.assertTrue("cst143", ((new com.ibm.icu.math.BigDecimal("1265E+20")).toString()).equals("1.265E+23")); 613 614 TestFmwk.assertTrue("cst150", ((new com.ibm.icu.math.BigDecimal("0.1265")).toString()).equals("0.1265")); 615 TestFmwk.assertTrue("cst151", ((new com.ibm.icu.math.BigDecimal("0.1265E-20")).toString()).equals("1.265E-21")); 616 TestFmwk.assertTrue("cst152", ((new com.ibm.icu.math.BigDecimal("0.1265E-8")).toString()).equals("1.265E-9")); 617 TestFmwk.assertTrue("cst153", ((new com.ibm.icu.math.BigDecimal("0.1265E-4")).toString()).equals("1.265E-5")); 618 TestFmwk.assertTrue("cst154", ((new com.ibm.icu.math.BigDecimal("0.1265E-3")).toString()).equals("1.265E-4")); 619 TestFmwk.assertTrue("cst155", ((new com.ibm.icu.math.BigDecimal("0.1265E-2")).toString()).equals("1.265E-3")); 620 TestFmwk.assertTrue("cst156", ((new com.ibm.icu.math.BigDecimal("0.1265E-1")).toString()).equals("1.265E-2")); 621 TestFmwk.assertTrue("cst157", ((new com.ibm.icu.math.BigDecimal("0.1265E-0")).toString()).equals("1.265E-1")); 622 TestFmwk.assertTrue("cst158", ((new com.ibm.icu.math.BigDecimal("0.1265E+1")).toString()).equals("1.265")); 623 TestFmwk.assertTrue("cst159", ((new com.ibm.icu.math.BigDecimal("0.1265E+2")).toString()).equals("1.265E+1")); 624 TestFmwk.assertTrue("cst160", ((new com.ibm.icu.math.BigDecimal("0.1265E+3")).toString()).equals("1.265E+2")); 625 TestFmwk.assertTrue("cst161", ((new com.ibm.icu.math.BigDecimal("0.1265E+4")).toString()).equals("1.265E+3")); 626 TestFmwk.assertTrue("cst162", ((new com.ibm.icu.math.BigDecimal("0.1265E+8")).toString()).equals("1.265E+7")); 627 TestFmwk.assertTrue("cst163", ((new com.ibm.icu.math.BigDecimal("0.1265E+20")).toString()).equals("1.265E+19")); 628 629 TestFmwk.assertTrue("cst170", ((new com.ibm.icu.math.BigDecimal("0.09e999999999")).toString()).equals("9E+999999997")); 630 TestFmwk.assertTrue("cst171", ((new com.ibm.icu.math.BigDecimal("0.9e999999999")).toString()).equals("9E+999999998")); 631 TestFmwk.assertTrue("cst172", ((new com.ibm.icu.math.BigDecimal("9e999999999")).toString()).equals("9E+999999999")); 632 TestFmwk.assertTrue("cst173", ((new com.ibm.icu.math.BigDecimal("9.9e999999999")).toString()).equals("9.9E+999999999")); 633 TestFmwk.assertTrue("cst174", ((new com.ibm.icu.math.BigDecimal("9.99e999999999")).toString()).equals("9.99E+999999999")); 634 TestFmwk.assertTrue("cst175", ((new com.ibm.icu.math.BigDecimal("9.99e-999999999")).toString()).equals("9.99E-999999999")); 635 TestFmwk.assertTrue("cst176", ((new com.ibm.icu.math.BigDecimal("9.9e-999999999")).toString()).equals("9.9E-999999999")); 636 TestFmwk.assertTrue("cst177", ((new com.ibm.icu.math.BigDecimal("9e-999999999")).toString()).equals("9E-999999999")); 637 TestFmwk.assertTrue("cst179", ((new com.ibm.icu.math.BigDecimal("99e-999999999")).toString()).equals("9.9E-999999998")); 638 TestFmwk.assertTrue("cst180", ((new com.ibm.icu.math.BigDecimal("999e-999999999")).toString()).equals("9.99E-999999997")); 639 640 // baddies -- 641 badstrings = new java.lang.String[] { "1..2", ".", "..", "++1", "--1", 642 "-+1", "+-1", "12e", "12e++", "12f4", " +1", "+ 1", "12 ", 643 " + 1", " - 1 ", "x", "-1-", "12-", "3+", "", "1e-", 644 "7e1000000000", "", "e100", "\u0e5a", "\u0b65", "99e999999999", 645 "999e999999999", "0.9e-999999999", "0.09e-999999999", 646 "0.1e1000000000", "10e-1000000000", "0.9e9999999999", 647 "99e-9999999999", "111e9999999999", 648 "1111e-9999999999" + " " + "111e*123", "111e123-", "111e+12+", 649 "111e1-3-", "111e1*23", "111e1e+3", "1e1.0", "1e123e", "ten", 650 "ONE", "1e.1", "1e1.", "1ee", "e+1" }; // 200-203 651 // 204-207 652 // 208-211 653 // 211-214 654 // 215-219 655 // 220-222 656 // 223-224 657 // 225-226 658 // 227-228 659 // 229-230 660 // 231-232 661 // 233-234 662 // 235-237 663 // 238-240 664 // 241-244 665 // 245-248 666 667 // watch out for commas on continuation lines 668 669 { 670 int $16 = badstrings.length; 671 i = 0; 672 for (; $16 > 0; $16--, i++) { 673 try { 674 new com.ibm.icu.math.BigDecimal(badstrings[i]); 675 say(">>> cst"+(200+i)+":"+" "+badstrings[i]+" "+(new com.ibm.icu.math.BigDecimal(badstrings[i])).toString()); 676 flag = false; 677 } catch (java.lang.NumberFormatException $17) { 678 flag = true; 679 } 680 TestFmwk.assertTrue("cst" + (200 + i), flag); 681 } 682 }/* i */ 683 684 try { 685 new com.ibm.icu.math.BigDecimal((java.lang.String) null); 686 flag = false; 687 } catch (java.lang.NullPointerException $18) { 688 flag = true; 689 }/* checknull */ 690 TestFmwk.assertTrue("cst301", flag); 691 692 return; 693 } 694 695 /** Mutation tests (checks that contents of constant objects are unchanged). */ 696 697 @Test 698 public void diagmutation() { 699 /* ---------------------------------------------------------------- */ 700 /* Final tests -- check constants haven't mutated */ 701 /* -- also that MC objects haven't mutated */ 702 /* ---------------------------------------------------------------- */ 703 TestFmwk.assertTrue("cuc001", (com.ibm.icu.math.BigDecimal.ZERO.toString()).equals("0")); 704 TestFmwk.assertTrue("cuc002", (com.ibm.icu.math.BigDecimal.ONE.toString()).equals("1")); 705 TestFmwk.assertTrue("cuc003", (com.ibm.icu.math.BigDecimal.TEN.toString()).equals("10")); 706 707 @SuppressWarnings("unused") 708 int constantVal; // workaround for "Comparing identical expressions" warnings 709 TestFmwk.assertTrue("cuc010", com.ibm.icu.math.BigDecimal.ROUND_CEILING == (constantVal = com.ibm.icu.math.MathContext.ROUND_CEILING)); 710 TestFmwk.assertTrue("cuc011", com.ibm.icu.math.BigDecimal.ROUND_DOWN == (constantVal = com.ibm.icu.math.MathContext.ROUND_DOWN)); 711 TestFmwk.assertTrue("cuc012", com.ibm.icu.math.BigDecimal.ROUND_FLOOR == (constantVal = com.ibm.icu.math.MathContext.ROUND_FLOOR)); 712 TestFmwk.assertTrue("cuc013", com.ibm.icu.math.BigDecimal.ROUND_HALF_DOWN == (constantVal = com.ibm.icu.math.MathContext.ROUND_HALF_DOWN)); 713 TestFmwk.assertTrue("cuc014", com.ibm.icu.math.BigDecimal.ROUND_HALF_EVEN == (constantVal = com.ibm.icu.math.MathContext.ROUND_HALF_EVEN)); 714 TestFmwk.assertTrue("cuc015", com.ibm.icu.math.BigDecimal.ROUND_HALF_UP == (constantVal = com.ibm.icu.math.MathContext.ROUND_HALF_UP)); 715 TestFmwk.assertTrue("cuc016", com.ibm.icu.math.BigDecimal.ROUND_UNNECESSARY == (constantVal = com.ibm.icu.math.MathContext.ROUND_UNNECESSARY)); 716 TestFmwk.assertTrue("cuc017", com.ibm.icu.math.BigDecimal.ROUND_UP == (constantVal = com.ibm.icu.math.MathContext.ROUND_UP)); 717 718 TestFmwk.assertTrue("cuc020", (com.ibm.icu.math.MathContext.DEFAULT.getDigits()) == 9); 719 TestFmwk.assertTrue("cuc021", (com.ibm.icu.math.MathContext.DEFAULT.getForm()) == com.ibm.icu.math.MathContext.SCIENTIFIC); 720 TestFmwk.assertTrue("cuc022", (com.ibm.icu.math.MathContext.DEFAULT.getLostDigits() ? 1 : 0) == 0); 721 TestFmwk.assertTrue("cuc023", (com.ibm.icu.math.MathContext.DEFAULT.getRoundingMode()) == com.ibm.icu.math.MathContext.ROUND_HALF_UP); 722 723 // mc9 =MathContext(9) 724 // mcld =MathContext(9, SCIENTIFIC, 1) 725 // mcfd =MathContext(0, PLAIN) 726 TestFmwk.assertTrue("cuc030", (mc9.getDigits()) == 9); 727 TestFmwk.assertTrue("cuc031", (mc9.getForm()) == com.ibm.icu.math.MathContext.SCIENTIFIC); 728 TestFmwk.assertTrue("cuc032", (mc9.getLostDigits() ? 1 : 0) == 0); 729 TestFmwk.assertTrue("cuc033", (mc9.getRoundingMode()) == com.ibm.icu.math.MathContext.ROUND_HALF_UP); 730 TestFmwk.assertTrue("cuc034", (mcld.getDigits()) == 9); 731 TestFmwk.assertTrue("cuc035", (mcld.getForm()) == com.ibm.icu.math.MathContext.SCIENTIFIC); 732 TestFmwk.assertTrue("cuc036", (mcld.getLostDigits() ? 1 : 0) == 1); 733 TestFmwk.assertTrue("cuc037", (mcld.getRoundingMode()) == com.ibm.icu.math.MathContext.ROUND_HALF_UP); 734 TestFmwk.assertTrue("cuc038", (mcfd.getDigits()) == 0); 735 TestFmwk.assertTrue("cuc039", (mcfd.getForm()) == com.ibm.icu.math.MathContext.PLAIN); 736 TestFmwk.assertTrue("cuc040", (mcfd.getLostDigits() ? 1 : 0) == 0); 737 TestFmwk.assertTrue("cuc041", (mcfd.getRoundingMode()) == com.ibm.icu.math.MathContext.ROUND_HALF_UP); 738 739 } 740 741 742 /* ----------------------------------------------------------------- */ 743 /* Operator test methods */ 744 /* ----------------------------------------------------------------- */ 745 // The use of context in these tests are primarily to show that they 746 // are correctly passed to the methods, except that we check that 747 // each method checks for lostDigits. 748 749 /** Test the {@link com.ibm.icu.math.BigDecimal#abs} method. */ 750 751 @Test 752 public void diagabs() { 753 boolean flag = false; 754 java.lang.ArithmeticException ae = null; 755 756 // most of the function of this is tested by add 757 TestFmwk.assertTrue("abs001", ((new com.ibm.icu.math.BigDecimal("2")).abs().toString()).equals("2")); 758 TestFmwk.assertTrue("abs002", ((new com.ibm.icu.math.BigDecimal("-2")).abs().toString()).equals("2")); 759 TestFmwk.assertTrue("abs003", ((new com.ibm.icu.math.BigDecimal("+0.000")).abs().toString()).equals("0.000")); 760 TestFmwk.assertTrue("abs004", ((new com.ibm.icu.math.BigDecimal("00.000")).abs().toString()).equals("0.000")); 761 TestFmwk.assertTrue("abs005", ((new com.ibm.icu.math.BigDecimal("-0.000")).abs().toString()).equals("0.000")); 762 TestFmwk.assertTrue("abs006", ((new com.ibm.icu.math.BigDecimal("+0.000")).abs(mcdef).toString()).equals("0")); 763 TestFmwk.assertTrue("abs007", ((new com.ibm.icu.math.BigDecimal("00.000")).abs(mcdef).toString()).equals("0")); 764 TestFmwk.assertTrue("abs008", ((new com.ibm.icu.math.BigDecimal("-0.000")).abs(mcdef).toString()).equals("0")); 765 TestFmwk.assertTrue("abs009", ((new com.ibm.icu.math.BigDecimal("-2000000")).abs().toString()).equals("2000000")); 766 TestFmwk.assertTrue("abs010", ((new com.ibm.icu.math.BigDecimal("-2000000")).abs(mcdef).toString()).equals("2000000")); 767 TestFmwk.assertTrue("abs011", ((new com.ibm.icu.math.BigDecimal("-2000000")).abs(mc6).toString()).equals("2.00000E+6")); 768 TestFmwk.assertTrue("abs012", ((new com.ibm.icu.math.BigDecimal("2000000")).abs(mc6).toString()).equals("2.00000E+6")); 769 TestFmwk.assertTrue("abs013", ((new com.ibm.icu.math.BigDecimal("0.2")).abs().toString()).equals("0.2")); 770 TestFmwk.assertTrue("abs014", ((new com.ibm.icu.math.BigDecimal("-0.2")).abs().toString()).equals("0.2")); 771 TestFmwk.assertTrue("abs015", ((new com.ibm.icu.math.BigDecimal("0.01")).abs().toString()).equals("0.01")); 772 TestFmwk.assertTrue("abs016", ((new com.ibm.icu.math.BigDecimal("-0.01")).abs().toString()).equals("0.01")); 773 try { 774 tenlong.abs(mcld); 775 flag = false; 776 } catch (java.lang.ArithmeticException $19) { 777 ae = $19; 778 flag = (ae.getMessage()).equals("Too many digits:" + " " 779 + tenlong.toString()); 780 }/* checkdigits */ 781 TestFmwk.assertTrue("abs020", flag); 782 // check lostdigits not raised if digits=0 [monadic method] 783 try { 784 tenlong.abs(mcld0); 785 flag = true; 786 } catch (java.lang.ArithmeticException $20) { 787 ae = $20; 788 flag = false; 789 }/* checkdigits */ 790 TestFmwk.assertTrue("abs021", flag); 791 try { 792 com.ibm.icu.math.BigDecimal.TEN 793 .abs((com.ibm.icu.math.MathContext) null); 794 flag = false; 795 } catch (java.lang.NullPointerException $21) { 796 flag = true; 797 }/* checknull */ 798 TestFmwk.assertTrue("abs022", flag); 799 800 } 801 802 /* ----------------------------------------------------------------- */ 803 804 /** Test the {@link com.ibm.icu.math.BigDecimal#add} method. */ 805 806 @Test 807 public void diagadd() { 808 boolean flag = false; 809 com.ibm.icu.math.BigDecimal alhs; 810 com.ibm.icu.math.BigDecimal arhs; 811 java.lang.ArithmeticException ae = null; 812 813 // [first group are 'quick confidence check'] 814 TestFmwk.assertTrue("add001", ((new com.ibm.icu.math.BigDecimal(2)).add(new com.ibm.icu.math.BigDecimal(3),mcdef).toString()).equals("5")); 815 TestFmwk.assertTrue("add003", ((new com.ibm.icu.math.BigDecimal("5.75")).add(new com.ibm.icu.math.BigDecimal("3.3"),mcdef).toString()).equals("9.05")); 816 TestFmwk.assertTrue("add004", ((new com.ibm.icu.math.BigDecimal("5")).add(new com.ibm.icu.math.BigDecimal("-3"),mcdef).toString()).equals("2")); 817 TestFmwk.assertTrue("add005", ((new com.ibm.icu.math.BigDecimal("-5")).add(new com.ibm.icu.math.BigDecimal("-3"),mcdef).toString()).equals("-8")); 818 TestFmwk.assertTrue("add006", ((new com.ibm.icu.math.BigDecimal("-7")).add(new com.ibm.icu.math.BigDecimal("2.5"),mcdef).toString()).equals("-4.5")); 819 TestFmwk.assertTrue("add007", ((new com.ibm.icu.math.BigDecimal("0.7")).add(new com.ibm.icu.math.BigDecimal("0.3"),mcdef).toString()).equals("1.0")); 820 TestFmwk.assertTrue("add008", ((new com.ibm.icu.math.BigDecimal("1.25")).add(new com.ibm.icu.math.BigDecimal("1.25"),mcdef).toString()).equals("2.50")); 821 TestFmwk.assertTrue("add009", ((new com.ibm.icu.math.BigDecimal("1.23456789")).add(new com.ibm.icu.math.BigDecimal("1.00000000"),mcdef).toString()).equals("2.23456789")); 822 823 TestFmwk.assertTrue("add010", ((new com.ibm.icu.math.BigDecimal("1.23456789")).add(new com.ibm.icu.math.BigDecimal("1.00000011"),mcdef).toString()).equals("2.23456800")); 824 825 826 TestFmwk.assertTrue("add011", ((new com.ibm.icu.math.BigDecimal("0.4444444444")).add(new com.ibm.icu.math.BigDecimal("0.5555555555"),mcdef).toString()).equals("1.00000000")); 827 828 TestFmwk.assertTrue("add012", ((new com.ibm.icu.math.BigDecimal("0.4444444440")).add(new com.ibm.icu.math.BigDecimal("0.5555555555"),mcdef).toString()).equals("1.00000000")); 829 830 TestFmwk.assertTrue("add013", ((new com.ibm.icu.math.BigDecimal("0.4444444444")).add(new com.ibm.icu.math.BigDecimal("0.5555555550"),mcdef).toString()).equals("0.999999999")); 831 832 TestFmwk.assertTrue("add014", ((new com.ibm.icu.math.BigDecimal("0.4444444444999")).add(new com.ibm.icu.math.BigDecimal("0"),mcdef).toString()).equals("0.444444444")); 833 834 TestFmwk.assertTrue("add015", ((new com.ibm.icu.math.BigDecimal("0.4444444445000")).add(new com.ibm.icu.math.BigDecimal("0"),mcdef).toString()).equals("0.444444445")); 835 836 837 TestFmwk.assertTrue("add016", ((new com.ibm.icu.math.BigDecimal("70")).add(new com.ibm.icu.math.BigDecimal("10000e+9"),mcdef).toString()).equals("1.00000000E+13")); 838 839 TestFmwk.assertTrue("add017", ((new com.ibm.icu.math.BigDecimal("700")).add(new com.ibm.icu.math.BigDecimal("10000e+9"),mcdef).toString()).equals("1.00000000E+13")); 840 841 TestFmwk.assertTrue("add018", ((new com.ibm.icu.math.BigDecimal("7000")).add(new com.ibm.icu.math.BigDecimal("10000e+9"),mcdef).toString()).equals("1.00000000E+13")); 842 843 TestFmwk.assertTrue("add019", ((new com.ibm.icu.math.BigDecimal("70000")).add(new com.ibm.icu.math.BigDecimal("10000e+9"),mcdef).toString()).equals("1.00000001E+13")); 844 845 TestFmwk.assertTrue("add020", ((new com.ibm.icu.math.BigDecimal("700000")).add(new com.ibm.icu.math.BigDecimal("10000e+9"),mcdef).toString()).equals("1.00000007E+13")); 846 847 848 // [Now the same group with fixed arithmetic] 849 TestFmwk.assertTrue("add030", ((new com.ibm.icu.math.BigDecimal(2)).add(new com.ibm.icu.math.BigDecimal(3)).toString()).equals("5")); 850 TestFmwk.assertTrue("add031", ((new com.ibm.icu.math.BigDecimal("5.75")).add(new com.ibm.icu.math.BigDecimal("3.3")).toString()).equals("9.05")); 851 TestFmwk.assertTrue("add032", ((new com.ibm.icu.math.BigDecimal("5")).add(new com.ibm.icu.math.BigDecimal("-3")).toString()).equals("2")); 852 TestFmwk.assertTrue("add033", ((new com.ibm.icu.math.BigDecimal("-5")).add(new com.ibm.icu.math.BigDecimal("-3")).toString()).equals("-8")); 853 TestFmwk.assertTrue("add034", ((new com.ibm.icu.math.BigDecimal("-7")).add(new com.ibm.icu.math.BigDecimal("2.5")).toString()).equals("-4.5")); 854 TestFmwk.assertTrue("add035", ((new com.ibm.icu.math.BigDecimal("0.7")).add(new com.ibm.icu.math.BigDecimal("0.3")).toString()).equals("1.0")); 855 TestFmwk.assertTrue("add036", ((new com.ibm.icu.math.BigDecimal("1.25")).add(new com.ibm.icu.math.BigDecimal("1.25")).toString()).equals("2.50")); 856 TestFmwk.assertTrue("add037", ((new com.ibm.icu.math.BigDecimal("1.23456789")).add(new com.ibm.icu.math.BigDecimal("1.00000000")).toString()).equals("2.23456789")); 857 858 TestFmwk.assertTrue("add038", ((new com.ibm.icu.math.BigDecimal("1.23456789")).add(new com.ibm.icu.math.BigDecimal("1.00000011")).toString()).equals("2.23456800")); 859 860 861 TestFmwk.assertTrue("add039", ((new com.ibm.icu.math.BigDecimal("0.4444444444")).add(new com.ibm.icu.math.BigDecimal("0.5555555555")).toString()).equals("0.9999999999")); 862 863 TestFmwk.assertTrue("add040", ((new com.ibm.icu.math.BigDecimal("0.4444444440")).add(new com.ibm.icu.math.BigDecimal("0.5555555555")).toString()).equals("0.9999999995")); 864 865 TestFmwk.assertTrue("add041", ((new com.ibm.icu.math.BigDecimal("0.4444444444")).add(new com.ibm.icu.math.BigDecimal("0.5555555550")).toString()).equals("0.9999999994")); 866 867 TestFmwk.assertTrue("add042", ((new com.ibm.icu.math.BigDecimal("0.4444444444999")).add(new com.ibm.icu.math.BigDecimal("0")).toString()).equals("0.4444444444999")); 868 869 TestFmwk.assertTrue("add043", ((new com.ibm.icu.math.BigDecimal("0.4444444445000")).add(new com.ibm.icu.math.BigDecimal("0")).toString()).equals("0.4444444445000")); 870 871 872 TestFmwk.assertTrue("add044", ((new com.ibm.icu.math.BigDecimal("70")).add(new com.ibm.icu.math.BigDecimal("10000e+9")).toString()).equals("10000000000070")); 873 874 TestFmwk.assertTrue("add045", ((new com.ibm.icu.math.BigDecimal("700")).add(new com.ibm.icu.math.BigDecimal("10000e+9")).toString()).equals("10000000000700")); 875 876 TestFmwk.assertTrue("add046", ((new com.ibm.icu.math.BigDecimal("7000")).add(new com.ibm.icu.math.BigDecimal("10000e+9")).toString()).equals("10000000007000")); 877 878 TestFmwk.assertTrue("add047", ((new com.ibm.icu.math.BigDecimal("70000")).add(new com.ibm.icu.math.BigDecimal("10000e+9")).toString()).equals("10000000070000")); 879 880 TestFmwk.assertTrue("add048", ((new com.ibm.icu.math.BigDecimal("700000")).add(new com.ibm.icu.math.BigDecimal("10000e+9")).toString()).equals("10000000700000")); 881 882 883 // symmetry: 884 TestFmwk.assertTrue("add049", ((new com.ibm.icu.math.BigDecimal("10000e+9")).add(new com.ibm.icu.math.BigDecimal("70"),mcdef).toString()).equals("1.00000000E+13")); 885 886 TestFmwk.assertTrue("add050", ((new com.ibm.icu.math.BigDecimal("10000e+9")).add(new com.ibm.icu.math.BigDecimal("700"),mcdef).toString()).equals("1.00000000E+13")); 887 888 TestFmwk.assertTrue("add051", ((new com.ibm.icu.math.BigDecimal("10000e+9")).add(new com.ibm.icu.math.BigDecimal("7000"),mcdef).toString()).equals("1.00000000E+13")); 889 890 TestFmwk.assertTrue("add052", ((new com.ibm.icu.math.BigDecimal("10000e+9")).add(new com.ibm.icu.math.BigDecimal("70000"),mcdef).toString()).equals("1.00000001E+13")); 891 892 TestFmwk.assertTrue("add053", ((new com.ibm.icu.math.BigDecimal("10000e+9")).add(new com.ibm.icu.math.BigDecimal("700000"),mcdef).toString()).equals("1.00000007E+13")); 893 894 895 TestFmwk.assertTrue("add054", ((new com.ibm.icu.math.BigDecimal("10000e+9")).add(new com.ibm.icu.math.BigDecimal("70")).toString()).equals("10000000000070")); 896 897 TestFmwk.assertTrue("add055", ((new com.ibm.icu.math.BigDecimal("10000e+9")).add(new com.ibm.icu.math.BigDecimal("700")).toString()).equals("10000000000700")); 898 899 TestFmwk.assertTrue("add056", ((new com.ibm.icu.math.BigDecimal("10000e+9")).add(new com.ibm.icu.math.BigDecimal("7000")).toString()).equals("10000000007000")); 900 901 TestFmwk.assertTrue("add057", ((new com.ibm.icu.math.BigDecimal("10000e+9")).add(new com.ibm.icu.math.BigDecimal("70000")).toString()).equals("10000000070000")); 902 903 TestFmwk.assertTrue("add058", ((new com.ibm.icu.math.BigDecimal("10000e+9")).add(new com.ibm.icu.math.BigDecimal("700000")).toString()).equals("10000000700000")); 904 905 // some rounding effects 906 TestFmwk.assertTrue("add059", ((new com.ibm.icu.math.BigDecimal("0.9998")).add(new com.ibm.icu.math.BigDecimal("0.0000")).toString()).equals("0.9998")); 907 908 TestFmwk.assertTrue("add060", ((new com.ibm.icu.math.BigDecimal("0.9998")).add(new com.ibm.icu.math.BigDecimal("0.0001")).toString()).equals("0.9999")); 909 910 TestFmwk.assertTrue("add061", ((new com.ibm.icu.math.BigDecimal("0.9998")).add(new com.ibm.icu.math.BigDecimal("0.0002")).toString()).equals("1.0000")); 911 912 TestFmwk.assertTrue("add062", ((new com.ibm.icu.math.BigDecimal("0.9998")).add(new com.ibm.icu.math.BigDecimal("0.0003")).toString()).equals("1.0001")); 913 914 915 // MC 916 TestFmwk.assertTrue("add070", ((new com.ibm.icu.math.BigDecimal("10000e+9")).add(new com.ibm.icu.math.BigDecimal("70000"),mcfd).toString()).equals("10000000070000")); 917 918 TestFmwk.assertTrue("add071", ((new com.ibm.icu.math.BigDecimal("10000e+9")).add(new com.ibm.icu.math.BigDecimal("70000"),mcdef).toString()).equals("1.00000001E+13")); 919 920 TestFmwk.assertTrue("add072", ((new com.ibm.icu.math.BigDecimal("10000e+9")).add(new com.ibm.icu.math.BigDecimal("70000"),mc6).toString()).equals("1.00000E+13")); 921 922 923 // zero preservation 924 TestFmwk.assertTrue("add080", (com.ibm.icu.math.BigDecimal.ONE.add(new com.ibm.icu.math.BigDecimal("0.0001"),mc6).toString()).equals("1.0001")); 925 926 TestFmwk.assertTrue("add081", (com.ibm.icu.math.BigDecimal.ONE.add(new com.ibm.icu.math.BigDecimal("0.00001"),mc6).toString()).equals("1.00001")); 927 928 TestFmwk.assertTrue("add082", (com.ibm.icu.math.BigDecimal.ONE.add(new com.ibm.icu.math.BigDecimal("0.000001"),mc6).toString()).equals("1.00000")); 929 930 TestFmwk.assertTrue("add083", (com.ibm.icu.math.BigDecimal.ONE.add(new com.ibm.icu.math.BigDecimal("0.0000001"),mc6).toString()).equals("1.00000")); 931 932 TestFmwk.assertTrue("add084", (com.ibm.icu.math.BigDecimal.ONE.add(new com.ibm.icu.math.BigDecimal("0.00000001"),mc6).toString()).equals("1.00000")); 933 934 935 // more fixed, LHS swaps 936 TestFmwk.assertTrue("add090", ((new com.ibm.icu.math.BigDecimal("-56267E-10")).add(zero).toString()).equals("-0.0000056267")); 937 TestFmwk.assertTrue("add091", ((new com.ibm.icu.math.BigDecimal("-56267E-6")).add(zero).toString()).equals("-0.056267")); 938 TestFmwk.assertTrue("add092", ((new com.ibm.icu.math.BigDecimal("-56267E-5")).add(zero).toString()).equals("-0.56267")); 939 TestFmwk.assertTrue("add093", ((new com.ibm.icu.math.BigDecimal("-56267E-4")).add(zero).toString()).equals("-5.6267")); 940 TestFmwk.assertTrue("add094", ((new com.ibm.icu.math.BigDecimal("-56267E-3")).add(zero).toString()).equals("-56.267")); 941 TestFmwk.assertTrue("add095", ((new com.ibm.icu.math.BigDecimal("-56267E-2")).add(zero).toString()).equals("-562.67")); 942 TestFmwk.assertTrue("add096", ((new com.ibm.icu.math.BigDecimal("-56267E-1")).add(zero).toString()).equals("-5626.7")); 943 TestFmwk.assertTrue("add097", ((new com.ibm.icu.math.BigDecimal("-56267E-0")).add(zero).toString()).equals("-56267")); 944 TestFmwk.assertTrue("add098", ((new com.ibm.icu.math.BigDecimal("-5E-10")).add(zero).toString()).equals("-0.0000000005")); 945 TestFmwk.assertTrue("add099", ((new com.ibm.icu.math.BigDecimal("-5E-5")).add(zero).toString()).equals("-0.00005")); 946 TestFmwk.assertTrue("add100", ((new com.ibm.icu.math.BigDecimal("-5E-1")).add(zero).toString()).equals("-0.5")); 947 TestFmwk.assertTrue("add101", ((new com.ibm.icu.math.BigDecimal("-5E-10")).add(zero).toString()).equals("-0.0000000005")); 948 TestFmwk.assertTrue("add102", ((new com.ibm.icu.math.BigDecimal("-5E-5")).add(zero).toString()).equals("-0.00005")); 949 TestFmwk.assertTrue("add103", ((new com.ibm.icu.math.BigDecimal("-5E-1")).add(zero).toString()).equals("-0.5")); 950 TestFmwk.assertTrue("add104", ((new com.ibm.icu.math.BigDecimal("-5E10")).add(zero).toString()).equals("-50000000000")); 951 TestFmwk.assertTrue("add105", ((new com.ibm.icu.math.BigDecimal("-5E5")).add(zero).toString()).equals("-500000")); 952 TestFmwk.assertTrue("add106", ((new com.ibm.icu.math.BigDecimal("-5E1")).add(zero).toString()).equals("-50")); 953 TestFmwk.assertTrue("add107", ((new com.ibm.icu.math.BigDecimal("-5E0")).add(zero).toString()).equals("-5")); 954 955 // more fixed, RHS swaps 956 TestFmwk.assertTrue("add108", (zero.add(new com.ibm.icu.math.BigDecimal("-56267E-10")).toString()).equals("-0.0000056267")); 957 TestFmwk.assertTrue("add109", (zero.add(new com.ibm.icu.math.BigDecimal("-56267E-6")).toString()).equals("-0.056267")); 958 TestFmwk.assertTrue("add110", (zero.add(new com.ibm.icu.math.BigDecimal("-56267E-5")).toString()).equals("-0.56267")); 959 TestFmwk.assertTrue("add111", (zero.add(new com.ibm.icu.math.BigDecimal("-56267E-4")).toString()).equals("-5.6267")); 960 TestFmwk.assertTrue("add112", (zero.add(new com.ibm.icu.math.BigDecimal("-56267E-3")).toString()).equals("-56.267")); 961 TestFmwk.assertTrue("add113", (zero.add(new com.ibm.icu.math.BigDecimal("-56267E-2")).toString()).equals("-562.67")); 962 TestFmwk.assertTrue("add114", (zero.add(new com.ibm.icu.math.BigDecimal("-56267E-1")).toString()).equals("-5626.7")); 963 TestFmwk.assertTrue("add115", (zero.add(new com.ibm.icu.math.BigDecimal("-56267E-0")).toString()).equals("-56267")); 964 TestFmwk.assertTrue("add116", (zero.add(new com.ibm.icu.math.BigDecimal("-5E-10")).toString()).equals("-0.0000000005")); 965 TestFmwk.assertTrue("add117", (zero.add(new com.ibm.icu.math.BigDecimal("-5E-5")).toString()).equals("-0.00005")); 966 TestFmwk.assertTrue("add118", (zero.add(new com.ibm.icu.math.BigDecimal("-5E-1")).toString()).equals("-0.5")); 967 TestFmwk.assertTrue("add129", (zero.add(new com.ibm.icu.math.BigDecimal("-5E-10")).toString()).equals("-0.0000000005")); 968 TestFmwk.assertTrue("add130", (zero.add(new com.ibm.icu.math.BigDecimal("-5E-5")).toString()).equals("-0.00005")); 969 TestFmwk.assertTrue("add131", (zero.add(new com.ibm.icu.math.BigDecimal("-5E-1")).toString()).equals("-0.5")); 970 TestFmwk.assertTrue("add132", (zero.add(new com.ibm.icu.math.BigDecimal("-5E10")).toString()).equals("-50000000000")); 971 TestFmwk.assertTrue("add133", (zero.add(new com.ibm.icu.math.BigDecimal("-5E5")).toString()).equals("-500000")); 972 TestFmwk.assertTrue("add134", (zero.add(new com.ibm.icu.math.BigDecimal("-5E1")).toString()).equals("-50")); 973 TestFmwk.assertTrue("add135", (zero.add(new com.ibm.icu.math.BigDecimal("-5E0")).toString()).equals("-5")); 974 975 // [some of the next group are really constructor tests] 976 TestFmwk.assertTrue("add140", ((new com.ibm.icu.math.BigDecimal("00.0")).add(new com.ibm.icu.math.BigDecimal("0.00"),mcdef).toString()).equals("0")); 977 TestFmwk.assertTrue("add141", ((new com.ibm.icu.math.BigDecimal("0.00")).add(new com.ibm.icu.math.BigDecimal("00.0"),mcdef).toString()).equals("0")); 978 TestFmwk.assertTrue("add142", ((new com.ibm.icu.math.BigDecimal("3")).add(new com.ibm.icu.math.BigDecimal(".3"),mcdef).toString()).equals("3.3")); 979 TestFmwk.assertTrue("add143", ((new com.ibm.icu.math.BigDecimal("3.")).add(new com.ibm.icu.math.BigDecimal(".3"),mcdef).toString()).equals("3.3")); 980 TestFmwk.assertTrue("add144", ((new com.ibm.icu.math.BigDecimal("3.0")).add(new com.ibm.icu.math.BigDecimal(".3"),mcdef).toString()).equals("3.3")); 981 TestFmwk.assertTrue("add145", ((new com.ibm.icu.math.BigDecimal("3.00")).add(new com.ibm.icu.math.BigDecimal(".3"),mcdef).toString()).equals("3.30")); 982 TestFmwk.assertTrue("add146", ((new com.ibm.icu.math.BigDecimal("3")).add(new com.ibm.icu.math.BigDecimal("3"),mcdef).toString()).equals("6")); 983 TestFmwk.assertTrue("add147", ((new com.ibm.icu.math.BigDecimal("3")).add(new com.ibm.icu.math.BigDecimal("+3"),mcdef).toString()).equals("6")); 984 TestFmwk.assertTrue("add148", ((new com.ibm.icu.math.BigDecimal("3")).add(new com.ibm.icu.math.BigDecimal("-3"),mcdef).toString()).equals("0")); 985 TestFmwk.assertTrue("add149", ((new com.ibm.icu.math.BigDecimal("0.03")).add(new com.ibm.icu.math.BigDecimal("-0.03"),mcdef).toString()).equals("0")); 986 987 TestFmwk.assertTrue("add150", ((new com.ibm.icu.math.BigDecimal("00.0")).add(new com.ibm.icu.math.BigDecimal("0.00")).toString()).equals("0.00")); 988 TestFmwk.assertTrue("add151", ((new com.ibm.icu.math.BigDecimal("0.00")).add(new com.ibm.icu.math.BigDecimal("00.0")).toString()).equals("0.00")); 989 TestFmwk.assertTrue("add152", ((new com.ibm.icu.math.BigDecimal("3")).add(new com.ibm.icu.math.BigDecimal(".3")).toString()).equals("3.3")); 990 TestFmwk.assertTrue("add153", ((new com.ibm.icu.math.BigDecimal("3.")).add(new com.ibm.icu.math.BigDecimal(".3")).toString()).equals("3.3")); 991 TestFmwk.assertTrue("add154", ((new com.ibm.icu.math.BigDecimal("3.0")).add(new com.ibm.icu.math.BigDecimal(".3")).toString()).equals("3.3")); 992 TestFmwk.assertTrue("add155", ((new com.ibm.icu.math.BigDecimal("3.00")).add(new com.ibm.icu.math.BigDecimal(".3")).toString()).equals("3.30")); 993 TestFmwk.assertTrue("add156", ((new com.ibm.icu.math.BigDecimal("3")).add(new com.ibm.icu.math.BigDecimal("3")).toString()).equals("6")); 994 TestFmwk.assertTrue("add157", ((new com.ibm.icu.math.BigDecimal("3")).add(new com.ibm.icu.math.BigDecimal("+3")).toString()).equals("6")); 995 TestFmwk.assertTrue("add158", ((new com.ibm.icu.math.BigDecimal("3")).add(new com.ibm.icu.math.BigDecimal("-3")).toString()).equals("0")); 996 TestFmwk.assertTrue("add159", ((new com.ibm.icu.math.BigDecimal("0.3")).add(new com.ibm.icu.math.BigDecimal("-0.3")).toString()).equals("0.0")); 997 TestFmwk.assertTrue("add160", ((new com.ibm.icu.math.BigDecimal("0.03")).add(new com.ibm.icu.math.BigDecimal("-0.03")).toString()).equals("0.00")); 998 TestFmwk.assertTrue("add161", ((new com.ibm.icu.math.BigDecimal("7E+12")).add(new com.ibm.icu.math.BigDecimal("-1"),mcfd).toString()).equals("6999999999999")); 999 1000 TestFmwk.assertTrue("add162", ((new com.ibm.icu.math.BigDecimal("7E+12")).add(new com.ibm.icu.math.BigDecimal("1.11"),mcfd).toString()).equals("7000000000001.11")); 1001 1002 TestFmwk.assertTrue("add163", ((new com.ibm.icu.math.BigDecimal("1.11")).add(new com.ibm.icu.math.BigDecimal("7E+12"),mcfd).toString()).equals("7000000000001.11")); 1003 1004 1005 // input preparation tests 1006 alhs=new com.ibm.icu.math.BigDecimal("12345678900000"); 1007 arhs=new com.ibm.icu.math.BigDecimal("9999999999999"); 1008 TestFmwk.assertTrue("add170", (alhs.add(arhs,mc3).toString()).equals("2.23E+13")); 1009 TestFmwk.assertTrue("add171", (arhs.add(alhs,mc3).toString()).equals("2.23E+13")); 1010 TestFmwk.assertTrue("add172", ((new com.ibm.icu.math.BigDecimal("12E+3")).add(new com.ibm.icu.math.BigDecimal("3456"),mc3).toString()).equals("1.55E+4")); 1011 // next was 1.54E+4 under old [truncate to digits+1] rules 1012 TestFmwk.assertTrue("add173", ((new com.ibm.icu.math.BigDecimal("12E+3")).add(new com.ibm.icu.math.BigDecimal("3446"),mc3).toString()).equals("1.55E+4")); 1013 TestFmwk.assertTrue("add174", ((new com.ibm.icu.math.BigDecimal("12E+3")).add(new com.ibm.icu.math.BigDecimal("3454"),mc3).toString()).equals("1.55E+4")); 1014 TestFmwk.assertTrue("add175", ((new com.ibm.icu.math.BigDecimal("12E+3")).add(new com.ibm.icu.math.BigDecimal("3444"),mc3).toString()).equals("1.54E+4")); 1015 1016 TestFmwk.assertTrue("add176", ((new com.ibm.icu.math.BigDecimal("3456")).add(new com.ibm.icu.math.BigDecimal("12E+3"),mc3).toString()).equals("1.55E+4")); 1017 // next was 1.54E+4 under old [truncate to digits+1] rules 1018 TestFmwk.assertTrue("add177", ((new com.ibm.icu.math.BigDecimal("3446")).add(new com.ibm.icu.math.BigDecimal("12E+3"),mc3).toString()).equals("1.55E+4")); 1019 TestFmwk.assertTrue("add178", ((new com.ibm.icu.math.BigDecimal("3454")).add(new com.ibm.icu.math.BigDecimal("12E+3"),mc3).toString()).equals("1.55E+4")); 1020 TestFmwk.assertTrue("add179", ((new com.ibm.icu.math.BigDecimal("3444")).add(new com.ibm.icu.math.BigDecimal("12E+3"),mc3).toString()).equals("1.54E+4")); 1021 1022 try { 1023 ten.add((com.ibm.icu.math.BigDecimal) null); 1024 flag = false; 1025 } catch (java.lang.NullPointerException $22) { 1026 flag = true; 1027 }/* checknull */ 1028 TestFmwk.assertTrue("add200", flag); 1029 try { 1030 ten.add(ten, (com.ibm.icu.math.MathContext) null); 1031 flag = false; 1032 } catch (java.lang.NullPointerException $23) { 1033 flag = true; 1034 }/* checknull2 */ 1035 TestFmwk.assertTrue("add201", flag); 1036 1037 try { 1038 tenlong.add(com.ibm.icu.math.BigDecimal.ZERO, mcld); 1039 flag = false; 1040 } catch (java.lang.ArithmeticException $24) { 1041 ae = $24; 1042 flag = (ae.getMessage()).equals("Too many digits:" + " " 1043 + tenlong.toString()); 1044 }/* checkdigits */ 1045 TestFmwk.assertTrue("add202", flag); 1046 try { 1047 com.ibm.icu.math.BigDecimal.ZERO.add(tenlong, mcld); 1048 flag = false; 1049 } catch (java.lang.ArithmeticException $25) { 1050 ae = $25; 1051 flag = (ae.getMessage()).equals("Too many digits:" + " " 1052 + tenlong.toString()); 1053 }/* checkdigits */ 1054 TestFmwk.assertTrue("add203", flag); 1055 1056 // check lostdigits not raised if digits=0 [dyadic method] 1057 try { 1058 tenlong.add(com.ibm.icu.math.BigDecimal.ZERO, mcld0); 1059 flag = true; 1060 } catch (java.lang.ArithmeticException $26) { 1061 ae = $26; 1062 flag = false; 1063 }/* checkdigits */ 1064 TestFmwk.assertTrue("add204", flag); 1065 try { 1066 com.ibm.icu.math.BigDecimal.ZERO.add(tenlong, mcld0); 1067 flag = true; 1068 } catch (java.lang.ArithmeticException $27) { 1069 ae = $27; 1070 flag = false; 1071 }/* checkdigits */ 1072 TestFmwk.assertTrue("add205", flag); 1073 1074 } 1075 1076 /* ----------------------------------------------------------------- */ 1077 /** 1078 * Test the {@link com.ibm.icu.math.BigDecimal#compareTo(BigDecimal)} 1079 * method. 1080 */ 1081 1082 @Test 1083 public void diagcompareto() { 1084 boolean flag = false; 1085 java.lang.ArithmeticException ae = null; 1086 // we assume add/subtract test function; this just 1087 // tests existence, exceptions, and possible results 1088 1089 TestFmwk.assertTrue("cpt001", ((new com.ibm.icu.math.BigDecimal("5")).compareTo(new com.ibm.icu.math.BigDecimal("2")))==1); 1090 TestFmwk.assertTrue("cpt002", ((new com.ibm.icu.math.BigDecimal("5")).compareTo(new com.ibm.icu.math.BigDecimal("5")))==0); 1091 TestFmwk.assertTrue("cpt003", ((new com.ibm.icu.math.BigDecimal("5")).compareTo(new com.ibm.icu.math.BigDecimal("5.00")))==0); 1092 TestFmwk.assertTrue("cpt004", ((new com.ibm.icu.math.BigDecimal("0.5")).compareTo(new com.ibm.icu.math.BigDecimal("0.5")))==0); 1093 TestFmwk.assertTrue("cpt005", ((new com.ibm.icu.math.BigDecimal("2")).compareTo(new com.ibm.icu.math.BigDecimal("5")))==(-1)); 1094 TestFmwk.assertTrue("cpt006", ((new com.ibm.icu.math.BigDecimal("2")).compareTo(new com.ibm.icu.math.BigDecimal("5"),mcdef))==(-1)); 1095 TestFmwk.assertTrue("cpt007", ((new com.ibm.icu.math.BigDecimal("2")).compareTo(new com.ibm.icu.math.BigDecimal("5"),mc6))==(-1)); 1096 TestFmwk.assertTrue("cpt008", ((new com.ibm.icu.math.BigDecimal("2")).compareTo(new com.ibm.icu.math.BigDecimal("5"),mcfd))==(-1)); 1097 try { 1098 ten.compareTo((com.ibm.icu.math.BigDecimal) null); 1099 flag = false; 1100 } catch (java.lang.NullPointerException $28) { 1101 flag = true; 1102 }/* checknull */ 1103 TestFmwk.assertTrue("cpt100", flag); 1104 try { 1105 ten.compareTo(ten, (com.ibm.icu.math.MathContext) null); 1106 flag = false; 1107 } catch (java.lang.NullPointerException $29) { 1108 flag = true; 1109 }/* checknull2 */ 1110 TestFmwk.assertTrue("cpt101", flag); 1111 1112 try { 1113 tenlong.compareTo(com.ibm.icu.math.BigDecimal.ONE, mcld); 1114 flag = false; 1115 } catch (java.lang.ArithmeticException $30) { 1116 ae = $30; 1117 flag = (ae.getMessage()).equals("Too many digits:" + " " 1118 + tenlong.toString()); 1119 }/* checkdigits */ 1120 TestFmwk.assertTrue("cpt102", flag); 1121 try { 1122 com.ibm.icu.math.BigDecimal.ONE.compareTo(tenlong, mcld); 1123 flag = false; 1124 } catch (java.lang.ArithmeticException $31) { 1125 ae = $31; 1126 flag = (ae.getMessage()).equals("Too many digits:" + " " 1127 + tenlong.toString()); 1128 }/* checkdigits */ 1129 TestFmwk.assertTrue("cpt103", flag); 1130 1131 } 1132 1133 /* ----------------------------------------------------------------- */ 1134 1135 /** Test the {@link com.ibm.icu.math.BigDecimal#divide} method. */ 1136 1137 @Test 1138 public void diagdivide() { 1139 boolean flag = false; 1140 com.ibm.icu.math.MathContext rmcd; 1141 int rhu; 1142 int rd; 1143 int ru; 1144 java.lang.RuntimeException e = null; 1145 java.lang.ArithmeticException ae = null; 1146 1147 TestFmwk.assertTrue("div301", ((new com.ibm.icu.math.BigDecimal("1")).divide(new com.ibm.icu.math.BigDecimal("3"),mcdef).toString()).equals("0.333333333")); 1148 TestFmwk.assertTrue("div302", ((new com.ibm.icu.math.BigDecimal("2")).divide(new com.ibm.icu.math.BigDecimal("3"),mcdef).toString()).equals("0.666666667")); 1149 TestFmwk.assertTrue("div303", ((new com.ibm.icu.math.BigDecimal("2.4")).divide(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("2.4")); 1150 TestFmwk.assertTrue("div304", ((new com.ibm.icu.math.BigDecimal("2.4")).divide(new com.ibm.icu.math.BigDecimal("-1"),mcdef).toString()).equals("-2.4")); 1151 TestFmwk.assertTrue("div305", ((new com.ibm.icu.math.BigDecimal("-2.4")).divide(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("-2.4")); 1152 TestFmwk.assertTrue("div306", ((new com.ibm.icu.math.BigDecimal("-2.4")).divide(new com.ibm.icu.math.BigDecimal("-1"),mcdef).toString()).equals("2.4")); 1153 TestFmwk.assertTrue("div307", ((new com.ibm.icu.math.BigDecimal("2.40")).divide(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("2.4")); 1154 TestFmwk.assertTrue("div308", ((new com.ibm.icu.math.BigDecimal("2.400")).divide(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("2.4")); 1155 TestFmwk.assertTrue("div309", ((new com.ibm.icu.math.BigDecimal("2.4")).divide(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("1.2")); 1156 TestFmwk.assertTrue("div310", ((new com.ibm.icu.math.BigDecimal("2.400")).divide(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("1.2")); 1157 TestFmwk.assertTrue("div311", ((new com.ibm.icu.math.BigDecimal("2.")).divide(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("1")); 1158 TestFmwk.assertTrue("div312", ((new com.ibm.icu.math.BigDecimal("20")).divide(new com.ibm.icu.math.BigDecimal("20"),mcdef).toString()).equals("1")); 1159 TestFmwk.assertTrue("div313", ((new com.ibm.icu.math.BigDecimal("187")).divide(new com.ibm.icu.math.BigDecimal("187"),mcdef).toString()).equals("1")); 1160 TestFmwk.assertTrue("div314", ((new com.ibm.icu.math.BigDecimal("5")).divide(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("2.5")); 1161 TestFmwk.assertTrue("div315", ((new com.ibm.icu.math.BigDecimal("5")).divide(new com.ibm.icu.math.BigDecimal("2.0"),mcdef).toString()).equals("2.5")); 1162 TestFmwk.assertTrue("div316", ((new com.ibm.icu.math.BigDecimal("5")).divide(new com.ibm.icu.math.BigDecimal("2.000"),mcdef).toString()).equals("2.5")); 1163 TestFmwk.assertTrue("div317", ((new com.ibm.icu.math.BigDecimal("5")).divide(new com.ibm.icu.math.BigDecimal("0.200"),mcdef).toString()).equals("25")); 1164 TestFmwk.assertTrue("div318", ((new com.ibm.icu.math.BigDecimal("999999999")).divide(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("999999999")); 1165 TestFmwk.assertTrue("div319", ((new com.ibm.icu.math.BigDecimal("999999999.4")).divide(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("999999999")); 1166 TestFmwk.assertTrue("div320", ((new com.ibm.icu.math.BigDecimal("999999999.5")).divide(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("1E+9")); 1167 TestFmwk.assertTrue("div321", ((new com.ibm.icu.math.BigDecimal("999999999.9")).divide(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("1E+9")); 1168 TestFmwk.assertTrue("div322", ((new com.ibm.icu.math.BigDecimal("999999999.999")).divide(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("1E+9")); 1169 TestFmwk.assertTrue("div323", ((new com.ibm.icu.math.BigDecimal("0.0000E-50")).divide(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("0")); 1170 // MC 1171 TestFmwk.assertTrue("div325", ((new com.ibm.icu.math.BigDecimal("999999999")).divide(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("999999999")); 1172 TestFmwk.assertTrue("div326", ((new com.ibm.icu.math.BigDecimal("999999999")).divide(new com.ibm.icu.math.BigDecimal("1"),mc6).toString()).equals("1E+9")); 1173 TestFmwk.assertTrue("div327", ((new com.ibm.icu.math.BigDecimal("9999999")).divide(new com.ibm.icu.math.BigDecimal("1"),mc6).toString()).equals("1E+7")); 1174 TestFmwk.assertTrue("div328", ((new com.ibm.icu.math.BigDecimal("999999")).divide(new com.ibm.icu.math.BigDecimal("1"),mc6).toString()).equals("999999")); 1175 1176 // check rounding explicitly [note: digits+1 truncation] 1177 rmcd=new com.ibm.icu.math.MathContext(2,com.ibm.icu.math.MathContext.SCIENTIFIC,false,com.ibm.icu.math.MathContext.ROUND_CEILING); 1178 TestFmwk.assertTrue("div330", ((new com.ibm.icu.math.BigDecimal("1.50")).divide(one,rmcd).toString()).equals("1.5")); 1179 TestFmwk.assertTrue("div331", ((new com.ibm.icu.math.BigDecimal("1.51")).divide(one,rmcd).toString()).equals("1.6")); 1180 TestFmwk.assertTrue("div332", ((new com.ibm.icu.math.BigDecimal("1.55")).divide(one,rmcd).toString()).equals("1.6")); 1181 rmcd=new com.ibm.icu.math.MathContext(2,com.ibm.icu.math.MathContext.SCIENTIFIC,false,com.ibm.icu.math.MathContext.ROUND_DOWN); 1182 TestFmwk.assertTrue("div333", ((new com.ibm.icu.math.BigDecimal("1.55")).divide(one,rmcd).toString()).equals("1.5")); 1183 TestFmwk.assertTrue("div334", ((new com.ibm.icu.math.BigDecimal("1.59")).divide(one,rmcd).toString()).equals("1.5")); 1184 rmcd=new com.ibm.icu.math.MathContext(2,com.ibm.icu.math.MathContext.SCIENTIFIC,false,com.ibm.icu.math.MathContext.ROUND_FLOOR); 1185 TestFmwk.assertTrue("div335", ((new com.ibm.icu.math.BigDecimal("1.55")).divide(one,rmcd).toString()).equals("1.5")); 1186 TestFmwk.assertTrue("div336", ((new com.ibm.icu.math.BigDecimal("1.59")).divide(one,rmcd).toString()).equals("1.5")); 1187 rmcd=new com.ibm.icu.math.MathContext(2,com.ibm.icu.math.MathContext.SCIENTIFIC,false,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN); 1188 TestFmwk.assertTrue("div337", ((new com.ibm.icu.math.BigDecimal("1.45")).divide(one,rmcd).toString()).equals("1.4")); 1189 TestFmwk.assertTrue("div338", ((new com.ibm.icu.math.BigDecimal("1.50")).divide(one,rmcd).toString()).equals("1.5")); 1190 TestFmwk.assertTrue("div339", ((new com.ibm.icu.math.BigDecimal("1.55")).divide(one,rmcd).toString()).equals("1.5")); 1191 rmcd=new com.ibm.icu.math.MathContext(2,com.ibm.icu.math.MathContext.SCIENTIFIC,false,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN); 1192 TestFmwk.assertTrue("div340", ((new com.ibm.icu.math.BigDecimal("1.45")).divide(one,rmcd).toString()).equals("1.4")); 1193 TestFmwk.assertTrue("div341", ((new com.ibm.icu.math.BigDecimal("1.50")).divide(one,rmcd).toString()).equals("1.5")); 1194 TestFmwk.assertTrue("div342", ((new com.ibm.icu.math.BigDecimal("1.55")).divide(one,rmcd).toString()).equals("1.6")); 1195 rmcd=new com.ibm.icu.math.MathContext(2,com.ibm.icu.math.MathContext.SCIENTIFIC,false,com.ibm.icu.math.MathContext.ROUND_HALF_UP); 1196 TestFmwk.assertTrue("div343", ((new com.ibm.icu.math.BigDecimal("1.45")).divide(one,rmcd).toString()).equals("1.5")); 1197 TestFmwk.assertTrue("div344", ((new com.ibm.icu.math.BigDecimal("1.50")).divide(one,rmcd).toString()).equals("1.5")); 1198 TestFmwk.assertTrue("div345", ((new com.ibm.icu.math.BigDecimal("1.55")).divide(one,rmcd).toString()).equals("1.6")); 1199 rmcd=new com.ibm.icu.math.MathContext(2,com.ibm.icu.math.MathContext.SCIENTIFIC,false,com.ibm.icu.math.MathContext.ROUND_UP); 1200 TestFmwk.assertTrue("div346", ((new com.ibm.icu.math.BigDecimal("1.50")).divide(one,rmcd).toString()).equals("1.5")); 1201 TestFmwk.assertTrue("div347", ((new com.ibm.icu.math.BigDecimal("1.51")).divide(one,rmcd).toString()).equals("1.6")); 1202 TestFmwk.assertTrue("div348", ((new com.ibm.icu.math.BigDecimal("1.55")).divide(one,rmcd).toString()).equals("1.6")); 1203 1204 // fixed point... 1205 TestFmwk.assertTrue("div350", ((new com.ibm.icu.math.BigDecimal("1")).divide(new com.ibm.icu.math.BigDecimal("3")).toString()).equals("0")); 1206 TestFmwk.assertTrue("div351", ((new com.ibm.icu.math.BigDecimal("2")).divide(new com.ibm.icu.math.BigDecimal("3")).toString()).equals("1")); 1207 TestFmwk.assertTrue("div352", ((new com.ibm.icu.math.BigDecimal("2.4")).divide(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("2.4")); 1208 TestFmwk.assertTrue("div353", ((new com.ibm.icu.math.BigDecimal("2.4")).divide(new com.ibm.icu.math.BigDecimal("-1")).toString()).equals("-2.4")); 1209 TestFmwk.assertTrue("div354", ((new com.ibm.icu.math.BigDecimal("-2.4")).divide(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("-2.4")); 1210 TestFmwk.assertTrue("div355", ((new com.ibm.icu.math.BigDecimal("-2.4")).divide(new com.ibm.icu.math.BigDecimal("-1")).toString()).equals("2.4")); 1211 TestFmwk.assertTrue("div356", ((new com.ibm.icu.math.BigDecimal("2.40")).divide(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("2.40")); 1212 TestFmwk.assertTrue("div357", ((new com.ibm.icu.math.BigDecimal("2.400")).divide(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("2.400")); 1213 TestFmwk.assertTrue("div358", ((new com.ibm.icu.math.BigDecimal("2.4")).divide(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("1.2")); 1214 TestFmwk.assertTrue("div359", ((new com.ibm.icu.math.BigDecimal("2.400")).divide(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("1.200")); 1215 TestFmwk.assertTrue("div360", ((new com.ibm.icu.math.BigDecimal("2.")).divide(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("1")); 1216 TestFmwk.assertTrue("div361", ((new com.ibm.icu.math.BigDecimal("20")).divide(new com.ibm.icu.math.BigDecimal("20")).toString()).equals("1")); 1217 TestFmwk.assertTrue("div362", ((new com.ibm.icu.math.BigDecimal("187")).divide(new com.ibm.icu.math.BigDecimal("187")).toString()).equals("1")); 1218 TestFmwk.assertTrue("div363", ((new com.ibm.icu.math.BigDecimal("5")).divide(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("3")); 1219 TestFmwk.assertTrue("div364", ((new com.ibm.icu.math.BigDecimal("5")).divide(new com.ibm.icu.math.BigDecimal("2.0")).toString()).equals("3")); 1220 TestFmwk.assertTrue("div365", ((new com.ibm.icu.math.BigDecimal("5")).divide(new com.ibm.icu.math.BigDecimal("2.000")).toString()).equals("3")); 1221 TestFmwk.assertTrue("div366", ((new com.ibm.icu.math.BigDecimal("5")).divide(new com.ibm.icu.math.BigDecimal("0.200")).toString()).equals("25")); 1222 TestFmwk.assertTrue("div367", ((new com.ibm.icu.math.BigDecimal("5.0")).divide(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("2.5")); 1223 TestFmwk.assertTrue("div368", ((new com.ibm.icu.math.BigDecimal("5.0")).divide(new com.ibm.icu.math.BigDecimal("2.0")).toString()).equals("2.5")); 1224 TestFmwk.assertTrue("div369", ((new com.ibm.icu.math.BigDecimal("5.0")).divide(new com.ibm.icu.math.BigDecimal("2.000")).toString()).equals("2.5")); 1225 TestFmwk.assertTrue("div370", ((new com.ibm.icu.math.BigDecimal("5.0")).divide(new com.ibm.icu.math.BigDecimal("0.200")).toString()).equals("25.0")); 1226 TestFmwk.assertTrue("div371", ((new com.ibm.icu.math.BigDecimal("999999999")).divide(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("999999999")); 1227 TestFmwk.assertTrue("div372", ((new com.ibm.icu.math.BigDecimal("999999999.4")).divide(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("999999999.4")); 1228 TestFmwk.assertTrue("div373", ((new com.ibm.icu.math.BigDecimal("999999999.5")).divide(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("999999999.5")); 1229 TestFmwk.assertTrue("div374", ((new com.ibm.icu.math.BigDecimal("999999999.9")).divide(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("999999999.9")); 1230 TestFmwk.assertTrue("div375", ((new com.ibm.icu.math.BigDecimal("999999999.999")).divide(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("999999999.999")); 1231 TestFmwk.assertTrue("div376", ((new com.ibm.icu.math.BigDecimal("0.0000E-5")).divide(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("0")); 1232 TestFmwk.assertTrue("div377", ((new com.ibm.icu.math.BigDecimal("0.000000000")).divide(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("0.000000000")); 1233 1234 // - Fixed point; explicit scales & rounds [old BigDecimal divides] 1235 rhu = com.ibm.icu.math.MathContext.ROUND_HALF_UP; 1236 rd = com.ibm.icu.math.MathContext.ROUND_DOWN; 1237 TestFmwk.assertTrue("div001", ((new com.ibm.icu.math.BigDecimal("0")).divide(new com.ibm.icu.math.BigDecimal("3")).toString()).equals("0")); 1238 TestFmwk.assertTrue("div002", ((new com.ibm.icu.math.BigDecimal("0")).divide(new com.ibm.icu.math.BigDecimal("3"),rhu).toString()).equals("0")); 1239 TestFmwk.assertTrue("div003", ((new com.ibm.icu.math.BigDecimal("0")).divide(new com.ibm.icu.math.BigDecimal("3"),0,rhu).toString()).equals("0")); 1240 TestFmwk.assertTrue("div004", ((new com.ibm.icu.math.BigDecimal("0")).divide(new com.ibm.icu.math.BigDecimal("3"),1,rhu).toString()).equals("0.0")); 1241 TestFmwk.assertTrue("div005", ((new com.ibm.icu.math.BigDecimal("0")).divide(new com.ibm.icu.math.BigDecimal("3"),2,rhu).toString()).equals("0.00")); 1242 TestFmwk.assertTrue("div006", ((new com.ibm.icu.math.BigDecimal("0")).divide(new com.ibm.icu.math.BigDecimal("3"),3,rhu).toString()).equals("0.000")); 1243 TestFmwk.assertTrue("div007", ((new com.ibm.icu.math.BigDecimal("0")).divide(new com.ibm.icu.math.BigDecimal("3"),4,rhu).toString()).equals("0.0000")); 1244 TestFmwk.assertTrue("div008", ((new com.ibm.icu.math.BigDecimal("1")).divide(new com.ibm.icu.math.BigDecimal("3")).toString()).equals("0")); 1245 TestFmwk.assertTrue("div009", ((new com.ibm.icu.math.BigDecimal("1")).divide(new com.ibm.icu.math.BigDecimal("3"),rhu).toString()).equals("0")); 1246 TestFmwk.assertTrue("div010", ((new com.ibm.icu.math.BigDecimal("1")).divide(new com.ibm.icu.math.BigDecimal("3"),0,rhu).toString()).equals("0")); 1247 TestFmwk.assertTrue("div011", ((new com.ibm.icu.math.BigDecimal("1")).divide(new com.ibm.icu.math.BigDecimal("3"),1,rhu).toString()).equals("0.3")); 1248 TestFmwk.assertTrue("div012", ((new com.ibm.icu.math.BigDecimal("1")).divide(new com.ibm.icu.math.BigDecimal("3"),2,rhu).toString()).equals("0.33")); 1249 TestFmwk.assertTrue("div013", ((new com.ibm.icu.math.BigDecimal("1")).divide(new com.ibm.icu.math.BigDecimal("3"),3,rhu).toString()).equals("0.333")); 1250 TestFmwk.assertTrue("div014", ((new com.ibm.icu.math.BigDecimal("1")).divide(new com.ibm.icu.math.BigDecimal("3"),4,rhu).toString()).equals("0.3333")); 1251 TestFmwk.assertTrue("div015", ((new com.ibm.icu.math.BigDecimal("2")).divide(new com.ibm.icu.math.BigDecimal("3")).toString()).equals("1")); 1252 TestFmwk.assertTrue("div016", ((new com.ibm.icu.math.BigDecimal("2")).divide(new com.ibm.icu.math.BigDecimal("3"),rhu).toString()).equals("1")); 1253 TestFmwk.assertTrue("div017", ((new com.ibm.icu.math.BigDecimal("2")).divide(new com.ibm.icu.math.BigDecimal("3"),0,rhu).toString()).equals("1")); 1254 TestFmwk.assertTrue("div018", ((new com.ibm.icu.math.BigDecimal("2")).divide(new com.ibm.icu.math.BigDecimal("3"),1,rhu).toString()).equals("0.7")); 1255 TestFmwk.assertTrue("div019", ((new com.ibm.icu.math.BigDecimal("2")).divide(new com.ibm.icu.math.BigDecimal("3"),2,rhu).toString()).equals("0.67")); 1256 TestFmwk.assertTrue("div020", ((new com.ibm.icu.math.BigDecimal("2")).divide(new com.ibm.icu.math.BigDecimal("3"),3,rhu).toString()).equals("0.667")); 1257 TestFmwk.assertTrue("div021", ((new com.ibm.icu.math.BigDecimal("2")).divide(new com.ibm.icu.math.BigDecimal("3"),4,rhu).toString()).equals("0.6667")); 1258 1259 TestFmwk.assertTrue("div030", ((new com.ibm.icu.math.BigDecimal("1000")).divide(new com.ibm.icu.math.BigDecimal("2000"),4,rhu).toString()).equals("0.5000")); 1260 TestFmwk.assertTrue("div031", ((new com.ibm.icu.math.BigDecimal("1000")).divide(new com.ibm.icu.math.BigDecimal("2000"),3,rhu).toString()).equals("0.500")); 1261 TestFmwk.assertTrue("div032", ((new com.ibm.icu.math.BigDecimal("1000")).divide(new com.ibm.icu.math.BigDecimal("2000"),2,rhu).toString()).equals("0.50")); 1262 TestFmwk.assertTrue("div033", ((new com.ibm.icu.math.BigDecimal("1000")).divide(new com.ibm.icu.math.BigDecimal("2000"),1,rhu).toString()).equals("0.5")); 1263 TestFmwk.assertTrue("div034", ((new com.ibm.icu.math.BigDecimal("1000")).divide(new com.ibm.icu.math.BigDecimal("2000"),0,rhu).toString()).equals("1")); 1264 1265 TestFmwk.assertTrue("div035", ((new com.ibm.icu.math.BigDecimal("100")).divide(new com.ibm.icu.math.BigDecimal("5000"),4,rhu).toString()).equals("0.0200")); 1266 TestFmwk.assertTrue("div036", ((new com.ibm.icu.math.BigDecimal("100")).divide(new com.ibm.icu.math.BigDecimal("5000"),3,rhu).toString()).equals("0.020")); 1267 TestFmwk.assertTrue("div037", ((new com.ibm.icu.math.BigDecimal("100")).divide(new com.ibm.icu.math.BigDecimal("5000"),2,rhu).toString()).equals("0.02")); 1268 TestFmwk.assertTrue("div038", ((new com.ibm.icu.math.BigDecimal("100")).divide(new com.ibm.icu.math.BigDecimal("5000"),1,rhu).toString()).equals("0.0")); 1269 TestFmwk.assertTrue("div039", ((new com.ibm.icu.math.BigDecimal("100")).divide(new com.ibm.icu.math.BigDecimal("5000"),0,rhu).toString()).equals("0")); 1270 1271 TestFmwk.assertTrue("div040", ((new com.ibm.icu.math.BigDecimal("9.99999999")).divide(new com.ibm.icu.math.BigDecimal("9.77777777"),4,rhu).toString()).equals("1.0227")); 1272 TestFmwk.assertTrue("div041", ((new com.ibm.icu.math.BigDecimal("9.9999999")).divide(new com.ibm.icu.math.BigDecimal("9.7777777"),4,rhu).toString()).equals("1.0227")); 1273 TestFmwk.assertTrue("div042", ((new com.ibm.icu.math.BigDecimal("9.999999")).divide(new com.ibm.icu.math.BigDecimal("9.777777"),4,rhu).toString()).equals("1.0227")); 1274 TestFmwk.assertTrue("div043", ((new com.ibm.icu.math.BigDecimal("9.77777777")).divide(new com.ibm.icu.math.BigDecimal("9.99999999"),4,rhu).toString()).equals("0.9778")); 1275 TestFmwk.assertTrue("div044", ((new com.ibm.icu.math.BigDecimal("9.7777777")).divide(new com.ibm.icu.math.BigDecimal("9.9999999"),4,rhu).toString()).equals("0.9778")); 1276 TestFmwk.assertTrue("div045", ((new com.ibm.icu.math.BigDecimal("9.777777")).divide(new com.ibm.icu.math.BigDecimal("9.999999"),4,rhu).toString()).equals("0.9778")); 1277 TestFmwk.assertTrue("div046", ((new com.ibm.icu.math.BigDecimal("9.77777")).divide(new com.ibm.icu.math.BigDecimal("9.99999"),4,rhu).toString()).equals("0.9778")); 1278 TestFmwk.assertTrue("div047", ((new com.ibm.icu.math.BigDecimal("9.7777")).divide(new com.ibm.icu.math.BigDecimal("9.9999"),4,rhu).toString()).equals("0.9778")); 1279 TestFmwk.assertTrue("div048", ((new com.ibm.icu.math.BigDecimal("9.777")).divide(new com.ibm.icu.math.BigDecimal("9.999"),4,rhu).toString()).equals("0.9778")); 1280 TestFmwk.assertTrue("div049", ((new com.ibm.icu.math.BigDecimal("9.77")).divide(new com.ibm.icu.math.BigDecimal("9.99"),4,rhu).toString()).equals("0.9780")); 1281 TestFmwk.assertTrue("div050", ((new com.ibm.icu.math.BigDecimal("9.7")).divide(new com.ibm.icu.math.BigDecimal("9.9"),4,rhu).toString()).equals("0.9798")); 1282 TestFmwk.assertTrue("div051", ((new com.ibm.icu.math.BigDecimal("9.")).divide(new com.ibm.icu.math.BigDecimal("9."),4,rhu).toString()).equals("1.0000")); 1283 1284 TestFmwk.assertTrue("div060", ((new com.ibm.icu.math.BigDecimal("9.99999999")).divide(new com.ibm.icu.math.BigDecimal("9.77777777"),rhu).toString()).equals("1.02272727")); 1285 TestFmwk.assertTrue("div061", ((new com.ibm.icu.math.BigDecimal("9.9999999")).divide(new com.ibm.icu.math.BigDecimal("9.7777777"),rhu).toString()).equals("1.0227273")); 1286 TestFmwk.assertTrue("div062", ((new com.ibm.icu.math.BigDecimal("9.999999")).divide(new com.ibm.icu.math.BigDecimal("9.777777"),rhu).toString()).equals("1.022727")); 1287 TestFmwk.assertTrue("div063", ((new com.ibm.icu.math.BigDecimal("9.77777777")).divide(new com.ibm.icu.math.BigDecimal("9.99999999"),rhu).toString()).equals("0.97777778")); 1288 TestFmwk.assertTrue("div064", ((new com.ibm.icu.math.BigDecimal("9.7777777")).divide(new com.ibm.icu.math.BigDecimal("9.9999999"),rhu).toString()).equals("0.9777778")); 1289 TestFmwk.assertTrue("div065", ((new com.ibm.icu.math.BigDecimal("9.777777")).divide(new com.ibm.icu.math.BigDecimal("9.999999"),rhu).toString()).equals("0.977778")); 1290 TestFmwk.assertTrue("div066", ((new com.ibm.icu.math.BigDecimal("9.77777")).divide(new com.ibm.icu.math.BigDecimal("9.99999"),rhu).toString()).equals("0.97778")); 1291 TestFmwk.assertTrue("div067", ((new com.ibm.icu.math.BigDecimal("9.7777")).divide(new com.ibm.icu.math.BigDecimal("9.9999"),rhu).toString()).equals("0.9778")); 1292 TestFmwk.assertTrue("div068", ((new com.ibm.icu.math.BigDecimal("9.777")).divide(new com.ibm.icu.math.BigDecimal("9.999"),rhu).toString()).equals("0.978")); 1293 TestFmwk.assertTrue("div069", ((new com.ibm.icu.math.BigDecimal("9.77")).divide(new com.ibm.icu.math.BigDecimal("9.99"),rhu).toString()).equals("0.98")); 1294 TestFmwk.assertTrue("div070", ((new com.ibm.icu.math.BigDecimal("9.7")).divide(new com.ibm.icu.math.BigDecimal("9.9"),rhu).toString()).equals("1.0")); 1295 TestFmwk.assertTrue("div071", ((new com.ibm.icu.math.BigDecimal("9.")).divide(new com.ibm.icu.math.BigDecimal("9."),rhu).toString()).equals("1")); 1296 1297 rd=com.ibm.icu.math.MathContext.ROUND_DOWN; // test this is actually being used 1298 TestFmwk.assertTrue("div080", ((new com.ibm.icu.math.BigDecimal("2")).divide(new com.ibm.icu.math.BigDecimal("3"),0,rd).toString()).equals("0")); 1299 TestFmwk.assertTrue("div081", ((new com.ibm.icu.math.BigDecimal("2")).divide(new com.ibm.icu.math.BigDecimal("3"),1,rd).toString()).equals("0.6")); 1300 TestFmwk.assertTrue("div082", ((new com.ibm.icu.math.BigDecimal("2")).divide(new com.ibm.icu.math.BigDecimal("3"),2,rd).toString()).equals("0.66")); 1301 TestFmwk.assertTrue("div083", ((new com.ibm.icu.math.BigDecimal("2")).divide(new com.ibm.icu.math.BigDecimal("3"),3,rd).toString()).equals("0.666")); 1302 TestFmwk.assertTrue("div084", ((new com.ibm.icu.math.BigDecimal("2")).divide(new com.ibm.icu.math.BigDecimal("3"),4,rd).toString()).equals("0.6666")); 1303 1304 ru=com.ibm.icu.math.MathContext.ROUND_UNNECESSARY; // check for some 0 residues 1305 TestFmwk.assertTrue("div090", ((new com.ibm.icu.math.BigDecimal("1000")).divide(new com.ibm.icu.math.BigDecimal("5"),4,ru).toString()).equals("200.0000")); 1306 TestFmwk.assertTrue("div091", ((new com.ibm.icu.math.BigDecimal("1000")).divide(new com.ibm.icu.math.BigDecimal("50"),4,ru).toString()).equals("20.0000")); 1307 TestFmwk.assertTrue("div092", ((new com.ibm.icu.math.BigDecimal("1000")).divide(new com.ibm.icu.math.BigDecimal("500"),4,ru).toString()).equals("2.0000")); 1308 TestFmwk.assertTrue("div093", ((new com.ibm.icu.math.BigDecimal("1000")).divide(new com.ibm.icu.math.BigDecimal("5000"),4,ru).toString()).equals("0.2000")); 1309 TestFmwk.assertTrue("div094", ((new com.ibm.icu.math.BigDecimal("1000")).divide(new com.ibm.icu.math.BigDecimal("5000"),3,ru).toString()).equals("0.200")); 1310 TestFmwk.assertTrue("div095", ((new com.ibm.icu.math.BigDecimal("1000")).divide(new com.ibm.icu.math.BigDecimal("5000"),2,ru).toString()).equals("0.20")); 1311 TestFmwk.assertTrue("div096", ((new com.ibm.icu.math.BigDecimal("1000")).divide(new com.ibm.icu.math.BigDecimal("5000"),1,ru).toString()).equals("0.2")); 1312 1313 // check rounding explicitly 1314 TestFmwk.assertTrue("div101", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,2,com.ibm.icu.math.MathContext.ROUND_CEILING).toString()).equals("0.06")); 1315 TestFmwk.assertTrue("div102", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,1,com.ibm.icu.math.MathContext.ROUND_CEILING).toString()).equals("0.1")); 1316 TestFmwk.assertTrue("div103", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,0,com.ibm.icu.math.MathContext.ROUND_CEILING).toString()).equals("1")); 1317 TestFmwk.assertTrue("div104", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,2,com.ibm.icu.math.MathContext.ROUND_DOWN).toString()).equals("0.05")); 1318 TestFmwk.assertTrue("div105", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,1,com.ibm.icu.math.MathContext.ROUND_DOWN).toString()).equals("0.0")); 1319 TestFmwk.assertTrue("div106", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,0,com.ibm.icu.math.MathContext.ROUND_DOWN).toString()).equals("0")); 1320 TestFmwk.assertTrue("div107", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,2,com.ibm.icu.math.MathContext.ROUND_FLOOR).toString()).equals("0.05")); 1321 TestFmwk.assertTrue("div108", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,1,com.ibm.icu.math.MathContext.ROUND_FLOOR).toString()).equals("0.0")); 1322 TestFmwk.assertTrue("div109", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,0,com.ibm.icu.math.MathContext.ROUND_FLOOR).toString()).equals("0")); 1323 1324 TestFmwk.assertTrue("div110", ((new com.ibm.icu.math.BigDecimal("0.045")).divide(one,2,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("0.04")); 1325 TestFmwk.assertTrue("div111", ((new com.ibm.icu.math.BigDecimal("0.045")).divide(one,1,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("0.0")); 1326 TestFmwk.assertTrue("div112", ((new com.ibm.icu.math.BigDecimal("0.045")).divide(one,0,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("0")); 1327 TestFmwk.assertTrue("div113", ((new com.ibm.icu.math.BigDecimal("0.050")).divide(one,2,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("0.05")); 1328 TestFmwk.assertTrue("div114", ((new com.ibm.icu.math.BigDecimal("0.050")).divide(one,1,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("0.0")); 1329 TestFmwk.assertTrue("div115", ((new com.ibm.icu.math.BigDecimal("0.050")).divide(one,0,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("0")); 1330 TestFmwk.assertTrue("div116", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,2,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("0.05")); 1331 TestFmwk.assertTrue("div117", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,1,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("0.1")); 1332 TestFmwk.assertTrue("div118", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,0,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("0")); 1333 1334 TestFmwk.assertTrue("div120", ((new com.ibm.icu.math.BigDecimal("0.045")).divide(one,2,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0.04")); 1335 TestFmwk.assertTrue("div121", ((new com.ibm.icu.math.BigDecimal("0.045")).divide(one,1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0.0")); 1336 TestFmwk.assertTrue("div122", ((new com.ibm.icu.math.BigDecimal("0.045")).divide(one,0,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0")); 1337 TestFmwk.assertTrue("div123", ((new com.ibm.icu.math.BigDecimal("0.050")).divide(one,2,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0.05")); 1338 TestFmwk.assertTrue("div124", ((new com.ibm.icu.math.BigDecimal("0.050")).divide(one,1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0.0")); 1339 TestFmwk.assertTrue("div125", ((new com.ibm.icu.math.BigDecimal("0.050")).divide(one,0,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0")); 1340 TestFmwk.assertTrue("div126", ((new com.ibm.icu.math.BigDecimal("0.150")).divide(one,2,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0.15")); 1341 TestFmwk.assertTrue("div127", ((new com.ibm.icu.math.BigDecimal("0.150")).divide(one,1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0.2")); 1342 TestFmwk.assertTrue("div128", ((new com.ibm.icu.math.BigDecimal("0.150")).divide(one,0,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0")); 1343 TestFmwk.assertTrue("div129", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,2,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0.06")); 1344 TestFmwk.assertTrue("div130", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0.1")); 1345 TestFmwk.assertTrue("div131", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,0,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0")); 1346 1347 TestFmwk.assertTrue("div140", ((new com.ibm.icu.math.BigDecimal("0.045")).divide(one,2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.05")); 1348 TestFmwk.assertTrue("div141", ((new com.ibm.icu.math.BigDecimal("0.045")).divide(one,1,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.0")); 1349 TestFmwk.assertTrue("div142", ((new com.ibm.icu.math.BigDecimal("0.045")).divide(one,0,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0")); 1350 TestFmwk.assertTrue("div143", ((new com.ibm.icu.math.BigDecimal("0.050")).divide(one,2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.05")); 1351 TestFmwk.assertTrue("div144", ((new com.ibm.icu.math.BigDecimal("0.050")).divide(one,1,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.1")); 1352 TestFmwk.assertTrue("div145", ((new com.ibm.icu.math.BigDecimal("0.050")).divide(one,0,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0")); 1353 TestFmwk.assertTrue("div146", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.06")); 1354 TestFmwk.assertTrue("div147", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,1,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.1")); 1355 TestFmwk.assertTrue("div148", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,0,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0")); 1356 1357 TestFmwk.assertTrue("div150", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,2,com.ibm.icu.math.MathContext.ROUND_UP).toString()).equals("0.06")); 1358 TestFmwk.assertTrue("div151", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,1,com.ibm.icu.math.MathContext.ROUND_UP).toString()).equals("0.1")); 1359 TestFmwk.assertTrue("div52.", ((new com.ibm.icu.math.BigDecimal("0.055")).divide(one,0,com.ibm.icu.math.MathContext.ROUND_UP).toString()).equals("1")); 1360 1361 // - error conditions --- 1362 try { 1363 ten.divide((com.ibm.icu.math.BigDecimal) null); 1364 flag = false; 1365 } catch (java.lang.NullPointerException $32) { 1366 flag = true; 1367 }/* checknull */ 1368 TestFmwk.assertTrue("div201", flag); 1369 try { 1370 ten.divide(ten, (com.ibm.icu.math.MathContext) null); 1371 flag = false; 1372 } catch (java.lang.NullPointerException $33) { 1373 flag = true; 1374 }/* checknull2 */ 1375 TestFmwk.assertTrue("div202", flag); 1376 1377 try { 1378 (new com.ibm.icu.math.BigDecimal("1")).divide(new com.ibm.icu.math.BigDecimal("3"), -8, 0); 1379 flag = false; 1380 } catch (java.lang.RuntimeException $34) { 1381 e = $34; 1382 flag = flag & (e.getMessage()).equals("Negative scale: -8"); 1383 }/* checkscale */ 1384 TestFmwk.assertTrue("div203", flag); 1385 1386 try { 1387 (new com.ibm.icu.math.BigDecimal("1000")).divide(new com.ibm.icu.math.BigDecimal("5000"), 0, com.ibm.icu.math.MathContext.ROUND_UNNECESSARY); 1388 flag = false; 1389 } catch (java.lang.ArithmeticException $35) { 1390 ae = $35; 1391 flag = (ae.getMessage()).equals("Rounding necessary"); 1392 }/* rounn */ 1393 TestFmwk.assertTrue("div204", flag); 1394 try { 1395 (new com.ibm.icu.math.BigDecimal("1001")).divide(new com.ibm.icu.math.BigDecimal("10"), 0, com.ibm.icu.math.MathContext.ROUND_UNNECESSARY); 1396 flag = false; 1397 } catch (java.lang.ArithmeticException $36) { 1398 ae = $36; 1399 flag = (ae.getMessage()).equals("Rounding necessary"); 1400 }/* rounn */ 1401 TestFmwk.assertTrue("div205", flag); 1402 try { 1403 (new com.ibm.icu.math.BigDecimal("1001")).divide(new com.ibm.icu.math.BigDecimal("100"), 1, com.ibm.icu.math.MathContext.ROUND_UNNECESSARY); 1404 flag = false; 1405 } catch (java.lang.ArithmeticException $37) { 1406 ae = $37; 1407 flag = (ae.getMessage()).equals("Rounding necessary"); 1408 }/* rounn */ 1409 TestFmwk.assertTrue("div206", flag); 1410 try { 1411 (new com.ibm.icu.math.BigDecimal("10001")).divide( 1412 new com.ibm.icu.math.BigDecimal("10000"), 1, 1413 com.ibm.icu.math.MathContext.ROUND_UNNECESSARY); 1414 flag = false; 1415 } catch (java.lang.ArithmeticException $38) { 1416 ae = $38; 1417 flag = (ae.getMessage()).equals("Rounding necessary"); 1418 }/* rounn */ 1419 TestFmwk.assertTrue("div207", flag); 1420 try { 1421 (new com.ibm.icu.math.BigDecimal("1.0001")).divide( 1422 new com.ibm.icu.math.BigDecimal("1"), 1, 1423 com.ibm.icu.math.MathContext.ROUND_UNNECESSARY); 1424 flag = false; 1425 } catch (java.lang.ArithmeticException $39) { 1426 ae = $39; 1427 flag = (ae.getMessage()).equals("Rounding necessary"); 1428 }/* rounn */ 1429 TestFmwk.assertTrue("div208", flag); 1430 1431 try { 1432 (new com.ibm.icu.math.BigDecimal("5")) 1433 .divide(new com.ibm.icu.math.BigDecimal("0.00")); 1434 flag = false; 1435 } catch (java.lang.ArithmeticException $40) { 1436 ae = $40; 1437 flag = (ae.getMessage()).equals("Divide by 0"); 1438 }/* div0 */ 1439 TestFmwk.assertTrue("div209", flag); 1440 1441 try { 1442 tenlong.divide(com.ibm.icu.math.BigDecimal.ONE, mcld); 1443 flag = false; 1444 } catch (java.lang.ArithmeticException $41) { 1445 ae = $41; 1446 flag = (ae.getMessage()).equals("Too many digits:" + " " 1447 + tenlong.toString()); 1448 }/* checkdigits */ 1449 TestFmwk.assertTrue("div210", flag); 1450 try { 1451 com.ibm.icu.math.BigDecimal.ONE.divide(tenlong, mcld); 1452 flag = false; 1453 } catch (java.lang.ArithmeticException $42) { 1454 ae = $42; 1455 flag = (ae.getMessage()).equals("Too many digits:" + " " 1456 + tenlong.toString()); 1457 }/* checkdigits */ 1458 TestFmwk.assertTrue("div211", flag); 1459 1460 } 1461 1462 /* ----------------------------------------------------------------- */ 1463 1464 /** Test the {@link com.ibm.icu.math.BigDecimal#divideInteger} method. */ 1465 1466 @Test 1467 public void diagdivideInteger() { 1468 boolean flag = false; 1469 java.lang.ArithmeticException ae = null; 1470 1471 TestFmwk.assertTrue("dvI001", ((new com.ibm.icu.math.BigDecimal("101.3")).divideInteger(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("101")); 1472 TestFmwk.assertTrue("dvI002", ((new com.ibm.icu.math.BigDecimal("101.0")).divideInteger(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("101")); 1473 TestFmwk.assertTrue("dvI003", ((new com.ibm.icu.math.BigDecimal("101.3")).divideInteger(new com.ibm.icu.math.BigDecimal("3"),mcdef).toString()).equals("33")); 1474 TestFmwk.assertTrue("dvI004", ((new com.ibm.icu.math.BigDecimal("101.0")).divideInteger(new com.ibm.icu.math.BigDecimal("3"),mcdef).toString()).equals("33")); 1475 TestFmwk.assertTrue("dvI005", ((new com.ibm.icu.math.BigDecimal("2.4")).divideInteger(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("2")); 1476 TestFmwk.assertTrue("dvI006", ((new com.ibm.icu.math.BigDecimal("2.400")).divideInteger(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("2")); 1477 TestFmwk.assertTrue("dvI007", ((new com.ibm.icu.math.BigDecimal("18")).divideInteger(new com.ibm.icu.math.BigDecimal("18"),mcdef).toString()).equals("1")); 1478 TestFmwk.assertTrue("dvI008", ((new com.ibm.icu.math.BigDecimal("1120")).divideInteger(new com.ibm.icu.math.BigDecimal("1000"),mcdef).toString()).equals("1")); 1479 TestFmwk.assertTrue("dvI009", ((new com.ibm.icu.math.BigDecimal("2.4")).divideInteger(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("1")); 1480 TestFmwk.assertTrue("dvI010", ((new com.ibm.icu.math.BigDecimal("2.400")).divideInteger(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("1")); 1481 TestFmwk.assertTrue("dvI011", ((new com.ibm.icu.math.BigDecimal("0.5")).divideInteger(new com.ibm.icu.math.BigDecimal("2.000"),mcdef).toString()).equals("0")); 1482 TestFmwk.assertTrue("dvI012", ((new com.ibm.icu.math.BigDecimal("8.005")).divideInteger(new com.ibm.icu.math.BigDecimal("7"),mcdef).toString()).equals("1")); 1483 TestFmwk.assertTrue("dvI013", ((new com.ibm.icu.math.BigDecimal("5")).divideInteger(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("2")); 1484 TestFmwk.assertTrue("dvI014", ((new com.ibm.icu.math.BigDecimal("0")).divideInteger(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("0")); 1485 TestFmwk.assertTrue("dvI015", ((new com.ibm.icu.math.BigDecimal("0.00")).divideInteger(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("0")); 1486 // MC 1487 TestFmwk.assertTrue("dvI016", ((new com.ibm.icu.math.BigDecimal("5")).divideInteger(new com.ibm.icu.math.BigDecimal("2"), mce).toString()).equals("2")); 1488 TestFmwk.assertTrue("dvI017", ((new com.ibm.icu.math.BigDecimal("5")).divideInteger(new com.ibm.icu.math.BigDecimal("2"), mc6).toString()).equals("2")); 1489 1490 // Fixed -- 1491 TestFmwk.assertTrue("dvI021", ((new com.ibm.icu.math.BigDecimal("101.3")).divideInteger(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("101")); 1492 TestFmwk.assertTrue("dvI022", ((new com.ibm.icu.math.BigDecimal("101.0")).divideInteger(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("101")); 1493 TestFmwk.assertTrue("dvI023", ((new com.ibm.icu.math.BigDecimal("101.3")).divideInteger(new com.ibm.icu.math.BigDecimal("3")).toString()).equals("33")); 1494 TestFmwk.assertTrue("dvI024", ((new com.ibm.icu.math.BigDecimal("101.0")).divideInteger(new com.ibm.icu.math.BigDecimal("3")).toString()).equals("33")); 1495 TestFmwk.assertTrue("dvI025", ((new com.ibm.icu.math.BigDecimal("2.4")).divideInteger(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("2")); 1496 TestFmwk.assertTrue("dvI026", ((new com.ibm.icu.math.BigDecimal("2.400")).divideInteger(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("2")); 1497 TestFmwk.assertTrue("dvI027", ((new com.ibm.icu.math.BigDecimal("18")).divideInteger(new com.ibm.icu.math.BigDecimal("18")).toString()).equals("1")); 1498 TestFmwk.assertTrue("dvI028", ((new com.ibm.icu.math.BigDecimal("1120")).divideInteger(new com.ibm.icu.math.BigDecimal("1000")).toString()).equals("1")); 1499 TestFmwk.assertTrue("dvI029", ((new com.ibm.icu.math.BigDecimal("2.4")).divideInteger(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("1")); 1500 TestFmwk.assertTrue("dvI030", ((new com.ibm.icu.math.BigDecimal("2.400")).divideInteger(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("1")); 1501 TestFmwk.assertTrue("dvI031", ((new com.ibm.icu.math.BigDecimal("0.5")).divideInteger(new com.ibm.icu.math.BigDecimal("2.000")).toString()).equals("0")); 1502 TestFmwk.assertTrue("dvI032", ((new com.ibm.icu.math.BigDecimal("8.005")).divideInteger(new com.ibm.icu.math.BigDecimal("7")).toString()).equals("1")); 1503 TestFmwk.assertTrue("dvI033", ((new com.ibm.icu.math.BigDecimal("5")).divideInteger(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("2")); 1504 TestFmwk.assertTrue("dvI034", ((new com.ibm.icu.math.BigDecimal("0")).divideInteger(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("0")); 1505 TestFmwk.assertTrue("dvI035", ((new com.ibm.icu.math.BigDecimal("0.00")).divideInteger(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("0")); 1506 1507 try { 1508 ten.divideInteger((com.ibm.icu.math.BigDecimal) null); 1509 flag = false; 1510 } catch (java.lang.NullPointerException $43) { 1511 flag = true; 1512 }/* checknull */ 1513 TestFmwk.assertTrue("dvI101", flag); 1514 try { 1515 ten.divideInteger(ten, (com.ibm.icu.math.MathContext) null); 1516 flag = false; 1517 } catch (java.lang.NullPointerException $44) { 1518 flag = true; 1519 }/* checknull2 */ 1520 TestFmwk.assertTrue("dvI102", flag); 1521 1522 try { 1523 com.ibm.icu.math.BigDecimal.ONE.divideInteger(tenlong, mcld); 1524 flag = false; 1525 } catch (java.lang.ArithmeticException $45) { 1526 ae = $45; 1527 flag = (ae.getMessage()).equals("Too many digits:" + " " 1528 + tenlong.toString()); 1529 }/* checkdigits */ 1530 TestFmwk.assertTrue("dvI103", flag); 1531 1532 try { 1533 tenlong.divideInteger(com.ibm.icu.math.BigDecimal.ONE, mcld); 1534 flag = false; 1535 } catch (java.lang.ArithmeticException $46) { 1536 ae = $46; 1537 flag = (ae.getMessage()).equals("Too many digits:" + " " 1538 + tenlong.toString()); 1539 }/* checkdigits */ 1540 TestFmwk.assertTrue("dvI104", flag); 1541 1542 } 1543 1544 /* ----------------------------------------------------------------- */ 1545 1546 /** Test the {@link com.ibm.icu.math.BigDecimal#max} method. */ 1547 1548 @Test 1549 public void diagmax() { 1550 boolean flag = false; 1551 java.lang.ArithmeticException ae = null; 1552 1553 // we assume add/subtract test function; this and min just 1554 // test existence and test the truth table 1555 TestFmwk.assertTrue("max001", ((new com.ibm.icu.math.BigDecimal("5")).max(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("5")); 1556 TestFmwk.assertTrue("max002", ((new com.ibm.icu.math.BigDecimal("5")).max(new com.ibm.icu.math.BigDecimal("5")).toString()).equals("5")); 1557 TestFmwk.assertTrue("max003", ((new com.ibm.icu.math.BigDecimal("2")).max(new com.ibm.icu.math.BigDecimal("7")).toString()).equals("7")); 1558 TestFmwk.assertTrue("max004", ((new com.ibm.icu.math.BigDecimal("2")).max(new com.ibm.icu.math.BigDecimal("7"),mcdef).toString()).equals("7")); 1559 TestFmwk.assertTrue("max005", ((new com.ibm.icu.math.BigDecimal("2")).max(new com.ibm.icu.math.BigDecimal("7"),mc6).toString()).equals("7")); 1560 TestFmwk.assertTrue("max006", ((new com.ibm.icu.math.BigDecimal("2E+3")).max(new com.ibm.icu.math.BigDecimal("7")).toString()).equals("2000")); 1561 TestFmwk.assertTrue("max007", ((new com.ibm.icu.math.BigDecimal("2E+3")).max(new com.ibm.icu.math.BigDecimal("7"),mc3).toString()).equals("2E+3")); 1562 TestFmwk.assertTrue("max008", ((new com.ibm.icu.math.BigDecimal("7")).max(new com.ibm.icu.math.BigDecimal("2E+3")).toString()).equals("2000")); 1563 TestFmwk.assertTrue("max009", ((new com.ibm.icu.math.BigDecimal("7")).max(new com.ibm.icu.math.BigDecimal("2E+3"),mc3).toString()).equals("2E+3")); 1564 try { 1565 ten.max((com.ibm.icu.math.BigDecimal) null); 1566 flag = false; 1567 } catch (java.lang.NullPointerException $47) { 1568 flag = true; 1569 }/* checknull */ 1570 TestFmwk.assertTrue("max010", flag); 1571 try { 1572 ten.max(ten, (com.ibm.icu.math.MathContext) null); 1573 flag = false; 1574 } catch (java.lang.NullPointerException $48) { 1575 flag = true; 1576 }/* checknull2 */ 1577 TestFmwk.assertTrue("max011", flag); 1578 try { 1579 tenlong.max(com.ibm.icu.math.BigDecimal.ONE, mcld); 1580 flag = false; 1581 } catch (java.lang.ArithmeticException $49) { 1582 ae = $49; 1583 flag = (ae.getMessage()).equals("Too many digits:" + " " 1584 + tenlong.toString()); 1585 }/* checkdigits */ 1586 TestFmwk.assertTrue("max012", flag); 1587 try { 1588 com.ibm.icu.math.BigDecimal.ONE.max(tenlong, mcld); 1589 flag = false; 1590 } catch (java.lang.ArithmeticException $50) { 1591 ae = $50; 1592 flag = (ae.getMessage()).equals("Too many digits:" + " " 1593 + tenlong.toString()); 1594 }/* checkdigits */ 1595 TestFmwk.assertTrue("max013", flag); 1596 } 1597 1598 /** Test the {@link com.ibm.icu.math.BigDecimal#min} method. */ 1599 1600 @Test 1601 public void diagmin() { 1602 boolean flag = false; 1603 com.ibm.icu.math.BigDecimal minx = null; 1604 java.lang.ArithmeticException ae = null; 1605 // we assume add/subtract test function; this and max just 1606 // test existence and test the truth table 1607 1608 TestFmwk.assertTrue("min001", ((new com.ibm.icu.math.BigDecimal("5")).min(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("2")); 1609 TestFmwk.assertTrue("min002", ((new com.ibm.icu.math.BigDecimal("5")).min(new com.ibm.icu.math.BigDecimal("5")).toString()).equals("5")); 1610 TestFmwk.assertTrue("min003", ((new com.ibm.icu.math.BigDecimal("2")).min(new com.ibm.icu.math.BigDecimal("7")).toString()).equals("2")); 1611 TestFmwk.assertTrue("min004", ((new com.ibm.icu.math.BigDecimal("2")).min(new com.ibm.icu.math.BigDecimal("7"),mcdef).toString()).equals("2")); 1612 TestFmwk.assertTrue("min005", ((new com.ibm.icu.math.BigDecimal("1")).min(new com.ibm.icu.math.BigDecimal("7"),mc6).toString()).equals("1")); 1613 TestFmwk.assertTrue("min006", ((new com.ibm.icu.math.BigDecimal("-2E+3")).min(new com.ibm.icu.math.BigDecimal("7")).toString()).equals("-2000")); 1614 TestFmwk.assertTrue("min007", ((new com.ibm.icu.math.BigDecimal("-2E+3")).min(new com.ibm.icu.math.BigDecimal("7"),mc3).toString()).equals("-2E+3")); 1615 TestFmwk.assertTrue("min008", ((new com.ibm.icu.math.BigDecimal("7")).min(new com.ibm.icu.math.BigDecimal("-2E+3")).toString()).equals("-2000")); 1616 TestFmwk.assertTrue("min009", ((new com.ibm.icu.math.BigDecimal("7")).min(new com.ibm.icu.math.BigDecimal("-2E+3"),mc3).toString()).equals("-2E+3")); 1617 try { 1618 minx = ten; 1619 minx.min((com.ibm.icu.math.BigDecimal) null); 1620 flag = false; 1621 } catch (java.lang.NullPointerException $51) { 1622 flag = true; 1623 }/* checknull */ 1624 TestFmwk.assertTrue("min010", flag); 1625 try { 1626 minx = ten; 1627 minx.min(ten, (com.ibm.icu.math.MathContext) null); 1628 flag = false; 1629 } catch (java.lang.NullPointerException $52) { 1630 flag = true; 1631 }/* checknull2 */ 1632 TestFmwk.assertTrue("min011", flag); 1633 1634 try { 1635 tenlong.min(com.ibm.icu.math.BigDecimal.ONE, mcld); 1636 flag = false; 1637 } catch (java.lang.ArithmeticException $53) { 1638 ae = $53; 1639 flag = (ae.getMessage()).equals("Too many digits:" + " " 1640 + tenlong.toString()); 1641 }/* checkdigits */ 1642 TestFmwk.assertTrue("min012", flag); 1643 try { 1644 (new com.ibm.icu.math.BigDecimal(9)).min(tenlong, mcld); 1645 flag = false; 1646 } catch (java.lang.ArithmeticException $54) { 1647 ae = $54; 1648 flag = (ae.getMessage()).equals("Too many digits:" + " " 1649 + tenlong.toString()); 1650 }/* checkdigits */ 1651 TestFmwk.assertTrue("min013", flag); 1652 } 1653 1654 /* ----------------------------------------------------------------- */ 1655 1656 /** Test the {@link com.ibm.icu.math.BigDecimal#multiply} method. */ 1657 1658 @Test 1659 public void diagmultiply() { 1660 boolean flag = false; 1661 com.ibm.icu.math.BigDecimal l9; 1662 com.ibm.icu.math.BigDecimal l77e; 1663 com.ibm.icu.math.BigDecimal l12345; 1664 com.ibm.icu.math.BigDecimal edge; 1665 com.ibm.icu.math.BigDecimal tenedge; 1666 com.ibm.icu.math.BigDecimal hunedge; 1667 com.ibm.icu.math.BigDecimal opo; 1668 com.ibm.icu.math.BigDecimal d1 = null; 1669 com.ibm.icu.math.BigDecimal d2 = null; 1670 java.lang.ArithmeticException oe = null; 1671 java.lang.ArithmeticException ae = null; 1672 1673 TestFmwk.assertTrue("mul001", ((new com.ibm.icu.math.BigDecimal("2")).multiply(new com.ibm.icu.math.BigDecimal("3"),mcdef).toString()).equals("6")); 1674 TestFmwk.assertTrue("mul002", ((new com.ibm.icu.math.BigDecimal("5")).multiply(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("5")); 1675 TestFmwk.assertTrue("mul003", ((new com.ibm.icu.math.BigDecimal("5")).multiply(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("10")); 1676 TestFmwk.assertTrue("mul004", ((new com.ibm.icu.math.BigDecimal("1.20")).multiply(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("2.40")); 1677 TestFmwk.assertTrue("mul005", ((new com.ibm.icu.math.BigDecimal("1.20")).multiply(new com.ibm.icu.math.BigDecimal("0"),mcdef).toString()).equals("0")); 1678 TestFmwk.assertTrue("mul006", ((new com.ibm.icu.math.BigDecimal("1.20")).multiply(new com.ibm.icu.math.BigDecimal("-2"),mcdef).toString()).equals("-2.40")); 1679 TestFmwk.assertTrue("mul007", ((new com.ibm.icu.math.BigDecimal("-1.20")).multiply(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("-2.40")); 1680 TestFmwk.assertTrue("mul008", ((new com.ibm.icu.math.BigDecimal("-1.20")).multiply(new com.ibm.icu.math.BigDecimal("0"),mcdef).toString()).equals("0")); 1681 TestFmwk.assertTrue("mul009", ((new com.ibm.icu.math.BigDecimal("-1.20")).multiply(new com.ibm.icu.math.BigDecimal("-2"),mcdef).toString()).equals("2.40")); 1682 TestFmwk.assertTrue("mul010", ((new com.ibm.icu.math.BigDecimal("5.09")).multiply(new com.ibm.icu.math.BigDecimal("7.1"),mcdef).toString()).equals("36.139")); 1683 TestFmwk.assertTrue("mul011", ((new com.ibm.icu.math.BigDecimal("2.5")).multiply(new com.ibm.icu.math.BigDecimal("4"),mcdef).toString()).equals("10.0")); 1684 TestFmwk.assertTrue("mul012", ((new com.ibm.icu.math.BigDecimal("2.50")).multiply(new com.ibm.icu.math.BigDecimal("4"),mcdef).toString()).equals("10.00")); 1685 TestFmwk.assertTrue("mul013", ((new com.ibm.icu.math.BigDecimal("1.23456789")).multiply(new com.ibm.icu.math.BigDecimal("1.00000000"),mcdef).toString()).equals("1.23456789")); 1686 1687 TestFmwk.assertTrue("mul014", ((new com.ibm.icu.math.BigDecimal("9.999999999")).multiply(new com.ibm.icu.math.BigDecimal("9.999999999"),mcdef).toString()).equals("100.000000")); 1688 1689 TestFmwk.assertTrue("mul015", ((new com.ibm.icu.math.BigDecimal("2.50")).multiply(new com.ibm.icu.math.BigDecimal("4"),mcdef).toString()).equals("10.00")); 1690 TestFmwk.assertTrue("mul016", ((new com.ibm.icu.math.BigDecimal("2.50")).multiply(new com.ibm.icu.math.BigDecimal("4"),mc6).toString()).equals("10.00")); 1691 TestFmwk.assertTrue("mul017", ((new com.ibm.icu.math.BigDecimal("9.999999999")).multiply(new com.ibm.icu.math.BigDecimal("9.999999999"),mc6).toString()).equals("100.000")); 1692 1693 1694 TestFmwk.assertTrue("mul020", ((new com.ibm.icu.math.BigDecimal("2")).multiply(new com.ibm.icu.math.BigDecimal("3")).toString()).equals("6")); 1695 TestFmwk.assertTrue("mul021", ((new com.ibm.icu.math.BigDecimal("5")).multiply(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("5")); 1696 TestFmwk.assertTrue("mul022", ((new com.ibm.icu.math.BigDecimal("5")).multiply(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("10")); 1697 TestFmwk.assertTrue("mul023", ((new com.ibm.icu.math.BigDecimal("1.20")).multiply(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("2.40")); 1698 TestFmwk.assertTrue("mul024", ((new com.ibm.icu.math.BigDecimal("1.20")).multiply(new com.ibm.icu.math.BigDecimal("0")).toString()).equals("0.00")); 1699 TestFmwk.assertTrue("mul025", ((new com.ibm.icu.math.BigDecimal("1.20")).multiply(new com.ibm.icu.math.BigDecimal("-2")).toString()).equals("-2.40")); 1700 TestFmwk.assertTrue("mul026", ((new com.ibm.icu.math.BigDecimal("-1.20")).multiply(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("-2.40")); 1701 TestFmwk.assertTrue("mul027", ((new com.ibm.icu.math.BigDecimal("-1.20")).multiply(new com.ibm.icu.math.BigDecimal("0")).toString()).equals("0.00")); 1702 TestFmwk.assertTrue("mul028", ((new com.ibm.icu.math.BigDecimal("-1.20")).multiply(new com.ibm.icu.math.BigDecimal("-2")).toString()).equals("2.40")); 1703 TestFmwk.assertTrue("mul029", ((new com.ibm.icu.math.BigDecimal("5.09")).multiply(new com.ibm.icu.math.BigDecimal("7.1")).toString()).equals("36.139")); 1704 TestFmwk.assertTrue("mul030", ((new com.ibm.icu.math.BigDecimal("2.5")).multiply(new com.ibm.icu.math.BigDecimal("4")).toString()).equals("10.0")); 1705 TestFmwk.assertTrue("mul031", ((new com.ibm.icu.math.BigDecimal("2.50")).multiply(new com.ibm.icu.math.BigDecimal("4")).toString()).equals("10.00")); 1706 TestFmwk.assertTrue("mul032", ((new com.ibm.icu.math.BigDecimal("1.23456789")).multiply(new com.ibm.icu.math.BigDecimal("1.00000000")).toString()).equals("1.2345678900000000")); 1707 1708 TestFmwk.assertTrue("mul033", ((new com.ibm.icu.math.BigDecimal("1234.56789")).multiply(new com.ibm.icu.math.BigDecimal("-1000.00000")).toString()).equals("-1234567.8900000000")); 1709 1710 TestFmwk.assertTrue("mul034", ((new com.ibm.icu.math.BigDecimal("-1234.56789")).multiply(new com.ibm.icu.math.BigDecimal("1000.00000")).toString()).equals("-1234567.8900000000")); 1711 1712 TestFmwk.assertTrue("mul035", ((new com.ibm.icu.math.BigDecimal("9.999999999")).multiply(new com.ibm.icu.math.BigDecimal("9.999999999")).toString()).equals("99.999999980000000001")); 1713 1714 TestFmwk.assertTrue("mul036", ((new com.ibm.icu.math.BigDecimal("5.00")).multiply(new com.ibm.icu.math.BigDecimal("1E-3")).toString()).equals("0.00500")); 1715 TestFmwk.assertTrue("mul037", ((new com.ibm.icu.math.BigDecimal("00.00")).multiply(new com.ibm.icu.math.BigDecimal("0.000")).toString()).equals("0.00000")); 1716 TestFmwk.assertTrue("mul038", ((new com.ibm.icu.math.BigDecimal("00.00")).multiply(new com.ibm.icu.math.BigDecimal("0E-3")).toString()).equals("0.00")); // rhs is '0' 1717 // 1999.12.21: next one is a edge case if intermediate longs are used 1718 TestFmwk.assertTrue("mul039", ((new com.ibm.icu.math.BigDecimal("999999999999")).multiply(new com.ibm.icu.math.BigDecimal("9765625")).toString()).equals("9765624999990234375")); 1719 1720 l9 = new com.ibm.icu.math.BigDecimal("123456789E+10"); 1721 l77e = new com.ibm.icu.math.BigDecimal("77E-20"); 1722 TestFmwk.assertTrue("mul040", (l9.multiply(new com.ibm.icu.math.BigDecimal("3456757")).toString()).equals("4267601195732730000000000")); 1723 TestFmwk.assertTrue("mul041", (l9.multiply(new com.ibm.icu.math.BigDecimal("3456757"), mc3).toString()).equals("4.26E+24")); 1724 TestFmwk.assertTrue("mul042", (l9.multiply(l77e).toString()).equals("0.95061727530000000000")); 1725 TestFmwk.assertTrue("mul043", (l9.multiply(l77e, mc3).toString()).equals("0.947")); 1726 TestFmwk.assertTrue("mul044", (l77e.multiply(l9, mc3).toString()).equals("0.947")); 1727 1728 l12345 = new com.ibm.icu.math.BigDecimal("123.45"); 1729 TestFmwk.assertTrue("mul050", (l12345.multiply(new com.ibm.icu.math.BigDecimal("1e11"),mcdef).toString()).equals("1.2345E+13")); 1730 TestFmwk.assertTrue("mul051", (l12345.multiply(new com.ibm.icu.math.BigDecimal("1e11"),mcs).toString()).equals("1.2345E+13")); 1731 TestFmwk.assertTrue("mul052", (l12345.multiply(new com.ibm.icu.math.BigDecimal("1e+9"),mce).toString()).equals("123.45E+9")); 1732 TestFmwk.assertTrue("mul053", (l12345.multiply(new com.ibm.icu.math.BigDecimal("1e10"),mce).toString()).equals("1.2345E+12")); 1733 TestFmwk.assertTrue("mul054", (l12345.multiply(new com.ibm.icu.math.BigDecimal("1e11"),mce).toString()).equals("12.345E+12")); 1734 TestFmwk.assertTrue("mul055", (l12345.multiply(new com.ibm.icu.math.BigDecimal("1e12"),mce).toString()).equals("123.45E+12")); 1735 TestFmwk.assertTrue("mul056", (l12345.multiply(new com.ibm.icu.math.BigDecimal("1e13"),mce).toString()).equals("1.2345E+15")); 1736 1737 // test some cases that are close to exponent overflow 1738 TestFmwk.assertTrue("mul060", (one.multiply(new com.ibm.icu.math.BigDecimal("9e999999999"),mcs).toString()).equals("9E+999999999")); 1739 TestFmwk.assertTrue("mul061", (one.multiply(new com.ibm.icu.math.BigDecimal("9.9e999999999"),mcs).toString()).equals("9.9E+999999999")); 1740 TestFmwk.assertTrue("mul062", (one.multiply(new com.ibm.icu.math.BigDecimal("9.99e999999999"),mcs).toString()).equals("9.99E+999999999")); 1741 TestFmwk.assertTrue("mul063", (ten.multiply(new com.ibm.icu.math.BigDecimal("9e999999999"),mce).toString()).equals("90E+999999999")); 1742 TestFmwk.assertTrue("mul064", (ten.multiply(new com.ibm.icu.math.BigDecimal("9.9e999999999"),mce).toString()).equals("99.0E+999999999")); 1743 edge = new com.ibm.icu.math.BigDecimal("9.999e999999999"); 1744 tenedge = ten.multiply(edge, mce); 1745 TestFmwk.assertTrue("mul065", (tenedge.toString()).equals("99.990E+999999999")); 1746 hunedge = ten.multiply(tenedge, mce); 1747 TestFmwk.assertTrue("mul066", (hunedge.toString()).equals("999.900E+999999999")); 1748 opo = new com.ibm.icu.math.BigDecimal("0.1"); // one tenth 1749 TestFmwk.assertTrue("mul067", (opo.multiply(new com.ibm.icu.math.BigDecimal("9e-999999998"),mcs).toString()).equals("9E-999999999")); 1750 TestFmwk.assertTrue("mul068", (opo.multiply(new com.ibm.icu.math.BigDecimal("99e-999999998"),mcs).toString()).equals("9.9E-999999998")); 1751 TestFmwk.assertTrue("mul069", (opo.multiply(new com.ibm.icu.math.BigDecimal("999e-999999998"),mcs).toString()).equals("9.99E-999999997")); 1752 1753 TestFmwk.assertTrue("mul070", (opo.multiply(new com.ibm.icu.math.BigDecimal("9e-999999998"),mce).toString()).equals("9E-999999999")); 1754 TestFmwk.assertTrue("mul071", (opo.multiply(new com.ibm.icu.math.BigDecimal("99e-999999998"),mce).toString()).equals("99E-999999999")); 1755 TestFmwk.assertTrue("mul072", (opo.multiply(new com.ibm.icu.math.BigDecimal("999e-999999998"),mce).toString()).equals("999E-999999999")); 1756 TestFmwk.assertTrue("mul073", (opo.multiply(new com.ibm.icu.math.BigDecimal("999e-999999997"),mce).toString()).equals("9.99E-999999996")); 1757 TestFmwk.assertTrue("mul074", (opo.multiply(new com.ibm.icu.math.BigDecimal("9999e-999999997"),mce).toString()).equals("99.99E-999999996")); 1758 TestFmwk.assertTrue("mul074", (opo.multiply(new com.ibm.icu.math.BigDecimal("99999e-999999997"),mce).toString()).equals("999.99E-999999996")); 1759 1760 // test some intermediate lengths 1761 TestFmwk.assertTrue("mul080", (opo.multiply(new com.ibm.icu.math.BigDecimal("123456789"),mcs).toString()).equals("12345678.9")); 1762 TestFmwk.assertTrue("mul081", (opo.multiply(new com.ibm.icu.math.BigDecimal("12345678901234"),mcs).toString()).equals("1.23456789E+12")); 1763 TestFmwk.assertTrue("mul082", (opo.multiply(new com.ibm.icu.math.BigDecimal("123456789123456789"),mcs).toString()).equals("1.23456789E+16")); 1764 TestFmwk.assertTrue("mul083", (opo.multiply(new com.ibm.icu.math.BigDecimal("123456789"),mcfd).toString()).equals("12345678.9")); 1765 TestFmwk.assertTrue("mul084", (opo.multiply(new com.ibm.icu.math.BigDecimal("12345678901234"),mcfd).toString()).equals("1234567890123.4")); 1766 TestFmwk.assertTrue("mul085", (opo.multiply(new com.ibm.icu.math.BigDecimal("123456789123456789"),mcfd).toString()).equals("12345678912345678.9")); 1767 1768 TestFmwk.assertTrue("mul090", ((new com.ibm.icu.math.BigDecimal("123456789")).multiply(opo,mcs).toString()).equals("12345678.9")); 1769 TestFmwk.assertTrue("mul091", ((new com.ibm.icu.math.BigDecimal("12345678901234")).multiply(opo,mcs).toString()).equals("1.23456789E+12")); 1770 TestFmwk.assertTrue("mul092", ((new com.ibm.icu.math.BigDecimal("123456789123456789")).multiply(opo,mcs).toString()).equals("1.23456789E+16")); 1771 TestFmwk.assertTrue("mul093", ((new com.ibm.icu.math.BigDecimal("123456789")).multiply(opo,mcfd).toString()).equals("12345678.9")); 1772 TestFmwk.assertTrue("mul094", ((new com.ibm.icu.math.BigDecimal("12345678901234")).multiply(opo,mcfd).toString()).equals("1234567890123.4")); 1773 TestFmwk.assertTrue("mul095", ((new com.ibm.icu.math.BigDecimal("123456789123456789")).multiply(opo,mcfd).toString()).equals("12345678912345678.9")); 1774 1775 // test some more edge cases and carries 1776 TestFmwk.assertTrue("mul101", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("9")).toString()).equals("81")); 1777 TestFmwk.assertTrue("mul102", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("90")).toString()).equals("810")); 1778 TestFmwk.assertTrue("mul103", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("900")).toString()).equals("8100")); 1779 TestFmwk.assertTrue("mul104", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("9000")).toString()).equals("81000")); 1780 TestFmwk.assertTrue("mul105", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("90000")).toString()).equals("810000")); 1781 TestFmwk.assertTrue("mul106", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("900000")).toString()).equals("8100000")); 1782 TestFmwk.assertTrue("mul107", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("9000000")).toString()).equals("81000000")); 1783 TestFmwk.assertTrue("mul108", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("90000000")).toString()).equals("810000000")); 1784 TestFmwk.assertTrue("mul109", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("900000000")).toString()).equals("8100000000")); 1785 TestFmwk.assertTrue("mul110", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("9000000000")).toString()).equals("81000000000")); 1786 TestFmwk.assertTrue("mul111", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("90000000000")).toString()).equals("810000000000")); 1787 TestFmwk.assertTrue("mul112", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("900000000000")).toString()).equals("8100000000000")); 1788 TestFmwk.assertTrue("mul113", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("9000000000000")).toString()).equals("81000000000000")); 1789 TestFmwk.assertTrue("mul114", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("90000000000000")).toString()).equals("810000000000000")); 1790 TestFmwk.assertTrue("mul115", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("900000000000000")).toString()).equals("8100000000000000")); 1791 TestFmwk.assertTrue("mul116", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("9000000000000000")).toString()).equals("81000000000000000")); 1792 TestFmwk.assertTrue("mul117", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("90000000000000000")).toString()).equals("810000000000000000")); 1793 TestFmwk.assertTrue("mul118", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("900000000000000000")).toString()).equals("8100000000000000000")); 1794 TestFmwk.assertTrue("mul119", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("9000000000000000000")).toString()).equals("81000000000000000000")); 1795 TestFmwk.assertTrue("mul120", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("90000000000000000000")).toString()).equals("810000000000000000000")); 1796 TestFmwk.assertTrue("mul121", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("900000000000000000000")).toString()).equals("8100000000000000000000")); 1797 TestFmwk.assertTrue("mul122", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("9000000000000000000000")).toString()).equals("81000000000000000000000")); 1798 TestFmwk.assertTrue("mul123", ((new com.ibm.icu.math.BigDecimal("9")).multiply(new com.ibm.icu.math.BigDecimal("90000000000000000000000")).toString()).equals("810000000000000000000000")); 1799 // test some more edge cases without carries 1800 TestFmwk.assertTrue("mul131", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("3")).toString()).equals("9")); 1801 TestFmwk.assertTrue("mul132", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("30")).toString()).equals("90")); 1802 TestFmwk.assertTrue("mul133", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("300")).toString()).equals("900")); 1803 TestFmwk.assertTrue("mul134", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("3000")).toString()).equals("9000")); 1804 TestFmwk.assertTrue("mul135", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("30000")).toString()).equals("90000")); 1805 TestFmwk.assertTrue("mul136", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("300000")).toString()).equals("900000")); 1806 TestFmwk.assertTrue("mul137", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("3000000")).toString()).equals("9000000")); 1807 TestFmwk.assertTrue("mul138", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("30000000")).toString()).equals("90000000")); 1808 TestFmwk.assertTrue("mul139", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("300000000")).toString()).equals("900000000")); 1809 TestFmwk.assertTrue("mul140", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("3000000000")).toString()).equals("9000000000")); 1810 TestFmwk.assertTrue("mul141", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("30000000000")).toString()).equals("90000000000")); 1811 TestFmwk.assertTrue("mul142", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("300000000000")).toString()).equals("900000000000")); 1812 TestFmwk.assertTrue("mul143", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("3000000000000")).toString()).equals("9000000000000")); 1813 TestFmwk.assertTrue("mul144", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("30000000000000")).toString()).equals("90000000000000")); 1814 TestFmwk.assertTrue("mul145", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("300000000000000")).toString()).equals("900000000000000")); 1815 TestFmwk.assertTrue("mul146", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("3000000000000000")).toString()).equals("9000000000000000")); 1816 TestFmwk.assertTrue("mul147", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("30000000000000000")).toString()).equals("90000000000000000")); 1817 TestFmwk.assertTrue("mul148", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("300000000000000000")).toString()).equals("900000000000000000")); 1818 TestFmwk.assertTrue("mul149", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("3000000000000000000")).toString()).equals("9000000000000000000")); 1819 TestFmwk.assertTrue("mul150", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("30000000000000000000")).toString()).equals("90000000000000000000")); 1820 TestFmwk.assertTrue("mul151", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("300000000000000000000")).toString()).equals("900000000000000000000")); 1821 TestFmwk.assertTrue("mul152", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("3000000000000000000000")).toString()).equals("9000000000000000000000")); 1822 TestFmwk.assertTrue("mul153", ((new com.ibm.icu.math.BigDecimal("3")).multiply(new com.ibm.icu.math.BigDecimal("30000000000000000000000")).toString()).equals("90000000000000000000000")); 1823 1824 try { 1825 ten.multiply((com.ibm.icu.math.BigDecimal) null); 1826 flag = false; 1827 } catch (java.lang.NullPointerException $55) { 1828 flag = true; 1829 }/* checknull */ 1830 TestFmwk.assertTrue("mul200", flag); 1831 try { 1832 ten.multiply(ten, (com.ibm.icu.math.MathContext) null); 1833 flag = false; 1834 } catch (java.lang.NullPointerException $56) { 1835 flag = true; 1836 }/* checknull2 */ 1837 TestFmwk.assertTrue("mul201", flag); 1838 1839 try { 1840 d1 = new com.ibm.icu.math.BigDecimal("-1.23456789012345E-0"); 1841 d2 = new com.ibm.icu.math.BigDecimal("9E+999999999"); 1842 d1.multiply(d2, mcdef); // marginal overflow 1843 flag = false; 1844 } catch (java.lang.ArithmeticException $57) { 1845 oe = $57; 1846 flag = (oe.getMessage()).equals("Exponent Overflow: 1000000000"); 1847 }/* checkover */ 1848 TestFmwk.assertTrue("mul202", flag); 1849 try { 1850 d1 = new com.ibm.icu.math.BigDecimal("112"); 1851 d2 = new com.ibm.icu.math.BigDecimal("9E+999999999"); 1852 d1.multiply(d2, mce); // marginal overflow, engineering 1853 flag = false; 1854 } catch (java.lang.ArithmeticException $58) { 1855 oe = $58; 1856 flag = (oe.getMessage()).equals("Exponent Overflow: 1000000002"); 1857 }/* checkover */ 1858 TestFmwk.assertTrue("mul203", flag); 1859 1860 try { 1861 d1 = new com.ibm.icu.math.BigDecimal("0.9"); 1862 d2 = new com.ibm.icu.math.BigDecimal("1E-999999999"); 1863 d1.multiply(d2, mcdef); // marginal negative overflow 1864 flag = false; 1865 } catch (java.lang.ArithmeticException $59) { 1866 oe = $59; 1867 flag = (oe.getMessage()).equals("Exponent Overflow: -1000000000"); 1868 }/* checkover */ 1869 TestFmwk.assertTrue("mul204", flag); 1870 try { 1871 d1 = new com.ibm.icu.math.BigDecimal("0.9"); 1872 d2 = new com.ibm.icu.math.BigDecimal("1E-999999999"); 1873 d1.multiply(d2, mce); // marginal negative overflow, 1874 // engineering 1875 flag = false; 1876 } catch (java.lang.ArithmeticException $60) { 1877 oe = $60; 1878 flag = (oe.getMessage()).equals("Exponent Overflow: -1000000002"); 1879 }/* checkover */ 1880 TestFmwk.assertTrue("mul205", flag); 1881 1882 try { 1883 tenlong.multiply(com.ibm.icu.math.BigDecimal.ONE, mcld); 1884 flag = false; 1885 } catch (java.lang.ArithmeticException $61) { 1886 ae = $61; 1887 flag = (ae.getMessage()).equals("Too many digits:" + " " 1888 + tenlong.toString()); 1889 }/* checkdigits */ 1890 TestFmwk.assertTrue("mul206", flag); 1891 try { 1892 com.ibm.icu.math.BigDecimal.TEN.multiply(tenlong, mcld); 1893 flag = false; 1894 } catch (java.lang.ArithmeticException $62) { 1895 ae = $62; 1896 flag = (ae.getMessage()).equals("Too many digits:" + " " 1897 + tenlong.toString()); 1898 }/* checkdigits */ 1899 TestFmwk.assertTrue("mul207", flag); 1900 1901 } 1902 1903 /* ----------------------------------------------------------------- */ 1904 1905 /** Test the {@link com.ibm.icu.math.BigDecimal#negate} method. */ 1906 1907 @Test 1908 public void diagnegate() { 1909 boolean flag = false; 1910 java.lang.ArithmeticException ae = null; 1911 1912 TestFmwk.assertTrue("neg001", ((new com.ibm.icu.math.BigDecimal("2")).negate().toString()).equals("-2")); 1913 TestFmwk.assertTrue("neg002", ((new com.ibm.icu.math.BigDecimal("-2")).negate().toString()).equals("2")); 1914 TestFmwk.assertTrue("neg003", ((new com.ibm.icu.math.BigDecimal("2.00")).negate(mcdef).toString()).equals("-2.00")); 1915 TestFmwk.assertTrue("neg004", ((new com.ibm.icu.math.BigDecimal("-2.00")).negate(mcdef).toString()).equals("2.00")); 1916 TestFmwk.assertTrue("neg005", ((new com.ibm.icu.math.BigDecimal("0")).negate(mcdef).toString()).equals("0")); 1917 TestFmwk.assertTrue("neg006", ((new com.ibm.icu.math.BigDecimal("0.00")).negate(mcdef).toString()).equals("0")); 1918 TestFmwk.assertTrue("neg007", ((new com.ibm.icu.math.BigDecimal("00.0")).negate(mcdef).toString()).equals("0")); 1919 TestFmwk.assertTrue("neg008", ((new com.ibm.icu.math.BigDecimal("00")).negate(mcdef).toString()).equals("0")); 1920 1921 TestFmwk.assertTrue("neg010", ((new com.ibm.icu.math.BigDecimal("2.00")).negate().toString()).equals("-2.00")); 1922 TestFmwk.assertTrue("neg011", ((new com.ibm.icu.math.BigDecimal("-2.00")).negate().toString()).equals("2.00")); 1923 TestFmwk.assertTrue("neg012", ((new com.ibm.icu.math.BigDecimal("0")).negate().toString()).equals("0")); 1924 TestFmwk.assertTrue("neg013", ((new com.ibm.icu.math.BigDecimal("0.00")).negate().toString()).equals("0.00")); 1925 TestFmwk.assertTrue("neg014", ((new com.ibm.icu.math.BigDecimal("00.0")).negate().toString()).equals("0.0")); 1926 TestFmwk.assertTrue("neg015", ((new com.ibm.icu.math.BigDecimal("00.00")).negate().toString()).equals("0.00")); 1927 TestFmwk.assertTrue("neg016", ((new com.ibm.icu.math.BigDecimal("00")).negate().toString()).equals("0")); 1928 1929 TestFmwk.assertTrue("neg020", ((new com.ibm.icu.math.BigDecimal("-2000000")).negate().toString()).equals("2000000")); 1930 TestFmwk.assertTrue("neg021", ((new com.ibm.icu.math.BigDecimal("-2000000")).negate(mcdef).toString()).equals("2000000")); 1931 TestFmwk.assertTrue("neg022", ((new com.ibm.icu.math.BigDecimal("-2000000")).negate(mc6).toString()).equals("2.00000E+6")); 1932 TestFmwk.assertTrue("neg023", ((new com.ibm.icu.math.BigDecimal("2000000")).negate(mc6).toString()).equals("-2.00000E+6")); 1933 1934 try { 1935 ten.negate((com.ibm.icu.math.MathContext) null); 1936 flag = false; 1937 } catch (java.lang.NullPointerException $63) { 1938 flag = true; 1939 }/* checknull */ 1940 TestFmwk.assertTrue("neg100", flag); 1941 1942 try { 1943 tenlong.negate(mcld); 1944 flag = false; 1945 } catch (java.lang.ArithmeticException $64) { 1946 ae = $64; 1947 flag = (ae.getMessage()).equals("Too many digits:" + " " 1948 + tenlong.toString()); 1949 }/* checkdigits */ 1950 TestFmwk.assertTrue("neg101", flag); 1951 } 1952 1953 /* ----------------------------------------------------------------- */ 1954 1955 /** Test the {@link com.ibm.icu.math.BigDecimal#plus} method. */ 1956 1957 @Test 1958 public void diagplus() { 1959 boolean flag = false; 1960 com.ibm.icu.math.MathContext mche1; 1961 java.lang.ArithmeticException ae = null; 1962 1963 TestFmwk.assertTrue("plu001", ((new com.ibm.icu.math.BigDecimal("2")).plus(mcdef).toString()).equals("2")); 1964 TestFmwk.assertTrue("plu002", ((new com.ibm.icu.math.BigDecimal("-2")).plus(mcdef).toString()).equals("-2")); 1965 TestFmwk.assertTrue("plu003", ((new com.ibm.icu.math.BigDecimal("2.00")).plus(mcdef).toString()).equals("2.00")); 1966 TestFmwk.assertTrue("plu004", ((new com.ibm.icu.math.BigDecimal("-2.00")).plus(mcdef).toString()).equals("-2.00")); 1967 TestFmwk.assertTrue("plu005", ((new com.ibm.icu.math.BigDecimal("0")).plus(mcdef).toString()).equals("0")); 1968 TestFmwk.assertTrue("plu006", ((new com.ibm.icu.math.BigDecimal("0.00")).plus(mcdef).toString()).equals("0")); 1969 TestFmwk.assertTrue("plu007", ((new com.ibm.icu.math.BigDecimal("00.0")).plus(mcdef).toString()).equals("0")); 1970 TestFmwk.assertTrue("plu008", ((new com.ibm.icu.math.BigDecimal("00")).plus(mcdef).toString()).equals("0")); 1971 1972 TestFmwk.assertTrue("plu010", ((new com.ibm.icu.math.BigDecimal("2")).plus().toString()).equals("2")); 1973 TestFmwk.assertTrue("plu011", ((new com.ibm.icu.math.BigDecimal("-2")).plus().toString()).equals("-2")); 1974 TestFmwk.assertTrue("plu012", ((new com.ibm.icu.math.BigDecimal("2.00")).plus().toString()).equals("2.00")); 1975 TestFmwk.assertTrue("plu013", ((new com.ibm.icu.math.BigDecimal("-2.00")).plus().toString()).equals("-2.00")); 1976 TestFmwk.assertTrue("plu014", ((new com.ibm.icu.math.BigDecimal("0")).plus().toString()).equals("0")); 1977 TestFmwk.assertTrue("plu015", ((new com.ibm.icu.math.BigDecimal("0.00")).plus().toString()).equals("0.00")); 1978 TestFmwk.assertTrue("plu016", ((new com.ibm.icu.math.BigDecimal("00.0")).plus().toString()).equals("0.0")); 1979 TestFmwk.assertTrue("plu017", ((new com.ibm.icu.math.BigDecimal("00.00")).plus().toString()).equals("0.00")); 1980 TestFmwk.assertTrue("plu018", ((new com.ibm.icu.math.BigDecimal("00")).plus().toString()).equals("0")); 1981 1982 TestFmwk.assertTrue("plu020", ((new com.ibm.icu.math.BigDecimal("-2000000")).plus().toString()).equals("-2000000")); 1983 TestFmwk.assertTrue("plu021", ((new com.ibm.icu.math.BigDecimal("-2000000")).plus(mcdef).toString()).equals("-2000000")); 1984 TestFmwk.assertTrue("plu022", ((new com.ibm.icu.math.BigDecimal("-2000000")).plus(mc6).toString()).equals("-2.00000E+6")); 1985 TestFmwk.assertTrue("plu023", ((new com.ibm.icu.math.BigDecimal("2000000")).plus(mc6).toString()).equals("2.00000E+6")); 1986 1987 // try some exotic but silly rounding [format checks more varieties] 1988 // [this mostly ensures we can set up and pass the setting] 1989 mche1=new com.ibm.icu.math.MathContext(1,com.ibm.icu.math.MathContext.SCIENTIFIC,false,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN); 1990 TestFmwk.assertTrue("plu030", ((new com.ibm.icu.math.BigDecimal("0.24")).plus(mche1).toString()).equals("0.2")); 1991 TestFmwk.assertTrue("plu031", ((new com.ibm.icu.math.BigDecimal("0.25")).plus(mche1).toString()).equals("0.2")); 1992 TestFmwk.assertTrue("plu032", ((new com.ibm.icu.math.BigDecimal("0.26")).plus(mche1).toString()).equals("0.3")); 1993 TestFmwk.assertTrue("plu033", ((new com.ibm.icu.math.BigDecimal("0.14")).plus(mche1).toString()).equals("0.1")); 1994 TestFmwk.assertTrue("plu034", ((new com.ibm.icu.math.BigDecimal("0.15")).plus(mche1).toString()).equals("0.2")); 1995 TestFmwk.assertTrue("plu035", ((new com.ibm.icu.math.BigDecimal("0.16")).plus(mche1).toString()).equals("0.2")); 1996 1997 TestFmwk.assertTrue("plu040", ((new com.ibm.icu.math.BigDecimal("0.251")).plus(mche1).toString()).equals("0.3")); 1998 TestFmwk.assertTrue("plu041", ((new com.ibm.icu.math.BigDecimal("0.151")).plus(mche1).toString()).equals("0.2")); 1999 2000 TestFmwk.assertTrue("plu050", ((new com.ibm.icu.math.BigDecimal("-0.24")).plus(mche1).toString()).equals("-0.2")); 2001 TestFmwk.assertTrue("plu051", ((new com.ibm.icu.math.BigDecimal("-0.25")).plus(mche1).toString()).equals("-0.2")); 2002 TestFmwk.assertTrue("plu052", ((new com.ibm.icu.math.BigDecimal("-0.26")).plus(mche1).toString()).equals("-0.3")); 2003 TestFmwk.assertTrue("plu053", ((new com.ibm.icu.math.BigDecimal("-0.14")).plus(mche1).toString()).equals("-0.1")); 2004 TestFmwk.assertTrue("plu054", ((new com.ibm.icu.math.BigDecimal("-0.15")).plus(mche1).toString()).equals("-0.2")); 2005 TestFmwk.assertTrue("plu055", ((new com.ibm.icu.math.BigDecimal("-0.16")).plus(mche1).toString()).equals("-0.2")); 2006 2007 // more fixed, potential LHS swaps if done by add 0 2008 TestFmwk.assertTrue("plu060", ((new com.ibm.icu.math.BigDecimal("-56267E-10")).plus().toString()).equals("-0.0000056267")); 2009 TestFmwk.assertTrue("plu061", ((new com.ibm.icu.math.BigDecimal("-56267E-5")).plus().toString()).equals("-0.56267")); 2010 TestFmwk.assertTrue("plu062", ((new com.ibm.icu.math.BigDecimal("-56267E-2")).plus().toString()).equals("-562.67")); 2011 TestFmwk.assertTrue("plu063", ((new com.ibm.icu.math.BigDecimal("-56267E-1")).plus().toString()).equals("-5626.7")); 2012 TestFmwk.assertTrue("plu065", ((new com.ibm.icu.math.BigDecimal("-56267E-0")).plus().toString()).equals("-56267")); 2013 2014 try { 2015 ten.plus((com.ibm.icu.math.MathContext) null); 2016 flag = false; 2017 } catch (java.lang.NullPointerException $65) { 2018 flag = true; 2019 }/* checknull */ 2020 TestFmwk.assertTrue("plu100", flag); 2021 2022 try { 2023 tenlong.plus(mcld); 2024 flag = false; 2025 } catch (java.lang.ArithmeticException $66) { 2026 ae = $66; 2027 flag = (ae.getMessage()).equals("Too many digits:" + " " 2028 + tenlong.toString()); 2029 }/* checkdigits */ 2030 TestFmwk.assertTrue("plu101", flag); 2031 } 2032 2033 /* ----------------------------------------------------------------- */ 2034 2035 /** Test the {@link com.ibm.icu.math.BigDecimal#pow} method. */ 2036 2037 @Test 2038 public void diagpow() { 2039 boolean flag; 2040 com.ibm.icu.math.BigDecimal x; 2041 com.ibm.icu.math.BigDecimal temp; 2042 int n = 0; 2043 com.ibm.icu.math.BigDecimal vx; 2044 com.ibm.icu.math.BigDecimal vn; 2045 java.lang.ArithmeticException ae = null; 2046 flag = true; 2047 TestFmwk.assertTrue("pow001", "1".equals((new com.ibm.icu.math.BigDecimal("0.3")).pow(new com.ibm.icu.math.BigDecimal("0"),mcdef).toString())); 2048 TestFmwk.assertTrue("pow002", "0.3".equals((new com.ibm.icu.math.BigDecimal("0.3")).pow(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString())); 2049 TestFmwk.assertTrue("pow003", "0.3".equals((new com.ibm.icu.math.BigDecimal("0.3")).pow(new com.ibm.icu.math.BigDecimal("1.00"),mcdef).toString())); 2050 TestFmwk.assertTrue("pow004", "0.09".equals((new com.ibm.icu.math.BigDecimal("0.3")).pow(new com.ibm.icu.math.BigDecimal("2.00"),mcdef).toString())); 2051 TestFmwk.assertTrue("pow005", "0.09".equals((new com.ibm.icu.math.BigDecimal("0.3")).pow(new com.ibm.icu.math.BigDecimal("2.000000000"),mcdef).toString())); 2052 TestFmwk.assertTrue("pow006", ("1E-8").equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("-8"),mcdef).toString())); 2053 TestFmwk.assertTrue("pow007", ("1E-7").equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("-7"),mcdef).toString())); 2054 TestFmwk.assertTrue("pow008", "0.000001".equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("-6"),mcdef).toString())); 2055 TestFmwk.assertTrue("pow009", "0.00001".equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("-5"),mcdef).toString())); 2056 TestFmwk.assertTrue("pow010", "0.0001".equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("-4"),mcdef).toString())); 2057 TestFmwk.assertTrue("pow011", "0.001".equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("-3"),mcdef).toString())); 2058 TestFmwk.assertTrue("pow012", "0.01".equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("-2"),mcdef).toString())); 2059 TestFmwk.assertTrue("pow013", "0.1".equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("-1"),mcdef).toString())); 2060 TestFmwk.assertTrue("pow014", "1".equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("0"),mcdef).toString())); 2061 TestFmwk.assertTrue("pow015", "10".equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString())); 2062 TestFmwk.assertTrue("pow016", "100000000".equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("8"),mcdef).toString())); 2063 TestFmwk.assertTrue("pow017", ("1E+9").equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("9"),mcdef).toString())); 2064 TestFmwk.assertTrue("pow018", ("1E+99").equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("99"),mcdef).toString())); 2065 TestFmwk.assertTrue("pow019", ("1E+999999999").equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("999999999"),mcdef).toString())); 2066 TestFmwk.assertTrue("pow020", ("1E+999999998").equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("999999998"),mcdef).toString())); 2067 TestFmwk.assertTrue("pow021", ("1E+999999997").equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("999999997"),mcdef).toString())); 2068 TestFmwk.assertTrue("pow022", ("1E+333333333").equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("333333333"),mcdef).toString())); 2069 TestFmwk.assertTrue("pow023", ("1E-333333333").equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("-333333333"),mcdef).toString())); 2070 TestFmwk.assertTrue("pow024", ("1E-999999998").equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("-999999998"),mcdef).toString())); 2071 TestFmwk.assertTrue("pow025", ("1E-999999999").equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("-999999999"),mcdef).toString())); 2072 TestFmwk.assertTrue("pow026", "0.5".equals((new com.ibm.icu.math.BigDecimal("2")).pow(new com.ibm.icu.math.BigDecimal("-1"),mcdef).toString())); 2073 TestFmwk.assertTrue("pow027", "0.25".equals((new com.ibm.icu.math.BigDecimal("2")).pow(new com.ibm.icu.math.BigDecimal("-2"),mcdef).toString())); 2074 TestFmwk.assertTrue("pow028", "0.0625".equals((new com.ibm.icu.math.BigDecimal("2")).pow(new com.ibm.icu.math.BigDecimal("-4"),mcdef).toString())); 2075 2076 TestFmwk.assertTrue("pow050", ((new com.ibm.icu.math.BigDecimal("0")).pow(new com.ibm.icu.math.BigDecimal("0"),mcdef).toString()).equals("1")); 2077 TestFmwk.assertTrue("pow051", ((new com.ibm.icu.math.BigDecimal("0")).pow(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("0")); 2078 TestFmwk.assertTrue("pow052", ((new com.ibm.icu.math.BigDecimal("0")).pow(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("0")); 2079 TestFmwk.assertTrue("pow053", ((new com.ibm.icu.math.BigDecimal("1")).pow(new com.ibm.icu.math.BigDecimal("0"),mcdef).toString()).equals("1")); 2080 TestFmwk.assertTrue("pow054", ((new com.ibm.icu.math.BigDecimal("1")).pow(new com.ibm.icu.math.BigDecimal("1"),mcdef).toString()).equals("1")); 2081 TestFmwk.assertTrue("pow055", ((new com.ibm.icu.math.BigDecimal("1")).pow(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("1")); 2082 TestFmwk.assertTrue("pow056", ((new com.ibm.icu.math.BigDecimal("0.3")).pow(new com.ibm.icu.math.BigDecimal("0"),mcdef).toString()).equals("1")); 2083 TestFmwk.assertTrue("pow057", ((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("999999999"),mcdef).toString()).equals("1E+999999999")); 2084 TestFmwk.assertTrue("pow058", ((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("999999998"),mcdef).toString()).equals("1E+999999998")); 2085 TestFmwk.assertTrue("pow059", ((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("999999997"),mcdef).toString()).equals("1E+999999997")); 2086 TestFmwk.assertTrue("pow060", ((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("333333333"),mcdef).toString()).equals("1E+333333333")); 2087 TestFmwk.assertTrue("pow061", ((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("77"),mcdef).toString()).equals("1E+77")); 2088 TestFmwk.assertTrue("pow062", ((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("22"),mcdef).toString()).equals("1E+22")); 2089 TestFmwk.assertTrue("pow063", ((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("-77"),mcdef).toString()).equals("1E-77")); 2090 TestFmwk.assertTrue("pow064", ((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("-22"),mcdef).toString()).equals("1E-22")); 2091 TestFmwk.assertTrue("pow065", ((new com.ibm.icu.math.BigDecimal("2")).pow(new com.ibm.icu.math.BigDecimal("-1"),mcdef).toString()).equals("0.5")); 2092 TestFmwk.assertTrue("pow066", ((new com.ibm.icu.math.BigDecimal("2")).pow(new com.ibm.icu.math.BigDecimal("-2"),mcdef).toString()).equals("0.25")); 2093 TestFmwk.assertTrue("pow067", ((new com.ibm.icu.math.BigDecimal("2")).pow(new com.ibm.icu.math.BigDecimal("-4"),mcdef).toString()).equals("0.0625")); 2094 TestFmwk.assertTrue("pow068", ((new com.ibm.icu.math.BigDecimal("6.0")).pow(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("36")); 2095 TestFmwk.assertTrue("pow069", ((new com.ibm.icu.math.BigDecimal("-3")).pow(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("9"));/* from book */ 2096 TestFmwk.assertTrue("pow070", ((new com.ibm.icu.math.BigDecimal("2")).pow(new com.ibm.icu.math.BigDecimal("2"),mcdef).pow(new com.ibm.icu.math.BigDecimal("3"),mcdef).toString()).equals("64"));/* from book */ 2097 2098 // 1998.12.14 Next test removed as pow() no longer rounds RHS [as per ANSI] 2099 // Test('pow071').ok=BigDecimal('2').pow(BigDecimal('2.000000001'),mcdef).toString == '4'/* check input rounding */ 2100 2101 /* General tests from original Rexx diagnostics */ 2102 x = new com.ibm.icu.math.BigDecimal("0.5"); 2103 temp = com.ibm.icu.math.BigDecimal.ONE; 2104 flag = true; 2105 { 2106 n = 1; 2107 for (; n <= 10; n++) { 2108 temp = temp.multiply(x).divide(com.ibm.icu.math.BigDecimal.ONE); 2109 flag = flag 2110 & (x.pow(new com.ibm.icu.math.BigDecimal(n), mcdef) 2111 .toString()).equals(temp.toString()); 2112 } 2113 }/* n */ 2114 TestFmwk.assertTrue("pow080", flag); 2115 2116 x = new com.ibm.icu.math.BigDecimal("2"); 2117 temp = com.ibm.icu.math.BigDecimal.ONE; 2118 flag = true; 2119 { 2120 n = 1; 2121 for (; n <= 29; n++) { 2122 temp = temp.multiply(x).divide(com.ibm.icu.math.BigDecimal.ONE); 2123 flag=flag&(x.pow(new com.ibm.icu.math.BigDecimal(n),mcdef).toString()).equals(temp.toString()); 2124 flag=flag&(x.pow(new com.ibm.icu.math.BigDecimal(-n),mcdef).toString()).equals(com.ibm.icu.math.BigDecimal.ONE.divide(temp,mcdef).toString()); 2125 /* Note that rounding errors are possible for larger "n" */ 2126 /* due to the information content of the exponent */ 2127 } 2128 }/* n */ 2129 TestFmwk.assertTrue("pow081", flag); 2130 2131 /* The Vienna case. Checks both setup and 1/acc working precision */ 2132 // Modified 1998.12.14 as RHS no longer rounded before use (must fit) 2133 // Modified 1990.02.04 as LHS is now rounded (instead of truncated to guard) 2134 vx=new com.ibm.icu.math.BigDecimal("123456789E+10"); // lhs .. rounded to 1.23E+18 2135 vn=new com.ibm.icu.math.BigDecimal("-1.23000e+2"); // rhs .. [was: -1.23455e+2, rounds to -123] 2136 TestFmwk.assertTrue("pow090", (vx.pow(vn,mc3).toString()).equals("8.74E-2226")); 2137 2138 // - fixed point versions --- 2139 TestFmwk.assertTrue("pow101", "1".equals((new com.ibm.icu.math.BigDecimal("0.3")).pow(new com.ibm.icu.math.BigDecimal("0")).toString())); 2140 TestFmwk.assertTrue("pow102", "0.3".equals((new com.ibm.icu.math.BigDecimal("0.3")).pow(new com.ibm.icu.math.BigDecimal("1")).toString())); 2141 TestFmwk.assertTrue("pow103", "0.3".equals((new com.ibm.icu.math.BigDecimal("0.3")).pow(new com.ibm.icu.math.BigDecimal("1.00")).toString())); 2142 TestFmwk.assertTrue("pow104", "0.09".equals((new com.ibm.icu.math.BigDecimal("0.3")).pow(new com.ibm.icu.math.BigDecimal("2")).toString())); 2143 TestFmwk.assertTrue("pow105", "0.09".equals((new com.ibm.icu.math.BigDecimal("0.3")).pow(new com.ibm.icu.math.BigDecimal("2.00")).toString())); 2144 TestFmwk.assertTrue("pow106", "10".equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("1")).toString())); 2145 TestFmwk.assertTrue("pow107", "100000000".equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("8")).toString())); 2146 TestFmwk.assertTrue("pow108", "1000000000".equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("9")).toString())); 2147 TestFmwk.assertTrue("pow109", "10000000000".equals((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("10")).toString())); 2148 TestFmwk.assertTrue("pow110", "1".equals((new com.ibm.icu.math.BigDecimal("2")).pow(new com.ibm.icu.math.BigDecimal("0")).toString())); 2149 TestFmwk.assertTrue("pow111", "16".equals((new com.ibm.icu.math.BigDecimal("2")).pow(new com.ibm.icu.math.BigDecimal("4")).toString())); 2150 TestFmwk.assertTrue("pow112", "256".equals((new com.ibm.icu.math.BigDecimal("2")).pow(new com.ibm.icu.math.BigDecimal("8")).toString())); 2151 TestFmwk.assertTrue("pow113", "1024".equals((new com.ibm.icu.math.BigDecimal("2")).pow(new com.ibm.icu.math.BigDecimal("10")).toString())); 2152 TestFmwk.assertTrue("pow114", "1.0510100501".equals((new com.ibm.icu.math.BigDecimal("1.01")).pow(new com.ibm.icu.math.BigDecimal("5")).toString())); 2153 2154 TestFmwk.assertTrue("pow120", ((new com.ibm.icu.math.BigDecimal("0")).pow(new com.ibm.icu.math.BigDecimal("0")).toString()).equals("1")); 2155 TestFmwk.assertTrue("pow121", ((new com.ibm.icu.math.BigDecimal("0")).pow(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("0")); 2156 TestFmwk.assertTrue("pow122", ((new com.ibm.icu.math.BigDecimal("0")).pow(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("0")); 2157 TestFmwk.assertTrue("pow123", ((new com.ibm.icu.math.BigDecimal("1")).pow(new com.ibm.icu.math.BigDecimal("0")).toString()).equals("1")); 2158 TestFmwk.assertTrue("pow144", ((new com.ibm.icu.math.BigDecimal("1")).pow(new com.ibm.icu.math.BigDecimal("1")).toString()).equals("1")); 2159 TestFmwk.assertTrue("pow125", ((new com.ibm.icu.math.BigDecimal("1")).pow(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("1")); 2160 TestFmwk.assertTrue("pow126", ((new com.ibm.icu.math.BigDecimal("0.3")).pow(new com.ibm.icu.math.BigDecimal("0")).toString()).equals("1")); 2161 TestFmwk.assertTrue("pow127", ((new com.ibm.icu.math.BigDecimal("10")).pow(new com.ibm.icu.math.BigDecimal("7")).toString()).equals("10000000")); 2162 TestFmwk.assertTrue("pow128", ((new com.ibm.icu.math.BigDecimal("6.0")).pow(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("36.00")); 2163 TestFmwk.assertTrue("pow129", ((new com.ibm.icu.math.BigDecimal("6.00")).pow(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("36.0000")); 2164 TestFmwk.assertTrue("pow130", ((new com.ibm.icu.math.BigDecimal("6.000")).pow(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("36.000000")); 2165 TestFmwk.assertTrue("pow131", ((new com.ibm.icu.math.BigDecimal("-3")).pow(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("9")); 2166 TestFmwk.assertTrue("pow132", ((new com.ibm.icu.math.BigDecimal("2")).pow(new com.ibm.icu.math.BigDecimal("2")).pow(new com.ibm.icu.math.BigDecimal("3")).toString()).equals("64")); 2167 2168 /* errors */ 2169 try { 2170 ten.pow((com.ibm.icu.math.BigDecimal) null); 2171 flag = false; 2172 } catch (java.lang.NullPointerException $67) { 2173 flag = true; 2174 }/* checknull */ 2175 TestFmwk.assertTrue("pow150", flag); 2176 try { 2177 ten.pow(ten, (com.ibm.icu.math.MathContext) null); 2178 flag = false; 2179 } catch (java.lang.NullPointerException $68) { 2180 flag = true; 2181 }/* checknull2 */ 2182 TestFmwk.assertTrue("pow151", flag); 2183 2184 flag = true; 2185 try { 2186 tenlong.pow(com.ibm.icu.math.BigDecimal.ONE, mcld); 2187 flag = false; 2188 } catch (java.lang.ArithmeticException $69) { 2189 ae = $69; 2190 flag = (ae.getMessage()).equals("Too many digits:" + " " 2191 + tenlong.toString()); 2192 }/* checkdigits */ 2193 TestFmwk.assertTrue("pow152", flag); 2194 2195 try { 2196 com.ibm.icu.math.BigDecimal.ONE.pow(tenlong, mcld); 2197 flag = false; 2198 } catch (java.lang.ArithmeticException $70) { 2199 ae = $70; 2200 flag = (ae.getMessage()).equals("Too many digits:" + " " 2201 + tenlong.toString()); 2202 }/* checkdigits */ 2203 TestFmwk.assertTrue("pow153", flag); 2204 2205 try { 2206 com.ibm.icu.math.BigDecimal.ONE 2207 .pow(new com.ibm.icu.math.BigDecimal("-71")); 2208 flag = false; 2209 } catch (java.lang.ArithmeticException $71) { 2210 ae = $71; 2211 flag = (ae.getMessage()).equals("Negative power: -71"); 2212 }/* checkpos */ 2213 TestFmwk.assertTrue("pow154", flag); 2214 2215 try { 2216 com.ibm.icu.math.BigDecimal.ONE.pow( 2217 new com.ibm.icu.math.BigDecimal("1234"), mc3); 2218 flag = false; 2219 } catch (java.lang.ArithmeticException $72) { 2220 ae = $72; 2221 flag = (ae.getMessage()).equals("Too many digits: 1234"); 2222 }/* checkwhole */ 2223 TestFmwk.assertTrue("pow155", flag); 2224 2225 try { 2226 com.ibm.icu.math.BigDecimal.ONE.pow( 2227 new com.ibm.icu.math.BigDecimal("12.34e+2"), mc3); 2228 flag = false; 2229 } catch (java.lang.ArithmeticException $73) { 2230 ae = $73; 2231 flag = (ae.getMessage()).equals("Too many digits: 1.234E+3"); 2232 }/* checkwhole1 */ 2233 TestFmwk.assertTrue("pow156", flag); 2234 2235 try { 2236 com.ibm.icu.math.BigDecimal.ONE.pow( 2237 new com.ibm.icu.math.BigDecimal("12.4"), mcdef); 2238 flag = false; 2239 } catch (java.lang.ArithmeticException $74) { 2240 ae = $74; 2241 flag = (ae.getMessage()).equals("Decimal part non-zero: 12.4"); 2242 }/* checkwhole2 */ 2243 TestFmwk.assertTrue("pow157", flag); 2244 2245 try { 2246 com.ibm.icu.math.BigDecimal.ONE.pow( 2247 new com.ibm.icu.math.BigDecimal("1.01"), mcdef); 2248 flag = false; 2249 } catch (java.lang.ArithmeticException $75) { 2250 ae = $75; 2251 flag = (ae.getMessage()).equals("Decimal part non-zero: 1.01"); 2252 }/* checkwhole3 */ 2253 TestFmwk.assertTrue("pow158", flag); 2254 2255 try { 2256 com.ibm.icu.math.BigDecimal.ONE.pow( 2257 new com.ibm.icu.math.BigDecimal("1.000000001"), mcdef); 2258 flag = false; 2259 } catch (java.lang.ArithmeticException $76) { 2260 ae = $76; 2261 flag = (ae.getMessage()) 2262 .equals("Decimal part non-zero: 1.000000001"); 2263 }/* checkwhole4 */ 2264 TestFmwk.assertTrue("pow159", flag); 2265 2266 try { 2267 com.ibm.icu.math.BigDecimal.ONE.pow( 2268 new com.ibm.icu.math.BigDecimal("1.000000001"), mc3); 2269 flag = false; 2270 } catch (java.lang.ArithmeticException $77) { 2271 ae = $77; 2272 flag = (ae.getMessage()) 2273 .equals("Decimal part non-zero: 1.000000001"); 2274 }/* checkwhole5 */ 2275 TestFmwk.assertTrue("pow160", flag); 2276 2277 try { 2278 com.ibm.icu.math.BigDecimal.ONE 2279 .pow( 2280 new com.ibm.icu.math.BigDecimal( 2281 "5.67E-987654321"), mc3); 2282 flag = false; 2283 } catch (java.lang.ArithmeticException $78) { 2284 ae = $78; 2285 flag = (ae.getMessage()) 2286 .equals("Decimal part non-zero: 5.67E-987654321"); 2287 }/* checkwhole6 */ 2288 TestFmwk.assertTrue("pow161", flag); 2289 } 2290 2291 /*--------------------------------------------------------------------*/ 2292 2293 /** Test the {@link com.ibm.icu.math.BigDecimal#remainder} method. */ 2294 2295 @Test 2296 public void diagremainder() { 2297 boolean flag = false; 2298 java.lang.ArithmeticException ae = null; 2299 2300 TestFmwk.assertTrue("rem001", ((new com.ibm.icu.math.BigDecimal("1")).remainder(new com.ibm.icu.math.BigDecimal("3"),mcdef).toString()).equals("1")); 2301 TestFmwk.assertTrue("rem002", ((new com.ibm.icu.math.BigDecimal("5")).remainder(new com.ibm.icu.math.BigDecimal("5"),mcdef).toString()).equals("0")); 2302 TestFmwk.assertTrue("rem003", ((new com.ibm.icu.math.BigDecimal("13")).remainder(new com.ibm.icu.math.BigDecimal("10"),mcdef).toString()).equals("3")); 2303 TestFmwk.assertTrue("rem004", ((new com.ibm.icu.math.BigDecimal("13")).remainder(new com.ibm.icu.math.BigDecimal("50"),mcdef).toString()).equals("13")); 2304 TestFmwk.assertTrue("rem005", ((new com.ibm.icu.math.BigDecimal("13")).remainder(new com.ibm.icu.math.BigDecimal("100"),mcdef).toString()).equals("13")); 2305 TestFmwk.assertTrue("rem006", ((new com.ibm.icu.math.BigDecimal("13")).remainder(new com.ibm.icu.math.BigDecimal("1000"),mcdef).toString()).equals("13")); 2306 TestFmwk.assertTrue("rem007", ((new com.ibm.icu.math.BigDecimal(".13")).remainder(one).toString()).equals("0.13")); 2307 TestFmwk.assertTrue("rem008", ((new com.ibm.icu.math.BigDecimal("0.133")).remainder(one).toString()).equals("0.133")); 2308 TestFmwk.assertTrue("rem009", ((new com.ibm.icu.math.BigDecimal("0.1033")).remainder(one).toString()).equals("0.1033")); 2309 TestFmwk.assertTrue("rem010", ((new com.ibm.icu.math.BigDecimal("1.033")).remainder(one).toString()).equals("0.033")); 2310 TestFmwk.assertTrue("rem011", ((new com.ibm.icu.math.BigDecimal("10.33")).remainder(one).toString()).equals("0.33")); 2311 TestFmwk.assertTrue("rem012", ((new com.ibm.icu.math.BigDecimal("10.33")).remainder(com.ibm.icu.math.BigDecimal.TEN).toString()).equals("0.33")); 2312 TestFmwk.assertTrue("rem013", ((new com.ibm.icu.math.BigDecimal("103.3")).remainder(com.ibm.icu.math.BigDecimal.ONE).toString()).equals("0.3")); 2313 TestFmwk.assertTrue("rem014", ((new com.ibm.icu.math.BigDecimal("133")).remainder(com.ibm.icu.math.BigDecimal.TEN).toString()).equals("3")); 2314 TestFmwk.assertTrue("rem015", ((new com.ibm.icu.math.BigDecimal("1033")).remainder(com.ibm.icu.math.BigDecimal.TEN).toString()).equals("3")); 2315 TestFmwk.assertTrue("rem016", ((new com.ibm.icu.math.BigDecimal("1033")).remainder(new com.ibm.icu.math.BigDecimal(50),mcdef).toString()).equals("33")); 2316 TestFmwk.assertTrue("rem017", ((new com.ibm.icu.math.BigDecimal("101.0")).remainder(new com.ibm.icu.math.BigDecimal(3),mcdef).toString()).equals("2.0")); 2317 TestFmwk.assertTrue("rem018", ((new com.ibm.icu.math.BigDecimal("102.0")).remainder(new com.ibm.icu.math.BigDecimal(3),mcdef).toString()).equals("0")); 2318 TestFmwk.assertTrue("rem019", ((new com.ibm.icu.math.BigDecimal("103.0")).remainder(new com.ibm.icu.math.BigDecimal(3),mcdef).toString()).equals("1.0")); 2319 TestFmwk.assertTrue("rem020", ((new com.ibm.icu.math.BigDecimal("2.40")).remainder(one).toString()).equals("0.40")); 2320 TestFmwk.assertTrue("rem021", ((new com.ibm.icu.math.BigDecimal("2.400")).remainder(one).toString()).equals("0.400")); 2321 TestFmwk.assertTrue("rem022", ((new com.ibm.icu.math.BigDecimal("2.4")).remainder(one).toString()).equals("0.4")); 2322 TestFmwk.assertTrue("rem023", ((new com.ibm.icu.math.BigDecimal("2.4")).remainder(new com.ibm.icu.math.BigDecimal(2),mcdef).toString()).equals("0.4")); 2323 TestFmwk.assertTrue("rem024", ((new com.ibm.icu.math.BigDecimal("2.400")).remainder(new com.ibm.icu.math.BigDecimal(2),mcdef).toString()).equals("0.400")); 2324 TestFmwk.assertTrue("rem025", ((new com.ibm.icu.math.BigDecimal("1")).remainder(new com.ibm.icu.math.BigDecimal("0.3"),mcdef).toString()).equals("0.1")); 2325 TestFmwk.assertTrue("rem026", ((new com.ibm.icu.math.BigDecimal("1")).remainder(new com.ibm.icu.math.BigDecimal("0.30"),mcdef).toString()).equals("0.10")); 2326 TestFmwk.assertTrue("rem027", ((new com.ibm.icu.math.BigDecimal("1")).remainder(new com.ibm.icu.math.BigDecimal("0.300"),mcdef).toString()).equals("0.100")); 2327 TestFmwk.assertTrue("rem028", ((new com.ibm.icu.math.BigDecimal("1")).remainder(new com.ibm.icu.math.BigDecimal("0.3000"),mcdef).toString()).equals("0.1000")); 2328 TestFmwk.assertTrue("rem029", ((new com.ibm.icu.math.BigDecimal("1.0")).remainder(new com.ibm.icu.math.BigDecimal("0.3"),mcdef).toString()).equals("0.1")); 2329 TestFmwk.assertTrue("rem030", ((new com.ibm.icu.math.BigDecimal("1.00")).remainder(new com.ibm.icu.math.BigDecimal("0.3"),mcdef).toString()).equals("0.10")); 2330 TestFmwk.assertTrue("rem031", ((new com.ibm.icu.math.BigDecimal("1.000")).remainder(new com.ibm.icu.math.BigDecimal("0.3"),mcdef).toString()).equals("0.100")); 2331 TestFmwk.assertTrue("rem032", ((new com.ibm.icu.math.BigDecimal("1.0000")).remainder(new com.ibm.icu.math.BigDecimal("0.3"),mcdef).toString()).equals("0.1000")); 2332 TestFmwk.assertTrue("rem033", ((new com.ibm.icu.math.BigDecimal("0.5")).remainder(new com.ibm.icu.math.BigDecimal("2.001"),mcdef).toString()).equals("0.5")); 2333 2334 TestFmwk.assertTrue("rem040", ((new com.ibm.icu.math.BigDecimal("0.5")).remainder(new com.ibm.icu.math.BigDecimal("0.5000001"),mcdef).toString()).equals("0.5")); 2335 TestFmwk.assertTrue("rem041", ((new com.ibm.icu.math.BigDecimal("0.5")).remainder(new com.ibm.icu.math.BigDecimal("0.50000001"),mcdef).toString()).equals("0.5")); 2336 TestFmwk.assertTrue("rem042", ((new com.ibm.icu.math.BigDecimal("0.5")).remainder(new com.ibm.icu.math.BigDecimal("0.500000001"),mcdef).toString()).equals("0.5")); 2337 TestFmwk.assertTrue("rem043", ((new com.ibm.icu.math.BigDecimal("0.5")).remainder(new com.ibm.icu.math.BigDecimal("0.5000000001"),mcdef).toString()).equals("0")); 2338 TestFmwk.assertTrue("rem044", ((new com.ibm.icu.math.BigDecimal("0.5")).remainder(new com.ibm.icu.math.BigDecimal("0.50000000001"),mcdef).toString()).equals("0")); 2339 TestFmwk.assertTrue("rem045", ((new com.ibm.icu.math.BigDecimal("0.5")).remainder(new com.ibm.icu.math.BigDecimal("0.4999999"),mcdef).toString()).equals("1E-7")); 2340 TestFmwk.assertTrue("rem046", ((new com.ibm.icu.math.BigDecimal("0.5")).remainder(new com.ibm.icu.math.BigDecimal("0.49999999"),mcdef).toString()).equals("1E-8")); 2341 TestFmwk.assertTrue("rem047", ((new com.ibm.icu.math.BigDecimal("0.5")).remainder(new com.ibm.icu.math.BigDecimal("0.499999999"),mcdef).toString()).equals("1E-9")); 2342 TestFmwk.assertTrue("rem048", ((new com.ibm.icu.math.BigDecimal("0.5")).remainder(new com.ibm.icu.math.BigDecimal("0.4999999999"),mcdef).toString()).equals("0")); 2343 TestFmwk.assertTrue("rem049", ((new com.ibm.icu.math.BigDecimal("0.5")).remainder(new com.ibm.icu.math.BigDecimal("0.49999999999"),mcdef).toString()).equals("0")); 2344 2345 TestFmwk.assertTrue("rem050", ((new com.ibm.icu.math.BigDecimal("0.03")).remainder(new com.ibm.icu.math.BigDecimal("7"),mcdef).toString()).equals("0.03")); 2346 TestFmwk.assertTrue("rem051", ((new com.ibm.icu.math.BigDecimal("5")).remainder(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("1")); 2347 TestFmwk.assertTrue("rem052", ((new com.ibm.icu.math.BigDecimal("4.1")).remainder(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("0.1")); 2348 TestFmwk.assertTrue("rem053", ((new com.ibm.icu.math.BigDecimal("4.01")).remainder(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("0.01")); 2349 TestFmwk.assertTrue("rem054", ((new com.ibm.icu.math.BigDecimal("4.001")).remainder(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("0.001")); 2350 TestFmwk.assertTrue("rem055", ((new com.ibm.icu.math.BigDecimal("4.0001")).remainder(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("0.0001")); 2351 TestFmwk.assertTrue("rem056", ((new com.ibm.icu.math.BigDecimal("4.00001")).remainder(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("0.00001")); 2352 TestFmwk.assertTrue("rem057", ((new com.ibm.icu.math.BigDecimal("4.000001")).remainder(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("0.000001")); 2353 TestFmwk.assertTrue("rem058", ((new com.ibm.icu.math.BigDecimal("4.0000001")).remainder(new com.ibm.icu.math.BigDecimal("2"),mcdef).toString()).equals("1E-7")); 2354 2355 TestFmwk.assertTrue("rem060", ((new com.ibm.icu.math.BigDecimal("1.2")).remainder(new com.ibm.icu.math.BigDecimal("0.7345"),mcdef).toString()).equals("0.4655")); 2356 TestFmwk.assertTrue("rem061", ((new com.ibm.icu.math.BigDecimal("0.8")).remainder(new com.ibm.icu.math.BigDecimal("12"),mcdef).toString()).equals("0.8")); 2357 TestFmwk.assertTrue("rem062", ((new com.ibm.icu.math.BigDecimal("0.8")).remainder(new com.ibm.icu.math.BigDecimal("0.2"),mcdef).toString()).equals("0")); 2358 TestFmwk.assertTrue("rem063", ((new com.ibm.icu.math.BigDecimal("0.8")).remainder(new com.ibm.icu.math.BigDecimal("0.3"),mcdef).toString()).equals("0.2")); 2359 TestFmwk.assertTrue("rem064", ((new com.ibm.icu.math.BigDecimal("0.800")).remainder(new com.ibm.icu.math.BigDecimal("12"),mcdef).toString()).equals("0.800")); 2360 TestFmwk.assertTrue("rem065", ((new com.ibm.icu.math.BigDecimal("0.800")).remainder(new com.ibm.icu.math.BigDecimal("1.7"),mcdef).toString()).equals("0.800")); 2361 TestFmwk.assertTrue("rem066", ((new com.ibm.icu.math.BigDecimal("2.400")).remainder(new com.ibm.icu.math.BigDecimal(2),mcdef).toString()).equals("0.400")); 2362 2363 // MC -- 2364 TestFmwk.assertTrue("rem071", ((new com.ibm.icu.math.BigDecimal("2.400")).remainder(new com.ibm.icu.math.BigDecimal(2),mc6).toString()).equals("0.400")); 2365 TestFmwk.assertTrue("rem072", ((new com.ibm.icu.math.BigDecimal("12345678900000")).remainder(new com.ibm.icu.math.BigDecimal("12e+12"),mc3).toString()).equals("3E+11")); 2366 2367 // Fixed -- 2368 TestFmwk.assertTrue("rem101", ((new com.ibm.icu.math.BigDecimal("1")).remainder(new com.ibm.icu.math.BigDecimal("3")).toString()).equals("1")); 2369 TestFmwk.assertTrue("rem102", ((new com.ibm.icu.math.BigDecimal("5")).remainder(new com.ibm.icu.math.BigDecimal("5")).toString()).equals("0")); 2370 TestFmwk.assertTrue("rem103", ((new com.ibm.icu.math.BigDecimal("13")).remainder(new com.ibm.icu.math.BigDecimal("10")).toString()).equals("3")); 2371 TestFmwk.assertTrue("rem104", ((new com.ibm.icu.math.BigDecimal("13")).remainder(new com.ibm.icu.math.BigDecimal("50")).toString()).equals("13")); 2372 TestFmwk.assertTrue("rem105", ((new com.ibm.icu.math.BigDecimal("13")).remainder(new com.ibm.icu.math.BigDecimal("100")).toString()).equals("13")); 2373 TestFmwk.assertTrue("rem106", ((new com.ibm.icu.math.BigDecimal("13")).remainder(new com.ibm.icu.math.BigDecimal("1000")).toString()).equals("13")); 2374 TestFmwk.assertTrue("rem107", ((new com.ibm.icu.math.BigDecimal(".13")).remainder(one).toString()).equals("0.13")); 2375 TestFmwk.assertTrue("rem108", ((new com.ibm.icu.math.BigDecimal("0.133")).remainder(one).toString()).equals("0.133")); 2376 TestFmwk.assertTrue("rem109", ((new com.ibm.icu.math.BigDecimal("0.1033")).remainder(one).toString()).equals("0.1033")); 2377 TestFmwk.assertTrue("rem110", ((new com.ibm.icu.math.BigDecimal("1.033")).remainder(one).toString()).equals("0.033")); 2378 TestFmwk.assertTrue("rem111", ((new com.ibm.icu.math.BigDecimal("10.33")).remainder(one).toString()).equals("0.33")); 2379 TestFmwk.assertTrue("rem112", ((new com.ibm.icu.math.BigDecimal("10.33")).remainder(com.ibm.icu.math.BigDecimal.TEN).toString()).equals("0.33")); 2380 TestFmwk.assertTrue("rem113", ((new com.ibm.icu.math.BigDecimal("103.3")).remainder(com.ibm.icu.math.BigDecimal.ONE).toString()).equals("0.3")); 2381 TestFmwk.assertTrue("rem114", ((new com.ibm.icu.math.BigDecimal("133")).remainder(com.ibm.icu.math.BigDecimal.TEN).toString()).equals("3")); 2382 TestFmwk.assertTrue("rem115", ((new com.ibm.icu.math.BigDecimal("1033")).remainder(com.ibm.icu.math.BigDecimal.TEN).toString()).equals("3")); 2383 TestFmwk.assertTrue("rem116", ((new com.ibm.icu.math.BigDecimal("1033")).remainder(new com.ibm.icu.math.BigDecimal(50)).toString()).equals("33")); 2384 TestFmwk.assertTrue("rem117", ((new com.ibm.icu.math.BigDecimal("101.0")).remainder(new com.ibm.icu.math.BigDecimal(3)).toString()).equals("2.0")); 2385 TestFmwk.assertTrue("rem118", ((new com.ibm.icu.math.BigDecimal("102.0")).remainder(new com.ibm.icu.math.BigDecimal(3)).toString()).equals("0")); 2386 TestFmwk.assertTrue("rem119", ((new com.ibm.icu.math.BigDecimal("103.0")).remainder(new com.ibm.icu.math.BigDecimal(3)).toString()).equals("1.0")); 2387 TestFmwk.assertTrue("rem120", ((new com.ibm.icu.math.BigDecimal("2.40")).remainder(one).toString()).equals("0.40")); 2388 TestFmwk.assertTrue("rem121", ((new com.ibm.icu.math.BigDecimal("2.400")).remainder(one).toString()).equals("0.400")); 2389 TestFmwk.assertTrue("rem122", ((new com.ibm.icu.math.BigDecimal("2.4")).remainder(one).toString()).equals("0.4")); 2390 TestFmwk.assertTrue("rem123", ((new com.ibm.icu.math.BigDecimal("2.4")).remainder(new com.ibm.icu.math.BigDecimal(2)).toString()).equals("0.4")); 2391 TestFmwk.assertTrue("rem124", ((new com.ibm.icu.math.BigDecimal("2.400")).remainder(new com.ibm.icu.math.BigDecimal(2)).toString()).equals("0.400")); 2392 TestFmwk.assertTrue("rem125", ((new com.ibm.icu.math.BigDecimal("1")).remainder(new com.ibm.icu.math.BigDecimal("0.3")).toString()).equals("0.1")); 2393 TestFmwk.assertTrue("rem126", ((new com.ibm.icu.math.BigDecimal("1")).remainder(new com.ibm.icu.math.BigDecimal("0.30")).toString()).equals("0.10")); 2394 TestFmwk.assertTrue("rem127", ((new com.ibm.icu.math.BigDecimal("1")).remainder(new com.ibm.icu.math.BigDecimal("0.300")).toString()).equals("0.100")); 2395 TestFmwk.assertTrue("rem128", ((new com.ibm.icu.math.BigDecimal("1")).remainder(new com.ibm.icu.math.BigDecimal("0.3000")).toString()).equals("0.1000")); 2396 TestFmwk.assertTrue("rem129", ((new com.ibm.icu.math.BigDecimal("1.0")).remainder(new com.ibm.icu.math.BigDecimal("0.3")).toString()).equals("0.1")); 2397 TestFmwk.assertTrue("rem130", ((new com.ibm.icu.math.BigDecimal("1.00")).remainder(new com.ibm.icu.math.BigDecimal("0.3")).toString()).equals("0.10")); 2398 TestFmwk.assertTrue("rem131", ((new com.ibm.icu.math.BigDecimal("1.000")).remainder(new com.ibm.icu.math.BigDecimal("0.3")).toString()).equals("0.100")); 2399 TestFmwk.assertTrue("rem132", ((new com.ibm.icu.math.BigDecimal("1.0000")).remainder(new com.ibm.icu.math.BigDecimal("0.3")).toString()).equals("0.1000")); 2400 TestFmwk.assertTrue("rem133", ((new com.ibm.icu.math.BigDecimal("0.5")).remainder(new com.ibm.icu.math.BigDecimal("2.001")).toString()).equals("0.5")); 2401 TestFmwk.assertTrue("rem134", ((new com.ibm.icu.math.BigDecimal("0.5")).remainder(new com.ibm.icu.math.BigDecimal("0.500000001")).toString()).equals("0.5")); 2402 TestFmwk.assertTrue("rem135", ((new com.ibm.icu.math.BigDecimal("0.5")).remainder(new com.ibm.icu.math.BigDecimal("0.5000000001")).toString()).equals("0.5")); 2403 TestFmwk.assertTrue("rem136", ((new com.ibm.icu.math.BigDecimal("0.03")).remainder(new com.ibm.icu.math.BigDecimal("7")).toString()).equals("0.03")); 2404 TestFmwk.assertTrue("rem137", ((new com.ibm.icu.math.BigDecimal("5")).remainder(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("1")); 2405 TestFmwk.assertTrue("rem138", ((new com.ibm.icu.math.BigDecimal("4.1")).remainder(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("0.1")); 2406 TestFmwk.assertTrue("rem139", ((new com.ibm.icu.math.BigDecimal("4.01")).remainder(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("0.01")); 2407 TestFmwk.assertTrue("rem140", ((new com.ibm.icu.math.BigDecimal("4.001")).remainder(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("0.001")); 2408 TestFmwk.assertTrue("rem141", ((new com.ibm.icu.math.BigDecimal("4.0001")).remainder(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("0.0001")); 2409 TestFmwk.assertTrue("rem142", ((new com.ibm.icu.math.BigDecimal("4.00001")).remainder(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("0.00001")); 2410 TestFmwk.assertTrue("rem143", ((new com.ibm.icu.math.BigDecimal("4.000001")).remainder(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("0.000001")); 2411 TestFmwk.assertTrue("rem144", ((new com.ibm.icu.math.BigDecimal("4.0000001")).remainder(new com.ibm.icu.math.BigDecimal("2")).toString()).equals("0.0000001")); // 1E-7, plain 2412 TestFmwk.assertTrue("rem145", ((new com.ibm.icu.math.BigDecimal("1.2")).remainder(new com.ibm.icu.math.BigDecimal("0.7345")).toString()).equals("0.4655")); 2413 TestFmwk.assertTrue("rem146", ((new com.ibm.icu.math.BigDecimal("0.8")).remainder(new com.ibm.icu.math.BigDecimal("12")).toString()).equals("0.8")); 2414 TestFmwk.assertTrue("rem147", ((new com.ibm.icu.math.BigDecimal("0.8")).remainder(new com.ibm.icu.math.BigDecimal("0.2")).toString()).equals("0")); 2415 TestFmwk.assertTrue("rem148", ((new com.ibm.icu.math.BigDecimal("0.8")).remainder(new com.ibm.icu.math.BigDecimal("0.3")).toString()).equals("0.2")); 2416 TestFmwk.assertTrue("rem149", ((new com.ibm.icu.math.BigDecimal("0.800")).remainder(new com.ibm.icu.math.BigDecimal("12")).toString()).equals("0.800")); 2417 TestFmwk.assertTrue("rem150", ((new com.ibm.icu.math.BigDecimal("0.800")).remainder(new com.ibm.icu.math.BigDecimal("1.7")).toString()).equals("0.800")); 2418 TestFmwk.assertTrue("rem151", ((new com.ibm.icu.math.BigDecimal("2.400")).remainder(new com.ibm.icu.math.BigDecimal(2),mcdef).toString()).equals("0.400")); 2419 2420 2421 try { 2422 ten.remainder((com.ibm.icu.math.BigDecimal) null); 2423 flag = false; 2424 } catch (java.lang.NullPointerException $79) { 2425 flag = true; 2426 }/* checknull */ 2427 TestFmwk.assertTrue("rem200", flag); 2428 try { 2429 ten.remainder(ten, (com.ibm.icu.math.MathContext) null); 2430 flag = false; 2431 } catch (java.lang.NullPointerException $80) { 2432 flag = true; 2433 }/* checknull2 */ 2434 TestFmwk.assertTrue("rem201", flag); 2435 2436 try { 2437 com.ibm.icu.math.BigDecimal.ONE.remainder(tenlong, mcld); 2438 flag = false; 2439 } catch (java.lang.ArithmeticException $81) { 2440 ae = $81; 2441 flag = (ae.getMessage()).equals("Too many digits:" + " " 2442 + tenlong.toString()); 2443 }/* checkdigits */ 2444 TestFmwk.assertTrue("rem202", flag); 2445 2446 try { 2447 tenlong.remainder(one, mcld); 2448 flag = false; 2449 } catch (java.lang.ArithmeticException $82) { 2450 ae = $82; 2451 flag = (ae.getMessage()).equals("Too many digits:" + " " 2452 + tenlong.toString()); 2453 }/* checkdigits */ 2454 TestFmwk.assertTrue("rem203", flag); 2455 } 2456 2457 /*--------------------------------------------------------------------*/ 2458 2459 /** Test the {@link com.ibm.icu.math.BigDecimal#subtract} method. */ 2460 2461 @Test 2462 public void diagsubtract() { 2463 boolean flag = false; 2464 com.ibm.icu.math.BigDecimal alhs; 2465 com.ibm.icu.math.BigDecimal arhs; 2466 java.lang.ArithmeticException ae = null; 2467 2468 // [first group are 'quick confidence check'] 2469 TestFmwk.assertTrue("sub301", ((new com.ibm.icu.math.BigDecimal(2)).subtract(new com.ibm.icu.math.BigDecimal(3),mcdef).toString()).equals("-1")); 2470 TestFmwk.assertTrue("sub302", ((new com.ibm.icu.math.BigDecimal("5.75")).subtract(new com.ibm.icu.math.BigDecimal("3.3"),mcdef).toString()).equals("2.45")); 2471 TestFmwk.assertTrue("sub303", ((new com.ibm.icu.math.BigDecimal("5")).subtract(new com.ibm.icu.math.BigDecimal("-3"),mcdef).toString()).equals("8")); 2472 TestFmwk.assertTrue("sub304", ((new com.ibm.icu.math.BigDecimal("-5")).subtract(new com.ibm.icu.math.BigDecimal("-3"),mcdef).toString()).equals("-2")); 2473 TestFmwk.assertTrue("sub305", ((new com.ibm.icu.math.BigDecimal("-7")).subtract(new com.ibm.icu.math.BigDecimal("2.5"),mcdef).toString()).equals("-9.5")); 2474 TestFmwk.assertTrue("sub306", ((new com.ibm.icu.math.BigDecimal("0.7")).subtract(new com.ibm.icu.math.BigDecimal("0.3"),mcdef).toString()).equals("0.4")); 2475 TestFmwk.assertTrue("sub307", ((new com.ibm.icu.math.BigDecimal("1.3")).subtract(new com.ibm.icu.math.BigDecimal("0.3"),mcdef).toString()).equals("1.0")); 2476 TestFmwk.assertTrue("sub308", ((new com.ibm.icu.math.BigDecimal("1.25")).subtract(new com.ibm.icu.math.BigDecimal("1.25"),mcdef).toString()).equals("0")); 2477 TestFmwk.assertTrue("sub309", ((new com.ibm.icu.math.BigDecimal("1.23456789")).subtract(new com.ibm.icu.math.BigDecimal("1.00000000"),mcdef).toString()).equals("0.23456789")); 2478 2479 TestFmwk.assertTrue("sub310", ((new com.ibm.icu.math.BigDecimal("1.23456789")).subtract(new com.ibm.icu.math.BigDecimal("1.00000089"),mcdef).toString()).equals("0.23456700")); 2480 2481 TestFmwk.assertTrue("sub311", ((new com.ibm.icu.math.BigDecimal("0.5555555559")).subtract(new com.ibm.icu.math.BigDecimal("0.0000000001"),mcdef).toString()).equals("0.555555556")); 2482 2483 TestFmwk.assertTrue("sub312", ((new com.ibm.icu.math.BigDecimal("0.5555555559")).subtract(new com.ibm.icu.math.BigDecimal("0.0000000005"),mcdef).toString()).equals("0.555555556")); 2484 2485 TestFmwk.assertTrue("sub313", ((new com.ibm.icu.math.BigDecimal("0.4444444444")).subtract(new com.ibm.icu.math.BigDecimal("0.1111111111"),mcdef).toString()).equals("0.333333333")); 2486 2487 TestFmwk.assertTrue("sub314", ((new com.ibm.icu.math.BigDecimal("1.0000000000")).subtract(new com.ibm.icu.math.BigDecimal("0.00000001"),mcdef).toString()).equals("0.99999999")); 2488 2489 TestFmwk.assertTrue("sub315", ((new com.ibm.icu.math.BigDecimal("0.4444444444999")).subtract(new com.ibm.icu.math.BigDecimal("0"),mcdef).toString()).equals("0.444444444")); 2490 2491 TestFmwk.assertTrue("sub316", ((new com.ibm.icu.math.BigDecimal("0.4444444445000")).subtract(new com.ibm.icu.math.BigDecimal("0"),mcdef).toString()).equals("0.444444445")); 2492 2493 2494 TestFmwk.assertTrue("sub317", ((new com.ibm.icu.math.BigDecimal("70")).subtract(new com.ibm.icu.math.BigDecimal("10000e+9"),mcdef).toString()).equals("-1.00000000E+13")); 2495 2496 TestFmwk.assertTrue("sub318", ((new com.ibm.icu.math.BigDecimal("700")).subtract(new com.ibm.icu.math.BigDecimal("10000e+9"),mcdef).toString()).equals("-1.00000000E+13")); 2497 2498 TestFmwk.assertTrue("sub319", ((new com.ibm.icu.math.BigDecimal("7000")).subtract(new com.ibm.icu.math.BigDecimal("10000e+9"),mcdef).toString()).equals("-1.00000000E+13")); 2499 2500 TestFmwk.assertTrue("sub320", ((new com.ibm.icu.math.BigDecimal("70000")).subtract(new com.ibm.icu.math.BigDecimal("10000e+9"),mcdef).toString()).equals("-9.9999999E+12")); 2501 2502 TestFmwk.assertTrue("sub321", ((new com.ibm.icu.math.BigDecimal("700000")).subtract(new com.ibm.icu.math.BigDecimal("10000e+9"),mcdef).toString()).equals("-9.9999993E+12")); 2503 2504 // symmetry: 2505 TestFmwk.assertTrue("sub322", ((new com.ibm.icu.math.BigDecimal("10000e+9")).subtract(new com.ibm.icu.math.BigDecimal("70"),mcdef).toString()).equals("1.00000000E+13")); 2506 2507 TestFmwk.assertTrue("sub323", ((new com.ibm.icu.math.BigDecimal("10000e+9")).subtract(new com.ibm.icu.math.BigDecimal("700"),mcdef).toString()).equals("1.00000000E+13")); 2508 2509 TestFmwk.assertTrue("sub324", ((new com.ibm.icu.math.BigDecimal("10000e+9")).subtract(new com.ibm.icu.math.BigDecimal("7000"),mcdef).toString()).equals("1.00000000E+13")); 2510 2511 TestFmwk.assertTrue("sub325", ((new com.ibm.icu.math.BigDecimal("10000e+9")).subtract(new com.ibm.icu.math.BigDecimal("70000"),mcdef).toString()).equals("9.9999999E+12")); 2512 2513 TestFmwk.assertTrue("sub326", ((new com.ibm.icu.math.BigDecimal("10000e+9")).subtract(new com.ibm.icu.math.BigDecimal("700000"),mcdef).toString()).equals("9.9999993E+12")); 2514 2515 2516 // [same with fixed point arithmetic] 2517 TestFmwk.assertTrue("sub001", ((new com.ibm.icu.math.BigDecimal(2)).subtract(new com.ibm.icu.math.BigDecimal(3)).toString()).equals("-1")); 2518 TestFmwk.assertTrue("sub002", ((new com.ibm.icu.math.BigDecimal("5.75")).subtract(new com.ibm.icu.math.BigDecimal("3.3")).toString()).equals("2.45")); 2519 TestFmwk.assertTrue("sub003", ((new com.ibm.icu.math.BigDecimal("5")).subtract(new com.ibm.icu.math.BigDecimal("-3")).toString()).equals("8")); 2520 TestFmwk.assertTrue("sub004", ((new com.ibm.icu.math.BigDecimal("-5")).subtract(new com.ibm.icu.math.BigDecimal("-3")).toString()).equals("-2")); 2521 TestFmwk.assertTrue("sub005", ((new com.ibm.icu.math.BigDecimal("-7")).subtract(new com.ibm.icu.math.BigDecimal("2.5")).toString()).equals("-9.5")); 2522 TestFmwk.assertTrue("sub006", ((new com.ibm.icu.math.BigDecimal("0.7")).subtract(new com.ibm.icu.math.BigDecimal("0.3")).toString()).equals("0.4")); 2523 TestFmwk.assertTrue("sub007", ((new com.ibm.icu.math.BigDecimal("1.3")).subtract(new com.ibm.icu.math.BigDecimal("0.3")).toString()).equals("1.0")); 2524 TestFmwk.assertTrue("sub008", ((new com.ibm.icu.math.BigDecimal("1.25")).subtract(new com.ibm.icu.math.BigDecimal("1.25")).toString()).equals("0.00")); 2525 TestFmwk.assertTrue("sub009", ((new com.ibm.icu.math.BigDecimal("0.02")).subtract(new com.ibm.icu.math.BigDecimal("0.02")).toString()).equals("0.00")); 2526 2527 TestFmwk.assertTrue("sub010", ((new com.ibm.icu.math.BigDecimal("1.23456789")).subtract(new com.ibm.icu.math.BigDecimal("1.00000000")).toString()).equals("0.23456789")); 2528 2529 TestFmwk.assertTrue("sub011", ((new com.ibm.icu.math.BigDecimal("1.23456789")).subtract(new com.ibm.icu.math.BigDecimal("1.00000089")).toString()).equals("0.23456700")); 2530 2531 TestFmwk.assertTrue("sub012", ((new com.ibm.icu.math.BigDecimal("0.5555555559")).subtract(new com.ibm.icu.math.BigDecimal("0.0000000001")).toString()).equals("0.5555555558")); 2532 2533 TestFmwk.assertTrue("sub013", ((new com.ibm.icu.math.BigDecimal("0.5555555559")).subtract(new com.ibm.icu.math.BigDecimal("0.0000000005")).toString()).equals("0.5555555554")); 2534 2535 TestFmwk.assertTrue("sub014", ((new com.ibm.icu.math.BigDecimal("0.4444444444")).subtract(new com.ibm.icu.math.BigDecimal("0.1111111111")).toString()).equals("0.3333333333")); 2536 2537 TestFmwk.assertTrue("sub015", ((new com.ibm.icu.math.BigDecimal("1.0000000000")).subtract(new com.ibm.icu.math.BigDecimal("0.00000001")).toString()).equals("0.9999999900")); 2538 2539 TestFmwk.assertTrue("sub016", ((new com.ibm.icu.math.BigDecimal("0.4444444444999")).subtract(new com.ibm.icu.math.BigDecimal("0")).toString()).equals("0.4444444444999")); 2540 2541 TestFmwk.assertTrue("sub017", ((new com.ibm.icu.math.BigDecimal("0.4444444445000")).subtract(new com.ibm.icu.math.BigDecimal("0")).toString()).equals("0.4444444445000")); 2542 2543 2544 TestFmwk.assertTrue("sub018", ((new com.ibm.icu.math.BigDecimal("70")).subtract(new com.ibm.icu.math.BigDecimal("10000e+9")).toString()).equals("-9999999999930")); 2545 2546 TestFmwk.assertTrue("sub019", ((new com.ibm.icu.math.BigDecimal("700")).subtract(new com.ibm.icu.math.BigDecimal("10000e+9")).toString()).equals("-9999999999300")); 2547 2548 TestFmwk.assertTrue("sub020", ((new com.ibm.icu.math.BigDecimal("7000")).subtract(new com.ibm.icu.math.BigDecimal("10000e+9")).toString()).equals("-9999999993000")); 2549 2550 TestFmwk.assertTrue("sub021", ((new com.ibm.icu.math.BigDecimal("70000")).subtract(new com.ibm.icu.math.BigDecimal("10000e+9")).toString()).equals("-9999999930000")); 2551 2552 TestFmwk.assertTrue("sub022", ((new com.ibm.icu.math.BigDecimal("700000")).subtract(new com.ibm.icu.math.BigDecimal("10000e+9")).toString()).equals("-9999999300000")); 2553 2554 // symmetry: 2555 TestFmwk.assertTrue("sub023", ((new com.ibm.icu.math.BigDecimal("10000e+9")).subtract(new com.ibm.icu.math.BigDecimal("70")).toString()).equals("9999999999930")); 2556 2557 TestFmwk.assertTrue("sub024", ((new com.ibm.icu.math.BigDecimal("10000e+9")).subtract(new com.ibm.icu.math.BigDecimal("700")).toString()).equals("9999999999300")); 2558 2559 TestFmwk.assertTrue("sub025", ((new com.ibm.icu.math.BigDecimal("10000e+9")).subtract(new com.ibm.icu.math.BigDecimal("7000")).toString()).equals("9999999993000")); 2560 2561 TestFmwk.assertTrue("sub026", ((new com.ibm.icu.math.BigDecimal("10000e+9")).subtract(new com.ibm.icu.math.BigDecimal("70000")).toString()).equals("9999999930000")); 2562 2563 TestFmwk.assertTrue("sub027", ((new com.ibm.icu.math.BigDecimal("10000e+9")).subtract(new com.ibm.icu.math.BigDecimal("700000")).toString()).equals("9999999300000")); 2564 2565 // MC 2566 TestFmwk.assertTrue("sub030", ((new com.ibm.icu.math.BigDecimal("10000e+9")).subtract(new com.ibm.icu.math.BigDecimal("70000"),mcdef).toString()).equals("9.9999999E+12")); 2567 2568 TestFmwk.assertTrue("sub031", ((new com.ibm.icu.math.BigDecimal("10000e+9")).subtract(new com.ibm.icu.math.BigDecimal("70000"),mc6).toString()).equals("1.00000E+13")); 2569 2570 2571 // some of the next group are really constructor tests 2572 TestFmwk.assertTrue("sub040", ((new com.ibm.icu.math.BigDecimal("00.0")).subtract(new com.ibm.icu.math.BigDecimal("0.0")).toString()).equals("0.0")); 2573 TestFmwk.assertTrue("sub041", ((new com.ibm.icu.math.BigDecimal("00.0")).subtract(new com.ibm.icu.math.BigDecimal("0.00")).toString()).equals("0.00")); 2574 TestFmwk.assertTrue("sub042", ((new com.ibm.icu.math.BigDecimal("0.00")).subtract(new com.ibm.icu.math.BigDecimal("00.0")).toString()).equals("0.00")); 2575 TestFmwk.assertTrue("sub043", ((new com.ibm.icu.math.BigDecimal("00.0")).subtract(new com.ibm.icu.math.BigDecimal("0.00"),mcdef).toString()).equals("0")); 2576 TestFmwk.assertTrue("sub044", ((new com.ibm.icu.math.BigDecimal("0.00")).subtract(new com.ibm.icu.math.BigDecimal("00.0"),mcdef).toString()).equals("0")); 2577 TestFmwk.assertTrue("sub045", ((new com.ibm.icu.math.BigDecimal("3")).subtract(new com.ibm.icu.math.BigDecimal(".3"),mcdef).toString()).equals("2.7")); 2578 TestFmwk.assertTrue("sub046", ((new com.ibm.icu.math.BigDecimal("3.")).subtract(new com.ibm.icu.math.BigDecimal(".3"),mcdef).toString()).equals("2.7")); 2579 TestFmwk.assertTrue("sub047", ((new com.ibm.icu.math.BigDecimal("3.0")).subtract(new com.ibm.icu.math.BigDecimal(".3"),mcdef).toString()).equals("2.7")); 2580 TestFmwk.assertTrue("sub048", ((new com.ibm.icu.math.BigDecimal("3.00")).subtract(new com.ibm.icu.math.BigDecimal(".3"),mcdef).toString()).equals("2.70")); 2581 TestFmwk.assertTrue("sub049", ((new com.ibm.icu.math.BigDecimal("3")).subtract(new com.ibm.icu.math.BigDecimal("3"),mcdef).toString()).equals("0")); 2582 TestFmwk.assertTrue("sub050", ((new com.ibm.icu.math.BigDecimal("3")).subtract(new com.ibm.icu.math.BigDecimal("+3"),mcdef).toString()).equals("0")); 2583 TestFmwk.assertTrue("sub051", ((new com.ibm.icu.math.BigDecimal("3")).subtract(new com.ibm.icu.math.BigDecimal("-3"),mcdef).toString()).equals("6")); 2584 TestFmwk.assertTrue("sub052", ((new com.ibm.icu.math.BigDecimal("3")).subtract(new com.ibm.icu.math.BigDecimal(".3")).toString()).equals("2.7")); 2585 TestFmwk.assertTrue("sub053", ((new com.ibm.icu.math.BigDecimal("3.")).subtract(new com.ibm.icu.math.BigDecimal(".3")).toString()).equals("2.7")); 2586 TestFmwk.assertTrue("sub054", ((new com.ibm.icu.math.BigDecimal("3.0")).subtract(new com.ibm.icu.math.BigDecimal(".3")).toString()).equals("2.7")); 2587 TestFmwk.assertTrue("sub055", ((new com.ibm.icu.math.BigDecimal("3.00")).subtract(new com.ibm.icu.math.BigDecimal(".3")).toString()).equals("2.70")); 2588 TestFmwk.assertTrue("sub056", ((new com.ibm.icu.math.BigDecimal("3")).subtract(new com.ibm.icu.math.BigDecimal("3")).toString()).equals("0")); 2589 TestFmwk.assertTrue("sub057", ((new com.ibm.icu.math.BigDecimal("3")).subtract(new com.ibm.icu.math.BigDecimal("+3")).toString()).equals("0")); 2590 TestFmwk.assertTrue("sub058", ((new com.ibm.icu.math.BigDecimal("3")).subtract(new com.ibm.icu.math.BigDecimal("-3")).toString()).equals("6")); 2591 2592 // the above all from add; massaged and extended. Now some new ones... 2593 // [particularly important for comparisons] 2594 // NB: -1E-7 below were non-exponents pre-ANSI 2595 TestFmwk.assertTrue("sub080", ("-1E-7").equals((new com.ibm.icu.math.BigDecimal("10.23456784")).subtract(new com.ibm.icu.math.BigDecimal("10.23456789"),mcdef).toString())); 2596 TestFmwk.assertTrue("sub081", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456785")).subtract(new com.ibm.icu.math.BigDecimal("10.23456789"),mcdef).toString())); 2597 TestFmwk.assertTrue("sub082", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456786")).subtract(new com.ibm.icu.math.BigDecimal("10.23456789"),mcdef).toString())); 2598 TestFmwk.assertTrue("sub083", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456787")).subtract(new com.ibm.icu.math.BigDecimal("10.23456789"),mcdef).toString())); 2599 TestFmwk.assertTrue("sub084", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456788")).subtract(new com.ibm.icu.math.BigDecimal("10.23456789"),mcdef).toString())); 2600 TestFmwk.assertTrue("sub085", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456789")).subtract(new com.ibm.icu.math.BigDecimal("10.23456789"),mcdef).toString())); 2601 TestFmwk.assertTrue("sub086", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456790")).subtract(new com.ibm.icu.math.BigDecimal("10.23456789"),mcdef).toString())); 2602 TestFmwk.assertTrue("sub087", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456791")).subtract(new com.ibm.icu.math.BigDecimal("10.23456789"),mcdef).toString())); 2603 TestFmwk.assertTrue("sub088", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456792")).subtract(new com.ibm.icu.math.BigDecimal("10.23456789"),mcdef).toString())); 2604 TestFmwk.assertTrue("sub089", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456793")).subtract(new com.ibm.icu.math.BigDecimal("10.23456789"),mcdef).toString())); 2605 TestFmwk.assertTrue("sub090", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456794")).subtract(new com.ibm.icu.math.BigDecimal("10.23456789"),mcdef).toString())); 2606 TestFmwk.assertTrue("sub091", ("-1E-7").equals((new com.ibm.icu.math.BigDecimal("10.23456781")).subtract(new com.ibm.icu.math.BigDecimal("10.23456786"),mcdef).toString())); 2607 TestFmwk.assertTrue("sub092", ("-1E-7").equals((new com.ibm.icu.math.BigDecimal("10.23456782")).subtract(new com.ibm.icu.math.BigDecimal("10.23456786"),mcdef).toString())); 2608 TestFmwk.assertTrue("sub093", ("-1E-7").equals((new com.ibm.icu.math.BigDecimal("10.23456783")).subtract(new com.ibm.icu.math.BigDecimal("10.23456786"),mcdef).toString())); 2609 TestFmwk.assertTrue("sub094", ("-1E-7").equals((new com.ibm.icu.math.BigDecimal("10.23456784")).subtract(new com.ibm.icu.math.BigDecimal("10.23456786"),mcdef).toString())); 2610 TestFmwk.assertTrue("sub095", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456785")).subtract(new com.ibm.icu.math.BigDecimal("10.23456786"),mcdef).toString())); 2611 TestFmwk.assertTrue("sub096", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456786")).subtract(new com.ibm.icu.math.BigDecimal("10.23456786"),mcdef).toString())); 2612 TestFmwk.assertTrue("sub097", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456787")).subtract(new com.ibm.icu.math.BigDecimal("10.23456786"),mcdef).toString())); 2613 TestFmwk.assertTrue("sub098", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456788")).subtract(new com.ibm.icu.math.BigDecimal("10.23456786"),mcdef).toString())); 2614 TestFmwk.assertTrue("sub099", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456789")).subtract(new com.ibm.icu.math.BigDecimal("10.23456786"),mcdef).toString())); 2615 TestFmwk.assertTrue("sub100", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456790")).subtract(new com.ibm.icu.math.BigDecimal("10.23456786"),mcdef).toString())); 2616 TestFmwk.assertTrue("sub101", "0".equals((new com.ibm.icu.math.BigDecimal("10.23456791")).subtract(new com.ibm.icu.math.BigDecimal("10.23456786"),mcdef).toString())); 2617 TestFmwk.assertTrue("sub102", "0".equals(com.ibm.icu.math.BigDecimal.ONE.subtract(new com.ibm.icu.math.BigDecimal("0.999999999"),mcdef).toString())); 2618 TestFmwk.assertTrue("sub103", "0".equals((new com.ibm.icu.math.BigDecimal("0.999999999")).subtract(com.ibm.icu.math.BigDecimal.ONE,mcdef).toString())); 2619 2620 alhs = new com.ibm.icu.math.BigDecimal("12345678900000"); 2621 arhs = new com.ibm.icu.math.BigDecimal("9999999999999"); 2622 TestFmwk.assertTrue("sub110", (alhs.subtract(arhs, mc3).toString()).equals("2.3E+12")); 2623 TestFmwk.assertTrue("sub111", (arhs.subtract(alhs, mc3).toString()).equals("-2.3E+12")); 2624 TestFmwk.assertTrue("sub112", (alhs.subtract(arhs).toString()).equals("2345678900001")); 2625 TestFmwk.assertTrue("sub113", (arhs.subtract(alhs).toString()).equals("-2345678900001")); 2626 2627 // additional scaled arithmetic tests [0.97 problem] 2628 TestFmwk.assertTrue("sub120", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal(".1")).toString()).equals("-0.1")); 2629 TestFmwk.assertTrue("sub121", ((new com.ibm.icu.math.BigDecimal("00")).subtract(new com.ibm.icu.math.BigDecimal(".97983")).toString()).equals("-0.97983")); 2630 TestFmwk.assertTrue("sub122", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal(".9")).toString()).equals("-0.9")); 2631 TestFmwk.assertTrue("sub123", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal("0.102")).toString()).equals("-0.102")); 2632 TestFmwk.assertTrue("sub124", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal(".4")).toString()).equals("-0.4")); 2633 TestFmwk.assertTrue("sub125", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal(".307")).toString()).equals("-0.307")); 2634 TestFmwk.assertTrue("sub126", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal(".43822")).toString()).equals("-0.43822")); 2635 TestFmwk.assertTrue("sub127", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal(".911")).toString()).equals("-0.911")); 2636 TestFmwk.assertTrue("sub128", ((new com.ibm.icu.math.BigDecimal(".0")).subtract(new com.ibm.icu.math.BigDecimal(".02")).toString()).equals("-0.02")); 2637 TestFmwk.assertTrue("sub129", ((new com.ibm.icu.math.BigDecimal("00")).subtract(new com.ibm.icu.math.BigDecimal(".392")).toString()).equals("-0.392")); 2638 TestFmwk.assertTrue("sub130", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal(".26")).toString()).equals("-0.26")); 2639 TestFmwk.assertTrue("sub131", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal("0.51")).toString()).equals("-0.51")); 2640 TestFmwk.assertTrue("sub132", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal(".2234")).toString()).equals("-0.2234")); 2641 TestFmwk.assertTrue("sub133", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal(".2")).toString()).equals("-0.2")); 2642 TestFmwk.assertTrue("sub134", ((new com.ibm.icu.math.BigDecimal(".0")).subtract(new com.ibm.icu.math.BigDecimal(".0008")).toString()).equals("-0.0008")); 2643 // 0. on left 2644 TestFmwk.assertTrue("sub140", ((new com.ibm.icu.math.BigDecimal("0.0")).subtract(new com.ibm.icu.math.BigDecimal("-.1")).toString()).equals("0.1")); 2645 TestFmwk.assertTrue("sub141", ((new com.ibm.icu.math.BigDecimal("0.00")).subtract(new com.ibm.icu.math.BigDecimal("-.97983")).toString()).equals("0.97983")); 2646 TestFmwk.assertTrue("sub142", ((new com.ibm.icu.math.BigDecimal("0.0")).subtract(new com.ibm.icu.math.BigDecimal("-.9")).toString()).equals("0.9")); 2647 TestFmwk.assertTrue("sub143", ((new com.ibm.icu.math.BigDecimal("0.0")).subtract(new com.ibm.icu.math.BigDecimal("-0.102")).toString()).equals("0.102")); 2648 TestFmwk.assertTrue("sub144", ((new com.ibm.icu.math.BigDecimal("0.0")).subtract(new com.ibm.icu.math.BigDecimal("-.4")).toString()).equals("0.4")); 2649 TestFmwk.assertTrue("sub145", ((new com.ibm.icu.math.BigDecimal("0.0")).subtract(new com.ibm.icu.math.BigDecimal("-.307")).toString()).equals("0.307")); 2650 TestFmwk.assertTrue("sub146", ((new com.ibm.icu.math.BigDecimal("0.0")).subtract(new com.ibm.icu.math.BigDecimal("-.43822")).toString()).equals("0.43822")); 2651 TestFmwk.assertTrue("sub147", ((new com.ibm.icu.math.BigDecimal("0.0")).subtract(new com.ibm.icu.math.BigDecimal("-.911")).toString()).equals("0.911")); 2652 TestFmwk.assertTrue("sub148", ((new com.ibm.icu.math.BigDecimal("0.0")).subtract(new com.ibm.icu.math.BigDecimal("-.02")).toString()).equals("0.02")); 2653 TestFmwk.assertTrue("sub149", ((new com.ibm.icu.math.BigDecimal("0.00")).subtract(new com.ibm.icu.math.BigDecimal("-.392")).toString()).equals("0.392")); 2654 TestFmwk.assertTrue("sub150", ((new com.ibm.icu.math.BigDecimal("0.0")).subtract(new com.ibm.icu.math.BigDecimal("-.26")).toString()).equals("0.26")); 2655 TestFmwk.assertTrue("sub151", ((new com.ibm.icu.math.BigDecimal("0.0")).subtract(new com.ibm.icu.math.BigDecimal("-0.51")).toString()).equals("0.51")); 2656 TestFmwk.assertTrue("sub152", ((new com.ibm.icu.math.BigDecimal("0.0")).subtract(new com.ibm.icu.math.BigDecimal("-.2234")).toString()).equals("0.2234")); 2657 TestFmwk.assertTrue("sub153", ((new com.ibm.icu.math.BigDecimal("0.0")).subtract(new com.ibm.icu.math.BigDecimal("-.2")).toString()).equals("0.2")); 2658 TestFmwk.assertTrue("sub154", ((new com.ibm.icu.math.BigDecimal("0.0")).subtract(new com.ibm.icu.math.BigDecimal("-.0008")).toString()).equals("0.0008")); 2659 // negatives of same 2660 TestFmwk.assertTrue("sub160", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal("-.1")).toString()).equals("0.1")); 2661 TestFmwk.assertTrue("sub161", ((new com.ibm.icu.math.BigDecimal("00")).subtract(new com.ibm.icu.math.BigDecimal("-.97983")).toString()).equals("0.97983")); 2662 TestFmwk.assertTrue("sub162", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal("-.9")).toString()).equals("0.9")); 2663 TestFmwk.assertTrue("sub163", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal("-0.102")).toString()).equals("0.102")); 2664 TestFmwk.assertTrue("sub164", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal("-.4")).toString()).equals("0.4")); 2665 TestFmwk.assertTrue("sub165", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal("-.307")).toString()).equals("0.307")); 2666 TestFmwk.assertTrue("sub166", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal("-.43822")).toString()).equals("0.43822")); 2667 TestFmwk.assertTrue("sub167", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal("-.911")).toString()).equals("0.911")); 2668 TestFmwk.assertTrue("sub168", ((new com.ibm.icu.math.BigDecimal(".0")).subtract(new com.ibm.icu.math.BigDecimal("-.02")).toString()).equals("0.02")); 2669 TestFmwk.assertTrue("sub169", ((new com.ibm.icu.math.BigDecimal("00")).subtract(new com.ibm.icu.math.BigDecimal("-.392")).toString()).equals("0.392")); 2670 TestFmwk.assertTrue("sub170", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal("-.26")).toString()).equals("0.26")); 2671 TestFmwk.assertTrue("sub171", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal("-0.51")).toString()).equals("0.51")); 2672 TestFmwk.assertTrue("sub172", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal("-.2234")).toString()).equals("0.2234")); 2673 TestFmwk.assertTrue("sub173", ((new com.ibm.icu.math.BigDecimal("0")).subtract(new com.ibm.icu.math.BigDecimal("-.2")).toString()).equals("0.2")); 2674 TestFmwk.assertTrue("sub174", ((new com.ibm.icu.math.BigDecimal(".0")).subtract(new com.ibm.icu.math.BigDecimal("-.0008")).toString()).equals("0.0008")); 2675 2676 // more fixed, LHS swaps [really same as testcases under add] 2677 TestFmwk.assertTrue("sub180", ((new com.ibm.icu.math.BigDecimal("-56267E-10")).subtract(zero).toString()).equals("-0.0000056267")); 2678 TestFmwk.assertTrue("sub181", ((new com.ibm.icu.math.BigDecimal("-56267E-5")).subtract(zero).toString()).equals("-0.56267")); 2679 TestFmwk.assertTrue("sub182", ((new com.ibm.icu.math.BigDecimal("-56267E-2")).subtract(zero).toString()).equals("-562.67")); 2680 TestFmwk.assertTrue("sub183", ((new com.ibm.icu.math.BigDecimal("-56267E-1")).subtract(zero).toString()).equals("-5626.7")); 2681 TestFmwk.assertTrue("sub185", ((new com.ibm.icu.math.BigDecimal("-56267E-0")).subtract(zero).toString()).equals("-56267")); 2682 2683 try { 2684 ten.subtract((com.ibm.icu.math.BigDecimal) null); 2685 flag = false; 2686 } catch (java.lang.NullPointerException $83) { 2687 flag = true; 2688 }/* checknull */ 2689 TestFmwk.assertTrue("sub200", flag); 2690 try { 2691 ten.subtract(ten, (com.ibm.icu.math.MathContext) null); 2692 flag = false; 2693 } catch (java.lang.NullPointerException $84) { 2694 flag = true; 2695 }/* checknull2 */ 2696 TestFmwk.assertTrue("sub201", flag); 2697 2698 try { 2699 com.ibm.icu.math.BigDecimal.ONE.subtract(tenlong, mcld); 2700 flag = false; 2701 } catch (java.lang.ArithmeticException $85) { 2702 ae = $85; 2703 flag = (ae.getMessage()).equals("Too many digits:" + " " 2704 + tenlong.toString()); 2705 }/* checkdigits */ 2706 TestFmwk.assertTrue("sub202", flag); 2707 try { 2708 tenlong.subtract(com.ibm.icu.math.BigDecimal.ONE, mcld); 2709 flag = false; 2710 } catch (java.lang.ArithmeticException $86) { 2711 ae = $86; 2712 flag = (ae.getMessage()).equals("Too many digits:" + " " 2713 + tenlong.toString()); 2714 }/* checkdigits */ 2715 TestFmwk.assertTrue("sub203", flag); 2716 } 2717 2718 /* ----------------------------------------------------------------- */ 2719 2720 /* ----------------------------------------------------------------- */ 2721 /* Other methods */ 2722 /* ----------------------------------------------------------------- */ 2723 2724 /** Test the <code>BigDecimal.byteValue()</code> method. */ 2725 2726 @Test 2727 public void diagbyteValue() { 2728 boolean flag = false; 2729 java.lang.String v = null; 2730 java.lang.ArithmeticException ae = null; 2731 java.lang.String badstrings[]; 2732 int i = 0; 2733 java.lang.String norm = null; 2734 2735 TestFmwk.assertTrue("byv001", ((((byte)-128)))==((new com.ibm.icu.math.BigDecimal("-128")).byteValue())); 2736 TestFmwk.assertTrue("byv002", ((0))==((new com.ibm.icu.math.BigDecimal("0")).byteValue())); 2737 TestFmwk.assertTrue("byv003", ((1))==((new com.ibm.icu.math.BigDecimal("1")).byteValue())); 2738 TestFmwk.assertTrue("byv004", ((99))==((new com.ibm.icu.math.BigDecimal("99")).byteValue())); 2739 TestFmwk.assertTrue("byv005", ((127))==((new com.ibm.icu.math.BigDecimal("127")).byteValue())); 2740 TestFmwk.assertTrue("byv006", ((-128))==((new com.ibm.icu.math.BigDecimal("128")).byteValue())); 2741 TestFmwk.assertTrue("byv007", ((-127))==((new com.ibm.icu.math.BigDecimal("129")).byteValue())); 2742 TestFmwk.assertTrue("byv008", ((127))==((new com.ibm.icu.math.BigDecimal("-129")).byteValue())); 2743 TestFmwk.assertTrue("byv009", ((126))==((new com.ibm.icu.math.BigDecimal("-130")).byteValue())); 2744 TestFmwk.assertTrue("byv010", ((bmax))==((new com.ibm.icu.math.BigDecimal(bmax)).byteValue())); 2745 TestFmwk.assertTrue("byv011", ((bmin))==((new com.ibm.icu.math.BigDecimal(bmin)).byteValue())); 2746 TestFmwk.assertTrue("byv012", ((bneg))==((new com.ibm.icu.math.BigDecimal(bneg)).byteValue())); 2747 TestFmwk.assertTrue("byv013", ((bzer))==((new com.ibm.icu.math.BigDecimal(bzer)).byteValue())); 2748 TestFmwk.assertTrue("byv014", ((bpos))==((new com.ibm.icu.math.BigDecimal(bpos)).byteValue())); 2749 TestFmwk.assertTrue("byv015", ((bmin))==((new com.ibm.icu.math.BigDecimal(bmax+1)).byteValue())); 2750 TestFmwk.assertTrue("byv016", ((bmax))==((new com.ibm.icu.math.BigDecimal(bmin-1)).byteValue())); 2751 2752 TestFmwk.assertTrue("byv021", ((((byte)-128)))==((new com.ibm.icu.math.BigDecimal("-128")).byteValueExact())); 2753 TestFmwk.assertTrue("byv022", ((0))==((new com.ibm.icu.math.BigDecimal("0")).byteValueExact())); 2754 TestFmwk.assertTrue("byv023", ((1))==((new com.ibm.icu.math.BigDecimal("1")).byteValueExact())); 2755 TestFmwk.assertTrue("byv024", ((99))==((new com.ibm.icu.math.BigDecimal("99")).byteValueExact())); 2756 TestFmwk.assertTrue("byv025", ((127))==((new com.ibm.icu.math.BigDecimal("127")).byteValueExact())); 2757 TestFmwk.assertTrue("byv026", ((bmax))==((new com.ibm.icu.math.BigDecimal(bmax)).byteValueExact())); 2758 TestFmwk.assertTrue("byv027", ((bmin))==((new com.ibm.icu.math.BigDecimal(bmin)).byteValueExact())); 2759 TestFmwk.assertTrue("byv028", ((bneg))==((new com.ibm.icu.math.BigDecimal(bneg)).byteValueExact())); 2760 TestFmwk.assertTrue("byv029", ((bzer))==((new com.ibm.icu.math.BigDecimal(bzer)).byteValueExact())); 2761 TestFmwk.assertTrue("byv030", ((bpos))==((new com.ibm.icu.math.BigDecimal(bpos)).byteValueExact())); 2762 try { 2763 v = "-129"; 2764 (new com.ibm.icu.math.BigDecimal(v)).byteValueExact(); 2765 flag = false; 2766 } catch (java.lang.ArithmeticException $87) { 2767 ae = $87; 2768 flag = (ae.getMessage()).equals("Conversion overflow:" + " " + v); 2769 } 2770 TestFmwk.assertTrue("byv100", flag); 2771 try { 2772 v = "128"; 2773 (new com.ibm.icu.math.BigDecimal(v)).byteValueExact(); 2774 flag = false; 2775 } catch (java.lang.ArithmeticException $88) { 2776 ae = $88; 2777 flag = (ae.getMessage()).equals("Conversion overflow:" + " " + v); 2778 } 2779 TestFmwk.assertTrue("byv101", flag); 2780 try { 2781 v = "1.5"; 2782 (new com.ibm.icu.math.BigDecimal(v)).byteValueExact(); 2783 flag = false; 2784 } catch (java.lang.ArithmeticException $89) { 2785 ae = $89; 2786 flag = (ae.getMessage()).equals("Decimal part non-zero:" + " " + v); 2787 } 2788 TestFmwk.assertTrue("byv102", flag); 2789 2790 badstrings = new java.lang.String[] { 2791 "1234", 2792 (new com.ibm.icu.math.BigDecimal(bmax)).add(one).toString(), 2793 (new com.ibm.icu.math.BigDecimal(bmin)).subtract(one) 2794 .toString(), 2795 "170", 2796 "270", 2797 "370", 2798 "470", 2799 "570", 2800 "670", 2801 "770", 2802 "870", 2803 "970", 2804 "-170", 2805 "-270", 2806 "-370", 2807 "-470", 2808 "-570", 2809 "-670", 2810 "-770", 2811 "-870", 2812 "-970", 2813 (new com.ibm.icu.math.BigDecimal(bmin)).multiply(two) 2814 .toString(), 2815 (new com.ibm.icu.math.BigDecimal(bmax)).multiply(two) 2816 .toString(), 2817 (new com.ibm.icu.math.BigDecimal(bmin)).multiply(ten) 2818 .toString(), 2819 (new com.ibm.icu.math.BigDecimal(bmax)).multiply(ten) 2820 .toString(), "-1234" }; // 220 2821 // 221 2822 // 222 2823 // 223 2824 // 224 2825 // 225 2826 // 226 2827 // 227 2828 // 228 2829 // 229 2830 // 230 2831 // 231 2832 // 232 2833 // 233 2834 // 234 2835 // 235 2836 // 236 2837 // 237 2838 // 238 2839 // 239 2840 // 240 2841 // 241 2842 // 242 2843 // 243 2844 // 244 2845 // 245 2846 { 2847 int $90 = badstrings.length; 2848 i = 0; 2849 for (; $90 > 0; $90--, i++) { 2850 try { 2851 v = badstrings[i]; 2852 (new com.ibm.icu.math.BigDecimal(v)).byteValueExact(); 2853 flag = false; 2854 } catch (java.lang.ArithmeticException $91) { 2855 ae = $91; 2856 norm = (new com.ibm.icu.math.BigDecimal(v)).toString(); 2857 flag = (ae.getMessage()).equals("Conversion overflow:" 2858 + " " + norm); 2859 } 2860 TestFmwk.assertTrue("byv" + (220 + i), flag); 2861 } 2862 }/* i */ 2863 } 2864 2865 /* ----------------------------------------------------------------- */ 2866 2867 /** 2868 * Test the {@link com.ibm.icu.math.BigDecimal#compareTo(java.lang.Object)} 2869 * method. 2870 */ 2871 2872 @Test 2873 public void diagcomparetoObj() { 2874 // boolean flag = false; 2875 // com.ibm.icu.math.BigDecimal d; 2876 // com.ibm.icu.math.BigDecimal long1; 2877 // com.ibm.icu.math.BigDecimal long2; 2878 // 2879 // d = new com.ibm.icu.math.BigDecimal(17); 2880 // (new Test("cto001")).ok = (d 2881 // .compareTo((java.lang.Object) (new com.ibm.icu.math.BigDecimal( 2882 // 66)))) == (-1); 2883 // (new Test("cto002")).ok = (d 2884 // .compareTo((java.lang.Object) ((new com.ibm.icu.math.BigDecimal( 2885 // 10)).add(new com.ibm.icu.math.BigDecimal(7))))) == 0; 2886 // (new Test("cto003")).ok = (d 2887 // .compareTo((java.lang.Object) (new com.ibm.icu.math.BigDecimal( 2888 // 10)))) == 1; 2889 // long1 = new com.ibm.icu.math.BigDecimal("12345678903"); 2890 // long2 = new com.ibm.icu.math.BigDecimal("12345678900"); 2891 // TestFmwk.assertTrue("cto004", (long1.compareTo((java.lang.Object) long2)) == 1); 2892 // TestFmwk.assertTrue("cto005", (long2.compareTo((java.lang.Object) long1)) == (-1)); 2893 // TestFmwk.assertTrue("cto006", (long2.compareTo((java.lang.Object) long2)) == 0); 2894 // try { 2895 // d.compareTo((java.lang.Object) null); 2896 // flag = false; 2897 // } catch (java.lang.NullPointerException $92) { 2898 // flag = true; // should get here 2899 // } 2900 // TestFmwk.assertTrue("cto101", flag); 2901 // try { 2902 // d.compareTo((java.lang.Object) "foo"); 2903 // flag = false; 2904 // } catch (java.lang.ClassCastException $93) { 2905 // flag = true; // should get here 2906 // } 2907 // TestFmwk.assertTrue("cto102", flag); 2908 // summary("compareTo(Obj)"); 2909 } 2910 2911 /* ----------------------------------------------------------------- */ 2912 2913 /** Test the {@link com.ibm.icu.math.BigDecimal#doubleValue} method. */ 2914 2915 @Test 2916 public void diagdoublevalue() { 2917 java.lang.String val; 2918 // 1999.03.07 Infinities no longer errors 2919 val = "-1"; 2920 TestFmwk.assertTrue("dov001", ((new com.ibm.icu.math.BigDecimal(val)).doubleValue()) == ((new java.lang.Double(val)).doubleValue())); 2921 val = "-0.1"; 2922 TestFmwk.assertTrue("dov002", ((new com.ibm.icu.math.BigDecimal(val)).doubleValue()) == ((new java.lang.Double(val)).doubleValue())); 2923 val = "0"; 2924 TestFmwk.assertTrue("dov003", ((new com.ibm.icu.math.BigDecimal(val)).doubleValue()) == ((new java.lang.Double(val)).doubleValue())); 2925 val = "0.1"; 2926 TestFmwk.assertTrue("dov004", ((new com.ibm.icu.math.BigDecimal(val)).doubleValue()) == ((new java.lang.Double(val)).doubleValue())); 2927 val = "1"; 2928 TestFmwk.assertTrue("dov005", ((new com.ibm.icu.math.BigDecimal(val)).doubleValue()) == ((new java.lang.Double(val)).doubleValue())); 2929 val = "1e1000"; 2930 TestFmwk.assertTrue("dov006", ((new com.ibm.icu.math.BigDecimal(val)).doubleValue()) == java.lang.Double.POSITIVE_INFINITY); 2931 val = "-1e1000"; 2932 TestFmwk.assertTrue("dov007", ((new com.ibm.icu.math.BigDecimal(val)).doubleValue()) == java.lang.Double.NEGATIVE_INFINITY); 2933 } 2934 2935 /* ----------------------------------------------------------------- */ 2936 2937 /** Test the {@link com.ibm.icu.math.BigDecimal#equals} method. */ 2938 2939 @Test 2940 public void diagequals() { 2941 com.ibm.icu.math.BigDecimal d; 2942 d = new com.ibm.icu.math.BigDecimal(17); 2943 TestFmwk.assertTrue("equ001", (!(d.equals((java.lang.Object) null)))); 2944 TestFmwk.assertTrue("equ002", (!(d.equals("foo")))); 2945 TestFmwk.assertTrue("equ003", (!(d.equals((new com.ibm.icu.math.BigDecimal(66)))))); 2946 TestFmwk.assertTrue("equ004", d.equals(d)); 2947 TestFmwk.assertTrue("equ005", d.equals(((new com.ibm.icu.math.BigDecimal(10)).add(new com.ibm.icu.math.BigDecimal(7))))); 2948 } 2949 2950 /* ----------------------------------------------------------------- */ 2951 2952 /** Test the {@link com.ibm.icu.math.BigDecimal#floatValue} method. */ 2953 2954 @Test 2955 public void diagfloatvalue() { 2956 java.lang.String val; 2957 // 1999.03.07 Infinities no longer errors 2958 val = "-1"; 2959 TestFmwk.assertTrue("flv001", ((new com.ibm.icu.math.BigDecimal(val)).floatValue()) == ((new java.lang.Float(val)).floatValue())); 2960 val = "-0.1"; 2961 TestFmwk.assertTrue("flv002", ((new com.ibm.icu.math.BigDecimal(val)).floatValue()) == ((new java.lang.Float(val)).floatValue())); 2962 val = "0"; 2963 TestFmwk.assertTrue("flv003", ((new com.ibm.icu.math.BigDecimal(val)).floatValue()) == ((new java.lang.Float(val)).floatValue())); 2964 val = "0.1"; 2965 TestFmwk.assertTrue("flv004", ((new com.ibm.icu.math.BigDecimal(val)).floatValue()) == ((new java.lang.Float(val)).floatValue())); 2966 val = "1"; 2967 TestFmwk.assertTrue("flv005", ((new com.ibm.icu.math.BigDecimal(val)).floatValue()) == ((new java.lang.Float(val)).floatValue())); 2968 val = "1e200"; 2969 TestFmwk.assertTrue("flv006", ((new com.ibm.icu.math.BigDecimal(val)).floatValue()) == java.lang.Float.POSITIVE_INFINITY); 2970 val = "-1e200"; 2971 TestFmwk.assertTrue("flv007", ((new com.ibm.icu.math.BigDecimal(val)).floatValue()) == java.lang.Float.NEGATIVE_INFINITY); 2972 val = "1e1000"; 2973 TestFmwk.assertTrue("flv008", ((new com.ibm.icu.math.BigDecimal(val)).floatValue()) == java.lang.Float.POSITIVE_INFINITY); 2974 val = "-1e1000"; 2975 TestFmwk.assertTrue("flv009", ((new com.ibm.icu.math.BigDecimal(val)).floatValue()) == java.lang.Float.NEGATIVE_INFINITY); 2976 } 2977 2978 /* ----------------------------------------------------------------- */ 2979 2980 /** Test the {@link com.ibm.icu.math.BigDecimal#format} method. */ 2981 2982 @Test 2983 public void diagformat() { 2984 boolean flag = false; 2985 int eng; 2986 int sci; 2987 com.ibm.icu.math.BigDecimal d04; 2988 com.ibm.icu.math.BigDecimal d05; 2989 com.ibm.icu.math.BigDecimal d06; 2990 com.ibm.icu.math.BigDecimal d15; 2991 java.lang.IllegalArgumentException iae = null; 2992 com.ibm.icu.math.BigDecimal d050; 2993 com.ibm.icu.math.BigDecimal d150; 2994 com.ibm.icu.math.BigDecimal m050; 2995 com.ibm.icu.math.BigDecimal m150; 2996 com.ibm.icu.math.BigDecimal d051; 2997 com.ibm.icu.math.BigDecimal d151; 2998 com.ibm.icu.math.BigDecimal d000; 2999 com.ibm.icu.math.BigDecimal d500; 3000 java.lang.ArithmeticException ae = null; 3001 // 1999.02.09 now only two signatures for format(), so some tests below 3002 // may now be redundant 3003 3004 TestFmwk.assertTrue("for001", ((new com.ibm.icu.math.BigDecimal("12.3")).format(-1,-1)).equals("12.3")); 3005 TestFmwk.assertTrue("for002", ((new com.ibm.icu.math.BigDecimal("-12.73")).format(-1,-1)).equals("-12.73")); 3006 TestFmwk.assertTrue("for003", ((new com.ibm.icu.math.BigDecimal("0.000")).format(-1,-1)).equals("0.000")); 3007 TestFmwk.assertTrue("for004", ((new com.ibm.icu.math.BigDecimal("3E+3")).format(-1,-1)).equals("3000")); 3008 TestFmwk.assertTrue("for005", ((new com.ibm.icu.math.BigDecimal("3")).format(4,-1)).equals(" 3")); 3009 TestFmwk.assertTrue("for006", ((new com.ibm.icu.math.BigDecimal("1.73")).format(4,0)).equals(" 2")); 3010 TestFmwk.assertTrue("for007", ((new com.ibm.icu.math.BigDecimal("1.73")).format(4,1)).equals(" 1.7")); 3011 TestFmwk.assertTrue("for008", ((new com.ibm.icu.math.BigDecimal("1.75")).format(4,1)).equals(" 1.8")); 3012 TestFmwk.assertTrue("for009", ((new com.ibm.icu.math.BigDecimal("0.5")).format(4,1)).equals(" 0.5")); 3013 TestFmwk.assertTrue("for010", ((new com.ibm.icu.math.BigDecimal("0.05")).format(4,1)).equals(" 0.1")); 3014 TestFmwk.assertTrue("for011", ((new com.ibm.icu.math.BigDecimal("0.04")).format(4,1)).equals(" 0.0")); 3015 TestFmwk.assertTrue("for012", ((new com.ibm.icu.math.BigDecimal("0")).format(4,0)).equals(" 0")); 3016 TestFmwk.assertTrue("for013", ((new com.ibm.icu.math.BigDecimal("0")).format(4,1)).equals(" 0.0")); 3017 TestFmwk.assertTrue("for014", ((new com.ibm.icu.math.BigDecimal("0")).format(4,2)).equals(" 0.00")); 3018 TestFmwk.assertTrue("for015", ((new com.ibm.icu.math.BigDecimal("0")).format(4,3)).equals(" 0.000")); 3019 TestFmwk.assertTrue("for016", ((new com.ibm.icu.math.BigDecimal("0")).format(4,4)).equals(" 0.0000")); 3020 TestFmwk.assertTrue("for017", ((new com.ibm.icu.math.BigDecimal("0.005")).format(4,0)).equals(" 0")); 3021 TestFmwk.assertTrue("for018", ((new com.ibm.icu.math.BigDecimal("0.005")).format(4,1)).equals(" 0.0")); 3022 TestFmwk.assertTrue("for019", ((new com.ibm.icu.math.BigDecimal("0.005")).format(4,2)).equals(" 0.01")); 3023 TestFmwk.assertTrue("for020", ((new com.ibm.icu.math.BigDecimal("0.004")).format(4,2)).equals(" 0.00")); 3024 TestFmwk.assertTrue("for021", ((new com.ibm.icu.math.BigDecimal("0.005")).format(4,3)).equals(" 0.005")); 3025 TestFmwk.assertTrue("for022", ((new com.ibm.icu.math.BigDecimal("0.005")).format(4,4)).equals(" 0.0050")); 3026 3027 TestFmwk.assertTrue("for023", ((new com.ibm.icu.math.BigDecimal("1.73")).format(4,2)).equals(" 1.73")); 3028 TestFmwk.assertTrue("for024", ((new com.ibm.icu.math.BigDecimal("1.73")).format(4,3)).equals(" 1.730")); 3029 TestFmwk.assertTrue("for025", ((new com.ibm.icu.math.BigDecimal("-.76")).format(4,1)).equals(" -0.8")); 3030 TestFmwk.assertTrue("for026", ((new com.ibm.icu.math.BigDecimal("-12.73")).format(-1,4)).equals("-12.7300")); 3031 3032 TestFmwk.assertTrue("for027", ((new com.ibm.icu.math.BigDecimal("3.03")).format(4,-1)).equals(" 3.03")); 3033 TestFmwk.assertTrue("for028", ((new com.ibm.icu.math.BigDecimal("3.03")).format(4,1)).equals(" 3.0")); 3034 TestFmwk.assertTrue("for029", ((new com.ibm.icu.math.BigDecimal("3.03")).format(4,-1,3,-1,-1,-1)).equals(" 3.03 ")); 3035 TestFmwk.assertTrue("for030", ((new com.ibm.icu.math.BigDecimal("3.03")).format(-1,-1,3,-1,-1,-1)).equals("3.03 ")); 3036 TestFmwk.assertTrue("for031", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,-1,-1,4,-1,-1)).equals("1.234573E+4")); 3037 TestFmwk.assertTrue("for032", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,-1,-1,5,-1,-1)).equals("12345.73")); 3038 TestFmwk.assertTrue("for033", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,-1,-1,6,-1,-1)).equals("12345.73")); 3039 3040 TestFmwk.assertTrue("for034", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,8,-1,3,-1,-1)).equals("1.23457300E+4")); 3041 TestFmwk.assertTrue("for035", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,7,-1,3,-1,-1)).equals("1.2345730E+4")); 3042 TestFmwk.assertTrue("for036", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,6,-1,3,-1,-1)).equals("1.234573E+4")); 3043 TestFmwk.assertTrue("for037", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,5,-1,3,-1,-1)).equals("1.23457E+4")); 3044 TestFmwk.assertTrue("for038", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,4,-1,3,-1,-1)).equals("1.2346E+4")); 3045 TestFmwk.assertTrue("for039", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,3,-1,3,-1,-1)).equals("1.235E+4")); 3046 TestFmwk.assertTrue("for040", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,2,-1,3,-1,-1)).equals("1.23E+4")); 3047 TestFmwk.assertTrue("for041", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,1,-1,3,-1,-1)).equals("1.2E+4")); 3048 TestFmwk.assertTrue("for042", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,0,-1,3,-1,-1)).equals("1E+4")); 3049 3050 TestFmwk.assertTrue("for043", ((new com.ibm.icu.math.BigDecimal("99999.99")).format(-1,6,-1,3,-1,-1)).equals("9.999999E+4")); 3051 TestFmwk.assertTrue("for044", ((new com.ibm.icu.math.BigDecimal("99999.99")).format(-1,5,-1,3,-1,-1)).equals("1.00000E+5")); 3052 TestFmwk.assertTrue("for045", ((new com.ibm.icu.math.BigDecimal("99999.99")).format(-1,2,-1,3,-1,-1)).equals("1.00E+5")); 3053 TestFmwk.assertTrue("for046", ((new com.ibm.icu.math.BigDecimal("99999.99")).format(-1,0,-1,3,-1,-1)).equals("1E+5")); 3054 TestFmwk.assertTrue("for047", ((new com.ibm.icu.math.BigDecimal("99999.99")).format(3,0,-1,3,-1,-1)).equals(" 1E+5")); 3055 3056 TestFmwk.assertTrue("for048", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,-1,2,2,-1,-1)).equals("1.234573E+04")); 3057 TestFmwk.assertTrue("for049", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,3,-1,0,-1,-1)).equals("1.235E+4")); 3058 TestFmwk.assertTrue("for050", ((new com.ibm.icu.math.BigDecimal("1.234573")).format(-1,3,-1,0,-1,-1)).equals("1.235")); 3059 TestFmwk.assertTrue("for051", ((new com.ibm.icu.math.BigDecimal("123.45")).format(-1,3,2,0,-1,-1)).equals("1.235E+02")); 3060 3061 TestFmwk.assertTrue("for052", ((new com.ibm.icu.math.BigDecimal("0.444")).format(-1,0)).equals("0")); 3062 TestFmwk.assertTrue("for053", ((new com.ibm.icu.math.BigDecimal("-0.444")).format(-1,0)).equals("0")); 3063 TestFmwk.assertTrue("for054", ((new com.ibm.icu.math.BigDecimal("0.4")).format(-1,0)).equals("0")); 3064 TestFmwk.assertTrue("for055", ((new com.ibm.icu.math.BigDecimal("-0.4")).format(-1,0)).equals("0")); 3065 3066 eng = com.ibm.icu.math.MathContext.ENGINEERING; 3067 sci = com.ibm.icu.math.MathContext.SCIENTIFIC; 3068 TestFmwk.assertTrue("for060", ((new com.ibm.icu.math.BigDecimal("1234.5")).format(-1,3,2,0,eng,-1)).equals("1.235E+03")); 3069 TestFmwk.assertTrue("for061", ((new com.ibm.icu.math.BigDecimal("12345")).format(-1,3,3,0,eng,-1)).equals("12.345E+003")); 3070 TestFmwk.assertTrue("for062", ((new com.ibm.icu.math.BigDecimal("12345")).format(-1,3,3,0,sci,-1)).equals("1.235E+004")); 3071 TestFmwk.assertTrue("for063", ((new com.ibm.icu.math.BigDecimal("1234.5")).format(4,3,2,0,eng,-1)).equals(" 1.235E+03")); 3072 TestFmwk.assertTrue("for064", ((new com.ibm.icu.math.BigDecimal("12345")).format(5,3,3,0,eng,-1)).equals(" 12.345E+003")); 3073 TestFmwk.assertTrue("for065", ((new com.ibm.icu.math.BigDecimal("12345")).format(6,3,3,0,sci,-1)).equals(" 1.235E+004")); 3074 3075 TestFmwk.assertTrue("for066", ((new com.ibm.icu.math.BigDecimal("1.2345")).format(-1,3,2,0,-1,-1)).equals("1.235 ")); 3076 TestFmwk.assertTrue("for067", ((new com.ibm.icu.math.BigDecimal("12345.73")).format(-1,-1,3,6,-1,-1)).equals("12345.73 ")); 3077 TestFmwk.assertTrue("for068", ((new com.ibm.icu.math.BigDecimal("12345e+5")).format(-1,0)).equals("1234500000")); 3078 TestFmwk.assertTrue("for069", ((new com.ibm.icu.math.BigDecimal("12345e+5")).format(-1,1)).equals("1234500000.0")); 3079 TestFmwk.assertTrue("for070", ((new com.ibm.icu.math.BigDecimal("12345e+5")).format(-1,2)).equals("1234500000.00")); 3080 TestFmwk.assertTrue("for071", ((new com.ibm.icu.math.BigDecimal("12345e+5")).format(-1,3)).equals("1234500000.000")); 3081 TestFmwk.assertTrue("for072", ((new com.ibm.icu.math.BigDecimal("12345e+5")).format(-1,4)).equals("1234500000.0000")); 3082 3083 // some from ANSI Dallas [Nov 1998] 3084 TestFmwk.assertTrue("for073", ((new com.ibm.icu.math.BigDecimal("99.999")).format(-1,2,-1,2,-1,-1)).equals("100.00")); 3085 TestFmwk.assertTrue("for074", ((new com.ibm.icu.math.BigDecimal("0.99999")).format(-1,4,2,2,-1,-1)).equals("1.0000 ")); 3086 3087 // try some rounding modes [default ROUND_HALF_UP widely tested above] 3088 // the first few also tests that defaults are accepted for the others 3089 d04 = new com.ibm.icu.math.BigDecimal("0.04"); 3090 d05 = new com.ibm.icu.math.BigDecimal("0.05"); 3091 d06 = new com.ibm.icu.math.BigDecimal("0.06"); 3092 d15 = new com.ibm.icu.math.BigDecimal("0.15"); 3093 TestFmwk.assertTrue("for080", (d05.format(-1, 1)).equals("0.1")); 3094 TestFmwk.assertTrue("for081", (d05.format(-1, 1, -1, -1, -1, com.ibm.icu.math.MathContext.ROUND_HALF_UP)).equals("0.1")); 3095 TestFmwk.assertTrue("for082", (d05.format(-1, 1, -1, -1, -1, -1)).equals("0.1")); 3096 TestFmwk.assertTrue("for083", (d05.format(-1, -1, -1, -1, -1, -1)).equals("0.05")); 3097 TestFmwk.assertTrue("for084", (d05.format(-1, -1)).equals("0.05")); 3098 try { 3099 d05.format(-1, -1, -1, -1, -1, 30); // bad mode 3100 flag = false; // shouldn't get here 3101 } catch (java.lang.IllegalArgumentException $94) { 3102 iae = $94; 3103 flag = (iae.getMessage()).equals("Bad argument 6 to format: 30"); 3104 } 3105 TestFmwk.assertTrue("for085", flag); 3106 3107 TestFmwk.assertTrue("for090", (d04.format(-1,1)).equals("0.0")); 3108 TestFmwk.assertTrue("for091", (d06.format(-1,1)).equals("0.1")); 3109 TestFmwk.assertTrue("for092", (d04.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN)).equals("0.0")); 3110 TestFmwk.assertTrue("for093", (d05.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN)).equals("0.0")); 3111 TestFmwk.assertTrue("for094", (d06.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN)).equals("0.1")); 3112 3113 TestFmwk.assertTrue("for095", (d04.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN)).equals("0.0")); 3114 TestFmwk.assertTrue("for096", (d05.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN)).equals("0.0")); 3115 TestFmwk.assertTrue("for097", (d06.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN)).equals("0.1")); 3116 TestFmwk.assertTrue("for098", (d15.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN)).equals("0.2")); 3117 d050 = new com.ibm.icu.math.BigDecimal("0.050"); 3118 d150 = new com.ibm.icu.math.BigDecimal("0.150"); 3119 TestFmwk.assertTrue("for099", (d050.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN)).equals("0.0")); 3120 TestFmwk.assertTrue("for100", (d150.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN)).equals("0.2")); 3121 m050 = new com.ibm.icu.math.BigDecimal("-0.050"); 3122 m150 = new com.ibm.icu.math.BigDecimal("-0.150"); 3123 TestFmwk.assertTrue("for101", (m050.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN)).equals("0.0")); 3124 TestFmwk.assertTrue("for102", (m150.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN)).equals("-0.2")); 3125 d051 = new com.ibm.icu.math.BigDecimal("0.051"); 3126 d151 = new com.ibm.icu.math.BigDecimal("0.151"); 3127 TestFmwk.assertTrue("for103", (d051.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN)).equals("0.1")); 3128 TestFmwk.assertTrue("for104", (d151.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN)).equals("0.2")); 3129 3130 TestFmwk.assertTrue("for105", (m050.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_CEILING)).equals("0.0")); 3131 TestFmwk.assertTrue("for106", (m150.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_CEILING)).equals("-0.1")); 3132 TestFmwk.assertTrue("for107", (d050.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_CEILING)).equals("0.1")); 3133 TestFmwk.assertTrue("for108", (d150.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_CEILING)).equals("0.2")); 3134 3135 TestFmwk.assertTrue("for109", (m050.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_FLOOR)).equals("-0.1")); 3136 TestFmwk.assertTrue("for110", (m150.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_FLOOR)).equals("-0.2")); 3137 TestFmwk.assertTrue("for111", (d050.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_FLOOR)).equals("0.0")); 3138 TestFmwk.assertTrue("for112", (d150.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_FLOOR)).equals("0.1")); 3139 3140 TestFmwk.assertTrue("for113", (m050.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_UP)).equals("-0.1")); 3141 TestFmwk.assertTrue("for114", (m150.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_UP)).equals("-0.2")); 3142 TestFmwk.assertTrue("for115", (d050.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_UP)).equals("0.1")); 3143 TestFmwk.assertTrue("for116", (d150.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_UP)).equals("0.2")); 3144 3145 TestFmwk.assertTrue("for117", (m050.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_DOWN)).equals("0.0")); 3146 TestFmwk.assertTrue("for118", (m150.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_DOWN)).equals("-0.1")); 3147 TestFmwk.assertTrue("for119", (d050.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_DOWN)).equals("0.0")); 3148 TestFmwk.assertTrue("for120", (d150.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_DOWN)).equals("0.1")); 3149 3150 d000 = new com.ibm.icu.math.BigDecimal("0.000"); 3151 d500 = new com.ibm.icu.math.BigDecimal("0.500"); 3152 TestFmwk.assertTrue("for121", (d000.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_UNNECESSARY)).equals("0.0")); 3153 TestFmwk.assertTrue("for122", (d000.format(-1,2,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_UNNECESSARY)).equals("0.00")); 3154 TestFmwk.assertTrue("for123", (d000.format(-1,3,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_UNNECESSARY)).equals("0.000")); 3155 try { // this should trap.. 3156 d050.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_UNNECESSARY); 3157 flag = false; 3158 } catch (java.lang.ArithmeticException $95) { 3159 ae = $95; 3160 flag = (ae.getMessage()).equals("Rounding necessary"); 3161 } 3162 TestFmwk.assertTrue("for124", flag); 3163 TestFmwk.assertTrue("for125", (d050.format(-1,2,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_UNNECESSARY)).equals("0.05")); 3164 TestFmwk.assertTrue("for126", (d050.format(-1,3,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_UNNECESSARY)).equals("0.050")); 3165 TestFmwk.assertTrue("for127", (d500.format(-1,1,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_UNNECESSARY)).equals("0.5")); 3166 TestFmwk.assertTrue("for128", (d500.format(-1,2,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_UNNECESSARY)).equals("0.50")); 3167 TestFmwk.assertTrue("for129", (d500.format(-1,3,-1,-1,-1,com.ibm.icu.math.MathContext.ROUND_UNNECESSARY)).equals("0.500")); 3168 3169 // bad negs -- 3170 try { 3171 d050.format(-2, -1, -1, -1, -1, -1); 3172 flag = false; 3173 } catch (java.lang.IllegalArgumentException $96) { 3174 flag = true; 3175 } 3176 TestFmwk.assertTrue("for131", flag); 3177 try { 3178 d050.format(-1, -2, -1, -1, -1, -1); 3179 flag = false; 3180 } catch (java.lang.IllegalArgumentException $97) { 3181 flag = true; 3182 } 3183 TestFmwk.assertTrue("for132", flag); 3184 try { 3185 d050.format(-1, -1, -2, -1, -1, -1); 3186 flag = false; 3187 } catch (java.lang.IllegalArgumentException $98) { 3188 flag = true; 3189 } 3190 TestFmwk.assertTrue("for133", flag); 3191 try { 3192 d050.format(-1, -1, -1, -2, -1, -1); 3193 flag = false; 3194 } catch (java.lang.IllegalArgumentException $99) { 3195 flag = true; 3196 } 3197 TestFmwk.assertTrue("for134", flag); 3198 try { 3199 d050.format(-1, -1, -1, -1, -2, -1); 3200 flag = false; 3201 } catch (java.lang.IllegalArgumentException $100) { 3202 flag = true; 3203 } 3204 TestFmwk.assertTrue("for135", flag); 3205 try { 3206 d050.format(-1, -1, -1, -1, -1, -2); 3207 flag = false; 3208 } catch (java.lang.IllegalArgumentException $101) { 3209 flag = true; 3210 } 3211 TestFmwk.assertTrue("for136", flag); 3212 } 3213 3214 /* ----------------------------------------------------------------- */ 3215 3216 /** Test the {@link com.ibm.icu.math.BigDecimal#hashCode} method. */ 3217 3218 @Test 3219 public void diaghashcode() { 3220 java.lang.String hs; 3221 com.ibm.icu.math.BigDecimal d; 3222 hs = "27827817"; 3223 d = new com.ibm.icu.math.BigDecimal(hs); 3224 TestFmwk.assertTrue("has001", (d.hashCode()) == (hs.hashCode())); 3225 hs = "1.265E+200"; 3226 d = new com.ibm.icu.math.BigDecimal(hs); 3227 TestFmwk.assertTrue("has002", (d.hashCode()) == (hs.hashCode())); 3228 hs = "126.5E+200"; 3229 d = new com.ibm.icu.math.BigDecimal(hs); 3230 TestFmwk.assertTrue("has003", (d.hashCode()) != (hs.hashCode())); 3231 } 3232 3233 /* ----------------------------------------------------------------- */ 3234 3235 /** Test the {@link com.ibm.icu.math.BigDecimal#intValue} method. */ 3236 3237 @Test 3238 public void diagintvalue() { 3239 boolean flag = false; 3240 java.lang.String v = null; 3241 java.lang.ArithmeticException ae = null; 3242 java.lang.String badstrings[]; 3243 int i = 0; 3244 java.lang.String norm = null; 3245 com.ibm.icu.math.BigDecimal dimax; 3246 com.ibm.icu.math.BigDecimal num = null; 3247 com.ibm.icu.math.BigDecimal dv = null; 3248 com.ibm.icu.math.BigDecimal dimin; 3249 3250 // intValue -- 3251 3252 TestFmwk.assertTrue("inv001", imin==((new com.ibm.icu.math.BigDecimal(imin)).intValue())); 3253 TestFmwk.assertTrue("inv002", ((99))==((new com.ibm.icu.math.BigDecimal("99")).intValue())); 3254 TestFmwk.assertTrue("inv003", ((1))==((new com.ibm.icu.math.BigDecimal("1")).intValue())); 3255 TestFmwk.assertTrue("inv004", ((0))==((new com.ibm.icu.math.BigDecimal("0")).intValue())); 3256 TestFmwk.assertTrue("inv005", ((-1))==((new com.ibm.icu.math.BigDecimal("-1")).intValue())); 3257 TestFmwk.assertTrue("inv006", ((-99))==((new com.ibm.icu.math.BigDecimal("-99")).intValue())); 3258 TestFmwk.assertTrue("inv007", imax==((new com.ibm.icu.math.BigDecimal(imax)).intValue())); 3259 TestFmwk.assertTrue("inv008", ((5))==((new com.ibm.icu.math.BigDecimal("5.0")).intValue())); 3260 TestFmwk.assertTrue("inv009", ((5))==((new com.ibm.icu.math.BigDecimal("5.3")).intValue())); 3261 TestFmwk.assertTrue("inv010", ((5))==((new com.ibm.icu.math.BigDecimal("5.5")).intValue())); 3262 TestFmwk.assertTrue("inv011", ((5))==((new com.ibm.icu.math.BigDecimal("5.7")).intValue())); 3263 TestFmwk.assertTrue("inv012", ((5))==((new com.ibm.icu.math.BigDecimal("5.9")).intValue())); 3264 TestFmwk.assertTrue("inv013", ((-5))==((new com.ibm.icu.math.BigDecimal("-5.0")).intValue())); 3265 TestFmwk.assertTrue("inv014", ((-5))==((new com.ibm.icu.math.BigDecimal("-5.3")).intValue())); 3266 TestFmwk.assertTrue("inv015", ((-5))==((new com.ibm.icu.math.BigDecimal("-5.5")).intValue())); 3267 TestFmwk.assertTrue("inv016", ((-5))==((new com.ibm.icu.math.BigDecimal("-5.7")).intValue())); 3268 TestFmwk.assertTrue("inv017", ((-5))==((new com.ibm.icu.math.BigDecimal("-5.9")).intValue())); 3269 TestFmwk.assertTrue("inv018", ((new com.ibm.icu.math.BigDecimal("88888888888")).intValue())==(-1305424328)); // ugh 3270 TestFmwk.assertTrue("inv019", ((new com.ibm.icu.math.BigDecimal("-88888888888")).intValue())==1305424328); // ugh 3271 TestFmwk.assertTrue("inv020", ((imin))==((new com.ibm.icu.math.BigDecimal((((long)imax))+1)).intValue())); 3272 TestFmwk.assertTrue("inv021", ((imax))==((new com.ibm.icu.math.BigDecimal((((long)imin))-1)).intValue())); 3273 3274 // intValueExact -- 3275 3276 TestFmwk.assertTrue("inv101", imin==((new com.ibm.icu.math.BigDecimal(imin)).intValueExact())); 3277 TestFmwk.assertTrue("inv102", ((99))==((new com.ibm.icu.math.BigDecimal("99")).intValue())); 3278 TestFmwk.assertTrue("inv103", ((1))==((new com.ibm.icu.math.BigDecimal("1")).intValue())); 3279 TestFmwk.assertTrue("inv104", ((0))==((new com.ibm.icu.math.BigDecimal("0")).intValue())); 3280 TestFmwk.assertTrue("inv105", ((-1))==((new com.ibm.icu.math.BigDecimal("-1")).intValue())); 3281 TestFmwk.assertTrue("inv106", ((-99))==((new com.ibm.icu.math.BigDecimal("-99")).intValue())); 3282 TestFmwk.assertTrue("inv107", imax==((new com.ibm.icu.math.BigDecimal(imax)).intValue())); 3283 TestFmwk.assertTrue("inv108", ((5))==((new com.ibm.icu.math.BigDecimal("5.0")).intValue())); 3284 TestFmwk.assertTrue("inv109", ((-5))==((new com.ibm.icu.math.BigDecimal("-5.0")).intValue())); 3285 TestFmwk.assertTrue("inv110", imax==((new com.ibm.icu.math.BigDecimal(imax)).intValueExact())); 3286 3287 try { 3288 v = "-88588688888"; 3289 (new com.ibm.icu.math.BigDecimal(v)).intValueExact(); 3290 flag = false; 3291 } catch (java.lang.ArithmeticException $102) { 3292 ae = $102; 3293 flag = (ae.getMessage()).equals("Conversion overflow:" + " " + v); 3294 } 3295 TestFmwk.assertTrue("inv200", flag); 3296 3297 // this one could raise either overflow or bad decimal part 3298 try { 3299 v = "88088818888.00001"; 3300 (new com.ibm.icu.math.BigDecimal(v)).intValueExact(); 3301 flag = false; 3302 } catch (java.lang.ArithmeticException $103) { 3303 flag = true; 3304 } 3305 TestFmwk.assertTrue("inv201", flag); 3306 3307 // 1999.10.28: the testcases marked '*' failed 3308 badstrings = new java.lang.String[] { 3309 "12345678901", 3310 (new com.ibm.icu.math.BigDecimal(imax)).add(one).toString(), 3311 (new com.ibm.icu.math.BigDecimal(imin)).subtract(one) 3312 .toString(), 3313 "3731367293", 3314 "4731367293", 3315 "5731367293", 3316 "6731367293", 3317 "7731367293", 3318 "8731367293", 3319 "9731367293", 3320 "-3731367293", 3321 "-4731367293", 3322 "-5731367293", 3323 "-6731367293", 3324 "-7731367293", 3325 "-8731367293", 3326 "-9731367293", 3327 (new com.ibm.icu.math.BigDecimal(imin)).multiply(two) 3328 .toString(), 3329 (new com.ibm.icu.math.BigDecimal(imax)).multiply(two) 3330 .toString(), 3331 (new com.ibm.icu.math.BigDecimal(imin)).multiply(ten) 3332 .toString(), 3333 (new com.ibm.icu.math.BigDecimal(imax)).multiply(ten) 3334 .toString(), "4731367293", "4831367293", "4931367293", 3335 "5031367293", "5131367293", "5231367293", "5331367293", 3336 "5431367293", "5531367293", "5631367293", "5731367293", 3337 "5831367293", "5931367293", "6031367293", "6131367293", 3338 "6231367293", "6331367293", "6431367293", "6531367293", 3339 "6631367293", "6731367293", "2200000000", "2300000000", 3340 "2400000000", "2500000000", "2600000000", "2700000000", 3341 "2800000000", "2900000000", "-2200000000", "-2300000000", 3342 "-2400000000", "-2500000000", "-2600000000", "-2700000000", 3343 "-2800000000", "-2900000000", "25E+8", "-25E+8", "-12345678901" }; // 220 3344 // 221 3345 // 222 3346 // 223 3347 // 224 3348 // 225 * 3349 // 226 3350 // 227 3351 // 228 3352 // 229 * 3353 // 230 3354 // 231 3355 // 232 * 3356 // 233 3357 // 234 3358 // 235 3359 // 236 * 3360 // 237 3361 // 238 3362 // 239 3363 // 240 3364 // 241 3365 // 242 * 3366 // 243 * 3367 // 244 * 3368 // 245 * 3369 // 246 * 3370 // 247 * 3371 // 248 * 3372 // 249 * 3373 // 250 * 3374 // 251 * 3375 // 252 * 3376 // 253 * 3377 // 254 * 3378 // 255 * 3379 // 256 * 3380 // 257 * 3381 // 258 * 3382 // 259 3383 // 260 3384 // 261 3385 // 262 3386 // 263 3387 // 264 3388 // 265 3389 // 266 3390 // 267 3391 // 268 3392 // 269 3393 // 270 3394 // 271 3395 // 272 3396 // 273 3397 // 274 3398 // 275 3399 // 276 3400 // 277 3401 // 278 3402 // 279 3403 // 280 3404 { 3405 int $104 = badstrings.length; 3406 i = 0; 3407 for (; $104 > 0; $104--, i++) { 3408 try { 3409 v = badstrings[i]; 3410 (new com.ibm.icu.math.BigDecimal(v)).intValueExact(); 3411 flag = false; 3412 } catch (java.lang.ArithmeticException $105) { 3413 ae = $105; 3414 norm = (new com.ibm.icu.math.BigDecimal(v)).toString(); 3415 flag = (ae.getMessage()).equals("Conversion overflow:" 3416 + " " + norm); 3417 } 3418 TestFmwk.assertTrue("inv" + (220 + i), flag); 3419 } 3420 }/* i */ 3421 3422 // now slip in some single bits... 3423 dimax = new com.ibm.icu.math.BigDecimal(imax); 3424 { 3425 i = 0; 3426 for (; i <= 49; i++) { 3427 try { 3428 num = two.pow(new com.ibm.icu.math.BigDecimal(i), mc50); 3429 dv = dimax.add(num, mc50); 3430 dv.intValueExact(); 3431 flag = false; 3432 } catch (java.lang.ArithmeticException $106) { 3433 ae = $106; 3434 norm = dv.toString(); 3435 flag = (ae.getMessage()).equals("Conversion overflow:" 3436 + " " + norm); 3437 } 3438 TestFmwk.assertTrue("inv" + (300 + i), flag); 3439 } 3440 }/* i */ 3441 dimin = new com.ibm.icu.math.BigDecimal(imin); 3442 { 3443 i = 50; 3444 for (; i <= 99; i++) { 3445 try { 3446 num = two.pow(new com.ibm.icu.math.BigDecimal(i), mc50); 3447 dv = dimin.subtract(num, mc50); 3448 dv.intValueExact(); 3449 flag = false; 3450 } catch (java.lang.ArithmeticException $107) { 3451 ae = $107; 3452 norm = dv.toString(); 3453 flag = (ae.getMessage()).equals("Conversion overflow:" 3454 + " " + norm); 3455 } 3456 TestFmwk.assertTrue("inv" + (300 + i), flag); 3457 } 3458 }/* i */ 3459 3460 // the following should all raise bad-decimal-part exceptions 3461 badstrings = new java.lang.String[] { "0.09", "0.9", "0.01", "0.1", 3462 "-0.01", "-0.1", "1.01", "-1.01", "-1.1", "-111.111", 3463 "+111.111", "1.09", "1.05", "1.04", "1.99", "1.9", "1.5", 3464 "1.4", "-1.09", "-1.05", "-1.04", "-1.99", "-1.9", "-1.5", 3465 "-1.4", "1E-1000", "-1E-1000", "11E-1", "1.5" }; // 400-403 3466 // 404-407 3467 // 408-411 3468 // 412-416 3469 // 417-420 3470 // 421-424 3471 // 425-428 3472 3473 { 3474 int $108 = badstrings.length; 3475 i = 0; 3476 for (; $108 > 0; $108--, i++) { 3477 try { 3478 v = badstrings[i]; 3479 (new com.ibm.icu.math.BigDecimal(v)).intValueExact(); 3480 flag = false; 3481 } catch (java.lang.ArithmeticException $109) { 3482 ae = $109; 3483 norm = (new com.ibm.icu.math.BigDecimal(v)).toString(); 3484 flag = (ae.getMessage()).equals("Decimal part non-zero:" 3485 + " " + norm); 3486 } 3487 TestFmwk.assertTrue("inv" + (400 + i), flag); 3488 } 3489 }/* i */ 3490 } 3491 3492 /* ----------------------------------------------------------------- */ 3493 3494 /** Test the {@link com.ibm.icu.math.BigDecimal#longValue} method. */ 3495 3496 @Test 3497 public void diaglongvalue() { 3498 boolean flag = false; 3499 java.lang.String v = null; 3500 java.lang.ArithmeticException ae = null; 3501 java.lang.String badstrings[]; 3502 int i = 0; 3503 java.lang.String norm = null; 3504 com.ibm.icu.math.BigDecimal dlmax; 3505 com.ibm.icu.math.BigDecimal num = null; 3506 com.ibm.icu.math.BigDecimal dv = null; 3507 com.ibm.icu.math.BigDecimal dlmin; 3508 3509 // longValue -- 3510 3511 TestFmwk.assertTrue("lov001", lmin==((new com.ibm.icu.math.BigDecimal(lmin)).longValue())); 3512 TestFmwk.assertTrue("lov002", ((99))==((new com.ibm.icu.math.BigDecimal("99")).longValue())); 3513 TestFmwk.assertTrue("lov003", ((1))==((new com.ibm.icu.math.BigDecimal("1")).longValue())); 3514 TestFmwk.assertTrue("lov004", ((0))==((new com.ibm.icu.math.BigDecimal("0")).longValue())); 3515 TestFmwk.assertTrue("lov005", ((-1))==((new com.ibm.icu.math.BigDecimal("-1")).longValue())); 3516 TestFmwk.assertTrue("lov006", ((-99))==((new com.ibm.icu.math.BigDecimal("-99")).longValue())); 3517 TestFmwk.assertTrue("lov007", lmax==((new com.ibm.icu.math.BigDecimal(lmax)).longValue())); 3518 TestFmwk.assertTrue("lov008", ((5))==((new com.ibm.icu.math.BigDecimal("5.0")).longValue())); 3519 TestFmwk.assertTrue("lov009", ((5))==((new com.ibm.icu.math.BigDecimal("5.3")).longValue())); 3520 TestFmwk.assertTrue("lov010", ((5))==((new com.ibm.icu.math.BigDecimal("5.5")).longValue())); 3521 TestFmwk.assertTrue("lov011", ((5))==((new com.ibm.icu.math.BigDecimal("5.7")).longValue())); 3522 TestFmwk.assertTrue("lov012", ((5))==((new com.ibm.icu.math.BigDecimal("5.9")).longValue())); 3523 TestFmwk.assertTrue("lov013", ((-5))==((new com.ibm.icu.math.BigDecimal("-5.0")).longValue())); 3524 TestFmwk.assertTrue("lov014", ((-5))==((new com.ibm.icu.math.BigDecimal("-5.3")).longValue())); 3525 TestFmwk.assertTrue("lov015", ((-5))==((new com.ibm.icu.math.BigDecimal("-5.5")).longValue())); 3526 TestFmwk.assertTrue("lov016", ((-5))==((new com.ibm.icu.math.BigDecimal("-5.7")).longValue())); 3527 TestFmwk.assertTrue("lov017", ((-5))==((new com.ibm.icu.math.BigDecimal("-5.9")).longValue())); 3528 TestFmwk.assertTrue("lov018", ((new com.ibm.icu.math.BigDecimal("888888888899999999998")).longValue())==3445173361941522430L); // ugh 3529 TestFmwk.assertTrue("lov019", ((new com.ibm.icu.math.BigDecimal("-888888888899999999998")).longValue())==(-3445173361941522430L)); // ugh 3530 3531 // longValueExact -- 3532 3533 TestFmwk.assertTrue("lov101", lmin==((new com.ibm.icu.math.BigDecimal(lmin)).longValue())); 3534 TestFmwk.assertTrue("lov102", ((99))==((new com.ibm.icu.math.BigDecimal("99")).longValue())); 3535 TestFmwk.assertTrue("lov103", ((1))==((new com.ibm.icu.math.BigDecimal("1")).longValue())); 3536 TestFmwk.assertTrue("lov104", ((0))==((new com.ibm.icu.math.BigDecimal("0")).longValue())); 3537 TestFmwk.assertTrue("lov105", ((-1))==((new com.ibm.icu.math.BigDecimal("-1")).longValue())); 3538 TestFmwk.assertTrue("lov106", ((-99))==((new com.ibm.icu.math.BigDecimal("-99")).longValue())); 3539 TestFmwk.assertTrue("lov107", lmax==((new com.ibm.icu.math.BigDecimal(lmax)).longValue())); 3540 TestFmwk.assertTrue("lov108", ((5))==((new com.ibm.icu.math.BigDecimal("5.0")).longValue())); 3541 TestFmwk.assertTrue("lov109", ((-5))==((new com.ibm.icu.math.BigDecimal("-5.0")).longValue())); 3542 3543 try { 3544 v = "-888888888899999999998"; 3545 (new com.ibm.icu.math.BigDecimal(v)).longValueExact(); 3546 flag = false; 3547 } catch (java.lang.ArithmeticException $110) { 3548 ae = $110; 3549 flag = (ae.getMessage()).equals("Conversion overflow:" + " " + v); 3550 } 3551 TestFmwk.assertTrue("lov200", flag); 3552 try { 3553 v = "88888887487487479488888"; 3554 (new com.ibm.icu.math.BigDecimal(v)).longValueExact(); 3555 flag = false; 3556 } catch (java.lang.ArithmeticException $111) { 3557 ae = $111; 3558 flag = (ae.getMessage()).equals("Conversion overflow:" + " " + v); 3559 } 3560 TestFmwk.assertTrue("lov201", flag); 3561 try { 3562 v = "1.5"; 3563 (new com.ibm.icu.math.BigDecimal(v)).longValueExact(); 3564 flag = false; 3565 } catch (java.lang.ArithmeticException $112) { 3566 ae = $112; 3567 flag = (ae.getMessage()).equals("Decimal part non-zero:" + " " + v); 3568 } 3569 TestFmwk.assertTrue("lov202", flag); 3570 3571 badstrings = new java.lang.String[] { 3572 "1234567890110987654321", 3573 "-1234567890110987654321", 3574 (new com.ibm.icu.math.BigDecimal(lmax)).add(one).toString(), 3575 (new com.ibm.icu.math.BigDecimal(lmin)).subtract(one) 3576 .toString(), 3577 (new com.ibm.icu.math.BigDecimal(lmin)).multiply(two) 3578 .toString(), 3579 (new com.ibm.icu.math.BigDecimal(lmax)).multiply(two) 3580 .toString(), 3581 (new com.ibm.icu.math.BigDecimal(lmin)).multiply(ten) 3582 .toString(), 3583 (new com.ibm.icu.math.BigDecimal(lmax)).multiply(ten) 3584 .toString(), "9223372036854775818", 3585 "9323372036854775818", "9423372036854775818", 3586 "9523372036854775818", "9623372036854775818", 3587 "9723372036854775818", "9823372036854775818", 3588 "9923372036854775818", "-9223372036854775818", 3589 "-9323372036854775818", "-9423372036854775818", 3590 "-9523372036854775818", "-9623372036854775818", 3591 "-9723372036854775818", "-9823372036854775818", 3592 "-9923372036854775818", "12345678901234567890" }; // 220 3593 // 221 3594 // 222 3595 // 223 3596 // 224 3597 // 225 3598 // 226 3599 // 227 3600 // 228 3601 // 229 3602 // 230 3603 // 231 3604 // 232 3605 // 233 3606 // 234 3607 // 235 3608 // 236 3609 // 237 3610 // 238 3611 // 239 3612 // 240 3613 // 241 3614 // 242 3615 // 243 3616 // 244 3617 { 3618 int $113 = badstrings.length; 3619 i = 0; 3620 for (; $113 > 0; $113--, i++) { 3621 try { 3622 v = badstrings[i]; 3623 (new com.ibm.icu.math.BigDecimal(v)).longValueExact(); 3624 flag = false; 3625 } catch (java.lang.ArithmeticException $114) { 3626 ae = $114; 3627 norm = (new com.ibm.icu.math.BigDecimal(v)).toString(); 3628 flag = (ae.getMessage()).equals("Conversion overflow:" 3629 + " " + norm); 3630 } 3631 TestFmwk.assertTrue("lov" + (220 + i), flag); 3632 } 3633 }/* i */ 3634 3635 // now slip in some single bits... 3636 dlmax = new com.ibm.icu.math.BigDecimal(lmax); 3637 { 3638 i = 0; 3639 for (; i <= 99; i++) { 3640 try { 3641 num = two.pow(new com.ibm.icu.math.BigDecimal(i), mc50); 3642 dv = dlmax.add(num, mc50); 3643 dv.longValueExact(); 3644 flag = false; 3645 } catch (java.lang.ArithmeticException $115) { 3646 ae = $115; 3647 norm = dv.toString(); 3648 flag = (ae.getMessage()).equals("Conversion overflow:" 3649 + " " + norm); 3650 } 3651 TestFmwk.assertTrue("lov" + (300 + i), flag); 3652 } 3653 }/* i */ 3654 dlmin = new com.ibm.icu.math.BigDecimal(lmin); 3655 { 3656 i = 0; 3657 for (; i <= 99; i++) { 3658 try { 3659 num = two.pow(new com.ibm.icu.math.BigDecimal(i), mc50); 3660 dv = dlmin.subtract(num, mc50); 3661 dv.longValueExact(); 3662 flag = false; 3663 } catch (java.lang.ArithmeticException $116) { 3664 ae = $116; 3665 norm = dv.toString(); 3666 flag = (ae.getMessage()).equals("Conversion overflow:" 3667 + " " + norm); 3668 } 3669 TestFmwk.assertTrue("lov" + (400 + i), flag); 3670 } 3671 }/* i */ 3672 } 3673 3674 /* ----------------------------------------------------------------- */ 3675 3676 /** Test the {@link com.ibm.icu.math.BigDecimal#movePointLeft} method. */ 3677 3678 @Test 3679 public void diagmovepointleft() { 3680 TestFmwk.assertTrue("mpl001", ((new com.ibm.icu.math.BigDecimal("-1")).movePointLeft(-10).toString()).equals("-10000000000")); 3681 TestFmwk.assertTrue("mpl002", ((new com.ibm.icu.math.BigDecimal("-1")).movePointLeft(-5).toString()).equals("-100000")); 3682 TestFmwk.assertTrue("mpl003", ((new com.ibm.icu.math.BigDecimal("-1")).movePointLeft(-1).toString()).equals("-10")); 3683 TestFmwk.assertTrue("mpl004", ((new com.ibm.icu.math.BigDecimal("-1")).movePointLeft(0).toString()).equals("-1")); 3684 TestFmwk.assertTrue("mpl005", ((new com.ibm.icu.math.BigDecimal("-1")).movePointLeft(+1).toString()).equals("-0.1")); 3685 TestFmwk.assertTrue("mpl006", ((new com.ibm.icu.math.BigDecimal("-1")).movePointLeft(+5).toString()).equals("-0.00001")); 3686 TestFmwk.assertTrue("mpl007", ((new com.ibm.icu.math.BigDecimal("-1")).movePointLeft(+10).toString()).equals("-0.0000000001")); 3687 3688 TestFmwk.assertTrue("mpl010", ((new com.ibm.icu.math.BigDecimal("0")).movePointLeft(-10).toString()).equals("0")); 3689 TestFmwk.assertTrue("mpl010", ((new com.ibm.icu.math.BigDecimal("0")).movePointLeft(-5).toString()).equals("0")); 3690 TestFmwk.assertTrue("mpl010", ((new com.ibm.icu.math.BigDecimal("0")).movePointLeft(-1).toString()).equals("0")); 3691 TestFmwk.assertTrue("mpl010", ((new com.ibm.icu.math.BigDecimal("0")).movePointLeft(0).toString()).equals("0")); 3692 TestFmwk.assertTrue("mpl010", ((new com.ibm.icu.math.BigDecimal("0")).movePointLeft(+1).toString()).equals("0.0")); 3693 TestFmwk.assertTrue("mpl010", ((new com.ibm.icu.math.BigDecimal("0")).movePointLeft(+5).toString()).equals("0.00000")); 3694 TestFmwk.assertTrue("mpl010", ((new com.ibm.icu.math.BigDecimal("0")).movePointLeft(+10).toString()).equals("0.0000000000")); 3695 3696 TestFmwk.assertTrue("mpl020", ((new com.ibm.icu.math.BigDecimal("+1")).movePointLeft(-10).toString()).equals("10000000000")); 3697 TestFmwk.assertTrue("mpl021", ((new com.ibm.icu.math.BigDecimal("+1")).movePointLeft(-5).toString()).equals("100000")); 3698 TestFmwk.assertTrue("mpl022", ((new com.ibm.icu.math.BigDecimal("+1")).movePointLeft(-1).toString()).equals("10")); 3699 TestFmwk.assertTrue("mpl023", ((new com.ibm.icu.math.BigDecimal("+1")).movePointLeft(0).toString()).equals("1")); 3700 TestFmwk.assertTrue("mpl024", ((new com.ibm.icu.math.BigDecimal("+1")).movePointLeft(+1).toString()).equals("0.1")); 3701 TestFmwk.assertTrue("mpl025", ((new com.ibm.icu.math.BigDecimal("+1")).movePointLeft(+5).toString()).equals("0.00001")); 3702 TestFmwk.assertTrue("mpl026", ((new com.ibm.icu.math.BigDecimal("+1")).movePointLeft(+10).toString()).equals("0.0000000001")); 3703 3704 TestFmwk.assertTrue("mpl030", ((new com.ibm.icu.math.BigDecimal("0.5E+1")).movePointLeft(-10).toString()).equals("50000000000")); 3705 TestFmwk.assertTrue("mpl031", ((new com.ibm.icu.math.BigDecimal("0.5E+1")).movePointLeft(-5).toString()).equals("500000")); 3706 TestFmwk.assertTrue("mpl032", ((new com.ibm.icu.math.BigDecimal("0.5E+1")).movePointLeft(-1).toString()).equals("50")); 3707 TestFmwk.assertTrue("mpl033", ((new com.ibm.icu.math.BigDecimal("0.5E+1")).movePointLeft(0).toString()).equals("5")); 3708 TestFmwk.assertTrue("mpl034", ((new com.ibm.icu.math.BigDecimal("0.5E+1")).movePointLeft(+1).toString()).equals("0.5")); 3709 TestFmwk.assertTrue("mpl035", ((new com.ibm.icu.math.BigDecimal("0.5E+1")).movePointLeft(+5).toString()).equals("0.00005")); 3710 TestFmwk.assertTrue("mpl036", ((new com.ibm.icu.math.BigDecimal("0.5E+1")).movePointLeft(+10).toString()).equals("0.0000000005")); 3711 } 3712 3713 /* ----------------------------------------------------------------- */ 3714 3715 /** Test the {@link com.ibm.icu.math.BigDecimal#movePointRight} method. */ 3716 3717 @Test 3718 public void diagmovepointright() { 3719 TestFmwk.assertTrue("mpr001", ((new com.ibm.icu.math.BigDecimal("-1")).movePointRight(+10).toString()).equals("-10000000000")); 3720 TestFmwk.assertTrue("mpr002", ((new com.ibm.icu.math.BigDecimal("-1")).movePointRight(+5).toString()).equals("-100000")); 3721 TestFmwk.assertTrue("mpr003", ((new com.ibm.icu.math.BigDecimal("-1")).movePointRight(+1).toString()).equals("-10")); 3722 TestFmwk.assertTrue("mpr004", ((new com.ibm.icu.math.BigDecimal("-1")).movePointRight(0).toString()).equals("-1")); 3723 TestFmwk.assertTrue("mpr005", ((new com.ibm.icu.math.BigDecimal("-1")).movePointRight(-1).toString()).equals("-0.1")); 3724 TestFmwk.assertTrue("mpr006", ((new com.ibm.icu.math.BigDecimal("-1")).movePointRight(-5).toString()).equals("-0.00001")); 3725 TestFmwk.assertTrue("mpr007", ((new com.ibm.icu.math.BigDecimal("-1")).movePointRight(-10).toString()).equals("-0.0000000001")); 3726 3727 TestFmwk.assertTrue("mpr010", ((new com.ibm.icu.math.BigDecimal("0")).movePointRight(+10).toString()).equals("0")); 3728 TestFmwk.assertTrue("mpr011", ((new com.ibm.icu.math.BigDecimal("0")).movePointRight(+5).toString()).equals("0")); 3729 TestFmwk.assertTrue("mpr012", ((new com.ibm.icu.math.BigDecimal("0")).movePointRight(+1).toString()).equals("0")); 3730 TestFmwk.assertTrue("mpr013", ((new com.ibm.icu.math.BigDecimal("0")).movePointRight(0).toString()).equals("0")); 3731 TestFmwk.assertTrue("mpr014", ((new com.ibm.icu.math.BigDecimal("0")).movePointRight(-1).toString()).equals("0.0")); 3732 TestFmwk.assertTrue("mpr015", ((new com.ibm.icu.math.BigDecimal("0")).movePointRight(-5).toString()).equals("0.00000")); 3733 TestFmwk.assertTrue("mpr016", ((new com.ibm.icu.math.BigDecimal("0")).movePointRight(-10).toString()).equals("0.0000000000")); 3734 3735 TestFmwk.assertTrue("mpr020", ((new com.ibm.icu.math.BigDecimal("+1")).movePointRight(+10).toString()).equals("10000000000")); 3736 TestFmwk.assertTrue("mpr021", ((new com.ibm.icu.math.BigDecimal("+1")).movePointRight(+5).toString()).equals("100000")); 3737 TestFmwk.assertTrue("mpr022", ((new com.ibm.icu.math.BigDecimal("+1")).movePointRight(+1).toString()).equals("10")); 3738 TestFmwk.assertTrue("mpr023", ((new com.ibm.icu.math.BigDecimal("+1")).movePointRight(0).toString()).equals("1")); 3739 TestFmwk.assertTrue("mpr024", ((new com.ibm.icu.math.BigDecimal("+1")).movePointRight(-1).toString()).equals("0.1")); 3740 TestFmwk.assertTrue("mpr025", ((new com.ibm.icu.math.BigDecimal("+1")).movePointRight(-5).toString()).equals("0.00001")); 3741 TestFmwk.assertTrue("mpr026", ((new com.ibm.icu.math.BigDecimal("+1")).movePointRight(-10).toString()).equals("0.0000000001")); 3742 3743 TestFmwk.assertTrue("mpr030", ((new com.ibm.icu.math.BigDecimal("0.5E+1")).movePointRight(+10).toString()).equals("50000000000")); 3744 TestFmwk.assertTrue("mpr031", ((new com.ibm.icu.math.BigDecimal("0.5E+1")).movePointRight(+5).toString()).equals("500000")); 3745 TestFmwk.assertTrue("mpr032", ((new com.ibm.icu.math.BigDecimal("0.5E+1")).movePointRight(+1).toString()).equals("50")); 3746 TestFmwk.assertTrue("mpr033", ((new com.ibm.icu.math.BigDecimal("0.5E+1")).movePointRight(0).toString()).equals("5")); 3747 TestFmwk.assertTrue("mpr034", ((new com.ibm.icu.math.BigDecimal("0.5E+1")).movePointRight(-1).toString()).equals("0.5")); 3748 TestFmwk.assertTrue("mpr035", ((new com.ibm.icu.math.BigDecimal("0.5E+1")).movePointRight(-5).toString()).equals("0.00005")); 3749 TestFmwk.assertTrue("mpr036", ((new com.ibm.icu.math.BigDecimal("0.5E+1")).movePointRight(-10).toString()).equals("0.0000000005")); 3750 } 3751 3752 /* ----------------------------------------------------------------- */ 3753 3754 /** Test the {@link com.ibm.icu.math.BigDecimal#scale} method. */ 3755 3756 @Test 3757 public void diagscale() { 3758 TestFmwk.assertTrue("sca001", ((new com.ibm.icu.math.BigDecimal("-1")).scale())==0); 3759 TestFmwk.assertTrue("sca002", ((new com.ibm.icu.math.BigDecimal("-10")).scale())==0); 3760 TestFmwk.assertTrue("sca003", ((new com.ibm.icu.math.BigDecimal("+1")).scale())==0); 3761 TestFmwk.assertTrue("sca004", ((new com.ibm.icu.math.BigDecimal("+10")).scale())==0); 3762 TestFmwk.assertTrue("sca005", ((new com.ibm.icu.math.BigDecimal("1E+10")).scale())==0); 3763 TestFmwk.assertTrue("sca006", ((new com.ibm.icu.math.BigDecimal("1E-10")).scale())==10); 3764 TestFmwk.assertTrue("sca007", ((new com.ibm.icu.math.BigDecimal("0E-10")).scale())==0); 3765 TestFmwk.assertTrue("sca008", ((new com.ibm.icu.math.BigDecimal("0.000")).scale())==3); 3766 TestFmwk.assertTrue("sca009", ((new com.ibm.icu.math.BigDecimal("0.00")).scale())==2); 3767 TestFmwk.assertTrue("sca010", ((new com.ibm.icu.math.BigDecimal("0.0")).scale())==1); 3768 TestFmwk.assertTrue("sca011", ((new com.ibm.icu.math.BigDecimal("0.1")).scale())==1); 3769 TestFmwk.assertTrue("sca012", ((new com.ibm.icu.math.BigDecimal("0.12")).scale())==2); 3770 TestFmwk.assertTrue("sca013", ((new com.ibm.icu.math.BigDecimal("0.123")).scale())==3); 3771 TestFmwk.assertTrue("sca014", ((new com.ibm.icu.math.BigDecimal("-0.0")).scale())==1); 3772 TestFmwk.assertTrue("sca015", ((new com.ibm.icu.math.BigDecimal("-0.1")).scale())==1); 3773 TestFmwk.assertTrue("sca016", ((new com.ibm.icu.math.BigDecimal("-0.12")).scale())==2); 3774 TestFmwk.assertTrue("sca017", ((new com.ibm.icu.math.BigDecimal("-0.123")).scale())==3); 3775 } 3776 3777 /* ----------------------------------------------------------------- */ 3778 3779 /** Test the {@link com.ibm.icu.math.BigDecimal#setScale} method. */ 3780 3781 @Test 3782 public void diagsetscale() { 3783 boolean flag = false; 3784 java.lang.RuntimeException e = null; 3785 3786 TestFmwk.assertTrue("ssc001", ((new com.ibm.icu.math.BigDecimal("-1")).setScale(0).toString()).equals("-1")); 3787 TestFmwk.assertTrue("ssc002", ((new com.ibm.icu.math.BigDecimal("-1")).setScale(1).toString()).equals("-1.0")); 3788 TestFmwk.assertTrue("ssc003", ((new com.ibm.icu.math.BigDecimal("-1")).setScale(2).toString()).equals("-1.00")); 3789 TestFmwk.assertTrue("ssc004", ((new com.ibm.icu.math.BigDecimal("0")).setScale(0).toString()).equals("0")); 3790 TestFmwk.assertTrue("ssc005", ((new com.ibm.icu.math.BigDecimal("0")).setScale(1).toString()).equals("0.0")); 3791 TestFmwk.assertTrue("ssc006", ((new com.ibm.icu.math.BigDecimal("0")).setScale(2).toString()).equals("0.00")); 3792 TestFmwk.assertTrue("ssc007", ((new com.ibm.icu.math.BigDecimal("+1")).setScale(0).toString()).equals("1")); 3793 TestFmwk.assertTrue("ssc008", ((new com.ibm.icu.math.BigDecimal("+1")).setScale(1).toString()).equals("1.0")); 3794 TestFmwk.assertTrue("ssc009", ((new com.ibm.icu.math.BigDecimal("+1")).setScale(2).toString()).equals("1.00")); 3795 TestFmwk.assertTrue("ssc010", ((new com.ibm.icu.math.BigDecimal("-1")).setScale(0,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("-1")); 3796 TestFmwk.assertTrue("ssc011", ((new com.ibm.icu.math.BigDecimal("-1")).setScale(1,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("-1.0")); 3797 TestFmwk.assertTrue("ssc012", ((new com.ibm.icu.math.BigDecimal("-1")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("-1.00")); 3798 TestFmwk.assertTrue("ssc013", ((new com.ibm.icu.math.BigDecimal("0")).setScale(0,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0")); 3799 TestFmwk.assertTrue("ssc014", ((new com.ibm.icu.math.BigDecimal("0")).setScale(1,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.0")); 3800 TestFmwk.assertTrue("ssc015", ((new com.ibm.icu.math.BigDecimal("0")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.00")); 3801 TestFmwk.assertTrue("ssc016", ((new com.ibm.icu.math.BigDecimal("+1")).setScale(0,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1")); 3802 TestFmwk.assertTrue("ssc017", ((new com.ibm.icu.math.BigDecimal("+1")).setScale(1,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1.0")); 3803 TestFmwk.assertTrue("ssc018", ((new com.ibm.icu.math.BigDecimal("+1")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1.00")); 3804 3805 TestFmwk.assertTrue("ssc020", ((new com.ibm.icu.math.BigDecimal("1.04")).setScale(3,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1.040")); 3806 TestFmwk.assertTrue("ssc021", ((new com.ibm.icu.math.BigDecimal("1.04")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1.04")); 3807 TestFmwk.assertTrue("ssc022", ((new com.ibm.icu.math.BigDecimal("1.04")).setScale(1,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1.0")); 3808 TestFmwk.assertTrue("ssc023", ((new com.ibm.icu.math.BigDecimal("1.04")).setScale(0,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1")); 3809 TestFmwk.assertTrue("ssc024", ((new com.ibm.icu.math.BigDecimal("1.05")).setScale(3,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1.050")); 3810 TestFmwk.assertTrue("ssc025", ((new com.ibm.icu.math.BigDecimal("1.05")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1.05")); 3811 TestFmwk.assertTrue("ssc026", ((new com.ibm.icu.math.BigDecimal("1.05")).setScale(1,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1.1")); 3812 TestFmwk.assertTrue("ssc027", ((new com.ibm.icu.math.BigDecimal("1.05")).setScale(0,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1")); 3813 TestFmwk.assertTrue("ssc028", ((new com.ibm.icu.math.BigDecimal("1.05")).setScale(3,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("1.050")); 3814 TestFmwk.assertTrue("ssc029", ((new com.ibm.icu.math.BigDecimal("1.05")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("1.05")); 3815 TestFmwk.assertTrue("ssc030", ((new com.ibm.icu.math.BigDecimal("1.05")).setScale(1,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("1.0")); 3816 TestFmwk.assertTrue("ssc031", ((new com.ibm.icu.math.BigDecimal("1.05")).setScale(0,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("1")); 3817 TestFmwk.assertTrue("ssc032", ((new com.ibm.icu.math.BigDecimal("1.06")).setScale(3,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1.060")); 3818 TestFmwk.assertTrue("ssc033", ((new com.ibm.icu.math.BigDecimal("1.06")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1.06")); 3819 TestFmwk.assertTrue("ssc034", ((new com.ibm.icu.math.BigDecimal("1.06")).setScale(1,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1.1")); 3820 TestFmwk.assertTrue("ssc035", ((new com.ibm.icu.math.BigDecimal("1.06")).setScale(0,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1")); 3821 3822 TestFmwk.assertTrue("ssc040", ((new com.ibm.icu.math.BigDecimal("-10")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("-10.00")); 3823 TestFmwk.assertTrue("ssc041", ((new com.ibm.icu.math.BigDecimal("+1")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("1.00")); 3824 TestFmwk.assertTrue("ssc042", ((new com.ibm.icu.math.BigDecimal("+10")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("10.00")); 3825 TestFmwk.assertTrue("ssc043", ((new com.ibm.icu.math.BigDecimal("1E+10")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("10000000000.00")); 3826 TestFmwk.assertTrue("ssc044", ((new com.ibm.icu.math.BigDecimal("1E-10")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.00")); 3827 TestFmwk.assertTrue("ssc045", ((new com.ibm.icu.math.BigDecimal("1E-2")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.01")); 3828 TestFmwk.assertTrue("ssc046", ((new com.ibm.icu.math.BigDecimal("0E-10")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.00")); 3829 3830 // check rounding 3831 TestFmwk.assertTrue("ssc050", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(2,com.ibm.icu.math.MathContext.ROUND_CEILING).toString()).equals("0.01")); 3832 TestFmwk.assertTrue("ssc051", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(1,com.ibm.icu.math.MathContext.ROUND_CEILING).toString()).equals("0.1")); 3833 TestFmwk.assertTrue("ssc052", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(0,com.ibm.icu.math.MathContext.ROUND_CEILING).toString()).equals("1")); 3834 TestFmwk.assertTrue("ssc053", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(2,com.ibm.icu.math.MathContext.ROUND_DOWN).toString()).equals("0.00")); 3835 TestFmwk.assertTrue("ssc054", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(1,com.ibm.icu.math.MathContext.ROUND_DOWN).toString()).equals("0.0")); 3836 TestFmwk.assertTrue("ssc055", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(0,com.ibm.icu.math.MathContext.ROUND_DOWN).toString()).equals("0")); 3837 TestFmwk.assertTrue("ssc056", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(2,com.ibm.icu.math.MathContext.ROUND_FLOOR).toString()).equals("0.00")); 3838 TestFmwk.assertTrue("ssc057", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(1,com.ibm.icu.math.MathContext.ROUND_FLOOR).toString()).equals("0.0")); 3839 TestFmwk.assertTrue("ssc058", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(0,com.ibm.icu.math.MathContext.ROUND_FLOOR).toString()).equals("0")); 3840 TestFmwk.assertTrue("ssc059", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("0.00")); 3841 TestFmwk.assertTrue("ssc060", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(1,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("0.0")); 3842 TestFmwk.assertTrue("ssc061", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(0,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN).toString()).equals("0")); 3843 TestFmwk.assertTrue("ssc062", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0.00")); 3844 TestFmwk.assertTrue("ssc063", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0.0")); 3845 TestFmwk.assertTrue("ssc064", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(0,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0")); 3846 TestFmwk.assertTrue("ssc065", ((new com.ibm.icu.math.BigDecimal("0.015")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0.02")); 3847 TestFmwk.assertTrue("ssc066", ((new com.ibm.icu.math.BigDecimal("0.015")).setScale(1,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0.0")); 3848 TestFmwk.assertTrue("ssc067", ((new com.ibm.icu.math.BigDecimal("0.015")).setScale(0,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN).toString()).equals("0")); 3849 TestFmwk.assertTrue("ssc068", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.01")); 3850 TestFmwk.assertTrue("ssc069", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(1,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.0")); 3851 TestFmwk.assertTrue("ssc070", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(0,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0")); 3852 TestFmwk.assertTrue("ssc071", ((new com.ibm.icu.math.BigDecimal("0.095")).setScale(2,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.10")); 3853 TestFmwk.assertTrue("ssc072", ((new com.ibm.icu.math.BigDecimal("0.095")).setScale(1,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0.1")); 3854 TestFmwk.assertTrue("ssc073", ((new com.ibm.icu.math.BigDecimal("0.095")).setScale(0,com.ibm.icu.math.MathContext.ROUND_HALF_UP).toString()).equals("0")); 3855 TestFmwk.assertTrue("ssc074", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(2,com.ibm.icu.math.MathContext.ROUND_UP).toString()).equals("0.01")); 3856 TestFmwk.assertTrue("ssc075", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(1,com.ibm.icu.math.MathContext.ROUND_UP).toString()).equals("0.1")); 3857 TestFmwk.assertTrue("ssc076", ((new com.ibm.icu.math.BigDecimal("0.005")).setScale(0,com.ibm.icu.math.MathContext.ROUND_UP).toString()).equals("1")); 3858 3859 try { 3860 (new com.ibm.icu.math.BigDecimal(1)).setScale(-8); 3861 flag = false; 3862 } catch (java.lang.RuntimeException $117) { 3863 e = $117; 3864 flag = (e.getMessage()).equals("Negative scale: -8"); 3865 }/* checkscale */ 3866 TestFmwk.assertTrue("ssc100", flag); 3867 try { 3868 (new com.ibm.icu.math.BigDecimal(1.0001D)).setScale(3); 3869 flag = false; 3870 } catch (java.lang.RuntimeException $118) { 3871 e = $118; 3872 flag = (e.getMessage()).equals("Rounding necessary"); 3873 }/* checkrunn */ 3874 TestFmwk.assertTrue("ssc101", flag); 3875 try { 3876 (new com.ibm.icu.math.BigDecimal(1E-8D)).setScale(3); 3877 flag = false; 3878 } catch (java.lang.RuntimeException $119) { 3879 e = $119; 3880 flag = (e.getMessage()).equals("Rounding necessary"); 3881 }/* checkrunn */ 3882 TestFmwk.assertTrue("ssc102", flag); 3883 } 3884 3885 /* ----------------------------------------------------------------- */ 3886 3887 /** Test the <code>BigDecimal.shortValue()</code> method. */ 3888 3889 @Test 3890 public void diagshortvalue() { 3891 boolean flag = false; 3892 java.lang.String v = null; 3893 java.lang.ArithmeticException ae = null; 3894 java.lang.String badstrings[]; 3895 int i = 0; 3896 java.lang.String norm = null; 3897 3898 TestFmwk.assertTrue("shv002", (((short)0))==((new com.ibm.icu.math.BigDecimal("0")).shortValue())); 3899 TestFmwk.assertTrue("shv003", (((short)1))==((new com.ibm.icu.math.BigDecimal("1")).shortValue())); 3900 TestFmwk.assertTrue("shv004", (((short)99))==((new com.ibm.icu.math.BigDecimal("99")).shortValue())); 3901 TestFmwk.assertTrue("shv006", ((smax))==((new com.ibm.icu.math.BigDecimal(smax)).shortValue())); 3902 TestFmwk.assertTrue("shv007", ((smin))==((new com.ibm.icu.math.BigDecimal(smin)).shortValue())); 3903 TestFmwk.assertTrue("shv008", ((sneg))==((new com.ibm.icu.math.BigDecimal(sneg)).shortValue())); 3904 TestFmwk.assertTrue("shv009", ((szer))==((new com.ibm.icu.math.BigDecimal(szer)).shortValue())); 3905 TestFmwk.assertTrue("shv010", ((spos))==((new com.ibm.icu.math.BigDecimal(spos)).shortValue())); 3906 TestFmwk.assertTrue("shv011", ((smin))==((new com.ibm.icu.math.BigDecimal(smax+1)).shortValue())); 3907 TestFmwk.assertTrue("shv012", ((smax))==((new com.ibm.icu.math.BigDecimal(smin-1)).shortValue())); 3908 3909 TestFmwk.assertTrue("shv022", (((short)0))==((new com.ibm.icu.math.BigDecimal("0")).shortValueExact())); 3910 TestFmwk.assertTrue("shv023", (((short)1))==((new com.ibm.icu.math.BigDecimal("1")).shortValueExact())); 3911 TestFmwk.assertTrue("shv024", (((short)99))==((new com.ibm.icu.math.BigDecimal("99")).shortValueExact())); 3912 TestFmwk.assertTrue("shv026", ((smax))==((new com.ibm.icu.math.BigDecimal(smax)).shortValueExact())); 3913 TestFmwk.assertTrue("shv027", ((smin))==((new com.ibm.icu.math.BigDecimal(smin)).shortValueExact())); 3914 TestFmwk.assertTrue("shv028", ((sneg))==((new com.ibm.icu.math.BigDecimal(sneg)).shortValueExact())); 3915 TestFmwk.assertTrue("shv029", ((szer))==((new com.ibm.icu.math.BigDecimal(szer)).shortValueExact())); 3916 TestFmwk.assertTrue("shv030", ((spos))==((new com.ibm.icu.math.BigDecimal(spos)).shortValueExact())); 3917 try { 3918 v = "-88888888888"; 3919 (new com.ibm.icu.math.BigDecimal(v)).shortValueExact(); 3920 flag = false; 3921 } catch (java.lang.ArithmeticException $120) { 3922 ae = $120; 3923 flag = (ae.getMessage()).equals("Conversion overflow:" + " " + v); 3924 } 3925 TestFmwk.assertTrue("shv100", flag); 3926 try { 3927 v = "88888888888"; 3928 (new com.ibm.icu.math.BigDecimal(v)).shortValueExact(); 3929 flag = false; 3930 } catch (java.lang.ArithmeticException $121) { 3931 ae = $121; 3932 flag = (ae.getMessage()).equals("Conversion overflow:" + " " + v); 3933 } 3934 TestFmwk.assertTrue("shv101", flag); 3935 try { 3936 v = "1.5"; 3937 (new com.ibm.icu.math.BigDecimal(v)).shortValueExact(); 3938 flag = false; 3939 } catch (java.lang.ArithmeticException $122) { 3940 ae = $122; 3941 flag = (ae.getMessage()).equals("Decimal part non-zero:" + " " + v); 3942 } 3943 TestFmwk.assertTrue("shv102", flag); 3944 3945 badstrings = new java.lang.String[] { 3946 "123456", 3947 (new com.ibm.icu.math.BigDecimal(smax)).add(one).toString(), 3948 (new com.ibm.icu.math.BigDecimal(smin)).subtract(one) 3949 .toString(), 3950 "71111", 3951 "81111", 3952 "91111", 3953 "-71111", 3954 "-81111", 3955 "-91111", 3956 (new com.ibm.icu.math.BigDecimal(smin)).multiply(two) 3957 .toString(), 3958 (new com.ibm.icu.math.BigDecimal(smax)).multiply(two) 3959 .toString(), 3960 (new com.ibm.icu.math.BigDecimal(smin)).multiply(ten) 3961 .toString(), 3962 (new com.ibm.icu.math.BigDecimal(smax)).multiply(ten) 3963 .toString(), "-123456" }; // 220 3964 // 221 3965 // 222 3966 // 223 3967 // 224 3968 // 225 3969 // 226 3970 // 227 3971 // 228 3972 // 229 3973 // 230 3974 // 231 3975 // 232 3976 // 233 3977 { 3978 int $123 = badstrings.length; 3979 i = 0; 3980 for (; $123 > 0; $123--, i++) { 3981 try { 3982 v = badstrings[i]; 3983 (new com.ibm.icu.math.BigDecimal(v)).shortValueExact(); 3984 flag = false; 3985 } catch (java.lang.ArithmeticException $124) { 3986 ae = $124; 3987 norm = (new com.ibm.icu.math.BigDecimal(v)).toString(); 3988 flag = (ae.getMessage()).equals("Conversion overflow:" 3989 + " " + norm); 3990 } 3991 TestFmwk.assertTrue("shv" + (220 + i), flag); 3992 } 3993 }/* i */ 3994 } 3995 3996 /* ----------------------------------------------------------------- */ 3997 3998 /** Test the {@link com.ibm.icu.math.BigDecimal#signum} method. */ 3999 4000 @Test 4001 public void diagsignum() { 4002 // necessarily checks some obscure constructions, too 4003 TestFmwk.assertTrue("sig001", (-1)==((new com.ibm.icu.math.BigDecimal("-1")).signum())); 4004 TestFmwk.assertTrue("sig002", (-1)==((new com.ibm.icu.math.BigDecimal("-0.0010")).signum())); 4005 TestFmwk.assertTrue("sig003", (-1)==((new com.ibm.icu.math.BigDecimal("-0.001")).signum())); 4006 TestFmwk.assertTrue("sig004", 0==((new com.ibm.icu.math.BigDecimal("-0.00")).signum())); 4007 TestFmwk.assertTrue("sig005", 0==((new com.ibm.icu.math.BigDecimal("-0")).signum())); 4008 TestFmwk.assertTrue("sig006", 0==((new com.ibm.icu.math.BigDecimal("0")).signum())); 4009 TestFmwk.assertTrue("sig007", 0==((new com.ibm.icu.math.BigDecimal("00")).signum())); 4010 TestFmwk.assertTrue("sig008", 0==((new com.ibm.icu.math.BigDecimal("00.0")).signum())); 4011 TestFmwk.assertTrue("sig009", 1==((new com.ibm.icu.math.BigDecimal("00.01")).signum())); 4012 TestFmwk.assertTrue("sig010", 1==((new com.ibm.icu.math.BigDecimal("00.01")).signum())); 4013 TestFmwk.assertTrue("sig011", 1==((new com.ibm.icu.math.BigDecimal("00.010")).signum())); 4014 TestFmwk.assertTrue("sig012", 1==((new com.ibm.icu.math.BigDecimal("01.01")).signum())); 4015 TestFmwk.assertTrue("sig013", 1==((new com.ibm.icu.math.BigDecimal("+0.01")).signum())); 4016 TestFmwk.assertTrue("sig014", 1==((new com.ibm.icu.math.BigDecimal("+0.001")).signum())); 4017 TestFmwk.assertTrue("sig015", 1==((new com.ibm.icu.math.BigDecimal("1")).signum())); 4018 TestFmwk.assertTrue("sig016", 1==((new com.ibm.icu.math.BigDecimal("1e+12")).signum())); 4019 TestFmwk.assertTrue("sig017", 0==((new com.ibm.icu.math.BigDecimal("00e+12")).signum())); 4020 } 4021 4022 /* ----------------------------------------------------------------- */ 4023 4024 /** Test the {@link com.ibm.icu.math.BigDecimal#toBigDecimal} method. */ 4025 4026 @Test 4027 public void diagtobigdecimal() { 4028 TestFmwk.assertTrue("tbd001", ((new com.ibm.icu.math.BigDecimal("0")).toBigDecimal().toString()).equals("0")); 4029 TestFmwk.assertTrue("tbd002", ((new com.ibm.icu.math.BigDecimal("-1")).toBigDecimal().toString()).equals("-1")); 4030 TestFmwk.assertTrue("tbd003", ((new com.ibm.icu.math.BigDecimal("+1")).toBigDecimal().toString()).equals("1")); 4031 TestFmwk.assertTrue("tbd004", ((new com.ibm.icu.math.BigDecimal("1")).toBigDecimal().toString()).equals("1")); 4032 TestFmwk.assertTrue("tbd005", ((new com.ibm.icu.math.BigDecimal("1E+2")).toBigDecimal().toString()).equals("100")); 4033 TestFmwk.assertTrue("tbd006", ((new com.ibm.icu.math.BigDecimal("1E-2")).toBigDecimal().toString()).equals("0.01")); 4034 if (!isJDK15OrLater) { 4035 TestFmwk.assertTrue("tbd007", ((new com.ibm.icu.math.BigDecimal("1E-8")).toBigDecimal().toString()).equals("0.00000001")); 4036 } 4037 if (!isJDK15OrLater) { 4038 TestFmwk.assertTrue("tbd008", ((new com.ibm.icu.math.BigDecimal("1E-9")).toBigDecimal().toString()).equals("0.000000001")); 4039 } 4040 TestFmwk.assertTrue("tbd009", ((new com.ibm.icu.math.BigDecimal("1E10")).toBigDecimal().toString()).equals("10000000000")); 4041 TestFmwk.assertTrue("tbd010", ((new com.ibm.icu.math.BigDecimal("1E12")).toBigDecimal().toString()).equals("1000000000000")); 4042 } 4043 4044 /* ----------------------------------------------------------------- */ 4045 4046 /** Test the {@link com.ibm.icu.math.BigDecimal#toBigInteger} method. */ 4047 4048 @Test 4049 public void diagtobiginteger() { 4050 boolean flag = false; 4051 java.lang.String badstrings[]; 4052 int i = 0; 4053 TestFmwk.assertTrue("tbi001", ((new com.ibm.icu.math.BigDecimal("-1")).toBigInteger().toString()).equals("-1")); 4054 TestFmwk.assertTrue("tbi002", ((new com.ibm.icu.math.BigDecimal("0")).toBigInteger().toString()).equals("0")); 4055 TestFmwk.assertTrue("tbi003", ((new com.ibm.icu.math.BigDecimal("+1")).toBigInteger().toString()).equals("1")); 4056 TestFmwk.assertTrue("tbi004", ((new com.ibm.icu.math.BigDecimal("10")).toBigInteger().toString()).equals("10")); 4057 TestFmwk.assertTrue("tbi005", ((new com.ibm.icu.math.BigDecimal("1000")).toBigInteger().toString()).equals("1000")); 4058 TestFmwk.assertTrue("tbi006", ((new com.ibm.icu.math.BigDecimal("-1E+0")).toBigInteger().toString()).equals("-1")); 4059 TestFmwk.assertTrue("tbi007", ((new com.ibm.icu.math.BigDecimal("0E+0")).toBigInteger().toString()).equals("0")); 4060 TestFmwk.assertTrue("tbi008", ((new com.ibm.icu.math.BigDecimal("+1E+0")).toBigInteger().toString()).equals("1")); 4061 TestFmwk.assertTrue("tbi009", ((new com.ibm.icu.math.BigDecimal("10E+0")).toBigInteger().toString()).equals("10")); 4062 TestFmwk.assertTrue("tbi010", ((new com.ibm.icu.math.BigDecimal("1E+3")).toBigInteger().toString()).equals("1000")); 4063 TestFmwk.assertTrue("tbi011", ((new com.ibm.icu.math.BigDecimal("0.00")).toBigInteger().toString()).equals("0")); 4064 TestFmwk.assertTrue("tbi012", ((new com.ibm.icu.math.BigDecimal("0.01")).toBigInteger().toString()).equals("0")); 4065 TestFmwk.assertTrue("tbi013", ((new com.ibm.icu.math.BigDecimal("0.0")).toBigInteger().toString()).equals("0")); 4066 TestFmwk.assertTrue("tbi014", ((new com.ibm.icu.math.BigDecimal("0.1")).toBigInteger().toString()).equals("0")); 4067 TestFmwk.assertTrue("tbi015", ((new com.ibm.icu.math.BigDecimal("-0.00")).toBigInteger().toString()).equals("0")); 4068 TestFmwk.assertTrue("tbi016", ((new com.ibm.icu.math.BigDecimal("-0.01")).toBigInteger().toString()).equals("0")); 4069 TestFmwk.assertTrue("tbi017", ((new com.ibm.icu.math.BigDecimal("-0.0")).toBigInteger().toString()).equals("0")); 4070 TestFmwk.assertTrue("tbi018", ((new com.ibm.icu.math.BigDecimal("-0.1")).toBigInteger().toString()).equals("0")); 4071 TestFmwk.assertTrue("tbi019", ((new com.ibm.icu.math.BigDecimal("1.00")).toBigInteger().toString()).equals("1")); 4072 TestFmwk.assertTrue("tbi020", ((new com.ibm.icu.math.BigDecimal("1.01")).toBigInteger().toString()).equals("1")); 4073 TestFmwk.assertTrue("tbi021", ((new com.ibm.icu.math.BigDecimal("1.0")).toBigInteger().toString()).equals("1")); 4074 TestFmwk.assertTrue("tbi022", ((new com.ibm.icu.math.BigDecimal("1.1")).toBigInteger().toString()).equals("1")); 4075 TestFmwk.assertTrue("tbi023", ((new com.ibm.icu.math.BigDecimal("-1.00")).toBigInteger().toString()).equals("-1")); 4076 TestFmwk.assertTrue("tbi024", ((new com.ibm.icu.math.BigDecimal("-1.01")).toBigInteger().toString()).equals("-1")); 4077 TestFmwk.assertTrue("tbi025", ((new com.ibm.icu.math.BigDecimal("-1.0")).toBigInteger().toString()).equals("-1")); 4078 TestFmwk.assertTrue("tbi026", ((new com.ibm.icu.math.BigDecimal("-1.1")).toBigInteger().toString()).equals("-1")); 4079 TestFmwk.assertTrue("tbi027", ((new com.ibm.icu.math.BigDecimal("-111.111")).toBigInteger().toString()).equals("-111")); 4080 TestFmwk.assertTrue("tbi028", ((new com.ibm.icu.math.BigDecimal("+111.111")).toBigInteger().toString()).equals("111")); 4081 TestFmwk.assertTrue("tbi029", ((new com.ibm.icu.math.BigDecimal("0.09")).toBigInteger().toString()).equals("0")); 4082 TestFmwk.assertTrue("tbi030", ((new com.ibm.icu.math.BigDecimal("0.9")).toBigInteger().toString()).equals("0")); 4083 TestFmwk.assertTrue("tbi031", ((new com.ibm.icu.math.BigDecimal("1.09")).toBigInteger().toString()).equals("1")); 4084 TestFmwk.assertTrue("tbi032", ((new com.ibm.icu.math.BigDecimal("1.05")).toBigInteger().toString()).equals("1")); 4085 TestFmwk.assertTrue("tbi033", ((new com.ibm.icu.math.BigDecimal("1.04")).toBigInteger().toString()).equals("1")); 4086 TestFmwk.assertTrue("tbi034", ((new com.ibm.icu.math.BigDecimal("1.99")).toBigInteger().toString()).equals("1")); 4087 TestFmwk.assertTrue("tbi034", ((new com.ibm.icu.math.BigDecimal("1.9")).toBigInteger().toString()).equals("1")); 4088 TestFmwk.assertTrue("tbi035", ((new com.ibm.icu.math.BigDecimal("1.5")).toBigInteger().toString()).equals("1")); 4089 TestFmwk.assertTrue("tbi036", ((new com.ibm.icu.math.BigDecimal("1.4")).toBigInteger().toString()).equals("1")); 4090 TestFmwk.assertTrue("tbi037", ((new com.ibm.icu.math.BigDecimal("-1.09")).toBigInteger().toString()).equals("-1")); 4091 TestFmwk.assertTrue("tbi038", ((new com.ibm.icu.math.BigDecimal("-1.05")).toBigInteger().toString()).equals("-1")); 4092 TestFmwk.assertTrue("tbi039", ((new com.ibm.icu.math.BigDecimal("-1.04")).toBigInteger().toString()).equals("-1")); 4093 TestFmwk.assertTrue("tbi040", ((new com.ibm.icu.math.BigDecimal("-1.99")).toBigInteger().toString()).equals("-1")); 4094 TestFmwk.assertTrue("tbi041", ((new com.ibm.icu.math.BigDecimal("-1.9")).toBigInteger().toString()).equals("-1")); 4095 TestFmwk.assertTrue("tbi042", ((new com.ibm.icu.math.BigDecimal("-1.5")).toBigInteger().toString()).equals("-1")); 4096 TestFmwk.assertTrue("tbi043", ((new com.ibm.icu.math.BigDecimal("-1.4")).toBigInteger().toString()).equals("-1")); 4097 TestFmwk.assertTrue("tbi044", ((new com.ibm.icu.math.BigDecimal("1E-1000")).toBigInteger().toString()).equals("0")); 4098 TestFmwk.assertTrue("tbi045", ((new com.ibm.icu.math.BigDecimal("-1E-1000")).toBigInteger().toString()).equals("0")); 4099 4100 // Exact variety -- 4101 TestFmwk.assertTrue("tbi101", ((new com.ibm.icu.math.BigDecimal("-1")).toBigIntegerExact().toString()).equals("-1")); 4102 TestFmwk.assertTrue("tbi102", ((new com.ibm.icu.math.BigDecimal("0")).toBigIntegerExact().toString()).equals("0")); 4103 TestFmwk.assertTrue("tbi103", ((new com.ibm.icu.math.BigDecimal("+1")).toBigIntegerExact().toString()).equals("1")); 4104 TestFmwk.assertTrue("tbi104", ((new com.ibm.icu.math.BigDecimal("10")).toBigIntegerExact().toString()).equals("10")); 4105 TestFmwk.assertTrue("tbi105", ((new com.ibm.icu.math.BigDecimal("1000")).toBigIntegerExact().toString()).equals("1000")); 4106 TestFmwk.assertTrue("tbi106", ((new com.ibm.icu.math.BigDecimal("-1E+0")).toBigIntegerExact().toString()).equals("-1")); 4107 TestFmwk.assertTrue("tbi107", ((new com.ibm.icu.math.BigDecimal("0E+0")).toBigIntegerExact().toString()).equals("0")); 4108 TestFmwk.assertTrue("tbi108", ((new com.ibm.icu.math.BigDecimal("+1E+0")).toBigIntegerExact().toString()).equals("1")); 4109 TestFmwk.assertTrue("tbi109", ((new com.ibm.icu.math.BigDecimal("10E+0")).toBigIntegerExact().toString()).equals("10")); 4110 TestFmwk.assertTrue("tbi110", ((new com.ibm.icu.math.BigDecimal("1E+3")).toBigIntegerExact().toString()).equals("1000")); 4111 TestFmwk.assertTrue("tbi111", ((new com.ibm.icu.math.BigDecimal("0.00")).toBigIntegerExact().toString()).equals("0")); 4112 TestFmwk.assertTrue("tbi112", ((new com.ibm.icu.math.BigDecimal("0.0")).toBigIntegerExact().toString()).equals("0")); 4113 TestFmwk.assertTrue("tbi113", ((new com.ibm.icu.math.BigDecimal("-0.00")).toBigIntegerExact().toString()).equals("0")); 4114 TestFmwk.assertTrue("tbi114", ((new com.ibm.icu.math.BigDecimal("-0.0")).toBigIntegerExact().toString()).equals("0")); 4115 TestFmwk.assertTrue("tbi115", ((new com.ibm.icu.math.BigDecimal("1.00")).toBigIntegerExact().toString()).equals("1")); 4116 TestFmwk.assertTrue("tbi116", ((new com.ibm.icu.math.BigDecimal("1.0")).toBigIntegerExact().toString()).equals("1")); 4117 TestFmwk.assertTrue("tbi117", ((new com.ibm.icu.math.BigDecimal("-1.00")).toBigIntegerExact().toString()).equals("-1")); 4118 TestFmwk.assertTrue("tbi118", ((new com.ibm.icu.math.BigDecimal("-1.0")).toBigIntegerExact().toString()).equals("-1")); 4119 TestFmwk.assertTrue("tbi119", ((new com.ibm.icu.math.BigDecimal("1.00000000000000000000000000000")).toBigIntegerExact().toString()).equals("1")); 4120 4121 4122 // the following should all raise exceptions 4123 4124 badstrings = new java.lang.String[] { "0.09", "0.9", "0.01", "0.1", 4125 "-0.01", "-0.1", "1.01", "-1.01", "-1.1", "-111.111", 4126 "+111.111", "1.09", "1.05", "1.04", "1.99", "1.9", "1.5", 4127 "1.4", "-1.09", "-1.05", "-1.04", "-1.99", "-1.9", "-1.5", 4128 "-1.4", "1E-1000", "-1E-1000", "11E-1", "1.1", 4129 "127623156123656561356123512315631231551312356.000001", 4130 "0.000000000000000000000000000000000000000000000001" }; // 300-303 4131 // 304-307 4132 // 308-311 4133 // 312-316 4134 // 317-320 4135 // 321-324 4136 // 325-328 4137 // 329 4138 // 330 4139 4140 { 4141 int $125 = badstrings.length; 4142 i = 0; 4143 for (; $125 > 0; $125--, i++) { 4144 try { 4145 (new com.ibm.icu.math.BigDecimal(badstrings[i])) 4146 .toBigIntegerExact(); 4147 flag = false; 4148 } catch (java.lang.ArithmeticException $126) { 4149 flag = true; 4150 } 4151 TestFmwk.assertTrue("tbi" + (300 + i), flag); 4152 } 4153 }/* i */ 4154 } 4155 4156 /* ----------------------------------------------------------------- */ 4157 4158 /** Test the {@link com.ibm.icu.math.BigDecimal#toCharArray} method. */ 4159 4160 @Test 4161 public void diagtochararray() { 4162 java.lang.String str; 4163 char car[]; 4164 com.ibm.icu.math.BigDecimal d; 4165 char ca[]; 4166 // the function of this has been tested above, this is simply an 4167 // existence proof and type-check 4168 str = "-123.45"; 4169 car = (str).toCharArray(); 4170 d = new com.ibm.icu.math.BigDecimal(str); 4171 ca = d.toCharArray(); 4172 TestFmwk.assertTrue("tca001", ca.length == car.length); 4173 TestFmwk.assertTrue("tca002", (new java.lang.String(ca)) 4174 .equals((new java.lang.String(car)))); 4175 TestFmwk.assertTrue("tca003", (d.toCharArray() instanceof char[])); 4176 TestFmwk.assertTrue("tca004", (ca instanceof char[])); 4177 } 4178 4179 /* ----------------------------------------------------------------- */ 4180 4181 /** Test the {@link com.ibm.icu.math.BigDecimal#toString} method. */ 4182 4183 @Test 4184 public void diagtostring() { 4185 java.lang.String str; 4186 char car[]; 4187 com.ibm.icu.math.BigDecimal d; 4188 char ca[]; 4189 java.lang.String cs; 4190 // the function of this has been tested above, this is simply an 4191 // existence proof and type-check 4192 str = "123.45"; 4193 car = (str).toCharArray(); 4194 d = new com.ibm.icu.math.BigDecimal(car, 0, car.length); 4195 ca = d.toCharArray(); 4196 cs = d.toString(); 4197 TestFmwk.assertTrue("tos001", (str.toCharArray().length) == ca.length); 4198 TestFmwk.assertTrue("tos002", (str.length()) == (cs.length())); 4199 TestFmwk.assertTrue("tos003", str.equals((new java.lang.String(ca)))); 4200 TestFmwk.assertTrue("tos004", str.equals(cs)); 4201 TestFmwk.assertTrue("tos005", (cs instanceof java.lang.String)); 4202 TestFmwk.assertTrue("tos006", (d.toString() instanceof java.lang.String)); 4203 } 4204 4205 /* ----------------------------------------------------------------- */ 4206 4207 /** Test the {@link com.ibm.icu.math.BigDecimal#unscaledValue} method. */ 4208 4209 @Test 4210 public void diagunscaledvalue() { 4211 // just like toBigInteger, but scaly bits are preserved [without dots] 4212 TestFmwk.assertTrue("uns001", ((new com.ibm.icu.math.BigDecimal("-1")).unscaledValue().toString()).equals("-1")); 4213 TestFmwk.assertTrue("uns002", ((new com.ibm.icu.math.BigDecimal("0")).unscaledValue().toString()).equals("0")); 4214 TestFmwk.assertTrue("uns003", ((new com.ibm.icu.math.BigDecimal("+1")).unscaledValue().toString()).equals("1")); 4215 TestFmwk.assertTrue("uns004", ((new com.ibm.icu.math.BigDecimal("10")).unscaledValue().toString()).equals("10")); 4216 TestFmwk.assertTrue("uns005", ((new com.ibm.icu.math.BigDecimal("1000")).unscaledValue().toString()).equals("1000")); 4217 TestFmwk.assertTrue("uns006", ((new com.ibm.icu.math.BigDecimal("-1E+0")).unscaledValue().toString()).equals("-1")); 4218 TestFmwk.assertTrue("uns007", ((new com.ibm.icu.math.BigDecimal("0E+0")).unscaledValue().toString()).equals("0")); 4219 TestFmwk.assertTrue("uns008", ((new com.ibm.icu.math.BigDecimal("+1E+0")).unscaledValue().toString()).equals("1")); 4220 TestFmwk.assertTrue("uns009", ((new com.ibm.icu.math.BigDecimal("10E+0")).unscaledValue().toString()).equals("10")); 4221 TestFmwk.assertTrue("uns010", ((new com.ibm.icu.math.BigDecimal("1E+3")).unscaledValue().toString()).equals("1000")); 4222 TestFmwk.assertTrue("uns011", ((new com.ibm.icu.math.BigDecimal("0.00")).unscaledValue().toString()).equals("0")); 4223 TestFmwk.assertTrue("uns012", ((new com.ibm.icu.math.BigDecimal("0.01")).unscaledValue().toString()).equals("1")); 4224 TestFmwk.assertTrue("uns013", ((new com.ibm.icu.math.BigDecimal("0.0")).unscaledValue().toString()).equals("0")); 4225 TestFmwk.assertTrue("uns014", ((new com.ibm.icu.math.BigDecimal("0.1")).unscaledValue().toString()).equals("1")); 4226 TestFmwk.assertTrue("uns015", ((new com.ibm.icu.math.BigDecimal("-0.00")).unscaledValue().toString()).equals("0")); 4227 TestFmwk.assertTrue("uns016", ((new com.ibm.icu.math.BigDecimal("-0.01")).unscaledValue().toString()).equals("-1")); 4228 TestFmwk.assertTrue("uns017", ((new com.ibm.icu.math.BigDecimal("-0.0")).unscaledValue().toString()).equals("0")); 4229 TestFmwk.assertTrue("uns018", ((new com.ibm.icu.math.BigDecimal("-0.1")).unscaledValue().toString()).equals("-1")); 4230 TestFmwk.assertTrue("uns019", ((new com.ibm.icu.math.BigDecimal("1.00")).unscaledValue().toString()).equals("100")); 4231 TestFmwk.assertTrue("uns020", ((new com.ibm.icu.math.BigDecimal("1.01")).unscaledValue().toString()).equals("101")); 4232 TestFmwk.assertTrue("uns021", ((new com.ibm.icu.math.BigDecimal("1.0")).unscaledValue().toString()).equals("10")); 4233 TestFmwk.assertTrue("uns022", ((new com.ibm.icu.math.BigDecimal("1.1")).unscaledValue().toString()).equals("11")); 4234 TestFmwk.assertTrue("uns023", ((new com.ibm.icu.math.BigDecimal("-1.00")).unscaledValue().toString()).equals("-100")); 4235 TestFmwk.assertTrue("uns024", ((new com.ibm.icu.math.BigDecimal("-1.01")).unscaledValue().toString()).equals("-101")); 4236 TestFmwk.assertTrue("uns025", ((new com.ibm.icu.math.BigDecimal("-1.0")).unscaledValue().toString()).equals("-10")); 4237 TestFmwk.assertTrue("uns026", ((new com.ibm.icu.math.BigDecimal("-1.1")).unscaledValue().toString()).equals("-11")); 4238 TestFmwk.assertTrue("uns027", ((new com.ibm.icu.math.BigDecimal("-111.111")).unscaledValue().toString()).equals("-111111")); 4239 TestFmwk.assertTrue("uns028", ((new com.ibm.icu.math.BigDecimal("+111.111")).unscaledValue().toString()).equals("111111")); 4240 } 4241 4242 /* ----------------------------------------------------------------- */ 4243 4244 /** 4245 * Test the {@link com.ibm.icu.math.BigDecimal#valueOf} method [long and 4246 * double]. 4247 */ 4248 4249 @Test 4250 public void diagvalueof() { 4251 boolean flag = false; 4252 java.lang.NumberFormatException e = null; 4253 double dzer; 4254 double dpos; 4255 double dneg; 4256 double dpos5; 4257 double dneg5; 4258 double dmin; 4259 double dmax; 4260 double d; 4261 4262 // valueOf(long [,scale]) -- 4263 4264 TestFmwk.assertTrue("val001", (com.ibm.icu.math.BigDecimal.valueOf(((byte)-2)).toString()).equals("-2")); 4265 TestFmwk.assertTrue("val002", (com.ibm.icu.math.BigDecimal.valueOf(((byte)-1)).toString()).equals("-1")); 4266 TestFmwk.assertTrue("val003", (com.ibm.icu.math.BigDecimal.valueOf(((byte)-0)).toString()).equals("0")); 4267 TestFmwk.assertTrue("val004", (com.ibm.icu.math.BigDecimal.valueOf(((byte)+1)).toString()).equals("1")); 4268 TestFmwk.assertTrue("val005", (com.ibm.icu.math.BigDecimal.valueOf(((byte)+2)).toString()).equals("2")); 4269 TestFmwk.assertTrue("val006", (com.ibm.icu.math.BigDecimal.valueOf(((byte)10)).toString()).equals("10")); 4270 TestFmwk.assertTrue("val007", (com.ibm.icu.math.BigDecimal.valueOf(((byte)11)).toString()).equals("11")); 4271 TestFmwk.assertTrue("val008", (com.ibm.icu.math.BigDecimal.valueOf(lmin).toString()).equals("-9223372036854775808")); 4272 TestFmwk.assertTrue("val009", (com.ibm.icu.math.BigDecimal.valueOf(lmax).toString()).equals("9223372036854775807")); 4273 TestFmwk.assertTrue("val010", (com.ibm.icu.math.BigDecimal.valueOf(lneg).toString()).equals("-1")); 4274 TestFmwk.assertTrue("val011", (com.ibm.icu.math.BigDecimal.valueOf(lzer).toString()).equals("0")); 4275 TestFmwk.assertTrue("val012", (com.ibm.icu.math.BigDecimal.valueOf(lpos).toString()).equals("1")); 4276 TestFmwk.assertTrue("val013", (com.ibm.icu.math.BigDecimal.valueOf(lmin,0).toString()).equals("-9223372036854775808")); 4277 TestFmwk.assertTrue("val014", (com.ibm.icu.math.BigDecimal.valueOf(lmax,0).toString()).equals("9223372036854775807")); 4278 TestFmwk.assertTrue("val015", (com.ibm.icu.math.BigDecimal.valueOf(lneg,0).toString()).equals("-1")); 4279 TestFmwk.assertTrue("val016", (com.ibm.icu.math.BigDecimal.valueOf(lpos,0).toString()).equals("1")); 4280 4281 TestFmwk.assertTrue("val017", (com.ibm.icu.math.BigDecimal.valueOf(lzer,0).toString()).equals("0")); 4282 TestFmwk.assertTrue("val018", (com.ibm.icu.math.BigDecimal.valueOf(lzer,1).toString()).equals("0.0")); 4283 TestFmwk.assertTrue("val019", (com.ibm.icu.math.BigDecimal.valueOf(lzer,2).toString()).equals("0.00")); 4284 TestFmwk.assertTrue("val020", (com.ibm.icu.math.BigDecimal.valueOf(lzer,3).toString()).equals("0.000")); 4285 TestFmwk.assertTrue("val021", (com.ibm.icu.math.BigDecimal.valueOf(lzer,10).toString()).equals("0.0000000000")); 4286 4287 TestFmwk.assertTrue("val022", (com.ibm.icu.math.BigDecimal.valueOf(lmin,7).toString()).equals("-922337203685.4775808")); 4288 TestFmwk.assertTrue("val023", (com.ibm.icu.math.BigDecimal.valueOf(lmax,11).toString()).equals("92233720.36854775807")); 4289 4290 try { 4291 com.ibm.icu.math.BigDecimal.valueOf(23, -8); 4292 flag = false; 4293 } catch (java.lang.NumberFormatException $127) { 4294 e = $127; 4295 flag = (e.getMessage()).equals("Negative scale: -8"); 4296 }/* checkscale */ 4297 TestFmwk.assertTrue("val100", flag); 4298 4299 // valueOf(double) -- 4300 4301 dzer = 0; 4302 dpos = 1; 4303 dpos = dpos / (10); 4304 dneg = -dpos; 4305 TestFmwk.assertTrue("val201", (com.ibm.icu.math.BigDecimal.valueOf(dneg).toString()).equals("-0.1")); 4306 TestFmwk.assertTrue("val202", (com.ibm.icu.math.BigDecimal.valueOf(dzer).toString()).equals("0.0")); // cf. constructor 4307 TestFmwk.assertTrue("val203", (com.ibm.icu.math.BigDecimal.valueOf(dpos).toString()).equals("0.1")); 4308 dpos5 = 0.5D; 4309 dneg5 = -dpos5; 4310 TestFmwk.assertTrue("val204", (com.ibm.icu.math.BigDecimal.valueOf(dneg5).toString()).equals("-0.5")); 4311 TestFmwk.assertTrue("val205", (com.ibm.icu.math.BigDecimal.valueOf(dpos5).toString()).equals("0.5")); 4312 dmin = java.lang.Double.MIN_VALUE; 4313 dmax = java.lang.Double.MAX_VALUE; 4314 TestFmwk.assertTrue("val206", (com.ibm.icu.math.BigDecimal.valueOf(dmin).toString()).equals("4.9E-324")); 4315 TestFmwk.assertTrue("val207", (com.ibm.icu.math.BigDecimal.valueOf(dmax).toString()).equals("1.7976931348623157E+308")); 4316 4317 // nasties 4318 d = 9; 4319 d = d / (10); 4320 TestFmwk.assertTrue("val210", (com.ibm.icu.math.BigDecimal.valueOf(d).toString()).equals("0.9")); 4321 d = d / (10); 4322 TestFmwk.assertTrue("val211", (com.ibm.icu.math.BigDecimal.valueOf(d).toString()).equals("0.09")); 4323 d = d / (10); 4324 // The primitive double 0.009 is different in OpenJDK. In Oracle/IBM java <= 6, there is a trailing 0 (e.g 0.0090). 4325 String s = com.ibm.icu.math.BigDecimal.valueOf(d).toString(); 4326 TestFmwk.assertTrue("val212", s.equals("0.0090") || s.equals("0.009")); 4327 d = d / (10); 4328 TestFmwk.assertTrue("val213", (com.ibm.icu.math.BigDecimal.valueOf(d).toString()).equals("9.0E-4")); 4329 d = d / (10); 4330 TestFmwk.assertTrue("val214", (com.ibm.icu.math.BigDecimal.valueOf(d).toString()).equals("8.999999999999999E-5")); 4331 d = d / (10); 4332 TestFmwk.assertTrue("val215", (com.ibm.icu.math.BigDecimal.valueOf(d).toString()).equals("8.999999999999999E-6")); 4333 d = d / (10); 4334 TestFmwk.assertTrue("val216", (com.ibm.icu.math.BigDecimal.valueOf(d).toString()).equals("8.999999999999999E-7")); 4335 d = d / (10); 4336 TestFmwk.assertTrue("val217", (com.ibm.icu.math.BigDecimal.valueOf(d).toString()).equals("8.999999999999999E-8")); 4337 d = d / (10); 4338 TestFmwk.assertTrue("val218", (com.ibm.icu.math.BigDecimal.valueOf(d).toString()).equals("8.999999999999998E-9")); 4339 4340 try { 4341 com.ibm.icu.math.BigDecimal 4342 .valueOf(java.lang.Double.POSITIVE_INFINITY); 4343 flag = false; 4344 } catch (java.lang.NumberFormatException $128) { 4345 flag = true; 4346 }/* checkpin */ 4347 TestFmwk.assertTrue("val301", flag); 4348 try { 4349 com.ibm.icu.math.BigDecimal 4350 .valueOf(java.lang.Double.NEGATIVE_INFINITY); 4351 flag = false; 4352 } catch (java.lang.NumberFormatException $129) { 4353 flag = true; 4354 }/* checknin */ 4355 TestFmwk.assertTrue("val302", flag); 4356 try { 4357 com.ibm.icu.math.BigDecimal.valueOf(java.lang.Double.NaN); 4358 flag = false; 4359 } catch (java.lang.NumberFormatException $130) { 4360 flag = true; 4361 }/* checknan */ 4362 TestFmwk.assertTrue("val303", flag); 4363 } 4364 4365 /* ----------------------------------------------------------------- */ 4366 4367 /** Test the {@link com.ibm.icu.math.MathContext} class. */ 4368 4369 @Test 4370 public void diagmathcontext() { 4371 com.ibm.icu.math.MathContext mccon1; 4372 com.ibm.icu.math.MathContext mccon2; 4373 com.ibm.icu.math.MathContext mccon3; 4374 com.ibm.icu.math.MathContext mccon4; 4375 com.ibm.icu.math.MathContext mcrmc; 4376 com.ibm.icu.math.MathContext mcrmd; 4377 com.ibm.icu.math.MathContext mcrmf; 4378 com.ibm.icu.math.MathContext mcrmhd; 4379 com.ibm.icu.math.MathContext mcrmhe; 4380 com.ibm.icu.math.MathContext mcrmhu; 4381 com.ibm.icu.math.MathContext mcrmun; 4382 com.ibm.icu.math.MathContext mcrmu; 4383 boolean flag = false; 4384 java.lang.IllegalArgumentException e = null; 4385 // these tests are mostly existence checks 4386 TestFmwk.assertTrue("mcn001", (com.ibm.icu.math.MathContext.DEFAULT.getDigits())==9); 4387 TestFmwk.assertTrue("mcn002", (com.ibm.icu.math.MathContext.DEFAULT.getForm())==com.ibm.icu.math.MathContext.SCIENTIFIC); 4388 TestFmwk.assertTrue("mcn003", (com.ibm.icu.math.MathContext.DEFAULT.getForm())!=com.ibm.icu.math.MathContext.ENGINEERING); 4389 TestFmwk.assertTrue("mcn004", (com.ibm.icu.math.MathContext.DEFAULT.getForm())!=com.ibm.icu.math.MathContext.PLAIN); 4390 TestFmwk.assertTrue("mcn005", (com.ibm.icu.math.MathContext.DEFAULT.getLostDigits()?1:0)==0); 4391 TestFmwk.assertTrue("mcn006", (com.ibm.icu.math.MathContext.DEFAULT.getRoundingMode())==com.ibm.icu.math.MathContext.ROUND_HALF_UP); 4392 4393 TestFmwk.assertTrue("mcn010", com.ibm.icu.math.MathContext.ROUND_CEILING>=0); 4394 TestFmwk.assertTrue("mcn011", com.ibm.icu.math.MathContext.ROUND_DOWN>=0); 4395 TestFmwk.assertTrue("mcn012", com.ibm.icu.math.MathContext.ROUND_FLOOR>=0); 4396 TestFmwk.assertTrue("mcn013", com.ibm.icu.math.MathContext.ROUND_HALF_DOWN>=0); 4397 TestFmwk.assertTrue("mcn014", com.ibm.icu.math.MathContext.ROUND_HALF_EVEN>=0); 4398 TestFmwk.assertTrue("mcn015", com.ibm.icu.math.MathContext.ROUND_HALF_UP>=0); 4399 TestFmwk.assertTrue("mcn016", com.ibm.icu.math.MathContext.ROUND_UNNECESSARY>=0); 4400 TestFmwk.assertTrue("mcn017", com.ibm.icu.math.MathContext.ROUND_UP>=0); 4401 4402 mccon1=new com.ibm.icu.math.MathContext(111); 4403 TestFmwk.assertTrue("mcn021", (mccon1.getDigits())==111); 4404 TestFmwk.assertTrue("mcn022", (mccon1.getForm())==com.ibm.icu.math.MathContext.SCIENTIFIC); 4405 TestFmwk.assertTrue("mcn023", (mccon1.getLostDigits()?1:0)==0); 4406 TestFmwk.assertTrue("mcn024", (mccon1.getRoundingMode())==com.ibm.icu.math.MathContext.ROUND_HALF_UP); 4407 4408 mccon2=new com.ibm.icu.math.MathContext(78,com.ibm.icu.math.MathContext.ENGINEERING); 4409 TestFmwk.assertTrue("mcn031", (mccon2.getDigits())==78); 4410 TestFmwk.assertTrue("mcn032", (mccon2.getForm())==com.ibm.icu.math.MathContext.ENGINEERING); 4411 TestFmwk.assertTrue("mcn033", (mccon2.getLostDigits()?1:0)==0); 4412 TestFmwk.assertTrue("mcn034", (mccon2.getRoundingMode())==com.ibm.icu.math.MathContext.ROUND_HALF_UP); 4413 4414 mccon3=new com.ibm.icu.math.MathContext(5,com.ibm.icu.math.MathContext.PLAIN,true); 4415 TestFmwk.assertTrue("mcn041", (mccon3.getDigits())==5); 4416 TestFmwk.assertTrue("mcn042", (mccon3.getForm())==com.ibm.icu.math.MathContext.PLAIN); 4417 TestFmwk.assertTrue("mcn043", (mccon3.getLostDigits()?1:0)==1); 4418 TestFmwk.assertTrue("mcn044", (mccon3.getRoundingMode())==com.ibm.icu.math.MathContext.ROUND_HALF_UP); 4419 4420 mccon4=new com.ibm.icu.math.MathContext(0,com.ibm.icu.math.MathContext.SCIENTIFIC,false,com.ibm.icu.math.MathContext.ROUND_FLOOR); 4421 TestFmwk.assertTrue("mcn051", (mccon4.getDigits()) == 0); 4422 TestFmwk.assertTrue("mcn052", (mccon4.getForm()) == com.ibm.icu.math.MathContext.SCIENTIFIC); 4423 TestFmwk.assertTrue("mcn053", (mccon4.getLostDigits() ? 1 : 0) == 0); 4424 TestFmwk.assertTrue("mcn054", (mccon4.getRoundingMode()) == com.ibm.icu.math.MathContext.ROUND_FLOOR); 4425 4426 TestFmwk.assertTrue("mcn061", (mccon1.toString()).equals("digits=111 form=SCIENTIFIC lostDigits=0 roundingMode=ROUND_HALF_UP")); 4427 4428 TestFmwk.assertTrue("mcn062", (mccon2.toString()).equals("digits=78 form=ENGINEERING lostDigits=0 roundingMode=ROUND_HALF_UP")); 4429 4430 TestFmwk.assertTrue("mcn063", (mccon3.toString()).equals("digits=5 form=PLAIN lostDigits=1 roundingMode=ROUND_HALF_UP")); 4431 4432 TestFmwk.assertTrue("mcn064", (mccon4.toString()).equals("digits=0 form=SCIENTIFIC lostDigits=0 roundingMode=ROUND_FLOOR")); 4433 4434 // complete testing rounding modes round trips 4435 mcrmc=new com.ibm.icu.math.MathContext(0,com.ibm.icu.math.MathContext.PLAIN,false,com.ibm.icu.math.MathContext.ROUND_CEILING); 4436 mcrmd=new com.ibm.icu.math.MathContext(0,com.ibm.icu.math.MathContext.PLAIN,false,com.ibm.icu.math.MathContext.ROUND_DOWN); 4437 mcrmf=new com.ibm.icu.math.MathContext(0,com.ibm.icu.math.MathContext.PLAIN,false,com.ibm.icu.math.MathContext.ROUND_FLOOR); 4438 mcrmhd=new com.ibm.icu.math.MathContext(0,com.ibm.icu.math.MathContext.PLAIN,false,com.ibm.icu.math.MathContext.ROUND_HALF_DOWN); 4439 mcrmhe=new com.ibm.icu.math.MathContext(0,com.ibm.icu.math.MathContext.PLAIN,false,com.ibm.icu.math.MathContext.ROUND_HALF_EVEN); 4440 mcrmhu=new com.ibm.icu.math.MathContext(0,com.ibm.icu.math.MathContext.PLAIN,false,com.ibm.icu.math.MathContext.ROUND_HALF_UP); 4441 mcrmun=new com.ibm.icu.math.MathContext(0,com.ibm.icu.math.MathContext.PLAIN,false,com.ibm.icu.math.MathContext.ROUND_UNNECESSARY); 4442 mcrmu=new com.ibm.icu.math.MathContext(0,com.ibm.icu.math.MathContext.PLAIN,false,com.ibm.icu.math.MathContext.ROUND_UP); 4443 4444 TestFmwk.assertTrue("mcn071", (mcrmc.toString()).equals("digits=0 form=PLAIN lostDigits=0 roundingMode=ROUND_CEILING")); 4445 4446 TestFmwk.assertTrue("mcn072", (mcrmd.toString()).equals("digits=0 form=PLAIN lostDigits=0 roundingMode=ROUND_DOWN")); 4447 4448 TestFmwk.assertTrue("mcn073", (mcrmf.toString()).equals("digits=0 form=PLAIN lostDigits=0 roundingMode=ROUND_FLOOR")); 4449 4450 TestFmwk.assertTrue("mcn074", (mcrmhd.toString()).equals("digits=0 form=PLAIN lostDigits=0 roundingMode=ROUND_HALF_DOWN")); 4451 4452 TestFmwk.assertTrue("mcn075", (mcrmhe.toString()).equals("digits=0 form=PLAIN lostDigits=0 roundingMode=ROUND_HALF_EVEN")); 4453 4454 TestFmwk.assertTrue("mcn076", (mcrmhu.toString()).equals("digits=0 form=PLAIN lostDigits=0 roundingMode=ROUND_HALF_UP")); 4455 4456 TestFmwk.assertTrue("mcn077", (mcrmun.toString()).equals("digits=0 form=PLAIN lostDigits=0 roundingMode=ROUND_UNNECESSARY")); 4457 4458 TestFmwk.assertTrue("mcn078", (mcrmu.toString()).equals("digits=0 form=PLAIN lostDigits=0 roundingMode=ROUND_UP")); 4459 4460 // [get methods tested already] 4461 4462 // errors... 4463 4464 try { 4465 new com.ibm.icu.math.MathContext(-1); 4466 flag = false; 4467 } catch (java.lang.IllegalArgumentException $131) { 4468 e = $131; 4469 flag = (e.getMessage()).equals("Digits too small: -1"); 4470 }/* checkdig */ 4471 TestFmwk.assertTrue("mcn101", flag); 4472 try { 4473 new com.ibm.icu.math.MathContext(1000000000); 4474 flag = false; 4475 } catch (java.lang.IllegalArgumentException $132) { 4476 e = $132; 4477 flag = (e.getMessage()).equals("Digits too large: 1000000000"); 4478 }/* checkdigbig */ 4479 TestFmwk.assertTrue("mcn102", flag); 4480 4481 try { 4482 new com.ibm.icu.math.MathContext(0, 5); 4483 flag = false; 4484 } catch (java.lang.IllegalArgumentException $133) { 4485 e = $133; 4486 flag = (e.getMessage()).equals("Bad form value: 5"); 4487 }/* checkform */ 4488 TestFmwk.assertTrue("mcn111", flag); 4489 try { 4490 new com.ibm.icu.math.MathContext(0, -1); 4491 flag = false; 4492 } catch (java.lang.IllegalArgumentException $134) { 4493 e = $134; 4494 flag = (e.getMessage()).equals("Bad form value: -1"); 4495 }/* checkformneg */ 4496 TestFmwk.assertTrue("mcn112", flag); 4497 4498 // [lostDigits cannot be invalid] 4499 4500 try { 4501 new com.ibm.icu.math.MathContext(0, 4502 com.ibm.icu.math.MathContext.PLAIN, false, 12); 4503 flag = false; 4504 } catch (java.lang.IllegalArgumentException $135) { 4505 e = $135; 4506 flag = (e.getMessage()).equals("Bad roundingMode value: 12"); 4507 }/* checkround */ 4508 TestFmwk.assertTrue("mcn121", flag); 4509 try { 4510 new com.ibm.icu.math.MathContext(0, 4511 com.ibm.icu.math.MathContext.PLAIN, false, -1); 4512 flag = false; 4513 } catch (java.lang.IllegalArgumentException $136) { 4514 e = $136; 4515 flag = (e.getMessage()).equals("Bad roundingMode value: -1"); 4516 }/* checkroundneg */ 4517 TestFmwk.assertTrue("mcn122", flag); 4518 } 4519 4520 /* ----------------------------------------------------------------- */ 4521 4522 /** 4523 * Test general arithmetic (base operators). 4524 * <p> 4525 * Unlike the specific method tests, these tests were randomly generated by 4526 * an IBM Object Rexx procedure, then manually corrected for known 4527 * differences from ANSI X3-274. These differences are: 4528 * <ol> 4529 * <li>the trigger point in exponential notation is fixed in ANSI X3-274 4530 * but varies with DIGITS in Classic and Object Rexx 4531 * <li>some trailing zeros were missing (e.g., 1.3 + 1E-60 should show 4532 * seven trailing zeros) 4533 * <li>the power operator is less accurate in Object Rexx 4534 * <li>ANSI X3-274 [errata 1999] rounds input numbers to DIGITS (rather 4535 * than truncating to DIGITS+1). 4536 * </ol> 4537 */ 4538 4539 @Test 4540 public void diagmath() { 4541 com.ibm.icu.math.MathContext def; 4542 def = com.ibm.icu.math.MathContext.DEFAULT; 4543 mathtest(1,def,"-9375284.42","5516.99832E+27276984","5.51699832E+27276987","-5.51699832E+27276987","-5.17234284E+27276994","-1.69934516E-27276981","0","-9375284.42","6.79057752E+41"); 4544 mathtest(2,def,"-410.832710","99.3588243E-502740862","-410.832710","-410.832710","-4.08198550E-502740858","-4.13483868E+502740862","","","1.36977786E+26"); 4545 mathtest(3,def,"80025.2340","-8.03097581","80017.2030","80033.2650","-642680.718","-9964.57167","-9964","4.59102916","5.94544517E-40"); 4546 mathtest(4,def,"81052020.2","-464525495","-383473475","545577515","-3.76507298E+16","-0.17448347","0","81052020.2",""); 4547 mathtest(5,def,"715.069294E-26923151","85.4404128E+796388557","8.54404128E+796388558","-8.54404128E+796388558","6.10958157E+769465410","8.36921628E-823311708","0","7.15069294E-26923149","4.88802213E-242308334"); 4548 mathtest(6,def,"-21971575.0E+31454441","-70944960.3E+111238221","-7.09449603E+111238228","7.09449603E+111238228","1.55877252E+142692677","3.09698884E-79783781","0","-2.19715750E+31454448","-4.04549502E-220181139"); 4549 mathtest(7,def,"682.25316","54470185.6","54470867.9","-54469503.4","3.71624563E+10","0.0000125252586","0","682.25316","3.48578699E+154365541"); 4550 mathtest(8,def,"-257586757.","2082888.71","-255503868","-259669646","-5.36524548E+14","-123.668036","-123","-1391445.67","-1.26879515E+17519020"); 4551 mathtest(9,def,"319577540.E+242599761","60.7124561","3.19577540E+242599769","3.19577540E+242599769","1.94023374E+242599771","5.26378869E+242599767","","",""); 4552 mathtest(10,def,"-13769977.0","24371.3381","-13745605.7","-13794348.3","-3.35592765E+11","-565.007015","-565","-170.9735","-8.73734001E+173982"); 4553 mathtest(11,def,"-475.434972E-725464311","-3.22214066E-865476836","-4.75434972E-725464309","-4.75434972E-725464309","","1.47552519E+140012527","","",""); 4554 mathtest(12,def,"842.01250","197199893","197200735","-197199051","1.66044775E+11","0.00000426984258","0","842.01250","7.00674164E+576872502"); 4555 mathtest(13,def,"572.173103E+280128428","-7140.19428","5.72173103E+280128430","5.72173103E+280128430","-4.08542712E+280128434","-8.01341085E+280128426","","",""); 4556 mathtest(14,def,"674235.954E+476135291","9684.82245","6.74235954E+476135296","6.74235954E+476135296","6.52985550E+476135300","6.96177919E+476135292","","",""); 4557 mathtest(15,def,"-360557.921E+437116514","930428850","-3.60557921E+437116519","-3.60557921E+437116519","-3.35473492E+437116528","-3.87517993E+437116510","","",""); 4558 mathtest(16,def,"957165918E-394595705","1676.59073E-829618944","9.57165918E-394595697","9.57165918E-394595697","","5.70900161E+435023244","","","9.16166595E-789191393"); 4559 mathtest(17,def,"-2610864.40","31245912.7","28635048.3","-33856777.1","-8.15788411E+13","-0.0835585897","0","-2610864.40","-3.12008905E+200498284"); 4560 mathtest(18,def,"959.548461","98.994577E+776775426","9.89945770E+776775427","-9.89945770E+776775427","9.49900940E+776775430","9.69293965E-776775426","0","959.548461","6.61712185E+29"); 4561 mathtest(19,def,"-41085.0268","3115477.61","3074392.58","-3156562.64","-1.27999481E+11","-0.0131873927","0","-41085.0268","4.73844173E+14373829"); 4562 mathtest(20,def,"-723420285.","2681660.35","-720738625","-726101945","-1.93996749E+15","-269.765813","-269","-2053650.85","4.14324113E+23757873"); 4563 mathtest(21,def,"63542018.0E-817732230","-8836243.22","-8836243.22","8836243.22","-5.61472726E-817732216","-7.19106711E-817732230","0","6.35420180E-817732223",""); 4564 mathtest(22,def,"-96051.7108","-291201.955","-387253.666","195150.244","2.79704460E+10","0.329845694","0","-96051.7108","3.53617153E-1450916"); 4565 mathtest(23,def,"108490.853","91685996.5","91794487.4","-91577505.7","9.94709197E+12","0.00118328706","0","108490.853","6.98124265E+461675038"); 4566 mathtest(24,def,"-27489.1735","-9835835.4E-506411649","-27489.1735","-27489.1735","2.70378986E-506411638","2.79479804E+506411646","","","4.05866472E-45"); 4567 mathtest(25,def,"-89220406.6","993391.008E-611041175","-89220406.6","-89220406.6","-8.86307496E-611041162","-8.98139865E+611041176","","","3.19625913E+79"); 4568 mathtest(26,def,"4.75502020","-17089144.9","-17089140.2","17089149.7","-81259229.2","-2.78247989E-7","0","4.75502020","1.0630191E-11571955"); 4569 mathtest(27,def,"68027916.2","-796883.839","67231032.4","68824800.0","-5.42103470E+13","-85.3674185","-85","292789.885","8.29415374E-6241744"); 4570 mathtest(28,def,"-8.01969439E+788605478","92154156.0","-8.01969439E+788605478","-8.01969439E+788605478","-7.39048168E+788605486","-8.70247717E+788605470","","",""); 4571 mathtest(29,def,"-8012.98341","96188.8651","88175.8817","-104201.849","-770759780","-0.0833046881","0","-8012.98341","-1.16010156E+375502"); 4572 mathtest(30,def,"21761476E+592330677","-9.70744506","2.17614760E+592330684","2.17614760E+592330684","-2.11248333E+592330685","-2.24173053E+592330683","","",""); 4573 mathtest(31,def,"-9840778.51","-17907.219","-9858685.73","-9822871.29","1.76220976E+11","549.542534","549","-9715.279","-6.62997437E-125225"); 4574 mathtest(32,def,"-4.1097614","-819.225776E-145214751","-4.10976140","-4.10976140","3.36682247E-145214748","5.01664074E+145214748","","","0.0000122876018"); 4575 mathtest(33,def,"-448.880985","-394.087374E-442511435","-448.880985","-448.880985","1.76898329E-442511430","1.13903925E+442511435","","","2.46306099E-11"); 4576 mathtest(34,def,"779.445304E+882688544","-797868519","7.79445304E+882688546","7.79445304E+882688546","-6.21894870E+882688555","-9.7690946E+882688537","","",""); 4577 mathtest(35,def,"799995477","-6.23675208E+156309440","-6.23675208E+156309440","6.23675208E+156309440","-4.98937346E+156309449","-1.28271169E-156309432","0","799995477","3.81482667E-54"); 4578 mathtest(36,def,"-51932.8170","591840275E-278480289","-51932.8170","-51932.8170","-3.07359327E-278480276","-8.7748028E+278480284","","","1.96178443E+28"); 4579 mathtest(37,def,"70.3552392","-4228656.73","-4228586.38","4228727.09","-297508156","-0.0000166377277","0","70.3552392","9.14742382E-7811584"); 4580 mathtest(38,def,"1588359.34","-12232799.2","-10644439.9","13821158.5","-1.94300809E+13","-0.129844307","0","1588359.34","1.56910086E-75854960"); 4581 mathtest(39,def,"2842.16206","-3.23234345","2838.92972","2845.39440","-9186.84392","-879.288388","-879","0.93216745","4.35565514E-11"); 4582 mathtest(40,def,"29960.2305","45.2735747E-95205475","29960.2305","29960.2305","1.35640673E-95205469","6.61759773E+95205477","","","2.413936E+22"); 4583 mathtest(41,def,"2916565.77","1151935.43E-787118724","2916565.77","2916565.77","3.35969544E-787118712","2.53188303E+787118724","","","2916565.77"); 4584 mathtest(42,def,"-52723012.9E-967143787","79.4088237","79.4088237","-79.4088237","-4.18667244E-967143778","-6.63944011E-967143782","0","-5.27230129E-967143780",""); 4585 mathtest(43,def,"-167473465","793646.597","-166679819","-168267112","-1.32914746E+14","-211.017682","-211","-14033.033","-1.19053789E+6526910"); 4586 mathtest(44,def,"-31769071.0","133.4360","-31768937.6","-31769204.4","-4.23913776E+9","-238084.707","-238084","-94.3760","-5.84252432E+997"); 4587 mathtest(45,def,"45960.6383","-93352.7468","-47392.1085","139313.385","-4.29055183E+9","-0.492333004","0","45960.6383","1.88335323E-435248"); 4588 mathtest(46,def,"606.175648","5.28528458E-981983620","606.175648","606.175648","3.20381081E-981983617","1.14691203E+981983622","","","8.18450516E+13"); 4589 mathtest(47,def,"171578.617E+643006110","-407774.293","1.71578617E+643006115","1.71578617E+643006115","-6.99653492E+643006120","-4.20768597E+643006109","","",""); 4590 mathtest(48,def,"-682286332.","-464.871699","-682286797","-682285867","3.17175606E+11","1467687.39","1467687","-182.709787","-1.6050843E-4108"); 4591 mathtest(49,def,"492088.428","653.72170","492742.150","491434.706","321688884","752.74911","752","489.70960","3.94658596E+3722"); 4592 mathtest(50,def,"74303782.5","1141.68058","74304924.2","74302640.8","8.48311855E+10","65082.812","65082","926.99244","4.94849869E+8988"); 4593 mathtest(51,def,"74.7794084E+119375329","-34799355.6","7.47794084E+119375330","7.47794084E+119375330","-2.60227522E+119375338","-2.14887337E+119375323","","",""); 4594 mathtest(52,def,"-9432.08369","33735.5058","24303.4221","-43167.5895","-318196114","-0.279589218","0","-9432.08369","2.309567E+134087"); 4595 mathtest(53,def,"4249198.78E-112433155","418673051.","418673051","-418673051","1.77902502E-112433140","1.01492054E-112433157","0","4.24919878E-112433149",""); 4596 mathtest(54,def,"-2960933.02","-207933.38","-3168866.40","-2752999.64","6.15676811E+11","14.2398158","14","-49865.70","-2.75680397E-1345624"); 4597 mathtest(55,def,"29317.7519E+945600035","1.43555750","2.93177519E+945600039","2.93177519E+945600039","4.20873186E+945600039","2.04225549E+945600039","","","2.93177519E+945600039"); 4598 mathtest(56,def,"-51.1693770","-638055.414","-638106.583","638004.245","32648898.0","0.0000801958198","0","-51.1693770","-3.48266075E-1090443"); 4599 mathtest(57,def,"-756343055.","-68.9248344E+217100975","-6.89248344E+217100976","6.89248344E+217100976","5.21308198E+217100985","1.09734475E-217100968","0","-756343055","-7.06265897E-63"); 4600 mathtest(58,def,"2538.80406E+694185197","-3386499.65","2.53880406E+694185200","2.53880406E+694185200","-8.59765906E+694185206","-7.49683839E+694185193","","",""); 4601 mathtest(59,def,"-54344.0672","-8086.45235","-62430.5196","-46257.6149","439450710","6.72038427","6","-5825.35310","3.62916861E-38289"); 4602 mathtest(60,def,"3.31600054","217481648","217481651","-217481645","721169262","1.5247266E-8","0","3.31600054","3.73134969E+113224119"); 4603 mathtest(61,def,"681832.671","320341.161E+629467560","3.20341161E+629467565","-3.20341161E+629467565","2.18419069E+629467571","2.12845789E-629467560","0","681832.671","3.16981139E+17"); 4604 mathtest(62,def,"832689481","348040024E-882122501","832689481","832689481","2.89809267E-882122484","2.3925107E+882122501","","","5.77363381E+26"); 4605 mathtest(63,def,"14.5512326E+257500811","60.9979577E-647314724","1.45512326E+257500812","1.45512326E+257500812","8.87595471E-389813911","2.38552784E+904815534","","",""); 4606 mathtest(64,def,"-901.278844","449461667.","449460766","-449462568","-4.05090292E+11","-0.00000200524074","0","-901.278844",""); 4607 mathtest(65,def,"-5.32627675","-738860216E-238273224","-5.32627675","-5.32627675","3.93537399E-238273215","7.20877459E+238273215","","","-0.00000822306838"); 4608 mathtest(66,def,"-505383463.","3.18756328","-505383460","-505383466","-1.61094177E+9","-158548527","-158548527","-0.23671144","-1.29081226E+26"); 4609 mathtest(67,def,"769241.44E-720927320","-145382631.","-145382631","145382631","-1.11834344E-720927306","-5.29115091E-720927323","0","7.6924144E-720927315",""); 4610 mathtest(68,def,"-6.45038910","56736.4411E+440937167","5.67364411E+440937171","-5.67364411E+440937171","-3.65972121E+440937172","-1.13690407E-440937171","0","-6.45038910","72030.3421"); 4611 mathtest(69,def,"58.4721075","-712186829","-712186771","712186887","-4.16430648E+10","-8.21022028E-8","0","58.4721075",""); 4612 mathtest(70,def,"8244.08357","245.302828E+652007959","2.45302828E+652007961","-2.45302828E+652007961","2.02229701E+652007965","3.36077804E-652007958","0","8244.08357","67964913.9"); 4613 mathtest(71,def,"45.5361397","-76579063.9","-76579018.4","76579109.4","-3.48711495E+9","-5.94629098E-7","0","45.5361397","3.98335374E-126995367"); 4614 mathtest(72,def,"594420.54E+685263039","-952420.179","5.94420540E+685263044","5.94420540E+685263044","-5.66138117E+685263050","-6.24115861E+685263038","","",""); 4615 mathtest(73,def,"-841310701.","9398110.4","-831912591","-850708811","-7.90673085E+15","-89.5191337","-89","-4878875.4","1.30001466E+83877722"); 4616 mathtest(74,def,"904392146E-140100276","168116093.","168116093","-168116093","1.52042874E-140100259","5.37956914E-140100276","0","9.04392146E-140100268",""); 4617 mathtest(75,def,"-907324792E+685539670","-15.6902171","-9.07324792E+685539678","-9.07324792E+685539678","1.42361230E+685539680","5.78274211E+685539677","","",""); 4618 mathtest(76,def,"987013606.","-26818.3572E+560907442","-2.68183572E+560907446","2.68183572E+560907446","-2.64700834E+560907455","-3.68036565E-560907438","0","987013606","1.0399934E-27"); 4619 mathtest(77,def,"-741317564","630.241530E-212782946","-741317564","-741317564","-4.67209116E-212782935","-1.1762436E+212782952","","","1.65968527E+53"); 4620 mathtest(78,def,"61867907.2","-139204670","-77336763","201072577","-8.61230161E+15","-0.444438446","0","61867907.2",""); 4621 mathtest(79,def,"-273.622743E+531282717","-4543.68684","-2.73622743E+531282719","-2.73622743E+531282719","1.24325606E+531282723","6.02204229E+531282715","","",""); 4622 mathtest(80,def,"-383588949.","-428640583.","-812229532","45051634","1.64421791E+17","0.89489648","0","-383588949",""); 4623 mathtest(81,def,"-56182.2686","32.7741649","-56149.4944","-56215.0428","-1841326.94","-1714.22426","-1714","-7.3499614","-5.45476402E+156"); 4624 mathtest(82,def,"-6366384.30","332014.980","-6034369.32","-6698399.28","-2.11373496E+12","-19.1749911","-19","-58099.680","-3.05392399E+2258994"); 4625 mathtest(83,def,"-1.27897702","-8213776.03E-686519123","-1.27897702","-1.27897702","1.05052308E-686519116","1.55711212E+686519116","","","0.139668371"); 4626 mathtest(84,def,"65.4059036","401162145E+884155506","4.01162145E+884155514","-4.01162145E+884155514","2.62383726E+884155516","1.63041066E-884155513","0","65.4059036","18300704.1"); 4627 mathtest(85,def,"-20630916.8","158987411.E-480500612","-20630916.8","-20630916.8","-3.28005605E-480500597","-1.29764468E+480500611","","","4.25634728E+14"); 4628 mathtest(86,def,"-4.72705853","-97626742.4","-97626747.1","97626737.7","461487325","4.84197097E-8","0","-4.72705853","2.92654449E-65858120"); 4629 mathtest(87,def,"8.43528169","-4573.45752","-4565.02224","4581.89280","-38578.4025","-0.00184439927","0","8.43528169","8.84248688E-4236"); 4630 mathtest(88,def,"1.91075189","-704247089.","-704247087","704247091","-1.34564146E+9","-2.71318394E-9","0","1.91075189","6.84547494E-198037309"); 4631 mathtest(89,def,"31997198E-551746308","326.892584","326.892584","-326.892584","1.04596467E-551746298","9.78829119E-551746304","0","3.1997198E-551746301",""); 4632 mathtest(90,def,"127589.213","84184304.","84311893.2","-84056714.8","1.07410091E+13","0.00151559385","0","127589.213","2.87917042E+429829394"); 4633 mathtest(91,def,"714494248","-7025063.59","707469185","721519312","-5.01936753E+15","-101.706446","-101","4962825.41","1.65018516E-62199908"); 4634 mathtest(92,def,"-52987680.2E+279533503","-42014114.8","-5.29876802E+279533510","-5.29876802E+279533510","2.22623048E+279533518","1.26118759E+279533503","","",""); 4635 mathtest(93,def,"-8795.0513","-225294.394E-884414238","-8795.05130","-8795.05130","1.98147575E-884414229","3.90380388E+884414236","","","1.2927759E-8"); 4636 mathtest(94,def,"83280.1394","161566354.","161649634","-161483074","1.34552685E+13","0.000515454718","0","83280.1394","5.30774809E+794993940"); 4637 mathtest(95,def,"112.877897","-9.96481666","102.913080","122.842714","-1124.80755","-11.3276441","-11","3.26491374","2.97790545E-21"); 4638 mathtest(96,def,"-572542.121E+847487397","433.843420","-5.72542121E+847487402","-5.72542121E+847487402","-2.48393632E+847487405","-1.3196976E+847487400","","",""); 4639 mathtest(97,def,"4709649.89","20949266.4","25658916.3","-16239616.5","9.86637102E+13","0.224812163","0","4709649.89","4.85293644E+139794213"); 4640 mathtest(98,def,"-9475.19322","-30885.2475E+584487341","-3.08852475E+584487345","3.08852475E+584487345","2.92643688E+584487349","3.06787026E-584487342","0","-9475.19322","-1.17553557E-12"); 4641 mathtest(99,def,"-213230447.","864.815822E+127783046","8.64815822E+127783048","-8.64815822E+127783048","-1.84405064E+127783057","-2.46561686E-127783041","0","-213230447","-9.11261361E+74"); 4642 mathtest(100,def,"-89.1168786E+403375873","6464.05744","-8.91168786E+403375874","-8.91168786E+403375874","-5.76056622E+403375878","-1.37865233E+403375871","","",""); 4643 mathtest(101,def,"61774.4958","-14000.7706","47773.7252","75775.2664","-864890545","-4.41222112","-4","5771.4134","7.59030407E-67077"); 4644 mathtest(102,def,"1.60731414","7.04330293E-427033419","1.60731414","1.60731414","1.13208004E-427033418","2.28204602E+427033418","","","27.7143921"); 4645 mathtest(103,def,"7955012.51","-230117662.","-222162650","238072675","-1.83058888E+15","-0.0345693261","0","7955012.51",""); 4646 mathtest(104,def,"4086661.08","1.77621994","4086662.86","4086659.30","7258808.90","2300762.98","2300762","1.73840572","1.67007988E+13"); 4647 mathtest(105,def,"-610.076931","-207.658306","-817.735237","-402.418625","126687.542","2.93788841","2","-194.760319","4.36518377E-580"); 4648 mathtest(106,def,"-98.6353697","-99253.3899E-716309653","-98.6353697","-98.6353697","9.78989481E-716309647","9.93773309E+716309649","","","1.14729007E-20"); 4649 mathtest(107,def,"-959923730","409.125542E-900295528","-959923730","-959923730","-3.92729316E-900295517","-2.3462816E+900295534","","","8.49076677E+35"); 4650 mathtest(108,def,"379965133","-8.15869657","379965125","379965141","-3.10002023E+9","-46571793.6","-46571793","5.19214999","2.30170697E-69"); 4651 mathtest(109,def,"833.646797","1389499.46E-443407251","833.646797","833.646797","1.15835177E-443407242","5.99961944E+443407247","","","833.646797"); 4652 mathtest(110,def,"2314933.4E-646489194","-7401538.17","-7401538.17","7401538.17","-1.71340679E-646489181","-3.12763826E-646489195","0","2.3149334E-646489188",""); 4653 mathtest(111,def,"808525347","-5959.74667E+58232168","-5.95974667E+58232171","5.95974667E+58232171","-4.81860624E+58232180","-1.35664382E-58232163","0","808525347","3.5796302E-54"); 4654 mathtest(112,def,"-17220490.6E+726428704","19.9855688","-1.72204906E+726428711","-1.72204906E+726428711","-3.44161300E+726428712","-8.61646259E+726428709","","",""); 4655 mathtest(113,def,"59015.9705","-72070405.4E+322957279","-7.20704054E+322957286","7.20704054E+322957286","-4.25330492E+322957291","-8.18865527E-322957283","0","59015.9705","4.01063488E-34"); 4656 mathtest(114,def,"16411470E+578192008","497470.005E-377473621","1.64114700E+578192015","1.64114700E+578192015","8.16421406E+200718399","3.29898684E+955665630","","",""); 4657 mathtest(115,def,"-107.353544E+609689808","-659.50136E-456711743","-1.07353544E+609689810","-1.07353544E+609689810","7.07998083E+152978069","","","",""); 4658 mathtest(116,def,"786.134163","-53.0292275E-664419768","786.134163","786.134163","-4.16880874E-664419764","-1.48245449E+664419769","","","3.33055532E-15"); 4659 mathtest(117,def,"23.5414714","5000786.91","5000810.45","-5000763.37","117725882","0.0000047075534","0","23.5414714","4.4895618E+6860247"); 4660 mathtest(118,def,"-69775.6113","561292120.","561222344","-561361896","-3.91645008E+13","-0.000124312473","0","-69775.6113",""); 4661 mathtest(119,def,"919043.871","-71606613.7","-70687569.8","72525657.6","-6.58096194E+13","-0.0128346227","0","919043.871","3.05862429E-427014317"); 4662 mathtest(120,def,"-27667.1915","-293455.107E-789181924","-27667.1915","-27667.1915","8.11907864E-789181915","9.42808315E+789181922","","","-4.72176938E-14"); 4663 mathtest(121,def,"-908603625.","-982.409273E+449441134","-9.82409273E+449441136","9.82409273E+449441136","8.92620627E+449441145","9.2487281E-449441129","0","-908603625","2.60768632E-90"); 4664 mathtest(122,def,"847.113351","5.71511268","852.828464","841.398238","4841.34825","148.223386","148","1.27667436","3.69529538E+17"); 4665 mathtest(123,def,"-992140475","3.82918218","-992140471","-992140479","-3.79908663E+9","-259099836","-259099836","-0.14787752","9.68930595E+35"); 4666 mathtest(124,def,"-12606437.5","268123145E+362798858","2.68123145E+362798866","-2.68123145E+362798866","-3.38007767E+362798873","-4.70173416E-362798860","0","-12606437.5","-2.00344362E+21"); 4667 mathtest(125,def,"3799470.64","-264.703992","3799205.94","3799735.34","-1.00573505E+9","-14353.6583","-14353","174.242824","2.3625466E-1744"); 4668 mathtest(126,def,"-8.11070247","-931284056.E-654288974","-8.11070247","-8.11070247","7.55336789E-654288965","8.70916067E+654288965","","","-6.58375662E-9"); 4669 mathtest(127,def,"-242660177.","-6.09832715E-943742415","-242660177","-242660177","1.47982115E-943742406","3.97912692E+943742422","","","4.89788901E-51"); 4670 mathtest(128,def,"76.1463803","-45.6758006E-636907996","76.1463803","76.1463803","-3.47804688E-636907993","-1.66710554E+636907996","","","3.90619287E-10"); 4671 mathtest(129,def,"761185.862","-70878470.9E+221214712","-7.08784709E+221214719","7.08784709E+221214719","-5.39516900E+221214725","-1.07393099E-221214714","0","761185.862","6.75406144E-42"); 4672 mathtest(130,def,"6203606.54","-195.92748E-833512061","6203606.54","6203606.54","-1.21545700E-833512052","-3.1662769E+833512065","","","2.59843292E-14"); 4673 mathtest(131,def,"-163274837.","95.0448550E+887876533","9.50448550E+887876534","-9.50448550E+887876534","-1.55184332E+887876543","-1.71787139E-887876527","0","-163274837","1.34645731E+82"); 4674 mathtest(132,def,"2.38638190","-807986179.","-807986177","807986181","-1.92816359E+9","-2.95349347E-9","0","2.38638190","1.19029305E-305208656"); 4675 mathtest(133,def,"-109022296E-811981158","7.19685680","7.19685680","-7.19685680","-7.84617852E-811981150","-1.51485988E-811981151","0","-1.09022296E-811981150",""); 4676 mathtest(134,def,"-559250.780E-273710421","-393780811.","-393780811","393780811","2.20222226E-273710407","1.42020831E-273710424","0","-5.59250780E-273710416",""); 4677 mathtest(135,def,"-88021.9966E+555334642","7599686.64E+818884053","7.59968664E+818884059","-7.59968664E+818884059","","-1.15823192E-263549413","0","-8.80219966E+555334646",""); 4678 mathtest(136,def,"194.317648E-197450009","-930.979064","-930.979064","930.979064","-1.80905662E-197450004","-2.08723972E-197450010","0","1.94317648E-197450007",""); 4679 mathtest(137,def,"9495479.65","7405697.96","16901177.6","2089781.69","7.03206543E+13","1.28218565","1","2089781.69","1.0135446E+51673383"); 4680 mathtest(138,def,"-1656.28925","-163050511E-682882380","-1656.28925","-1656.28925","2.70058809E-682882369","1.01581359E+682882375","","","3.64525265E-7"); 4681 mathtest(139,def,"95581.3784E+64262149","-99.2879365","9.55813784E+64262153","9.55813784E+64262153","-9.49007783E+64262155","-9.62668596E+64262151","","",""); 4682 mathtest(140,def,"643761.452","3.73446939","643765.186","643757.718","2404107.44","172383.647","172383","2.41514363","1.71751236E+23"); 4683 mathtest(141,def,"7960.49866E-129827423","3220.22850","3220.22850","-3220.22850","2.56346247E-129827416","2.47202913E-129827423","0","7.96049866E-129827420",""); 4684 mathtest(142,def,"-6356.64112E-707203818","1805054.98","1805054.98","-1805054.98","-1.14740867E-707203808","-3.52157756E-707203821","0","-6.35664112E-707203815",""); 4685 mathtest(143,def,"2.3904042","8476.52006","8478.91046","-8474.12966","20262.3092","0.000282003013","0","2.3904042","2.00251752E+3208"); 4686 mathtest(144,def,"-713298.658","-957.782729","-714256.441","-712340.875","683185135","744.739528","744","-708.307624","3.68122321E-5608"); 4687 mathtest(145,def,"607779233.E-820497365","-20.1188742E-857318323","6.07779233E-820497357","6.07779233E-820497357","","-3.02094057E+36820965","","",""); 4688 mathtest(146,def,"-205888251","-908.792922E+250680613","-9.08792922E+250680615","9.08792922E+250680615","1.87109785E+250680624","2.26551336E-250680608","0","-205888251","-1.5042358E-75"); 4689 mathtest(147,def,"51542399.1","-23212.2414","51519186.9","51565611.3","-1.19641461E+12","-2220.4835","-2220","11223.1920","1.71641348E-179015"); 4690 mathtest(148,def,"4.44287230","158923023","158923027","-158923019","706074697","2.79561275E-8","0","4.44287230","7.12573416E+102928693"); 4691 mathtest(149,def,"-79123682.6","-3.8571770","-79123686.5","-79123678.8","305194049","20513365.8","20513365","-2.9293950","2.55137345E-32"); 4692 mathtest(150,def,"-80.3324347E-569715030","883142.351","883142.351","-883142.351","-7.09449752E-569715023","-9.09620455E-569715035","0","-8.03324347E-569715029",""); 4693 mathtest(151,def,"13637.483","-52798.5631","-39161.0801","66436.0461","-720039507","-0.258292692","0","13637.483","1.47163791E-218310"); 4694 mathtest(152,def,"6.42934843E-276476458","84057440.0E-388039782","6.42934843E-276476458","6.42934843E-276476458","5.40434570E-664516232","7.64875593E+111563316","","",""); 4695 mathtest(153,def,"-5.64133087","-17401297.","-17401302.6","17401291.4","98166473.9","3.24190253E-7","0","-5.64133087","-1.25908916E-13075014"); 4696 mathtest(154,def,"95469.7057E+865733824","198.829749","9.54697057E+865733828","9.54697057E+865733828","1.89822176E+865733831","4.80158056E+865733826","","",""); 4697 mathtest(155,def,"-416466.209","-930153427","-930569893","929736961","3.87377472E+14","0.000447739262","0","-416466.209",""); 4698 mathtest(156,def,"-1541733.85","-1.99208708","-1541735.84","-1541731.86","3071268.08","773928.944","773928","-1.88034976","4.20708401E-13"); 4699 mathtest(157,def,"-39152691.8","-645131748.","-684284440","605979056","2.52586445E+16","0.0606894513","0","-39152691.8",""); 4700 mathtest(158,def,"113.939979","-58282550.4","-58282436.5","58282664.3","-6.64071257E+9","-0.0000019549587","0","113.939979","2.106557E-119868330"); 4701 mathtest(159,def,"-324971.736","-9517.15154","-334488.888","-315454.585","3.09280526E+9","34.1459033","34","-1388.58364","-5.82795263E-52457"); 4702 mathtest(160,def,"-76.9436744","-9548122.75E-273599728","-76.9436744","-76.9436744","7.34667648E-273599720","8.05851332E+273599722","","","1.37489895E-19"); 4703 mathtest(161,def,"-430393.282","-70.2551505","-430463.537","-430323.027","30237344.8","6126.14561","6126","-10.2300370","4.26006409E-395"); 4704 mathtest(162,def,"-3308051.90","-349433799.E+397813188","-3.49433799E+397813196","3.49433799E+397813196","1.15594514E+397813203","9.46689161E-397813191","0","-3308051.90","-2.76237768E-20"); 4705 mathtest(163,def,"23.1543212E-655822712","5848.20853","5848.20853","-5848.20853","1.35411299E-655822707","3.95921607E-655822715","0","2.31543212E-655822711",""); 4706 mathtest(164,def,"-174.261308E-82902077","-200096204.","-200096204","200096204","3.48690262E-82902067","8.70887626E-82902084","0","-1.74261308E-82902075",""); 4707 mathtest(165,def,"-50669105.2","9105789.01E+609889700","9.10578901E+609889706","-9.10578901E+609889706","-4.61382181E+609889714","-5.56449366E-609889700","0","-50669105.2","-2.20135008E+69"); 4708 mathtest(166,def,"424768856.","-971.71757","424767884","424769828","-4.12755361E+11","-437132.012","-437132","11.19076","2.72651473E-8387"); 4709 mathtest(167,def,"7181.2767","999117.918","1006299.19","-991936.641","7.17494223E+9","0.00718761677","0","7181.2767","3.09655124E+3852800"); 4710 mathtest(168,def,"8096417.07E-433694528","-68.4863363","-68.4863363","68.4863363","-5.54493942E-433694520","-1.18219451E-433694523","0","8.09641707E-433694522",""); 4711 mathtest(169,def,"1236287.5","-7119.97299E-176200498","1236287.50","1236287.50","-8.80233361E-176200489","-1.73636544E+176200500","","","2.26549784E-43"); 4712 mathtest(170,def,"-752995833E-654401067","-15.2736930E+803939983","-1.52736930E+803939984","1.52736930E+803939984","1.15010272E+149538926","","0","-7.52995833E-654401059",""); 4713 mathtest(171,def,"702992.459","-312.689474","702679.770","703305.148","-219818342","-2248.21274","-2248","66.521448","8.02493322E-1831"); 4714 mathtest(172,def,"-4414.38805","-17680.4630E-584364536","-4414.38805","-4414.38805","7.80484246E-584364529","2.49676044E+584364535","","","5.13167312E-8"); 4715 mathtest(173,def,"9.46350807","7826.65424","7836.11775","-7817.19073","74067.6056","0.00120913839","0","9.46350807","3.63271495E+7639"); 4716 mathtest(174,def,"2078153.7","-16934607.3E+233594439","-1.69346073E+233594446","1.69346073E+233594446","-3.51927168E+233594452","-1.2271638E-233594440","0","2078153.7","2.31549939E-13"); 4717 mathtest(175,def,"-9359.74629","7.07761788E+252457696","7.07761788E+252457696","-7.07761788E+252457696","-6.62447077E+252457700","-1.32244301E-252457693","0","-9359.74629","-6.29286677E+27"); 4718 mathtest(176,def,"66.2319284E+730468479","25.9391685E+221147044","6.62319284E+730468480","6.62319284E+730468480","1.71800115E+951615526","2.55335588E+509321435","","",""); 4719 mathtest(177,def,"317997088.E-90968742","-977426.461","-977426.461","977426.461","-3.10818768E-90968728","-3.2534119E-90968740","0","3.17997088E-90968734",""); 4720 mathtest(178,def,"227473386","-6759.61390","227466626","227480146","-1.53763226E+12","-33651.8312","-33651","5618.65110","1.40992627E-56493"); 4721 mathtest(179,def,"-392019.462","-245456.503","-637475.965","-146562.959","9.62237263E+10","1.59710359","1","-146562.959","-3.08656533E-1372917"); 4722 mathtest(180,def,"-3619556.28E+587673583","-3.45236972","-3.61955628E+587673589","-3.61955628E+587673589","1.24960465E+587673590","1.04842661E+587673589","","",""); 4723 mathtest(181,def,"-249.400704E-923930848","831102.919","831102.919","-831102.919","-2.07277653E-923930840","-3.00084019E-923930852","0","-2.49400704E-923930846",""); 4724 mathtest(182,def,"65234.2739E+154949914","-694581895","6.52342739E+154949918","6.52342739E+154949918","-4.53105456E+154949927","-9.39187652E+154949909","","",""); 4725 mathtest(183,def,"45.2316213","-88775083.4","-88775038.2","88775128.6","-4.01544095E+9","-5.09508069E-7","0","45.2316213","1.92314254E-146962015"); 4726 mathtest(184,def,"331100375.","442.343378","331100817","331099933","1.46460058E+11","748514.37","748514","163.759708","6.64011043E+3765"); 4727 mathtest(185,def,"81.8162765","5.61239515E+467372163","5.61239515E+467372163","-5.61239515E+467372163","4.59185273E+467372165","1.45777826E-467372162","0","81.8162765","2.99942677E+11"); 4728 mathtest(186,def,"-5738.13069E+789464078","33969715.0","-5.73813069E+789464081","-5.73813069E+789464081","-1.94922664E+789464089","-1.68919012E+789464074","","",""); 4729 mathtest(187,def,"-7413.03911","2.70630320E-254858264","-7413.03911","-7413.03911","-2.00619315E-254858260","-2.73917539E+254858267","","","-4.07369842E+11"); 4730 mathtest(188,def,"-417696.182","27400.6002","-390295.582","-445096.782","-1.14451261E+10","-15.2440523","-15","-6687.1790","-1.58020334E+154017"); 4731 mathtest(189,def,"68.8538735E+655647287","3198.17933E-132454826","6.88538735E+655647288","6.88538735E+655647288","2.20207035E+523192466","2.15290846E+788102111","","",""); 4732 mathtest(190,def,"-6817.04246","434420.439","427603.397","-441237.481","-2.96146258E+9","-0.0156922692","0","-6817.04246","5.94143518E+1665390"); 4733 mathtest(191,def,"8578.27511","647042.341E-490924334","8578.27511","8578.27511","5.55050721E-490924325","1.3257672E+490924332","","","3.98473846E+23"); 4734 mathtest(192,def,"4124.11615E+733109424","597385828E+375928745","4.12411615E+733109427","4.12411615E+733109427","","6.9036056E+357180673","","",""); 4735 mathtest(193,def,"102.714400","-919017.468","-918914.754","919120.182","-94396327.8","-0.000111765449","0","102.714400","4.04295689E-1848724"); 4736 mathtest(194,def,"-4614.33015E+996778733","-433.560812E+22860599","-4.61433015E+996778736","-4.61433015E+996778736","","1.06428672E+973918135","","",""); 4737 mathtest(195,def,"457455170.","3709230.48E+677010879","3.70923048E+677010885","-3.70923048E+677010885","1.69680666E+677010894","1.23328861E-677010877","0","457455170","4.37919376E+34"); 4738 mathtest(196,def,"-2522468.15","-48482043.5","-51004511.7","45959575.4","1.22294411E+14","0.0520289156","0","-2522468.15","1.42348178E-310373595"); 4739 mathtest(197,def,"-659811384","62777.6118","-659748606","-659874162","-4.14213829E+13","-10510.2976","-10510","-18683.9820","3.4393524E+553665"); 4740 mathtest(198,def,"4424.94176","-825848.20","-821423.258","830273.142","-3.65433019E+9","-0.00535805704","0","4424.94176","3.42152775E-3010966"); 4741 mathtest(199,def,"43.6441884","-6509.89663E-614169377","43.6441884","43.6441884","-2.84119155E-614169372","-6.70428286E+614169374","","","3.31524056E-12"); 4742 mathtest(200,def,"897.388381E-843864876","84195.1369","84195.1369","-84195.1369","7.55557376E-843864869","1.06584348E-843864878","0","8.97388381E-843864874",""); 4743 mathtest(201,def,"796199825","496.76834","796200322","796199328","3.95526865E+11","1602758.79","1602758","393.91828","6.42647264E+4423"); 4744 mathtest(202,def,"573583582","1598.69521","573585181","573581983","9.16985325E+11","358782.323","358782","517.16578","9.91156302E+14004"); 4745 mathtest(203,def,"-783144270.","6347.71496","-783137922","-783150618","-4.97117660E+12","-123374.202","-123374","-1284.52496","1.28110803E+56458"); 4746 mathtest(204,def,"26909234.7","52411.5081","26961646.2","26856823.2","1.41035357E+12","513.422255","513","22131.0447","9.75836528E+389415"); 4747 mathtest(205,def,"8.21915282","24859.7841E-843282959","8.21915282","8.21915282","2.04326365E-843282954","3.30620443E+843282955","","","67.5544731"); 4748 mathtest(206,def,"-688.387710","82783.5207E-831870858","-688.387710","-688.387710","-5.69871582E-831870851","-8.31551623E+831870855","","","5.04272012E+22"); 4749 mathtest(207,def,"-9792232.","-1749.01166","-9793981.01","-9790482.99","1.71267279E+10","5598.72311","5598","-1264.72732","-8.86985674E-12228"); 4750 mathtest(208,def,"-130.765600","8.67437427","-122.091226","-139.439974","-1134.30976","-15.0749317","-15","-0.64998595","-1.11799947E+19"); 4751 mathtest(209,def,"917.259102","-368640.426","-367723.167","369557.685","-338138786","-0.00248822169","0","917.259102","8.67104255E-1092094"); 4752 mathtest(210,def,"-4.9725631","-294563717.","-294563722","294563712","1.46473667E+9","1.6881112E-8","0","-4.9725631","-6.27962584E-205187284"); 4753 mathtest(211,def,"-60962887.2E-514249661","-243021.407","-243021.407","243021.407","1.48152866E-514249648","2.5085398E-514249659","0","-6.09628872E-514249654",""); 4754 mathtest(212,def,"-55389219.8","-3772200E+981866393","-3.77220000E+981866399","3.77220000E+981866399","2.08939215E+981866407","1.46835321E-981866392","0","-55389219.8","1.06242678E-31"); 4755 mathtest(213,def,"681.666010","626886700","626887382","-626886018","4.27327356E+11","0.00000108738311","0","681.666010",""); 4756 mathtest(214,def,"6.42652138","53465894.5","53465900.9","-53465888.1","343599714","1.2019852E-7","0","6.42652138","4.61155532E+43199157"); 4757 mathtest(215,def,"561546656","651408.476","562198064","560895248","3.65796251E+14","862.049968","862","32549.688","8.6052377E+5699419"); 4758 mathtest(216,def,"7845778.36E-79951139","9.45859047","9.45859047","-9.45859047","7.42100044E-79951132","8.29487056E-79951134","0","7.84577836E-79951133","1.12648216E-719560189"); 4759 mathtest(217,def,"54486.2112","10.7565078","54496.9677","54475.4547","586081.356","5065.41828","5065","4.4991930","1.25647168E+52"); 4760 mathtest(218,def,"16576482.5","-2217720.83","14358761.7","18794203.3","-3.67620105E+13","-7.47455779","-7","1052436.69","1.38259374E-16010820"); 4761 mathtest(219,def,"61.2793787E-392070111","6.22575651","6.22575651","-6.22575651","3.81510491E-392070109","9.84288072E-392070111","0","6.12793787E-392070110",""); 4762 mathtest(220,def,"5115136.39","-653674372.","-648559236","658789508","-3.34363357E+15","-0.00782520565","0","5115136.39",""); 4763 mathtest(221,def,"-7.84238366E-416477339","-37432758.9E+97369393","-3.74327589E+97369400","3.74327589E+97369400","2.93562057E-319107938","2.09505895E-513846739","0","-7.84238366E-416477339",""); 4764 mathtest(222,def,"-387781.3E+284108380","-218085.592","-3.87781300E+284108385","-3.87781300E+284108385","8.45695144E+284108390","1.77811517E+284108380","","",""); 4765 mathtest(223,def,"-5353.17736","3.39332346E+546685359","3.39332346E+546685359","-3.39332346E+546685359","-1.81650623E+546685363","-1.57756177E-546685356","0","-5353.17736","-1.53403369E+11"); 4766 mathtest(224,def,"-20837.2900E-168652772","-8236.78305E-712819173","-2.08372900E-168652768","-2.08372900E-168652768","1.71632237E-881471937","2.52978497E+544166401","","",""); 4767 mathtest(225,def,"-98573.8722E+829022366","309011.007","-9.85738722E+829022370","-9.85738722E+829022370","-3.04604115E+829022376","-3.18997932E+829022365","","",""); 4768 mathtest(226,def,"49730750.7","-5315.10636E-299586991","49730750.7","49730750.7","-2.64324229E-299586980","-9.35649211E+299586994","","","3.28756936E-39"); 4769 mathtest(227,def,"1539523.40","-962388.581","577134.82","2501911.98","-1.48161974E+12","-1.59969001","-1","577134.819","3.10144834E-5954673"); 4770 mathtest(228,def,"81596.2121","-37600.9653","43995.2468","119197.177","-3.06809634E+9","-2.17005631","-2","6394.2815","1.97878299E-184684"); 4771 mathtest(229,def,"590146199","-1425404.61","588720794","591571604","-8.41197113E+14","-414.020128","-414","28690.46","2.04650994E-12502170"); 4772 mathtest(230,def,"196.05543","505.936305","701.991735","-309.880875","99191.5598","0.387510104","0","196.05543","8.78437397E+1159"); 4773 mathtest(231,def,"77.8058449","-642.275274","-564.469429","720.081119","-49972.7704","-0.121140963","0","77.8058449","9.33582626E-1215"); 4774 mathtest(232,def,"1468.60684","10068.138","11536.7448","-8599.5312","14786136.3","0.145866777","0","1468.60684","2.54122484E+31884"); 4775 mathtest(233,def,"4.98774767E-387968632","4.41731439E-578812376","4.98774767E-387968632","4.98774767E-387968632","2.20324496E-966781007","1.12913577E+190843744","","",""); 4776 mathtest(234,def,"981.091059","-92238.9930","-91257.9020","93220.0841","-90494851.3","-0.0106364025","0","981.091059","5.29943342E-275953"); 4777 mathtest(235,def,"-3606.24992","8290224.70","8286618.45","-8293830.95","-2.98966222E+10","-0.000435000262","0","-3606.24992","-1.23747107E+29488793"); 4778 mathtest(236,def,"-8978571.35","92243.4796","-8886327.87","-9070814.83","-8.28214663E+11","-97.3355666","-97","-30953.8288","-4.95762813E+641384"); 4779 mathtest(237,def,"-61968.1992E+810060478","474294671.E+179263414","-6.19681992E+810060482","-6.19681992E+810060482","-2.93911867E+989323905","-1.30653374E+630797060","","",""); 4780 mathtest(238,def,"61298431.6E-754429041","-2584862.79","-2584862.79","2584862.79","-1.58448035E-754429027","-2.37143851E-754429040","0","6.12984316E-754429034",""); 4781 mathtest(239,def,"621039.064","-5351539.62","-4730500.56","5972578.68","-3.32351516E+12","-0.116048672","0","621039.064","2.41163312E-31002108"); 4782 mathtest(240,def,"-19.6007605","-57905696.","-57905715.6","57905676.4","1.13499568E+9","3.38494515E-7","0","-19.6007605","1.05663646E-74829963"); 4783 mathtest(241,def,"3626.13109E+687030346","189.896004","3.62613109E+687030349","3.62613109E+687030349","6.88587804E+687030351","1.90953523E+687030347","","",""); 4784 mathtest(242,def,"-249334.026","-7.54735834E-14137188","-249334.026","-249334.026","1.88181324E-14137182","3.30359332E+14137192","","","6.69495408E-44"); 4785 mathtest(243,def,"417613928.","-925213.216","416688715","418539141","-3.86381925E+14","-451.370474","-451","342767.584","8.38430085E-7976054"); 4786 mathtest(244,def,"23.8320309","-50074996.1","-50074972.3","50075019.9","-1.19338885E+9","-4.75926765E-7","0","23.8320309","5.81466387E-68961335"); 4787 mathtest(245,def,"49789677.7","-131827812E+156412534","-1.31827812E+156412542","1.31827812E+156412542","-6.56366427E+156412549","-3.77687204E-156412535","0","49789677.7","2.00844843E-8"); 4788 mathtest(246,def,"-8907163.61E-741867246","773651.288E-472033282","7.73651288E-472033277","-7.73651288E-472033277","","-1.15131504E-269833963","0","-8.90716361E-741867240",""); 4789 mathtest(247,def,"514021711.E+463536646","617441659.","5.14021711E+463536654","5.14021711E+463536654","3.17378418E+463536663","8.32502478E+463536645","","",""); 4790 mathtest(248,def,"998175750","2.39285478","998175752","998175748","2.38848961E+9","417148487","417148486","1.30513692","9.96354828E+17"); 4791 mathtest(249,def,"873575426.","647853.152E+497450781","6.47853152E+497450786","-6.47853152E+497450786","5.65948593E+497450795","1.3484158E-497450778","0","873575426","4.44429064E+53"); 4792 mathtest(250,def,"4352626.8","-130338048.E-744560911","4352626.80","4352626.80","-5.67312881E-744560897","-3.33949055E+744560909","","","2.29746322E-7"); 4793 mathtest(251,def,"437.286960","7.37560835","444.662568","429.911352","3225.25735","59.2882565","59","2.12606735","3.05749452E+18"); 4794 mathtest(252,def,"8498280.45E+220511522","588617612","8.49828045E+220511528","8.49828045E+220511528","5.00223754E+220511537","1.44376931E+220511520","","",""); 4795 mathtest(253,def,"-5320387.77","-7673237.46","-12993625.2","2352849.69","4.08245987E+13","0.693369363","0","-5320387.77","-1.30113745E-51609757"); 4796 mathtest(254,def,"587655375","-4.9748366","587655370","587655380","-2.92348947E+9","-118125563","-118125563","0.7919942","1.42687667E-44"); 4797 mathtest(255,def,"1266098.44","-2661.64904E-642601142","1266098.44","1266098.44","-3.36990970E-642601133","-4.75681963E+642601144","","","4.92717036E-19"); 4798 mathtest(256,def,"3.92737463E+482873483","-685.522747","3.92737463E+482873483","3.92737463E+482873483","-2.69230464E+482873486","-5.72902161E+482873480","","",""); 4799 mathtest(257,def,"22826494.1","986189474.","1.00901597E+9","-963362980","2.25112482E+16","0.0231461547","0","22826494.1",""); 4800 mathtest(258,def,"-647342.380","-498816386","-499463728","498169044","3.22904986E+14","0.00129775685","0","-647342.380",""); 4801 mathtest(259,def,"393092373.","-25.7226822","393092347","393092399","-1.01113902E+10","-15281935.6","-15281935","15.5939430","3.49252839E-224"); 4802 mathtest(260,def,"2.96253492","20.7444888","23.7070237","-17.7819539","61.4562725","0.142810698","0","2.96253492","8.03402246E+9"); 4803 mathtest(261,def,"53553.3750E+386955423","-732470876","5.35533750E+386955427","5.35533750E+386955427","-3.92262875E+386955436","-7.31133165E+386955418","","",""); 4804 mathtest(262,def,"-696451.406E-286535917","-73086090.8","-73086090.8","73086090.8","5.09009107E-286535904","9.52919219E-286535920","0","-6.96451406E-286535912",""); 4805 mathtest(263,def,"1551.29957","-580358622.E+117017265","-5.80358622E+117017273","5.80358622E+117017273","-9.00310081E+117017276","-2.67300168E-117017271","0","1551.29957","7.17506711E-20"); 4806 mathtest(264,def,"-205123006.E-213752799","-78638468.6","-78638468.6","78638468.6","1.61305591E-213752783","2.60843083E-213752799","0","-2.05123006E-213752791",""); 4807 mathtest(265,def,"77632.8073","-3378542.88E+677441319","-3.37854288E+677441325","3.37854288E+677441325","-2.62285768E+677441330","-2.29781921E-677441321","0","77632.8073","2.13729331E-15"); 4808 mathtest(266,def,"3068999.37","2.21006212","3069001.58","3068997.16","6782679.25","1388648.46","1388648","1.02718624","9.41875713E+12"); 4809 mathtest(267,def,"625524274.","55.2468624","625524329","625524219","3.45582535E+10","11322349.3","11322349","16.7522224","6.21482943E+483"); 4810 mathtest(268,def,"61269134.9","-845761303.","-784492168","907030438","-5.18190634E+16","-0.0724425848","0","61269134.9",""); 4811 mathtest(269,def,"-2840.12099","-2856.76731E-82743650","-2840.12099","-2840.12099","8.11356480E-82743644","9.94173022E+82743649","","","-4.36505254E-11"); 4812 mathtest(270,def,"8.9538781","-7.56603391","1.38784419","16.5199120","-67.7453453","-1.18343087","-1","1.38784419","2.42053061E-8"); 4813 mathtest(271,def,"-56233547.2","509752530","453518983","-565986077","-2.86651930E+16","-0.110315386","0","-56233547.2",""); 4814 mathtest(272,def,"-3167.47853E-854859497","-110852115","-110852115","110852115","3.51121694E-854859486","2.85739116E-854859502","0","-3.16747853E-854859494",""); 4815 mathtest(273,def,"-5652.52092","-632243244.","-632248897","632237592","3.57376816E+12","0.00000894042123","0","-5652.52092",""); 4816 mathtest(274,def,"-946.009928","820090.66E-589278015","-946.009928","-946.009928","-7.75813906E-589278007","-1.15354311E+589278012","","","6.41454053E+23"); 4817 mathtest(275,def,"-367.757758","-959.626016","-1327.38377","591.868258","352909.912","0.383230292","0","-367.757758","1.14982199E-2463"); 4818 mathtest(276,def,"809926721.E-744611554","-67.6560549","-67.6560549","67.6560549","-5.47964467E-744611544","-1.19712378E-744611547","0","8.09926721E-744611546",""); 4819 mathtest(277,def,"-1725.08555","75586.3031","73861.2176","-77311.3887","-130392839","-0.0228227269","0","-1725.08555","3.70540587E+244657"); 4820 mathtest(278,def,"2659.84191E+29314492","-74372.4551E+518196680","-7.43724551E+518196684","7.43724551E+518196684","-1.97818973E+547511180","-3.5763804E-488882190","0","2.65984191E+29314495","1.06171811E-205201468"); 4821 mathtest(279,def,"-91.1431113","12147507.0","12147415.9","-12147598.1","-1.10716158E+9","-0.00000750303015","0","-91.1431113","-1.52417006E+23805759"); 4822 mathtest(280,def,"-1136778.91E+697783878","-801552569.","-1.13677891E+697783884","-1.13677891E+697783884","9.11188056E+697783892","1.41822128E+697783875","","",""); 4823 mathtest(281,def,"73123773.0E+433334149","63.3548930","7.31237730E+433334156","7.31237730E+433334156","4.63274881E+433334158","1.15419298E+433334155","","",""); 4824 mathtest(282,def,"-9765484.8","7979.90802E-234029715","-9765484.80","-9765484.80","-7.79276705E-234029705","-1.22375907E+234029718","","","8.27085614E+55"); 4825 mathtest(283,def,"-695010288","-8.26582820","-695010296","-695010280","5.74483564E+9","84082353.4","84082353","-3.45024540","1.83683495E-71"); 4826 mathtest(284,def,"23975643.3E-155955264","-505547.692E+137258948","-5.05547692E+137258953","5.05547692E+137258953","-1.21208311E-18696303","-4.7425087E-293214211","0","2.39756433E-155955257","1.26225952E+779776283"); 4827 mathtest(285,def,"2862.95921","-32601248.6E-605861333","2862.95921","2862.95921","-9.33360449E-605861323","-8.78174712E+605861328","","","4.26142175E-11"); 4828 mathtest(286,def,"-13.133518E+246090516","-8.71269925E-945092108","-1.31335180E+246090517","-1.31335180E+246090517","1.14428392E-699001590","","","",""); 4829 mathtest(287,def,"-34671.2232","817710.762","783039.539","-852381.985","-2.83510323E+10","-0.0424003508","0","-34671.2232","-5.30788828E+3712382"); 4830 mathtest(288,def,"-22464769","62.4366060","-22464706.6","-22464831.4","-1.40262393E+9","-359801.252","-359801","-15.7245940","6.21042536E+455"); 4831 mathtest(289,def,"-9458.60887E-563051963","5676056.01","5676056.01","-5676056.01","-5.36875937E-563051953","-1.66640513E-563051966","0","-9.45860887E-563051960",""); 4832 mathtest(290,def,"-591.924123E-95331874","-134.596188","-134.596188","134.596188","7.96707305E-95331870","4.39777777E-95331874","0","-5.91924123E-95331872",""); 4833 mathtest(291,def,"-182566085.E+68870646","-960345993.","-1.82566085E+68870654","-1.82566085E+68870654","1.75326608E+68870663","1.9010449E+68870645","","",""); 4834 mathtest(292,def,"8232.54893","-99822004E+891979845","-9.98220040E+891979852","9.98220040E+891979852","-8.21789532E+891979856","-8.24722867E-891979850","0","8232.54893","6.99289156E-40"); 4835 mathtest(293,def,"-4336.94317","-819373.601E+563233430","-8.19373601E+563233435","8.19373601E+563233435","3.55357674E+563233439","5.29299841E-563233433","0","-4336.94317","7.98969405E-30"); 4836 mathtest(294,def,"-2.09044362E-876527908","-6515463.33","-6515463.33","6515463.33","1.36202087E-876527901","3.20843433E-876527915","0","-2.09044362E-876527908",""); 4837 mathtest(295,def,"-194343.344","1.95929977","-194341.385","-194345.303","-380776.869","-99190.2041","-99190","-0.39981370","3.77693354E+10"); 4838 mathtest(296,def,"-326002.927","4215.99030","-321786.937","-330218.917","-1.37442518E+9","-77.3253503","-77","-1371.67390","5.51875821E+23243"); 4839 mathtest(297,def,"-12037.8590E+876429044","314.81827","-1.20378590E+876429048","-1.20378590E+876429048","-3.78973794E+876429050","-3.82374854E+876429045","","",""); 4840 mathtest(298,def,"21036045.4E-162804809","-91.7149219","-91.7149219","91.7149219","-1.92931926E-162804800","-2.2936339E-162804804","0","2.10360454E-162804802",""); 4841 mathtest(299,def,"-947019.534","9916.29280","-937103.241","-956935.827","-9.39092299E+9","-95.5013686","-95","-4971.71800","3.76029022E+59261"); 4842 mathtest(300,def,"-5985.84136","-12.4090184E-12364204","-5985.84136","-5985.84136","7.42784156E-12364200","4.82378313E+12364206","","","-0.000167060893"); 4843 mathtest(301,def,"-85344379.4","-6783.08669E+218840215","-6.78308669E+218840218","6.78308669E+218840218","5.78898324E+218840226","1.25819385E-218840211","0","-85344379.4","-3.03232347E-56"); 4844 mathtest(302,def,"-94.1947070E-938257103","15003.240","15003.2400","-15003.2400","-1.41322580E-938257097","-6.27829102E-938257106","0","-9.41947070E-938257102",""); 4845 mathtest(303,def,"-4846233.6","-8289769.76","-13136003.4","3443536.16","4.01741607E+13","0.584604125","0","-4846233.6","4.25077524E-55420465"); 4846 mathtest(304,def,"67.9147198","-108373645.E+291715415","-1.08373645E+291715423","1.08373645E+291715423","-7.36016573E+291715424","-6.26671916E-291715422","0","67.9147198","0.0147243485"); 4847 mathtest(305,def,"1958.77994","5.57285137E+690137826","5.57285137E+690137826","-5.57285137E+690137826","1.09159895E+690137830","3.51486126E-690137824","0","1958.77994","5.64824968E+19"); 4848 mathtest(306,def,"22780314.3","8805279.83","31585594.1","13975034.5","2.00587042E+14","2.58711986","2","5169754.64","2.39132169E+64785373"); 4849 mathtest(307,def,"596745.184","197602423.","198199168","-197005678","1.17918294E+14","0.00301992848","0","596745.184",""); 4850 mathtest(308,def,"171.340497","-480349.924","-480178.584","480521.264","-82303394.7","-0.000356699332","0","171.340497","2.17914102E-1073035"); 4851 mathtest(309,def,"824.65555","-379287.530","-378462.875","380112.186","-312781567","-0.00217422268","0","824.65555","6.35829256E-1106108"); 4852 mathtest(310,def,"19.3164031","-9207644.24E+988115069","-9.20764424E+988115075","9.20764424E+988115075","-1.77858568E+988115077","-2.09786592E-988115075","0","19.3164031","2.67093711E-12"); 4853 mathtest(311,def,"-3123.77646E+177814265","973284435.E+383256112","9.73284435E+383256120","-9.73284435E+383256120","-3.04032301E+561070389","-3.20952062E-205441853","0","-3.12377646E+177814268",""); 4854 mathtest(312,def,"-850.123915E+662955309","6774849.81E-846576865","-8.50123915E+662955311","-8.50123915E+662955311","-5.75946184E-183621547","","","",""); 4855 mathtest(313,def,"-23349.7724","2921.35355","-20428.4189","-26271.1260","-68212940.5","-7.99279238","-7","-2900.29755","-5.6705546E+12759"); 4856 mathtest(314,def,"18886653.3","568707476.","587594129","-549820823","1.07409809E+16","0.0332097855","0","18886653.3",""); 4857 mathtest(315,def,"-90552818.0","-542.03563E-986606878","-90552818.0","-90552818.0","4.90828538E-986606868","1.67060638E+986606883","","","-1.64244241E-40"); 4858 mathtest(316,def,"41501126.1E+791838765","-69.6651675E+204268348","4.15011261E+791838772","4.15011261E+791838772","-2.89118290E+996107122","-5.95722763E+587570422","","",""); 4859 mathtest(317,def,"76783193.3E-271488154","3765.01829E-520346003","7.67831933E-271488147","7.67831933E-271488147","2.89090127E-791834146","2.03938434E+248857853","","",""); 4860 mathtest(318,def,"4192.9928","987822007E-146560989","4192.99280","4192.99280","4.14193056E-146560977","4.24468454E+146560983","","","1.67973653E+36"); 4861 mathtest(319,def,"-891845.629","48277955.","47386109.4","-49169800.6","-4.30564831E+13","-0.0184731443","0","-891845.629","-6.32964147E+287267817"); 4862 mathtest(320,def,"334.901176","-7609296.55E+447340228","-7.60929655E+447340234","7.60929655E+447340234","-2.54836236E+447340237","-4.40121073E-447340233","0","334.901176","6.31926575E-21"); 4863 mathtest(321,def,"4.49868636","-341880896E-447251873","4.49868636","4.49868636","-1.53801492E-447251864","-1.31586363E+447251865","","","0.010983553"); 4864 mathtest(322,def,"807615.58","-314286480","-313478865","315094096","-2.53822658E+14","-0.00256967968","0","807615.58",""); 4865 mathtest(323,def,"-37.7457954","53277.8129E-859225538","-37.7457954","-37.7457954","-2.01101343E-859225532","-7.08471188E+859225534","","","-76620134.1"); 4866 mathtest(324,def,"-28671081.","98.8819623","-28670982.1","-28671179.9","-2.83505275E+9","-289952.589","-289952","-58.2671904","-1.93625566E+738"); 4867 mathtest(325,def,"-89752.2106E-469496896","99.9879961","99.9879961","-99.9879961","-8.97414368E-469496890","-8.97629857E-469496894","0","-8.97522106E-469496892",""); 4868 mathtest(326,def,"-497983567E-13538052","39.4578742","39.4578742","-39.4578742","-1.96493729E-13538042","-1.26206385E-13538045","0","-4.97983567E-13538044","-1.55376543E-527983689"); 4869 mathtest(327,def,"845739221E-654202565","-33313.1551","-33313.1551","33313.1551","-2.81742418E-654202552","-2.53875449E-654202561","0","8.45739221E-654202557",""); 4870 mathtest(328,def,"742.332067E+537827843","-4532.70023E-855387414","7.42332067E+537827845","7.42332067E+537827845","-3.36476873E-317559565","","","",""); 4871 mathtest(329,def,"-893.48654","670389960","670389067","-670390853","-5.98984406E+11","-0.00000133278628","0","-893.48654",""); 4872 mathtest(330,def,"1.37697162","-915.737474E-351578724","1.37697162","1.37697162","-1.26094451E-351578721","-1.50367508E+351578721","","","0.0561920784"); 4873 mathtest(331,def,"-65.2839808E+550288403","-121389.306","-6.52839808E+550288404","-6.52839808E+550288404","7.92477712E+550288409","5.37806689E+550288399","","",""); 4874 mathtest(332,def,"-30346603.E+346067390","792661.544","-3.03466030E+346067397","-3.03466030E+346067397","-2.40545852E+346067403","-3.82844396E+346067391","","",""); 4875 mathtest(333,def,"-61170.7065","-453731131.","-453792302","453669960","2.77550538E+13","0.000134817081","0","-61170.7065",""); 4876 mathtest(334,def,"6569.51133","13.8706351E+399434914","1.38706351E+399434915","-1.38706351E+399434915","9.11232944E+399434918","4.73627291E-399434912","0","6569.51133","6569.51133"); 4877 mathtest(335,def,"300703925.","-3156736.8","297547188","303860662","-9.49243146E+14","-95.2578387","-95","813929.0","4.18609114E-26763256"); 4878 mathtest(336,def,"192138216E+353011592","-473.080633","1.92138216E+353011600","1.92138216E+353011600","-9.08968688E+353011602","-4.06142637E+353011597","","",""); 4879 mathtest(337,def,"8607.64794","-34740.3367","-26132.6888","43347.9846","-299032588","-0.247770999","0","8607.64794","1.29604519E-136698"); 4880 mathtest(338,def,"-67913.8241","-93815.4229","-161729.247","25901.5988","6.37136413E+9","0.723908948","0","-67913.8241","-6.96355203E-453311"); 4881 mathtest(339,def,"34.5559455","-998799398.","-998799364","998799433","-3.45144576E+10","-3.45974833E-8","0","34.5559455",""); 4882 mathtest(340,def,"387995.328","990199543.E-124623607","387995.328","387995.328","3.84192796E-124623593","3.91835495E+124623603","","","7.73152138E+55"); 4883 mathtest(341,def,"-471.09166E-83521919","-441222368","-441222368","441222368","2.07856178E-83521908","1.06769669E-83521925","0","-4.7109166E-83521917",""); 4884 mathtest(342,def,"-97834.3858","70779789.8E+502166065","7.07797898E+502166072","-7.07797898E+502166072","-6.92469726E+502166077","-1.38223617E-502166068","0","-97834.3858","-8.57907886E+34"); 4885 mathtest(343,def,"7732331.06","-952719.482E+115325505","-9.52719482E+115325510","9.52719482E+115325510","-7.36674244E+115325517","-8.11606271E-115325505","0","7732331.06","1.30886724E-69"); 4886 mathtest(344,def,"23.2745547","2.23194245E-221062592","23.2745547","23.2745547","5.19474666E-221062591","1.04279368E+221062593","","","541.704896"); 4887 mathtest(345,def,"671.083363E-218324205","-787150031","-787150031","787150031","-5.28243290E-218324194","-8.52548227E-218324212","0","6.71083363E-218324203",""); 4888 mathtest(346,def,"365167.80","-80263.6516","284904.148","445431.452","-2.93097011E+10","-4.54960362","-4","44113.1936","1.27052227E-446468"); 4889 mathtest(347,def,"-1.43297604E-65129780","56.598733E-135581942","-1.43297604E-65129780","-1.43297604E-65129780","-8.11046283E-200711721","-2.53181646E+70452160","","","8.65831881E-390778680"); 4890 mathtest(348,def,"416998859.","260.220323E-349285593","416998859","416998859","1.08511578E-349285582","1.60248383E+349285599","","","7.25111178E+25"); 4891 mathtest(349,def,"7267.17611E+862630607","4021.56861","7.26717611E+862630610","7.26717611E+862630610","2.92254473E+862630614","1.80705014E+862630607","","",""); 4892 mathtest(350,def,"12.2142434E+593908740","5.27236571E-396050748","1.22142434E+593908741","1.22142434E+593908741","6.43979581E+197857993","2.3166533E+989959488","","",""); 4893 mathtest(351,def,"-28.591932","-1.79153238E-817064576","-28.5919320","-28.5919320","5.12233720E-817064575","1.59594838E+817064577","","","0.00122324372"); 4894 mathtest(352,def,"590.849666","753424.306E+277232744","7.53424306E+277232749","-7.53424306E+277232749","4.45160500E+277232752","7.84219014E-277232748","0","590.849666","1.48530607E+22"); 4895 mathtest(353,def,"1.7270628","-1325026.67","-1325024.94","1325028.40","-2288404.27","-0.00000130341739","0","1.7270628","2.09260036E-314440"); 4896 mathtest(354,def,"33402118.","-5534.83745","33396583.2","33407652.8","-1.84875294E+11","-6034.8869","-6034","4908.82670","8.14473913E-41645"); 4897 mathtest(355,def,"-439842.506","-775110.807","-1214953.31","335268.301","3.40926680E+11","0.567457584","0","-439842.506","-1.84678472E-4374182"); 4898 mathtest(356,def,"-248664.779","-440890.44E+666433944","-4.40890440E+666433949","4.40890440E+666433949","1.09633924E+666433955","5.64005831E-666433945","0","-248664.779","2.61542877E-22"); 4899 mathtest(357,def,"-14161.9142","8306.49493","-5855.4193","-22468.4091","-117635869","-1.70492059","-1","-5855.41927","1.65573372E+34479"); 4900 mathtest(358,def,"-6417227.13","16679.8842","-6400547.25","-6433907.01","-1.07038605E+11","-384.728518","-384","-12151.5972","3.58767978E+113546"); 4901 mathtest(359,def,"514825024.","-25.0446345E-103809457","514825024","514825024","-1.28936046E-103809447","-2.05563002E+103809464","","","7.32860062E-27"); 4902 mathtest(360,def,"525948196","219450390","745398586","306497806","1.15419537E+17","2.39666102","2","87047416",""); 4903 mathtest(361,def,"-638509.181","45580189.0E+269212559","4.55801890E+269212566","-4.55801890E+269212566","-2.91033691E+269212572","-1.40084803E-269212561","0","-638509.181","-1.06129405E+29"); 4904 mathtest(362,def,"330590422","74.359928E+535377965","7.43599280E+535377966","-7.43599280E+535377966","2.45826800E+535377975","4.44581418E-535377959","0","330590422","4.31550742E+59"); 4905 mathtest(363,def,"-3.48593871E-940579904","-20265.9640E-322988987","-2.02659640E-322988983","2.02659640E-322988983","","1.72009519E-617590921","0","-3.48593871E-940579904",""); 4906 mathtest(364,def,"-328103480.","-721.949371E-923938665","-328103480","-328103480","2.36874101E-923938654","4.54468822E+923938670","","","-2.4430038E-60"); 4907 mathtest(365,def,"-1857.01448","19081578.1","19079721.1","-19083435.1","-3.54347668E+10","-0.0000973197537","0","-1857.01448","8.44397087E+62374153"); 4908 mathtest(366,def,"347.28720E+145930771","-62821.9906E-676564106","3.47287200E+145930773","3.47287200E+145930773","-2.18172732E-530633328","-5.52811518E+822494874","","","5.69990135E-875584642"); 4909 mathtest(367,def,"-643.211399E+441807003","-50733419.2","-6.43211399E+441807005","-6.43211399E+441807005","3.26323135E+441807013","1.26782584E+441806998","","",""); 4910 mathtest(368,def,"-53991661.4E-843339554","20718.7346","20718.7346","-20718.7346","-1.11863890E-843339542","-2.60593431E-843339551","0","-5.39916614E-843339547",""); 4911 mathtest(369,def,"-900181424","-105763982.","-1.00594541E+9","-794417442","9.52067719E+16","8.51122856","8","-54069568","1.32627061E-947045602"); 4912 mathtest(370,def,"94218.7462E+563233951","19262.6382E+765263890","1.92626382E+765263894","-1.92626382E+765263894","","4.89126906E-202029939","0","9.42187462E+563233955",""); 4913 mathtest(371,def,"28549.271E+921331828","-2150590.40","2.85492710E+921331832","2.85492710E+921331832","-6.13977881E+921331838","-1.32750853E+921331826","","",""); 4914 mathtest(372,def,"810.7080E+779625763","5957.94044","8.10708000E+779625765","8.10708000E+779625765","4.83014998E+779625769","1.36071854E+779625762","","",""); 4915 mathtest(373,def,"-23.7357549E+77116908","351.100649E+864348022","3.51100649E+864348024","-3.51100649E+864348024","-8.33363895E+941464933","-6.7603848E-787231116","0","-2.37357549E+77116909","3.17403853E+308467637"); 4916 mathtest(374,def,"40216102.2E+292724544","661.025962","4.02161022E+292724551","4.02161022E+292724551","2.65838876E+292724554","6.08389148E+292724548","","",""); 4917 mathtest(375,def,"22785024.3E+783719168","399.505989E+137478666","2.27850243E+783719175","2.27850243E+783719175","9.10275367E+921197843","5.70329981E+646240506","","",""); 4918 mathtest(376,def,"515.591819E+821371364","-692137914.E-149498690","5.15591819E+821371366","5.15591819E+821371366","-3.56860646E+671872685","-7.44926421E+970870047","","",""); 4919 mathtest(377,def,"-536883072E+477911251","624996.301","-5.36883072E+477911259","-5.36883072E+477911259","-3.35549934E+477911265","-8.59017999E+477911253","","",""); 4920 mathtest(378,def,"-399492.914E-334369192","5202119.87E+442442258","5.20211987E+442442264","-5.20211987E+442442264","-2.07821003E+108073078","-7.67942539E-776811452","0","-3.99492914E-334369187",""); 4921 mathtest(379,def,"762.071184","9851631.37","9852393.44","-9850869.30","7.50764438E+9","0.0000773548213","0","762.071184","4.02198436E+28392356"); 4922 mathtest(380,def,"5626.12471","72989818.3","72995444.4","-72984192.2","4.10649820E+11","0.0000770809524","0","5626.12471","1.79814757E+273727098"); 4923 mathtest(381,def,"-47207260.1","-2073.3152","-47209333.4","-47205186.8","9.78755299E+10","22768.9741","22768","-2019.6264","-6.02238319E-15909"); 4924 mathtest(382,def,"207.740860","-51.0390090","156.701851","258.779869","-10602.8876","-4.07023694","-4","3.5848240","6.40297515E-119"); 4925 mathtest(383,def,"-572.812464E-745934021","-182805872.E+604508681","-1.82805872E+604508689","1.82805872E+604508689","1.04713482E-141425329","","0","-5.72812464E-745934019",""); 4926 mathtest(384,def,"-6418504E+3531407","8459416.1","-6.41850400E+3531413","-6.41850400E+3531413","-5.42967961E+3531420","-7.58740784E+3531406","","",""); 4927 mathtest(385,def,"280689.531","-128212543","-127931854","128493233","-3.59879186E+13","-0.00218925173","0","280689.531","1.42173809E-698530938"); 4928 mathtest(386,def,"15.803551E-783422793","239108038E-489186308","2.39108038E-489186300","-2.39108038E-489186300","","6.60937672E-294236493","0","1.5803551E-783422792",""); 4929 mathtest(387,def,"26.515922","-9418242.96E-105481628","26.5159220","26.5159220","-2.49733396E-105481620","-2.81537885E+105481622","","","1.54326108E-13"); 4930 mathtest(388,def,"-88.1094557","-54029934.1","-54030022.2","54029846.0","4.76054809E+9","0.0000016307526","0","-88.1094557","5.05289826E-105089439"); 4931 mathtest(389,def,"6770.68602E-498420397","-6.11248908E-729616908","6.77068602E-498420394","6.77068602E-498420394","","-1.10768067E+231196514","","",""); 4932 mathtest(390,def,"-892973818.E-781904441","555201299.","555201299","-555201299","-4.95780224E-781904424","-1.60837847E-781904441","0","-8.92973818E-781904433",""); 4933 mathtest(391,def,"670175802E+135430680","27355195.4","6.70175802E+135430688","6.70175802E+135430688","1.83327900E+135430696","2.44990318E+135430681","","",""); 4934 mathtest(392,def,"-440950.26","205.477469E-677345561","-440950.260","-440950.260","-9.06053434E-677345554","-2.14597864E+677345564","","","1.94437132E+11"); 4935 mathtest(393,def,"-8.2335779","573665010E+742722075","5.73665010E+742722083","-5.73665010E+742722083","-4.72331555E+742722084","-1.43525886E-742722083","0","-8.2335779","311552.753"); 4936 mathtest(394,def,"452943.863","7022.23629","459966.099","445921.627","3.18067883E+9","64.5013703","64","3520.74044","5.54158976E+39716"); 4937 mathtest(395,def,"62874.1079","-52719654.1","-52656780.0","52782528.2","-3.31470122E+12","-0.0011926123","0","62874.1079","1.18819936E-252973775"); 4938 mathtest(396,def,"-7428.41741E+609772037","-46024819.3","-7.42841741E+609772040","-7.42841741E+609772040","3.41891569E+609772048","1.61400251E+609772033","","",""); 4939 mathtest(397,def,"2.27959297","41937.019","41939.2986","-41934.7394","95599.3337","0.0000543575348","0","2.27959297","2.89712423E+15007"); 4940 mathtest(398,def,"508692408E-671967782","8491989.20","8491989.20","-8491989.20","4.31981043E-671967767","5.99026207E-671967781","0","5.08692408E-671967774",""); 4941 mathtest(399,def,"940.533705E-379310421","-4.01176961E+464620037","-4.01176961E+464620037","4.01176961E+464620037","-3.77320453E+85309619","-2.34443599E-843930456","0","9.40533705E-379310419",""); 4942 mathtest(400,def,"97.0649652","-92.4485649E-151989098","97.0649652","97.0649652","-8.97351673E-151989095","-1.0499348E+151989098","","","1.30748728E-18"); 4943 mathtest(401,def,"297544.536E+360279473","8.80275007","2.97544536E+360279478","2.97544536E+360279478","2.61921019E+360279479","3.38013159E+360279477","","",""); 4944 mathtest(402,def,"-28861028.","82818.820E+138368758","8.28188200E+138368762","-8.28188200E+138368762","-2.39023628E+138368770","-3.48483932E-138368756","0","-28861028","4.81387013E+59"); 4945 mathtest(403,def,"36.2496238E+68828039","49243.00","3.62496238E+68828040","3.62496238E+68828040","1.78504022E+68828045","7.36137599E+68828035","","",""); 4946 mathtest(404,def,"22.447828E-476014683","-56067.5520","-56067.5520","56067.5520","-1.25859476E-476014677","-4.00371109E-476014687","0","2.2447828E-476014682",""); 4947 mathtest(405,def,"282688.791E+75011952","5.99789051","2.82688791E+75011957","2.82688791E+75011957","1.69553642E+75011958","4.7131369E+75011956","","","5.10330507E+450071744"); 4948 mathtest(406,def,"-981.860310E-737387002","-994046289","-994046289","994046289","9.76014597E-737386991","9.87741035E-737387009","0","-9.81860310E-737387000",""); 4949 mathtest(407,def,"-702.91210","-6444903.55","-6445606.46","6444200.64","4.53020069E+9","0.000109064797","0","-702.91210","1.70866703E-18348004"); 4950 mathtest(408,def,"972456720E-17536823","16371.2590","16371.2590","-16371.2590","1.59203408E-17536810","5.94002404E-17536819","0","9.72456720E-17536815",""); 4951 mathtest(409,def,"71471.2045","-74303278.4","-74231807.2","74374749.6","-5.31054481E+12","-0.00096188494","0","71471.2045","2.14535374E-360677853"); 4952 mathtest(410,def,"643.103951E+439708441","788251925.","6.43103951E+439708443","6.43103951E+439708443","5.06927927E+439708452","8.15860933E+439708434","","",""); 4953 mathtest(411,def,"4.30838663","-7.43110827","-3.12272164","11.7394949","-32.0160875","-0.579777131","0","4.30838663","0.0000362908645"); 4954 mathtest(412,def,"823.678025","-513.581840E-324453141","823.678025","823.678025","-4.23026076E-324453136","-1.60379118E+324453141","","","2.63762228E-15"); 4955 mathtest(413,def,"4461.81162","3.22081680","4465.03244","4458.59080","14370.6778","1385.30438","1385","0.98035200","8.8824688E+10"); 4956 mathtest(414,def,"-4458527.10","-99072605","-103531132","94614077.9","4.41717894E+14","0.0450026231","0","-4458527.10","-6.23928099E-658752715"); 4957 mathtest(415,def,"-577964618","487424368.","-90540250","-1.06538899E+9","-2.81714039E+17","-1.18575241","-1","-90540250",""); 4958 mathtest(416,def,"-867.036184","-57.1768608","-924.213045","-809.859323","49574.4072","15.1641096","15","-9.3832720","-3.40312837E-168"); 4959 mathtest(417,def,"771871921E-330504770","5.34285236","5.34285236","-5.34285236","4.12399771E-330504761","1.44468136E-330504762","0","7.71871921E-330504762",""); 4960 mathtest(418,def,"-338683.062E-728777518","166441931","166441931","-166441931","-5.63710628E-728777505","-2.03484218E-728777521","0","-3.38683062E-728777513",""); 4961 mathtest(419,def,"-512568743","-416376887.E-965945295","-512568743","-512568743","2.13421778E-965945278","1.23102112E+965945295","","","1.44874358E-35"); 4962 mathtest(420,def,"7447181.99","5318438.52","12765620.5","2128743.47","3.96073796E+13","1.40025723","1","2128743.47","1.21634782E+36548270"); 4963 mathtest(421,def,"54789.8207","93165435.2","93220225.0","-93110645.4","5.10451749E+12","0.000588091716","0","54789.8207","3.80769825E+441483035"); 4964 mathtest(422,def,"41488.5960","146.797094","41635.3931","41341.7989","6090405.33","282.625459","282","91.815492","6.84738153E+678"); 4965 mathtest(423,def,"785741.663E+56754529","-461.531732","7.85741663E+56754534","7.85741663E+56754534","-3.62644711E+56754537","-1.70246509E+56754532","","",""); 4966 mathtest(424,def,"-4.95436786","-3132.4233","-3137.37767","3127.46893","15519.1773","0.0015816406","0","-4.95436786","1.98062422E-2177"); 4967 mathtest(425,def,"77321.8478E+404626874","82.4797688","7.73218478E+404626878","7.73218478E+404626878","6.37748813E+404626880","9.3746441E+404626876","","",""); 4968 mathtest(426,def,"-7.99307725","-29153.7273","-29161.7204","29145.7342","233027.994","0.000274169994","0","-7.99307725","1.88688028E-26318"); 4969 mathtest(427,def,"-61.6337401E+474999517","5254.87092","-6.16337401E+474999518","-6.16337401E+474999518","-3.23877349E+474999522","-1.1728878E+474999515","","",""); 4970 mathtest(428,def,"-16.4043088","35.0064812","18.6021724","-51.4107900","-574.257128","-0.468607762","0","-16.4043088","-3.33831843E+42"); 4971 mathtest(429,def,"-8.41156520","-56508958.9","-56508967.3","56508950.5","475328792","1.48853657E-7","0","-8.41156520","-8.86365458E-52263827"); 4972 mathtest(430,def,"-360165.79E+503559835","-196688.515","-3.60165790E+503559840","-3.60165790E+503559840","7.08404744E+503559845","1.83114805E+503559835","","",""); 4973 mathtest(431,def,"-653236480.E+565648495","-930.445274","-6.53236480E+565648503","-6.53236480E+565648503","6.07800796E+565648506","7.02068674E+565648500","","",""); 4974 mathtest(432,def,"-3.73342903","855.029289","851.295860","-858.762718","-3192.19117","-0.00436643408","0","-3.73342903","-1.41988961E+489"); 4975 mathtest(433,def,"-5.14890532E+562048011","10847127.8E-390918910","-5.14890532E+562048011","-5.14890532E+562048011","-5.58508340E+171129108","-4.74679142E+952966914","","","-5.14890532E+562048011"); 4976 mathtest(434,def,"653311907","-810.036965E+744537823","-8.10036965E+744537825","8.10036965E+744537825","-5.29206794E+744537834","-8.06521104E-744537818","0","653311907","3.01325171E-71"); 4977 mathtest(435,def,"-1.31557907","98.9139300E-579281802","-1.31557907","-1.31557907","-1.30129096E-579281800","-1.33002406E+579281800","","","15.529932"); 4978 mathtest(436,def,"-875192389","-72071565.6","-947263955","-803120823","6.30764857E+16","12.1433797","12","-10333601.8","1.25564408E-644471405"); 4979 mathtest(437,def,"-72838078.8","-391.398423","-72838470.2","-72837687.4","2.85087092E+10","186097.017","186097","-6.474969","-6.574057E-3075"); 4980 mathtest(438,def,"29186560.9","-79.7419988","29186481.2","29186640.6","-2.32739470E+9","-366012.407","-366012","32.4352144","6.10050869E-598"); 4981 mathtest(439,def,"-329801660E-730249465","-6489.9256","-6489.92560","6489.92560","2.14038824E-730249453","5.08174793E-730249461","0","-3.29801660E-730249457",""); 4982 mathtest(440,def,"91.8429117E+103164883","7131455.16","9.18429117E+103164884","9.18429117E+103164884","6.54973607E+103164891","1.28785654E+103164878","","",""); 4983 mathtest(441,def,"3943866.38E+150855113","-31927007.3","3.94386638E+150855119","3.94386638E+150855119","-1.25915851E+150855127","-1.23527594E+150855112","","",""); 4984 mathtest(442,def,"-7002.0468E-795962156","-5937891.05","-5937891.05","5937891.05","4.15773910E-795962146","1.17921443E-795962159","0","-7.0020468E-795962153",""); 4985 mathtest(443,def,"696504605.","54506.4617","696559111","696450099","3.79640016E+13","12778.386","12778","21037.3974","2.6008532E+481992"); 4986 mathtest(444,def,"-5115.76467","690.960979E+815126701","6.90960979E+815126703","-6.90960979E+815126703","-3.53479376E+815126707","-7.4038402E-815126701","0","-5115.76467","-9.17009655E+25"); 4987 mathtest(445,def,"-261.279392","-613.079357","-874.358749","351.799965","160185.002","0.426175484","0","-261.279392","-2.06318841E-1482"); 4988 mathtest(446,def,"-591407763","-80145822.8","-671553586","-511261940","4.73988618E+16","7.37914644","7","-30387003.4","-2.79334522E-703030105"); 4989 mathtest(447,def,"615630407","-69.4661869","615630338","615630476","-4.27654969E+10","-8862303.15","-8862303","10.4375693","3.44283102E-607"); 4990 mathtest(448,def,"1078757.50","27402569.0E-713742082","1078757.50","1078757.50","2.95607268E-713742069","3.93670207E+713742080","","","1.25536924E+18"); 4991 mathtest(449,def,"-4865.60358E-401116515","66952.5315","66952.5315","-66952.5315","-3.25764477E-401116507","-7.26724363E-401116517","0","-4.86560358E-401116512",""); 4992 mathtest(450,def,"-87805.3921E-934896690","-1875.14745","-1875.14745","1875.14745","1.64648057E-934896682","4.68258601E-934896689","0","-8.78053921E-934896686",""); 4993 mathtest(451,def,"-232540609.E+602702520","68.0834223","-2.32540609E+602702528","-2.32540609E+602702528","-1.58321605E+602702530","-3.41552468E+602702526","","",""); 4994 mathtest(452,def,"-320610803.","-863871235.","-1.18448204E+9","543260432","2.76966450E+17","0.37113263","0","-320610803",""); 4995 mathtest(453,def,"-303956364E+278139979","229537.920E+479603725","2.29537920E+479603730","-2.29537920E+479603730","-6.97695116E+757743717","-1.3242098E-201463743","0","-3.03956364E+278139987","9.23894712E+556279974"); 4996 mathtest(454,def,"-439.747348","74.9494457E-353117582","-439.747348","-439.747348","-3.29588200E-353117578","-5.86725284E+353117582","","","-3.17996693E+18"); 4997 mathtest(455,def,"-89702231.9","1.28993993","-89702230.6","-89702233.2","-115710491","-69539852.1","-69539852","-0.07890964","-89702231.9"); 4998 mathtest(456,def,"-5856939.14","-6743375.34","-12600314.5","886436.20","3.94955390E+13","0.868547107","0","-5856939.14","-3.29213248E-45636942"); 4999 mathtest(457,def,"733317.669E+100381349","-13832.6792E+174055607","-1.38326792E+174055611","1.38326792E+174055611","-1.01437481E+274436966","-5.30134227E-73674257","0","7.33317669E+100381354","1.36366549E-100381355"); 5000 mathtest(458,def,"87.4798787E-80124704","108497.32","108497.320","-108497.320","9.49133239E-80124698","8.06286079E-80124708","0","8.74798787E-80124703",""); 5001 mathtest(459,def,"-694562052","310681.319E+549445264","3.10681319E+549445269","-3.10681319E+549445269","-2.15787454E+549445278","-2.23560932E-549445261","0","-694562052","-3.35068155E+26"); 5002 mathtest(460,def,"-9744135.85","1797016.04","-7947119.81","-11541151.9","-1.75103684E+13","-5.42239782","-5","-759055.65","3.83848006E+12558883"); 5003 mathtest(461,def,"3625.87308","-50.2208536E+658627487","-5.02208536E+658627488","5.02208536E+658627488","-1.82094441E+658627492","-7.21985554E-658627486","0","3625.87308","1.5956477E-18"); 5004 mathtest(462,def,"365347.52","-3655414.47","-3290066.95","4020761.99","-1.33549661E+12","-0.099946948","0","365347.52","1.02663257E-20333994"); 5005 mathtest(463,def,"-19706333.6E-816923050","-383858032.","-383858032","383858032","7.56443443E-816923035","5.1337557E-816923052","0","-1.97063336E-816923043",""); 5006 mathtest(464,def,"-86346.2616","-98.8063785","-86445.0680","-86247.4552","8531561.41","873.893598","873","-88.2931695","-2.05064086E-489"); 5007 mathtest(465,def,"-445588.160E-496592215","328.822976","328.822976","-328.822976","-1.46519625E-496592207","-1.35510044E-496592212","0","-4.45588160E-496592210",""); 5008 mathtest(466,def,"-9709213.71","-34.6690137","-9709248.38","-9709179.04","336608863","280054.512","280054","-17.7472602","-2.80903974E-245"); 5009 mathtest(467,def,"742395536.","-43533.6889","742352002","742439070","-3.23192163E+13","-17053.3569","-17053","15539.1883","5.7622734E-386175"); 5010 mathtest(468,def,"-878849193.","-5842982.47E-972537342","-878849193","-878849193","5.13510043E-972537327","1.50411061E+972537344","","","2.17027042E-54"); 5011 mathtest(469,def,"-78014142.1","-624658.522","-78638800.6","-77389483.6","4.87321987E+13","124.890863","124","-556485.372","-7.86063865E-4929918"); 5012 mathtest(470,def,"857039.371","454.379672","857493.751","856584.991","389421268","1886.17454","1886","79.309608","3.82253101E+2693"); 5013 mathtest(471,def,"166534010.","-173.012236","166533837","166534183","-2.88124214E+10","-962556.255","-962556","44.164784","4.78620664E-1423"); 5014 mathtest(472,def,"-810.879063","43776.610","42965.7309","-44587.4891","-35497536.5","-0.0185231123","0","-810.879063","-2.34758691E+127345"); 5015 mathtest(473,def,"-327.127935","93458944","93458616.9","-93459271.1","-3.05730314E+10","-0.00000350023145","0","-327.127935","2.29323021E+235022854"); 5016 mathtest(474,def,"539295218.","-9587941.10E-309643098","539295218","539295218","-5.17073079E-309643083","-5.62472394E+309643099","","","4.80545269E-88"); 5017 mathtest(475,def,"-3862702.65","879616.733","-2983085.92","-4742319.38","-3.39769789E+12","-4.3913474","-4","-344235.718","-3.50650167E+5793941"); 5018 mathtest(476,def,"-8.25290500","992.091584E+256070257","9.92091584E+256070259","-9.92091584E+256070259","-8.18763759E+256070260","-8.31869268E-256070260","0","-8.25290500","1.46577888E+9"); 5019 mathtest(477,def,"546875205.","447.52857E+557357101","4.47528570E+557357103","-4.47528570E+557357103","2.44742278E+557357112","1.22198948E-557357095","0","546875205","8.94443542E+34"); 5020 mathtest(478,def,"177623437","-7779116.14","169844321","185402553","-1.38175335E+15","-22.83337","-22","6482881.92","2.90085309E-64173820"); 5021 mathtest(479,def,"377204735.","13768.1401","377218503","377190967","5.19340764E+12","27396.9274","27396","12768.8204","2.06065297E+118082"); 5022 mathtest(480,def,"-2435.49239","-11732.0640E-23331504","-2435.49239","-2435.49239","2.85733526E-23331497","2.07592832E+23331503","","","-0.00041059459"); 5023 mathtest(481,def,"-6128465.14E-137123294","-5742264.27","-5742264.27","5742264.27","3.51912664E-137123281","1.06725585E-137123294","0","-6.12846514E-137123288",""); 5024 mathtest(482,def,"-2898065.44","-5.11638105","-2898070.56","-2898060.32","14827607.1","566428.773","566428","-3.95461060","-4.89169151E-33"); 5025 mathtest(483,def,"1851395.31E+594383160","-550301.475","1.85139531E+594383166","1.85139531E+594383166","-1.01882557E+594383172","-3.36432918E+594383160","","",""); 5026 mathtest(484,def,"536412589.E+379583977","899.601161","5.36412589E+379583985","5.36412589E+379583985","4.82557388E+379583988","5.96278231E+379583982","","",""); 5027 mathtest(485,def,"185.85297","867419480.","867419666","-867419294","1.61212487E+11","2.14259622E-7","0","185.85297",""); 5028 mathtest(486,def,"-5.26631053","-3815941.35E+183291763","-3.81594135E+183291769","3.81594135E+183291769","2.00959321E+183291770","1.38008162E-183291769","0","-5.26631053","0.00130009218"); 5029 mathtest(487,def,"-8.11587021E-245942806","4553.06753E+943412048","4.55306753E+943412051","-4.55306753E+943412051","-3.69521051E+697469246","","0","-8.11587021E-245942806",""); 5030 mathtest(488,def,"-405765.352","854963231","854557466","-855368996","-3.46914456E+14","-0.000474599769","0","-405765.352",""); 5031 mathtest(489,def,"-159.609757","-43356.7567","-43516.3665","43197.1470","6920161.40","0.00368131219","0","-159.609757","-8.95397849E-95519"); 5032 mathtest(490,def,"-564240.241E-501316672","-557.781977","-557.781977","557.781977","3.14723037E-501316664","1.01157847E-501316669","0","-5.64240241E-501316667",""); 5033 mathtest(491,def,"318847.270","582107878.E+399633412","5.82107878E+399633420","-5.82107878E+399633420","1.85603508E+399633426","5.47746014E-399633416","0","318847.270","1.0507423E+33"); 5034 mathtest(492,def,"-4426.59663","95.1096765","-4331.48695","-4521.70631","-421012.173","-46.5420217","-46","-51.5515110","-2.38037379E+346"); 5035 mathtest(493,def,"6037.28310","578264.105","584301.388","-572226.822","3.49114411E+9","0.010440356","0","6037.28310","3.57279483E+2186324"); 5036 mathtest(494,def,"-66.9556692","-53.8519404","-120.807610","-13.1037288","3605.69271","1.24332881","1","-13.1037288","2.55554086E-99"); 5037 mathtest(495,def,"-92486.0222","-59935.8544","-152421.877","-32550.1678","5.54322876E+9","1.5430834","1","-32550.1678","1.83152656E-297647"); 5038 mathtest(496,def,"852136219.E+917787351","9246221.91","8.52136219E+917787359","8.52136219E+917787359","7.87904058E+917787366","9.21604767E+917787352","","",""); 5039 mathtest(497,def,"-2120096.16E-269253718","9437.00514","9437.00514","-9437.00514","-2.00073584E-269253708","-2.24657731E-269253716","0","-2.12009616E-269253712",""); 5040 mathtest(498,def,"-524653.169E-865784226","228054.698","228054.698","-228054.698","-1.19649620E-865784215","-2.30055848E-865784226","0","-5.24653169E-865784221",""); 5041 mathtest(499,def,"-288193133","-312268737.","-600461870","24075604","8.99937057E+16","0.922901011","0","-288193133",""); 5042 mathtest(500,def,"-373484759E-113589964","844101958E-852538240","-3.73484759E-113589956","-3.73484759E-113589956","-3.15259216E-966128187","-4.42464036E+738948275","","","3.78602147E-908719644"); 5043 } 5044 5045 /* mathtest -- general arithmetic test routine 5046 Arg1 is test number 5047 Arg2 is MathContext 5048 Arg3 is left hand side (LHS) 5049 Arg4 is right hand side (RHS) 5050 Arg5 is the expected result for add 5051 Arg6 is the expected result for subtract 5052 Arg7 is the expected result for multiply 5053 Arg8 is the expected result for divide 5054 Arg9 is the expected result for integerDivide 5055 Arg10 is the expected result for remainder 5056 Arg11 is the expected result for power 5057 5058 For power RHS, 0 is added to the number, any exponent is removed and 5059 the number is then rounded to an integer, using format(rhs+0,,0) 5060 5061 If an error should result for an operation, the 'expected result' is 5062 an empty string. 5063 */ 5064 5065 private void mathtest(int test, com.ibm.icu.math.MathContext mc, 5066 java.lang.String slhs, java.lang.String srhs, java.lang.String add, 5067 java.lang.String sub, java.lang.String mul, java.lang.String div, 5068 java.lang.String idv, java.lang.String rem, java.lang.String pow) { 5069 com.ibm.icu.math.BigDecimal lhs; 5070 com.ibm.icu.math.BigDecimal rhs; 5071 java.lang.String res = null; 5072 java.lang.String sn = null; 5073 int e = 0; 5074 5075 lhs = new com.ibm.icu.math.BigDecimal(slhs); 5076 rhs = new com.ibm.icu.math.BigDecimal(srhs); 5077 5078 try { 5079 res = lhs.add(rhs, mc).toString(); 5080 } catch (java.lang.ArithmeticException $137) { 5081 res = ""; 5082 } 5083 mathtestcheck(test, lhs, rhs, "add", res, add); 5084 5085 try { 5086 res = lhs.subtract(rhs, mc).toString(); 5087 } catch (java.lang.ArithmeticException $138) { 5088 res = ""; 5089 } 5090 mathtestcheck(test, lhs, rhs, "sub", res, sub); 5091 5092 try { 5093 res = lhs.multiply(rhs, mc).toString(); 5094 } catch (java.lang.ArithmeticException $139) { 5095 res = ""; 5096 } 5097 mathtestcheck(test, lhs, rhs, "mul", res, mul); 5098 5099 try { 5100 res = lhs.divide(rhs, mc).toString(); 5101 } catch (java.lang.ArithmeticException $140) { 5102 res = ""; 5103 } 5104 mathtestcheck(test, lhs, rhs, "div", res, div); 5105 5106 try { 5107 res = lhs.divideInteger(rhs, mc).toString(); 5108 } catch (java.lang.ArithmeticException $141) { 5109 res = ""; 5110 } 5111 mathtestcheck(test, lhs, rhs, "idv", res, idv); 5112 5113 try { 5114 res = lhs.remainder(rhs, mc).toString(); 5115 } catch (java.lang.ArithmeticException $142) { 5116 res = ""; 5117 } 5118 mathtestcheck(test, lhs, rhs, "rem", res, rem); 5119 5120 try { 5121 // prepare an integer from the rhs 5122 // in Rexx: 5123 // n=rhs+0 5124 // e=pos('E', n) 5125 // if e>0 then n=left(n,e-1) 5126 // n=format(n,,0) 5127 5128 sn = rhs.plus(mc).toString(); 5129 e = sn.indexOf("E", 0); 5130 if (e > 0) 5131 sn = sn.substring(0, e); 5132 sn = (new com.ibm.icu.math.BigDecimal(sn)).format(-1, 0); 5133 5134 res = lhs.pow(new com.ibm.icu.math.BigDecimal(sn), mc).toString(); 5135 } catch (java.lang.ArithmeticException $143) { 5136 res = ""; 5137 } 5138 mathtestcheck(test, lhs, rhs, "pow", res, pow); 5139 return; 5140 } 5141 5142 /* mathtestcheck -- check for general mathtest error 5143 Arg1 is test number 5144 Arg2 is left hand side (LHS) 5145 Arg3 is right hand side (RHS) 5146 Arg4 is the operation 5147 Arg5 is the actual result 5148 Arg6 is the expected result 5149 Show error message if a problem, otherwise return quietly 5150 */ 5151 5152 private void mathtestcheck(int test, com.ibm.icu.math.BigDecimal lhs, 5153 com.ibm.icu.math.BigDecimal rhs, java.lang.String op, 5154 java.lang.String got, java.lang.String want) { 5155 boolean flag; 5156 java.lang.String testnum; 5157 5158 flag = want.equals(got); 5159 5160 if ((!flag)) 5161 say(">" + test + ">" + " " + lhs.toString() + " " + op + " " 5162 + rhs.toString() + " " + "=" + " " + want + " " + "[got" 5163 + " " + got + "]"); 5164 5165 testnum = "gen" 5166 + right((new com.ibm.icu.math.BigDecimal(test + 1000)) 5167 .toString(), 3); 5168 5169 TestFmwk.assertTrue(testnum, flag); 5170 return; 5171 } 5172 5173 /* ------------------------------------------------------------------ */ 5174 /* Support routines and minor classes follow */ 5175 /* ------------------------------------------------------------------ */ 5176 5177 /* ----------------------------------------------------------------- */ 5178 /* Method called to summarise pending tests */ 5179 /* ----------------------------------------------------------------- */ 5180 /* Arg1 is section name */ 5181 5182 // private void summary(java.lang.String section) { 5183 // int bad; 5184 // int count; 5185 // int i = 0; 5186 // Test item = null; 5187 // bad = 0; 5188 // count = Tests.size(); 5189 // { 5190 // int $144 = count; 5191 // i = 0; 5192 // for (; $144 > 0; $144--, i++) { 5193 // item = (Test) (Tests.get(i)); 5194 // if ((!item.ok)) 5195 // { 5196 // bad++; 5197 // errln("Failed:" + " " + item.name); 5198 // } 5199 // } 5200 // }/*i*/ 5201 // totalcount = totalcount + count; 5202 // Tests = new java.util.ArrayList(100); // reinitialize 5203 // if (bad == 0) 5204 // say("OK" + " " + left(section, 14) + " " 5205 // + right("[" + count + " " + "tests]", 12)); 5206 // else 5207 // throw new DiagException(section + " " + "[failed" + " " + bad + " " 5208 // + "of" + " " + count + " " + "tests]", bad); 5209 // } 5210 5211 /* ----------------------------------------------------------------- */ 5212 /* right - Utility to do a 'right' on a Java String */ 5213 /* ----------------------------------------------------------------- */ 5214 /* Arg1 is string to right-justify */ 5215 /* Arg2 is desired length */ 5216 5217 private static java.lang.String right(java.lang.String s, int len) { 5218 int slen; 5219 slen = s.length(); 5220 if (slen == len) 5221 return s; // length just right 5222 if (slen > len) 5223 return s.substring(slen - len); // truncate on left 5224 // too short 5225 return (new java.lang.String(new char[len - slen])) 5226 .replace('\000', ' ').concat(s); 5227 } 5228 5229 /* ----------------------------------------------------------------- */ 5230 /* say - Utility to do a display */ 5231 /* ----------------------------------------------------------------- */ 5232 /* Arg1 is string to display, omitted if none */ 5233 /* [null or omitted gives blank line] */ 5234 // this version doesn't heed continuation final character 5235 private void say(java.lang.String s) { 5236 if (s == null) 5237 s = " "; 5238 logln(s); 5239 } 5240 5241 } 5242