mirror of https://github.com/tc39/test262.git
68 lines
1.2 KiB
JavaScript
68 lines
1.2 KiB
JavaScript
// Copyright 2009 the Sputnik authors. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
/*---
|
|
info: If any value is NaN, the result of Math.min is NaN
|
|
es5id: 15.8.2.12_A2
|
|
description: >
|
|
The script tests Math.min giving 1, 2 and 3 arguments to the
|
|
function where at least one of the arguments is NaN
|
|
---*/
|
|
|
|
// CHECK#1
|
|
assert.sameValue(Math.min(NaN), NaN, "NaN");
|
|
|
|
// CHECK#2
|
|
var vals = new Array();
|
|
vals[0] = -Infinity;
|
|
vals[1] = -0.000000000000001;
|
|
vals[2] = -0;
|
|
vals[3] = +0
|
|
vals[4] = 0.000000000000001;
|
|
vals[5] = +Infinity;
|
|
vals[6] = NaN;
|
|
var valnum = 7;
|
|
|
|
var args = new Array();
|
|
for (var i = 0; i <= 1; i++)
|
|
{
|
|
args[i] = NaN;
|
|
for (var j = 0; j < valnum; j++)
|
|
{
|
|
args[1-i] = vals[j];
|
|
assert.sameValue(
|
|
Math.min(args[0], args[1]),
|
|
NaN,
|
|
"min(" + args[0] + ", " + args[1] + ")"
|
|
);
|
|
}
|
|
}
|
|
|
|
// CHECK #3
|
|
var k = 1;
|
|
var l = 2;
|
|
for (var i = 0; i <= 2; i++)
|
|
{
|
|
args[i] = NaN;
|
|
if (i === 1)
|
|
{
|
|
k = 0;
|
|
} else if (i === 2)
|
|
{
|
|
l = 1;
|
|
}
|
|
for (var j = 0; j < valnum; j++)
|
|
{
|
|
for (var jj = 0; jj < valnum; jj++)
|
|
{
|
|
args[k] = vals[j];
|
|
args[l] = vals[jj];
|
|
assert.sameValue(
|
|
Math.min(args[0], args[1], args[2]),
|
|
NaN,
|
|
"min(" + args[0] + ", " + args[1] + ", " + args[2] + ")"
|
|
);
|
|
}
|
|
}
|
|
}
|