Skip to content
Snippets Groups Projects
Commit d6eb13b4 authored by Leonardo Balter's avatar Leonardo Balter Committed by Mike Pennisi
Browse files

Expand tests for Math.clz32

parent 440211e9
Branches
No related tags found
No related merge requests found
......@@ -8,3 +8,4 @@ description: Math.clz32 should return 32 if passed 0.
---*/
assert.sameValue(Math.clz32(0), 32, 'Math.clz32(0)');
assert.sameValue(Math.clz32(-0), 32, 'Math.clz32(-0)');
// Copyright (C) 2016 The V8 Project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 20.2.2.11
esid: sec-math.clz32
description: >
Return 32 if x is Infinity or -Infinity
info: |
Math.clz32 ( x )
1. Let n be ToUint32(x).
2. Let p be the number of leading zero bits in the 32-bit binary representation of n.
3. Return p.
7.1.6 ToUint32 ( argument )
[...]
2. If number is NaN, +0, -0, +∞, or -∞, return +0.
[...]
---*/
assert.sameValue(Math.clz32(Infinity), 32, "Infinity");
assert.sameValue(Math.clz32(-Infinity), 32, "-Infinity");
// Copyright (C) 2016 The V8 Project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 20.2.2.11
esid: sec-math.clz32
description: >
Catches the int32bit value in the ToUint32 operation
info: |
Math.clz32 ( x )
1. Let n be ToUint32(x).
2. Let p be the number of leading zero bits in the 32-bit binary representation of n.
3. Return p.
7.1.6 ToUint32 ( argument )
[...]
3. Let int be the mathematical value that is the same sign as number and whose
magnitude is floor(abs(number)).
4. Let int32bit be int modulo 232.
5. Return int32bit.
[...]
---*/
assert.sameValue(Math.clz32(4294967295), 0, "2**32-1");
assert.sameValue(Math.clz32(4294967296), 32, "2**32");
assert.sameValue(Math.clz32(4294967297), 31, "2**32+1");
assert.sameValue(Math.clz32(65535), 16, "2**16-1");
assert.sameValue(Math.clz32(65536), 15, "2**16");
assert.sameValue(Math.clz32(65537), 15, "2**16+1");
assert.sameValue(Math.clz32(255), 24, "2**8-1");
assert.sameValue(Math.clz32(256), 23, "2**8");
assert.sameValue(Math.clz32(257), 23, "2**8+1");
assert.sameValue(Math.clz32(-4294967295), 31, "-(2**32-1)");
assert.sameValue(Math.clz32(-4294967296), 32, "-(2**32)");
assert.sameValue(Math.clz32(-4294967297), 0, "-(2**32+1)");
assert.sameValue(Math.clz32(-65535), 0, "-(2**16-1)");
assert.sameValue(Math.clz32(-65536), 0, "-(2**16)");
assert.sameValue(Math.clz32(-65537), 0, "-(2**16+1)");
assert.sameValue(Math.clz32(-255), 0, "-(2**8-1)");
assert.sameValue(Math.clz32(-256), 0, "-(2**8)");
assert.sameValue(Math.clz32(-257), 0, "-(2**8+1)");
// Copyright (C) 2016 The V8 Project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
es6id: 20.2.2.11
esid: sec-math.clz32
description: >
Return 32 if x is NaN
info: |
Math.clz32 ( x )
1. Let n be ToUint32(x).
2. Let p be the number of leading zero bits in the 32-bit binary representation of n.
3. Return p.
7.1.6 ToUint32 ( argument )
[...]
2. If number is NaN, +0, -0, +∞, or -∞, return +0.
[...]
---*/
assert.sameValue(Math.clz32(NaN), 32);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment