summaryrefslogtreecommitdiff
path: root/Libraries/LibJS/Tests/Math.clz32.js
blob: ee37c9212d0c71e2c44f9df0e54fcd5f54d49b91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
load("test-common.js");

try {
    assert(Math.clz32.length === 1);

    assert(Math.clz32(0) === 32);
    assert(Math.clz32(1) === 31);
    assert(Math.clz32(2) === 30);
    assert(Math.clz32(3) === 30);
    assert(Math.clz32(4) === 29);
    assert(Math.clz32(5) === 29);
    assert(Math.clz32(-1) === 0);
    assert(Math.clz32(-10) === 0);
    assert(Math.clz32(-100) === 0);
    assert(Math.clz32(-1000) === 0);
    assert(Math.clz32(-0.123) === 32);
    assert(Math.clz32(0.123) === 32);
    assert(Math.clz32(1.23) === 31);
    assert(Math.clz32(12) === 28);
    assert(Math.clz32(123) === 25);
    assert(Math.clz32(1234) === 21);
    assert(Math.clz32(12345) === 18);
    assert(Math.clz32(123456) === 15);
    assert(Math.clz32(1234567) === 11);
    assert(Math.clz32(12345678) === 8);
    assert(Math.clz32(123456789) === 5);
    assert(Math.clz32(999999999) === 2);
    assert(Math.clz32(9999999999) === 1);
    assert(Math.clz32(99999999999) === 1);
    assert(Math.clz32(999999999999) === 0);
    assert(Math.clz32(9999999999999) === 1);
    assert(Math.clz32(99999999999999) === 3);
    assert(Math.clz32(999999999999999) === 0);

    assert(Math.clz32() === 32);
    assert(Math.clz32(NaN) === 32);
    assert(Math.clz32(Infinity) === 32);
    assert(Math.clz32(-Infinity) === 32);
    assert(Math.clz32(false) === 32);
    assert(Math.clz32(true) === 31);
    assert(Math.clz32(null) === 32);
    assert(Math.clz32(undefined) === 32);
    assert(Math.clz32([]) === 32);
    assert(Math.clz32({}) === 32);
    assert(Math.clz32("foo") === 32);

    console.log("PASS");
} catch (e) {
    console.log("FAIL: " + e);
}