test/script/basic/NASHORN-12.js

Tue, 02 Jun 2015 17:59:28 +0530

author
sundar
date
Tue, 02 Jun 2015 17:59:28 +0530
changeset 1389
24cb54d0bfa2
parent 962
ac62e33a99b0
child 1205
4112748288bb
permissions
-rw-r--r--

Merge

jlaskey@3 1 /*
jlaskey@7 2 * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
jlaskey@3 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
attila@962 4 *
jlaskey@3 5 * This code is free software; you can redistribute it and/or modify it
jlaskey@3 6 * under the terms of the GNU General Public License version 2 only, as
jlaskey@3 7 * published by the Free Software Foundation.
attila@962 8 *
jlaskey@3 9 * This code is distributed in the hope that it will be useful, but WITHOUT
jlaskey@3 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
jlaskey@3 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
jlaskey@3 12 * version 2 for more details (a copy is included in the LICENSE file that
jlaskey@3 13 * accompanied this code).
attila@962 14 *
jlaskey@3 15 * You should have received a copy of the GNU General Public License version
jlaskey@3 16 * 2 along with this work; if not, write to the Free Software Foundation,
jlaskey@3 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
attila@962 18 *
jlaskey@3 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
jlaskey@3 20 * or visit www.oracle.com if you need additional information or have any
jlaskey@3 21 * questions.
jlaskey@3 22 */
jlaskey@3 23
jlaskey@3 24 /**
jlaskey@3 25 * NASHORN-12 : Number does not have methods toFixed, toPrecision, and toExponential.
jlaskey@3 26 *
jlaskey@3 27 * @test
jlaskey@3 28 * @run
jlaskey@3 29 */
jlaskey@3 30
jlaskey@3 31 // checks for Number.prototype.toFixed
jlaskey@3 32
jlaskey@3 33 if (NaN.toFixed() !== "NaN") {
jlaskey@3 34 fail("#1 NaN.toFixed() is not NaN");
jlaskey@3 35 }
jlaskey@3 36
jlaskey@3 37 if (new Number(1e21).toFixed(12) !== String(1e21)) {
jlaskey@3 38 fail("#2 new Number(1e21).toFixed(12) is not String(1e21)");
jlaskey@3 39 }
jlaskey@3 40
jlaskey@3 41 if (new Number(1.2).toFixed(3) !== "1.200") {
jlaskey@3 42 fail("#3 new Number(1.2).toFixed(3) is not '1.200'");
jlaskey@3 43 }
jlaskey@3 44
jlaskey@3 45 if (new Number(1.2542).toFixed(3) !== "1.254") {
jlaskey@3 46 fail("#4 Number(1.2542).toFixed(3) is not '1.254'");
jlaskey@3 47 }
jlaskey@3 48
jlaskey@3 49 try {
jlaskey@3 50 453.334.toFixed(31);
jlaskey@3 51 fail("#5 toFixed(31) should have thrown RangeError");
jlaskey@3 52 } catch (e) {
jlaskey@3 53 if (! (e instanceof RangeError)) {
jlaskey@3 54 fail("#6 toFixed(31) should throw RangeError, got " + e);
jlaskey@3 55 }
jlaskey@3 56 }
jlaskey@3 57
jlaskey@3 58 try {
jlaskey@3 59 3.14.toFixed(-1);
jlaskey@3 60 fail("#7 toFixed(-1) should have thrown RangeError");
jlaskey@3 61 } catch (e) {
jlaskey@3 62 if (! (e instanceof RangeError)) {
jlaskey@3 63 fail("#8 toFixed(-1) should throw RangeError, got " + e);
jlaskey@3 64 }
jlaskey@3 65 }
jlaskey@3 66
jlaskey@3 67
jlaskey@3 68 // checks for Number.prototype.toPrecision
jlaskey@3 69
jlaskey@3 70 var num = new Number(0.0);
jlaskey@3 71
jlaskey@3 72 try {
jlaskey@3 73 num.toPrecision(0);
jlaskey@3 74 fail("#9: num.toPrecision(0) should have been thrown RangeError");
jlaskey@3 75 } catch (e) {
jlaskey@3 76 if (! (e instanceof RangeError)) {
jlaskey@3 77 fail("#10: RangeError expected, got " + e);
jlaskey@3 78 }
jlaskey@3 79 }
jlaskey@3 80
jlaskey@3 81 try {
jlaskey@3 82 num.toPrecision(22);
jlaskey@3 83 fail("#11: num.toPrecision(22) should have been thrown RangeError");
jlaskey@3 84 } catch (e) {
jlaskey@3 85 if (! (e instanceof RangeError)) {
jlaskey@3 86 fail("#12: RangeError expected, got " + e);
jlaskey@3 87 }
jlaskey@3 88 }
jlaskey@3 89
jlaskey@3 90 num = new Number(23.4718);
jlaskey@3 91
jlaskey@3 92 if (num.toPrecision(1) != "2e+1") {
jlaskey@3 93 fail("#13: toPrecision(1) gives " + num.toPrecision(1));
jlaskey@3 94 }
jlaskey@3 95
jlaskey@3 96 if (num.toPrecision(2) != "23") {
jlaskey@3 97 fail("#14: toPrecision(2) gives " + num.toPrecision(2));
jlaskey@3 98 }
jlaskey@3 99
jlaskey@3 100 if (num.toPrecision(3) != "23.5") {
jlaskey@3 101 fail("#15: toPrecision(3) gives " + num.toPrecision(3));
jlaskey@3 102 }
jlaskey@3 103
jlaskey@3 104 if (num.toPrecision(11) != "23.471800000") {
jlaskey@3 105 fail("#16: toPrecision(11) gives " + num.toPrecision(11));
jlaskey@3 106 }
jlaskey@3 107
jlaskey@3 108 if (Infinity.toPrecision(1) != "Infinity") {
jlaskey@3 109 fail("#17: Infinity.toPrecision(1) gives " + Infinity.toPrecision(1));
jlaskey@3 110 }
jlaskey@3 111
jlaskey@3 112 if (-Infinity.toPrecision(1) != "-Infinity") {
jlaskey@3 113 fail("#18: -Infinity.toPrecision(1) gives " + -Infinity.toPrecision(1));
jlaskey@3 114 }
jlaskey@3 115
jlaskey@3 116 // checks for Number.prototype.toExponential
jlaskey@3 117
jlaskey@3 118 if (num.toExponential(1) != "2.3e+1") {
jlaskey@3 119 fail("#20: toExponential(1) gives " + num.toExponential(1));
jlaskey@3 120 }
jlaskey@3 121
jlaskey@3 122 if (num.toExponential(2) != "2.35e+1") {
jlaskey@3 123 fail("#21: toExponential(2) gives " + num.toExponential(2));
jlaskey@3 124 }
jlaskey@3 125
jlaskey@3 126 if (num.toExponential(3) != "2.347e+1") {
jlaskey@3 127 fail("#22: toExponential(3) gives " + num.toExponential(3));
jlaskey@3 128 }
jlaskey@3 129
jlaskey@3 130 if (num.toExponential(11) != "2.34718000000e+1") {
jlaskey@3 131 fail("#23: toExponential(11) gives " + num.toExponential(11));
jlaskey@3 132 }
jlaskey@3 133
jlaskey@3 134 if (Infinity.toExponential(1) != "Infinity") {
jlaskey@3 135 fail("#24: Infinity.toExponential(1) gives " + Infinity.toExponential(1));
jlaskey@3 136 }
jlaskey@3 137
jlaskey@3 138 if (-Infinity.toExponential(1) != "-Infinity") {
jlaskey@3 139 fail("#25: -Infinity.toExponential(1) gives " + -Infinity.toExponential(1));
jlaskey@3 140 }
jlaskey@3 141
jlaskey@3 142 if (NaN.toExponential(1) != "NaN") {
jlaskey@3 143 fail("#26: NaN.toExponential(1) gives " + NaN.toExponential(1));
jlaskey@3 144 }
jlaskey@3 145

mercurial