@Override public Object invoke(final V8Object receiver, final V8Array parameters) { V8ArrayBuffer arrayBuffer = new V8ArrayBuffer(v8, 8); V8TypedArray array = new V8TypedArray(v8, arrayBuffer, V8Value.INT_8_ARRAY, 0, 8); array.add("0", 8); arrayBuffer.close(); return array; } };
@Override public Object invoke(final V8Object receiver, final V8Array parameters) { V8ArrayBuffer arrayBuffer = new V8ArrayBuffer(v8, 8); V8TypedArray array = new V8TypedArray(v8, arrayBuffer, V8Value.INT_16_ARRAY, 0, 4); array.add("0", 8000); arrayBuffer.close(); return array; } };
@Override public Object invoke(final V8Object receiver, final V8Array parameters) { V8ArrayBuffer arrayBuffer = new V8ArrayBuffer(v8, 8); V8TypedArray array = new V8TypedArray(v8, arrayBuffer, V8Value.FLOAT_32_ARRAY, 0, 2); array.add("0", 3.14); arrayBuffer.close(); return array; } };
@Override public Object invoke(final V8Object receiver, final V8Array parameters) { V8ArrayBuffer arrayBuffer = new V8ArrayBuffer(v8, 8); V8TypedArray array = new V8TypedArray(v8, arrayBuffer, V8Value.INT_32_ARRAY, 0, 2); array.add("0", 800000000); arrayBuffer.close(); return array; } };
@Test public void testInt32TypedArray_addInJava() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 12); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.INT_32_ARRAY, 0, 3); typedArray.add("0", (long) (Integer.MAX_VALUE)); typedArray.add("1", (long) (Integer.MAX_VALUE + 1)); typedArray.add("2", (long) (Integer.MIN_VALUE)); assertEquals(3, typedArray.length()); assertEquals(2147483647, typedArray.get(0)); assertEquals(-2147483648, typedArray.get(1)); assertEquals(-2147483648, typedArray.get(2)); buffer.close(); typedArray.close(); }
@Test public void testCreateIntegerTypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray v8Int32Array = new V8TypedArray(v8, buffer, V8Value.INTEGER, 0, 2); v8Int32Array.add("0", 7); v8Int32Array.add("1", 8); assertEquals(7, buffer.getInt()); assertEquals(8, buffer.getInt()); buffer.close(); v8Int32Array.close(); }
@Test public void testCreateByteTypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.BYTE, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(7, buffer.get()); assertEquals(8, buffer.get()); buffer.close(); typedArray.close(); }
@Test public void testCreateUInt32TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.UNSIGNED_INT_32_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(V8Value.UNSIGNED_INT_32_ARRAY, typedArray.getType()); assertEquals(7, buffer.getInt()); assertEquals(8, buffer.getInt()); buffer.close(); typedArray.close(); }
@Test public void testUInt32TypedArray_addInJava() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.UNSIGNED_INT_32_ARRAY, 0, 2); typedArray.add("0", (long) (Integer.MAX_VALUE + 1)); typedArray.add("1", -1); assertEquals(2, typedArray.length()); assertEquals(2147483648L, typedArray.get(0)); assertEquals(4294967295L, typedArray.get(1)); buffer.close(); typedArray.close(); }
@Test public void testUInt8ClampedTypedArray_addInJava() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray v8Int8Array = new V8TypedArray(v8, buffer, V8Value.UNSIGNED_INT_8_CLAMPED_ARRAY, 0, 8); v8Int8Array.add("0", (short) 256); v8Int8Array.add("1", -1); assertEquals(8, v8Int8Array.length()); assertEquals((short) 255, v8Int8Array.get(0)); assertEquals((short) 0, v8Int8Array.get(1)); buffer.close(); v8Int8Array.close(); }
@Test public void testCreateInt16TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.INT_16_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(V8Value.INT_16_ARRAY, typedArray.getType()); assertEquals(7, buffer.getShort()); assertEquals(8, buffer.getShort()); buffer.close(); typedArray.close(); }
@Test public void testCreateInt32TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.INT_32_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(V8Value.INT_32_ARRAY, typedArray.getType()); assertEquals(7, buffer.getInt()); assertEquals(8, buffer.getInt()); buffer.close(); typedArray.close(); }
@Test public void testFloat32TypedArray_addInJava() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.FLOAT_32_ARRAY, 0, 2); typedArray.add("0", 123.45); typedArray.add("1", -3.14159); assertEquals(2, typedArray.length()); assertEquals(123.45, (Float) typedArray.get(0), 0.00001); assertEquals(-3.14159, (Float) typedArray.get(1), 0.0001); buffer.close(); typedArray.close(); }
@Test public void testCreateUInt8ClampedTypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.UNSIGNED_INT_8_CLAMPED_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 270); assertEquals(V8Value.UNSIGNED_INT_8_CLAMPED_ARRAY, typedArray.getType()); assertEquals(7, buffer.get()); assertEquals(255, buffer.get() & 0xFF); // Java does not have Unsigned Bytes buffer.close(); typedArray.close(); }
@Test public void testCreateUInt16TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.UNSIGNED_INT_16_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(V8Value.UNSIGNED_INT_16_ARRAY, typedArray.getType()); assertEquals(7, buffer.getShort()); assertEquals(8, buffer.getShort()); buffer.close(); typedArray.close(); }
@Test public void testUInt16TypedArray_addInJava() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 4); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.UNSIGNED_INT_16_ARRAY, 0, 2); typedArray.add("0", Short.MAX_VALUE + 1); typedArray.add("1", -1); assertEquals(2, typedArray.length()); assertEquals(32768, typedArray.get(0)); assertEquals(65535, typedArray.get(1)); buffer.close(); typedArray.close(); }
@Test public void testCreateInt8TypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.INT_8_ARRAY, 0, 2); typedArray.add("0", 7); typedArray.add("1", 8); assertEquals(V8Value.INT_8_ARRAY, typedArray.getType()); assertEquals(7, buffer.get()); assertEquals(8, buffer.get()); buffer.close(); typedArray.close(); }
@Test public void testFloat64TypedArray_addInJava() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 16); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.FLOAT_64_ARRAY, 0, 2); typedArray.add("0", 123.45); typedArray.add("1", -3.14159); assertEquals(2, typedArray.length()); assertEquals(123.45, (Double) typedArray.get(0), 0.00001); assertEquals(-3.14159, (Double) typedArray.get(1), 0.0001); buffer.close(); typedArray.close(); }
@Test public void testAccess32BitFloatFromTypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.FLOAT_32_ARRAY, 0, 2); typedArray.add("0", 3.14); assertEquals(V8Value.FLOAT_32_ARRAY, typedArray.getType()); assertEquals(3.14, buffer.getFloat(), 0.0001); buffer.close(); typedArray.close(); }
@Test public void testAccess64BitFloatFromTypedArray() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray typedArray = new V8TypedArray(v8, buffer, V8Value.FLOAT_64_ARRAY, 0, 1); typedArray.add("0", 3.14159265359); assertEquals(V8Value.FLOAT_64_ARRAY, typedArray.getType()); assertEquals(3.14159265359, buffer.getDouble(), 0.000000000001); buffer.close(); typedArray.close(); }