/ test / browser / console-errors.html
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>