Browse Source

LibJS: Add tests for DataView.prototype getters and setters

Idan Horowitz 4 năm trước cách đây
mục cha
commit
e4e6e03364

+ 12 - 0
Userland/Libraries/LibJS/Tests/builtins/DataView/ArrayBuffer.prototype.bigInt64.js

@@ -0,0 +1,12 @@
+test("basic functionality", () => {
+    const buffer = new ArrayBuffer(8);
+    const view = new DataView(buffer);
+    view.setBigInt64(0, -0x6f80ff08n);
+    expect(view.getBigInt64(0)).toBe(-0x6f80ff08n);
+    view.setBigInt64(0, -0x6f80ff08n, true);
+    expect(view.getBigInt64(0)).toBe(-0x7ff806f00000001n);
+    view.setBigUint64(0, 0x6f80ff08n);
+    expect(view.getBigUint64(0)).toBe(0x6f80ff08n);
+    view.setBigUint64(0, 0x6f80ff08n, true);
+    expect(view.getBigUint64(0)).toBe(0x8ff806f00000000n);
+});

+ 8 - 0
Userland/Libraries/LibJS/Tests/builtins/DataView/ArrayBuffer.prototype.float32.js

@@ -0,0 +1,8 @@
+test("basic functionality", () => {
+    const buffer = new ArrayBuffer(8);
+    const view = new DataView(buffer);
+    view.setFloat32(0, 6854.162);
+    expect(view.getFloat32(0)).toBe(6854.162109375);
+    view.setFloat32(0, 6854.162, true);
+    expect(view.getFloat32(0)).toBe(46618900);
+});

+ 8 - 0
Userland/Libraries/LibJS/Tests/builtins/DataView/ArrayBuffer.prototype.float64.js

@@ -0,0 +1,8 @@
+test("basic functionality", () => {
+    const buffer = new ArrayBuffer(8);
+    const view = new DataView(buffer);
+    view.setFloat64(0, 6865415254.161212);
+    expect(view.getFloat64(0)).toBe(6865415254.161212);
+    view.setFloat64(0, 6865415254.161212, true);
+    expect(view.getFloat64(0)).toBe(4.2523296908380055e94);
+});

+ 12 - 0
Userland/Libraries/LibJS/Tests/builtins/DataView/ArrayBuffer.prototype.int16.js

@@ -0,0 +1,12 @@
+test("basic functionality", () => {
+    const buffer = new ArrayBuffer(8);
+    const view = new DataView(buffer);
+    view.setInt16(0, -0xff8);
+    expect(view.getInt16(0)).toBe(-0xff8);
+    view.setInt16(0, -0xff8, true);
+    expect(view.getInt16(0)).toBe(0x8f0);
+    view.setUint16(0, 0xff8);
+    expect(view.getUint16(0)).toBe(0xff8);
+    view.setUint16(0, 0xff8, true);
+    expect(view.getUint16(0)).toBe(0xf80f);
+});

+ 12 - 0
Userland/Libraries/LibJS/Tests/builtins/DataView/ArrayBuffer.prototype.int32.js

@@ -0,0 +1,12 @@
+test("basic functionality", () => {
+    const buffer = new ArrayBuffer(8);
+    const view = new DataView(buffer);
+    view.setInt32(0, -0xff08);
+    expect(view.getInt32(0)).toBe(-0xff08);
+    view.setInt32(0, -0xff08, true);
+    expect(view.getInt32(0)).toBe(-0x7ff0001);
+    view.setUint32(0, 0xff08);
+    expect(view.getUint32(0)).toBe(0xff08);
+    view.setUint32(0, 0xff08, true);
+    expect(view.getUint32(0)).toBe(0x8ff0000);
+});

+ 8 - 0
Userland/Libraries/LibJS/Tests/builtins/DataView/ArrayBuffer.prototype.int8.js

@@ -0,0 +1,8 @@
+test("basic functionality", () => {
+    const buffer = new ArrayBuffer(8);
+    const view = new DataView(buffer);
+    view.setInt8(0, -0x88);
+    expect(view.getInt8(0)).toBe(0x78);
+    view.setUint8(0, 0x88);
+    expect(view.getUint8(0)).toBe(0x88);
+});