/** @since 0.8 or earlier */ @Test public void testSumRealOfComplexNumbersAsStructuredDataColumnBased() throws Exception { String id = complexSumReal(); if (id == null) { return; } PolyglotEngine.Value apply = findGlobalSymbol(id); Schema schema = new Schema(3, false, Arrays.asList(ComplexNumber.REAL_IDENTIFIER, ComplexNumber.IMAGINARY_IDENTIFIER), Arrays.asList(Type.DOUBLE, Type.DOUBLE)); byte[] buffer = new byte[6 * Double.SIZE / Byte.SIZE]; putDoubles(buffer, new double[]{2, 30, 10, -1, -1, -1}); StructuredData numbers = new StructuredData(buffer, schema); Number n = (Number) apply.execute(numbers).get(); assertDouble("The same value returned", 42.0, n.doubleValue()); }
/** @since 0.8 or earlier */ @Test public void testSumRealOfComplexNumbersAsStructuredDataRowBased() throws Exception { String id = complexSumReal(); if (id == null) { return; } PolyglotEngine.Value apply = findGlobalSymbol(id); Schema schema = new Schema(3, true, Arrays.asList(ComplexNumber.REAL_IDENTIFIER, ComplexNumber.IMAGINARY_IDENTIFIER), Arrays.asList(Type.DOUBLE, Type.DOUBLE)); byte[] buffer = new byte[(6 * Double.SIZE / Byte.SIZE)]; putDoubles(buffer, new double[]{2, -1, 30, -1, 10, -1}); StructuredData numbers = new StructuredData(buffer, schema); Number n = (Number) apply.execute(numbers).get(); assertDouble("The same value returned", 42.0, n.doubleValue()); }
/** @since 0.8 or earlier */ @Test public void testCopyStructuredComplexToComplexNumbersA() throws Exception { String id = complexCopy(); if (id == null) { return; } PolyglotEngine.Value apply = findGlobalSymbol(id); ComplexNumbersA a = new ComplexNumbersA(new double[]{-1, -1, -1, -1, -1, -1}); Schema schema = new Schema(3, true, Arrays.asList(ComplexNumber.REAL_IDENTIFIER, ComplexNumber.IMAGINARY_IDENTIFIER), Arrays.asList(Type.DOUBLE, Type.DOUBLE)); byte[] buffer = new byte[6 * Double.SIZE / Byte.SIZE]; putDoubles(buffer, new double[]{41, 42, 43, 44, 45, 46}); StructuredData b = new StructuredData(buffer, schema); apply.execute(a, b); Assert.assertArrayEquals(new double[]{41, 42, 43, 44, 45, 46}, a.getData(), 0.1); }