console-errors.html
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="utf-8" /> 5 <title>BigNumber Errors</title> 6 <script src='../../bignumber.js'></script> 7 </head> 8 <body> 9 <script> 10 document.body.innerHTML = 'BigNumber Errors written to console.'; 11 var n; 12 13 BigNumber.config({ 14 DECIMAL_PLACES: 20, 15 ROUNDING_MODE: 4, 16 EXPONENTIAL_AT: [-7, 21], 17 RANGE: 1E9, 18 ERRORS: true, 19 POW_PRECISION: 100 20 }); 21 22 // BigNumber constructor 23 24 try { 25 n = new BigNumber(45324542.452466456546456); 26 } catch (e) { 27 // 'new BigNumber() number type has more than 15 significant digits: {n}' 28 console.error(e + ''); 29 } 30 try { 31 n = new BigNumber(333, 2); 32 } catch (e) { 33 // 'new BigNumber() not a base {b} number: {str}' 34 console.error(e + ''); 35 } 36 try { 37 n = new BigNumber(123, 5.6); 38 } catch (e) { 39 // 'new BigNumber() base not an integer: {b}' 40 console.error(e + ''); 41 } 42 try { 43 n = new BigNumber(123, 65); 44 } catch (e) { 45 // 'new BigNumber() base out of range: {b}' 46 console.error(e + ''); 47 } 48 try { 49 n = new BigNumber('ugh'); 50 } catch (e) { 51 // 'new BigNumber() not a number: {n}' 52 console.error(e + ''); 53 } 54 try { 55 n = new BigNumber(1010101110011011, 2); 56 } catch (e) { 57 // 'new BigNumber() number type has more than 15 significant digits: {n}' 58 console.error(e + ''); 59 } 60 61 // config 62 63 try { 64 BigNumber.config({ DECIMAL_PLACES: 10.3 }); 65 } catch (e) { 66 // 'config() DECIMAL_PLACES not an integer: {v}' 67 console.error(e + ''); 68 } 69 try { 70 BigNumber.config({ DECIMAL_PLACES: -1 }); 71 } catch (e) { 72 // 'config() DECIMAL_PLACES out of range: {v}' 73 console.error(e + ''); 74 } 75 try { 76 BigNumber.config({ ROUNDING_MODE: 4.3 }); 77 } catch (e) { 78 // 'config() ROUNDING_MODE not an integer: {v}' 79 console.error(e + ''); 80 } 81 try { 82 BigNumber.config({ ROUNDING_MODE: 10 }); 83 } catch (e) { 84 // 'config() ROUNDING_MODE out of range: {v}' 85 console.error(e + ''); 86 } 87 try { 88 BigNumber.config({ EXPONENTIAL_AT: 10.3 }); 89 } catch (e) { 90 // 'config() EXPONENTIAL_AT not an integer: {v}' 91 console.error(e + ''); 92 } 93 try { 94 BigNumber.config({ EXPONENTIAL_AT: 1e99 }); 95 } catch (e) { 96 // 'config() EXPONENTIAL_AT out of range: {v}' 97 console.error(e + ''); 98 } 99 try { 100 BigNumber.config({ RANGE: 1.999 }); 101 } catch (e) { 102 // 'config() RANGE not an integer: {v}' 103 console.error(e + ''); 104 } 105 try { 106 BigNumber.config({ RANGE: 0 }); 107 } catch (e) { 108 // 'config() RANGE cannot be zero: {v}' 109 console.error(e + ''); 110 } 111 try { 112 BigNumber.config({ RANGE: 1e99 }); 113 } catch (e) { 114 // 'config() RANGE out of range: {v}' 115 console.error(e + ''); 116 } 117 try { 118 BigNumber.config({ ERRORS: 'ugh' }); 119 } catch (e) { 120 // 'config() ERRORS not a boolean or binary digit: {v}' 121 console.error(e + ''); 122 } 123 try { 124 BigNumber.config({ FORMAT: 1 }); 125 } catch (e) { 126 // 'config() FORMAT not an object: {v}' 127 console.error(e + ''); 128 } 129 try { 130 BigNumber.config({ CRYPTO: 'ugh' }); 131 } catch (e) { 132 // 'config() CRYPTO not a boolean or binary digit: {v}' 133 console.error(e + ''); 134 } 135 try { 136 BigNumber.config({ MODULO_MODE: 6.6 }); 137 } catch (e) { 138 // 'config() MODULO_MODE not an integer: {v}' 139 console.error(e + ''); 140 } 141 try { 142 BigNumber.config({ MODULO_MODE: 1e99 }); 143 } catch (e) { 144 // 'config() MODULO_MODE out of range: {v}' 145 console.error(e + ''); 146 } 147 try { 148 BigNumber.config({ POW_PRECISION: 1.1 }); 149 } catch (e) { 150 // 'config() POW_PRECISION not an integer: {v}' 151 console.error(e + ''); 152 } 153 try { 154 BigNumber.config({ POW_PRECISION: -1 }); 155 } catch (e) { 156 // 'config() POW_PRECISION out of range: {v}' 157 console.error(e + ''); 158 } 159 160 // random 161 162 try { 163 n = BigNumber.random(10.3); 164 } catch (e) { 165 // 'random() decimal places not an integer: {dp}' 166 console.error(e + ''); 167 } 168 try { 169 n = BigNumber.random(-1); 170 } catch (e) { 171 // 'random() decimal places out of range: {dp}' 172 console.error(e + ''); 173 } 174 try { 175 crypto = null; 176 BigNumber.config({ CRYPTO: true }); 177 n = BigNumber.random(); 178 } catch (e) { 179 //'random() crypto unavailable: {crypto}' 180 console.error(e + ''); 181 } 182 183 184 // pow 185 186 try { 187 n = new BigNumber(2).pow(10.3); 188 } catch (e) { 189 // 'pow() exponent not an integer: {n}' 190 console.error(e + ''); 191 } 192 try { 193 n = new BigNumber(2).pow(Infinity); 194 } catch (e) { 195 // 'pow() exponent out of range: {n}' 196 console.error(e + ''); 197 } 198 199 // round 200 201 try { 202 n = new BigNumber(2).round(300.3); 203 } catch (e) { 204 // 'round() decimal places not an integer: {dp}' 205 console.error(e + ''); 206 } 207 try { 208 n = new BigNumber(2).round(1e99); 209 } catch (e) { 210 // 'round() decimal places out of range: {dp}' 211 console.error(e + ''); 212 } 213 try { 214 n = new BigNumber(2).round(2, 3.3); 215 } catch (e) { 216 // 'round() rounding mode not an integer: {rm}' 217 console.error(e + ''); 218 } 219 try { 220 n = new BigNumber(2).round(3, 9); 221 } catch (e) { 222 // 'round() rounding mode out of range: {rm}' 223 console.error(e + ''); 224 } 225 226 // toDigits 227 228 try { 229 n = new BigNumber(2).toDigits(300.3); 230 } catch (e) { 231 // 'toDigits() precision not an integer: {sd}' 232 console.error(e + ''); 233 } 234 try { 235 n = new BigNumber(2).toDigits(1e99); 236 } catch (e) { 237 // 'toDigits() precision out of range: {sd}' 238 console.error(e + ''); 239 } 240 try { 241 n = new BigNumber(2).toDigits(2, 3.3); 242 } catch (e) { 243 // 'toDigits() rounding mode not an integer: {rm}' 244 console.error(e + ''); 245 } 246 try { 247 n = new BigNumber(2).toDigits(3, 9); 248 } catch (e) { 249 // 'toDigits() rounding mode out of range: {rm}' 250 console.error(e + ''); 251 } 252 253 // shift 254 255 try { 256 n = new BigNumber(2).shift(300.3); 257 } catch (e) { 258 // 'shift() argument not an integer: {sd}' 259 console.error(e + ''); 260 } 261 try { 262 n = new BigNumber(2).shift(1e99); 263 } catch (e) { 264 // 'shift() argument out of range: {sd}' 265 console.error(e + ''); 266 } 267 268 // toExponential 269 270 try { 271 n = new BigNumber(2).toExponential(300.3); 272 } catch (e) { 273 // 'toExponential() decimal places not an integer: {dp}' 274 console.error(e + ''); 275 } 276 try { 277 n = new BigNumber(2).toExponential(1e99); 278 } catch (e) { 279 // 'toExponential() decimal places out of range: {dp}' 280 console.error(e + ''); 281 } 282 try { 283 n = new BigNumber(2).toExponential(3, 3.6); 284 } catch (e) { 285 // 'toExponential() rounding mode not an integer: {v}' 286 console.error(e + ''); 287 } 288 try { 289 n = new BigNumber(2).toExponential(2, 1e99); 290 } catch (e) { 291 // 'toExponential() rounding mode out of range: {v}' 292 console.error(e + ''); 293 } 294 295 // toFixed 296 297 try { 298 n = new BigNumber(2).toFixed(300.3); 299 } catch (e) { 300 // 'toFixed() decimal places not an integer: {dp}' 301 console.error(e + ''); 302 } 303 try { 304 n = new BigNumber(2).toFixed(1e99); 305 } catch (e) { 306 // 'toFixed() decimal places out of range: {dp}' 307 console.error(e + ''); 308 } 309 try { 310 n = new BigNumber(2).toFixed(3, 3.6); 311 } catch (e) { 312 // 'toFixed() rounding mode not an integer: {v}' 313 console.error(e + ''); 314 } 315 try { 316 n = new BigNumber(2).toFixed(2, 1e99); 317 } catch (e) { 318 // 'toFixed() rounding mode out of range: {v}' 319 console.error(e + ''); 320 } 321 322 // toFormat 323 324 try { 325 n = new BigNumber(2).toFormat(300.3); 326 } catch (e) { 327 // 'toFormat() decimal places not an integer: {dp}' 328 console.error(e + ''); 329 } 330 try { 331 n = new BigNumber(2).toFormat(1e99); 332 } catch (e) { 333 // 'toFormat() decimal places out of range: {dp}' 334 console.error(e + ''); 335 } 336 try { 337 n = new BigNumber(2).toFormat(3, 3.6); 338 } catch (e) { 339 // 'toFormat() rounding mode not an integer: {v}' 340 console.error(e + ''); 341 } 342 try { 343 n = new BigNumber(2).toFormat(2, 1e99); 344 } catch (e) { 345 // 'toFormat() rounding mode out of range: {v}' 346 console.error(e + ''); 347 } 348 349 // toPrecision 350 351 try { 352 n = new BigNumber(2).toPrecision(300.3); 353 } catch (e) { 354 // 'toPrecision() decimal places not an integer: {dp}' 355 console.error(e + ''); 356 } 357 try { 358 n = new BigNumber(2).toPrecision(0); 359 } catch (e) { 360 // 'toPrecision() decimal places out of range: {dp}' 361 console.error(e + ''); 362 } 363 try { 364 n = new BigNumber(2).toPrecision(3, 3.6); 365 } catch (e) { 366 // 'toPrecision() rounding mode not an integer: {v}' 367 console.error(e + ''); 368 } 369 try { 370 n = new BigNumber(2).toPrecision(2, 1e99); 371 } catch (e) { 372 // 'toPrecision() rounding mode out of range: {v}' 373 console.error(e + ''); 374 } 375 376 // toFraction 377 378 try { 379 n = new BigNumber(2).toFraction(300.3); 380 } catch (e) { 381 // 'toFraction() max denominator not an integer: {maxD}' 382 console.error(e + ''); 383 } 384 try { 385 n = new BigNumber(2).toFraction(-1); 386 } catch (e) { 387 // 'toFraction() max denominator out of range: {maxD}' 388 console.error(e + ''); 389 } 390 391 // precision 392 393 try { 394 n = new BigNumber(2).precision(2); 395 } catch (e) { 396 // 'precision() argument not a boolean or binary digit: {z}' 397 console.error(e + ''); 398 } 399 400 // toString 401 402 try { 403 n = new BigNumber(2).toString(3.3); 404 } catch (e) { 405 // 'toString() base not an integer: {b}' 406 console.error(e + ''); 407 } 408 try { 409 n = new BigNumber(2).toString(1); 410 } catch (e) { 411 // 'toString() base out of range: {b}' 412 console.error(e + ''); 413 } 414 415 // cmp 416 417 try { 418 n = new BigNumber(2).cmp(45324542.452466456546456); 419 } catch (e) { 420 console.error(e + ''); 421 } 422 try { 423 n = new BigNumber(2).cmp(333, 2); 424 } catch (e) { 425 console.error(e + ''); 426 } 427 try { 428 n = new BigNumber(2).cmp(123, 5.6); 429 } catch (e) { 430 console.error(e + ''); 431 } 432 try { 433 n = new BigNumber(2).cmp(123, 37); 434 } catch (e) { 435 console.error(e + ''); 436 } 437 try { 438 n = new BigNumber(2).cmp('ugh'); 439 } catch (e) { 440 console.error(e + ''); 441 } 442 try { 443 n = new BigNumber(2).cmp(8475698473265965); 444 } catch (e) { 445 console.error(e + ''); 446 } 447 448 // div 449 450 try { 451 n = new BigNumber(2).div(45324542.452466456546456); 452 } catch (e) { 453 console.error(e + ''); 454 } 455 try { 456 n = new BigNumber(2).div(333, 2); 457 } catch (e) { 458 console.error(e + ''); 459 } 460 try { 461 n = new BigNumber(2).div(123, 5.6); 462 } catch (e) { 463 console.error(e + ''); 464 } 465 try { 466 n = new BigNumber(2).div(123, 37); 467 } catch (e) { 468 console.error(e + ''); 469 } 470 try { 471 n = new BigNumber(2).div('ugh'); 472 } catch (e) { 473 console.error(e + ''); 474 } 475 try { 476 n = new BigNumber(2).div(8475698473265965); 477 } catch (e) { 478 console.error(e + ''); 479 } 480 481 // eq 482 483 try { 484 n = new BigNumber(2).eq(45324542.452466456546456); 485 } catch (e) { 486 console.error(e + ''); 487 } 488 try { 489 n = new BigNumber(2).eq(333, 2); 490 } catch (e) { 491 console.error(e + ''); 492 } 493 try { 494 n = new BigNumber(2).eq(123, 5.6); 495 } catch (e) { 496 console.error(e + ''); 497 } 498 try { 499 n = new BigNumber(2).eq(123, 37); 500 } catch (e) { 501 console.error(e + ''); 502 } 503 try { 504 n = new BigNumber(2).eq('ugh'); 505 } catch (e) { 506 console.error(e + ''); 507 } 508 try { 509 n = new BigNumber(2).eq(8475698473265965); 510 } catch (e) { 511 console.error(e + ''); 512 } 513 514 // gt 515 516 try { 517 n = new BigNumber(2).gt(45324542.452466456546456); 518 } catch (e) { 519 console.error(e + ''); 520 } 521 try { 522 n = new BigNumber(2).gt(333, 2); 523 } catch (e) { 524 console.error(e + ''); 525 } 526 try { 527 n = new BigNumber(2).gt(123, 5.6); 528 } catch (e) { 529 console.error(e + ''); 530 } 531 try { 532 n = new BigNumber(2).gt(123, 37); 533 } catch (e) { 534 console.error(e + ''); 535 } 536 try { 537 n = new BigNumber(2).gt('ugh'); 538 } catch (e) { 539 console.error(e + ''); 540 } 541 try { 542 n = new BigNumber(2).gt(8475698473265965); 543 } catch (e) { 544 console.error(e + ''); 545 } 546 547 // gte 548 549 try { 550 n = new BigNumber(2).gte(45324542.452466456546456); 551 } catch (e) { 552 console.error(e + ''); 553 } 554 try { 555 n = new BigNumber(2).gte(333, 2); 556 } catch (e) { 557 console.error(e + ''); 558 } 559 try { 560 n = new BigNumber(2).gte(123, 5.6); 561 } catch (e) { 562 console.error(e + ''); 563 } 564 try { 565 n = new BigNumber(2).gte(123, 37); 566 } catch (e) { 567 console.error(e + ''); 568 } 569 try { 570 n = new BigNumber(2).gte('ugh'); 571 } catch (e) { 572 console.error(e + ''); 573 } 574 try { 575 n = new BigNumber(2).gte(8475698473265965); 576 } catch (e) { 577 console.error(e + ''); 578 } 579 580 // lt 581 582 try { 583 n = new BigNumber(2).lt(45324542.452466456546456); 584 } catch (e) { 585 console.error(e + ''); 586 } 587 try { 588 n = new BigNumber(2).lt(333, 2); 589 } catch (e) { 590 console.error(e + ''); 591 } 592 try { 593 n = new BigNumber(2).lt(123, 5.6); 594 } catch (e) { 595 console.error(e + ''); 596 } 597 try { 598 n = new BigNumber(2).lt(123, 37); 599 } catch (e) { 600 console.error(e + ''); 601 } 602 try { 603 n = new BigNumber(2).lt('ugh'); 604 } catch (e) { 605 console.error(e + ''); 606 } 607 try { 608 n = new BigNumber(2).lt(8475698473265965); 609 } catch (e) { 610 console.error(e + ''); 611 } 612 613 // lte 614 615 try { 616 n = new BigNumber(2).lte(45324542.452466456546456); 617 } catch (e) { 618 console.error(e + ''); 619 } 620 try { 621 n = new BigNumber(2).lte(333, 2); 622 } catch (e) { 623 console.error(e + ''); 624 } 625 try { 626 n = new BigNumber(2).lte(123, 5.6); 627 } catch (e) { 628 console.error(e + ''); 629 } 630 try { 631 n = new BigNumber(2).lte(123, 37); 632 } catch (e) { 633 console.error(e + ''); 634 } 635 try { 636 n = new BigNumber(2).lte('ugh'); 637 } catch (e) { 638 console.error(e + ''); 639 } 640 try { 641 n = new BigNumber(2).lte(8475698473265965); 642 } catch (e) { 643 console.error(e + ''); 644 } 645 646 // minus 647 648 try { 649 n = new BigNumber(2).minus(45324542.452466456546456); 650 } catch (e) { 651 console.error(e + ''); 652 } 653 try { 654 n = new BigNumber(2).minus(333, 2); 655 } catch (e) { 656 console.error(e + ''); 657 } 658 try { 659 n = new BigNumber(2).minus(123, 5.6); 660 } catch (e) { 661 console.error(e + ''); 662 } 663 try { 664 n = new BigNumber(2).minus(123, 37); 665 } catch (e) { 666 console.error(e + ''); 667 } 668 try { 669 n = new BigNumber(2).minus('ugh'); 670 } catch (e) { 671 console.error(e + ''); 672 } 673 try { 674 n = new BigNumber(2).minus(8475698473265965); 675 } catch (e) { 676 console.error(e + ''); 677 } 678 679 // mod 680 681 try { 682 n = new BigNumber(2).mod(45324542.452466456546456); 683 } catch (e) { 684 console.error(e + ''); 685 } 686 try { 687 n = new BigNumber(2).mod(333, 2); 688 } catch (e) { 689 console.error(e + ''); 690 } 691 try { 692 n = new BigNumber(2).mod(123, 5.6); 693 } catch (e) { 694 console.error(e + ''); 695 } 696 try { 697 n = new BigNumber(2).mod(123, 37); 698 } catch (e) { 699 console.error(e + ''); 700 } 701 try { 702 n = new BigNumber(2).mod('ugh'); 703 } catch (e) { 704 console.error(e + ''); 705 } 706 try { 707 n = new BigNumber(2).mod(8475698473265965); 708 } catch (e) { 709 console.error(e + ''); 710 } 711 712 // plus 713 714 try { 715 n = new BigNumber(2).plus(45324542.452466456546456); 716 } catch (e) { 717 console.error(e + ''); 718 } 719 try { 720 n = new BigNumber(2).plus(333, 2); 721 } catch (e) { 722 console.error(e + ''); 723 } 724 try { 725 n = new BigNumber(2).plus(123, 5.6); 726 } catch (e) { 727 console.error(e + ''); 728 } 729 try { 730 n = new BigNumber(2).plus(123, 37); 731 } catch (e) { 732 console.error(e + ''); 733 } 734 try { 735 n = new BigNumber(2).plus('ugh'); 736 } catch (e) { 737 console.error(e + ''); 738 } 739 try { 740 n = new BigNumber(2).plus(8475698473265965); 741 } catch (e) { 742 console.error(e + ''); 743 } 744 745 // pow 746 747 try { 748 n = new BigNumber(2).pow(45324542.452466456546456); 749 } catch (e) { 750 console.error(e + ''); 751 } 752 try { 753 n = new BigNumber(2).pow(333, 2); 754 } catch (e) { 755 console.error(e + ''); 756 } 757 try { 758 n = new BigNumber(2).pow(123, 5.6); 759 } catch (e) { 760 console.error(e + ''); 761 } 762 try { 763 n = new BigNumber(2).pow(123, 37); 764 } catch (e) { 765 console.error(e + ''); 766 } 767 try { 768 n = new BigNumber(2).pow('ugh'); 769 } catch (e) { 770 console.error(e + ''); 771 } 772 try { 773 n = new BigNumber(2).pow(8475698473265965); 774 } catch (e) { 775 console.error(e + ''); 776 } 777 778 // times 779 780 try { 781 n = new BigNumber(2).times(45324542.452466456546456); 782 } catch (e) { 783 console.error(e + ''); 784 } 785 try { 786 n = new BigNumber(2).times(333, 2); 787 } catch (e) { 788 console.error(e + ''); 789 } 790 try { 791 n = new BigNumber(2).times(123, 5.6); 792 } catch (e) { 793 console.error(e + ''); 794 } 795 try { 796 n = new BigNumber(2).times(123, 37); 797 } catch (e) { 798 console.error(e + ''); 799 } 800 try { 801 n = new BigNumber(2).times('ugh'); 802 } catch (e) { 803 console.error(e + ''); 804 } 805 try { 806 n = new BigNumber(2).times(8475698473265965); 807 } catch (e) { 808 console.error(e + ''); 809 } 810 811 </script> 812 </body> 813 </html>