summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibJS/Tests/builtins/Math/Math.atan2.js
blob: 106fee51cc9b4c6100f75aad20517b4f730b9963 (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
test("basic functionality", () => {
    expect(Math.atan2).toHaveLength(2);

    expect(Math.atan2(90, 15)).toBeCloseTo(1.4056476493802699);
    expect(Math.atan2(15, 90)).toBeCloseTo(0.16514867741462683);
    expect(Math.atan2(+0, -0)).toBeCloseTo(Math.PI);
    expect(Math.atan2(-0, -0)).toBeCloseTo(-Math.PI);
    expect(Math.atan2(+0, +0)).toBe(0);
    expect(Math.atan2(-0, +0)).toBe(-0);
    expect(Math.atan2(+0, -1)).toBeCloseTo(Math.PI);
    expect(Math.atan2(-0, -1)).toBeCloseTo(-Math.PI);
    expect(Math.atan2(+0, 1)).toBe(0);
    expect(Math.atan2(-0, 1)).toBe(-0);
    expect(Math.atan2(-1, +0)).toBeCloseTo(-Math.PI / 2);
    expect(Math.atan2(-1, -0)).toBeCloseTo(-Math.PI / 2);
    expect(Math.atan2(1, +0)).toBeCloseTo(Math.PI / 2);
    expect(Math.atan2(1, -0)).toBeCloseTo(Math.PI / 2);
    expect(Math.atan2(1, -Infinity)).toBeCloseTo(Math.PI);
    expect(Math.atan2(-1, -Infinity)).toBeCloseTo(-Math.PI);
    expect(Math.atan2(1, +Infinity)).toBe(0);
    expect(Math.atan2(-1, +Infinity)).toBe(-0);
    expect(Math.atan2(+Infinity, 1)).toBeCloseTo(Math.PI / 2);
    expect(Math.atan2(-Infinity, 1)).toBeCloseTo(-Math.PI / 2);
    expect(Math.atan2(+Infinity, -Infinity)).toBeCloseTo((3 * Math.PI) / 4);
    expect(Math.atan2(-Infinity, -Infinity)).toBeCloseTo((-3 * Math.PI) / 4);
    expect(Math.atan2(+Infinity, +Infinity)).toBeCloseTo(Math.PI / 4);
    expect(Math.atan2(-Infinity, +Infinity)).toBeCloseTo(-Math.PI / 4);
});