diff --git a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/casts/CastUtils.java b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/casts/CastUtils.java index fda59988b92dd86d2a049a7d8f417642bbde717b..bed51d5bb06f1993178d7cb682df6a0966d63728 100644 --- a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/casts/CastUtils.java +++ b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/casts/CastUtils.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -851,7 +851,7 @@ public class CastUtils { samples.add(RDataFactory.createComplexVectorFromScalar(RComplex.valueOf(1, 1))); samples.add(RDataFactory.createComplexVectorFromScalar(RComplex.valueOf(-1, 1))); samples.add(RDataFactory.createComplexVector(new double[]{-Math.PI, 0, Math.PI, - RRuntime.DOUBLE_NA, -Math.PI, 0, Math.PI, RRuntime.DOUBLE_NA}, true)); + RRuntime.DOUBLE_NA, -Math.PI, 0, Math.PI, RRuntime.DOUBLE_NA}, false)); samples.add(RDataFactory.createComplexVector(new double[]{-Math.PI, 0, Math.PI, RRuntime.DOUBLE_NA, -Math.PI, 0, Math.PI, RRuntime.DOUBLE_NA}, false)); samples.add(RDataFactory.createComplexVector(new double[]{RRuntime.DOUBLE_NA, RRuntime.DOUBLE_NA}, false)); diff --git a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/casts/TypeExpr.java b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/casts/TypeExpr.java index d156a5156a473161b5fb65c563f69794525af66e..57d985d5b6c83a4685a816a9a500845bf88c6e1d 100644 --- a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/casts/TypeExpr.java +++ b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/casts/TypeExpr.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -223,7 +223,7 @@ public final class TypeExpr { } public TypeExpr normalize() { - Set<Set<Type>> conjunctionsNormalized = disjNormForm.stream().map(conj -> normalizeConjunctionSet(conj)).filter(t -> !t.equals(Not.NOTHING)).collect(Collectors.toSet()); + Set<Set<Type>> conjunctionsNormalized = disjNormForm.stream().map(conj -> normalizeConjunctionSet(conj)).filter(t -> !t.isEmpty()).collect(Collectors.toSet()); return new TypeExpr(conjunctionsNormalized, samples); } diff --git a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/castsTests/CastBuilderTest.java b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/castsTests/CastBuilderTest.java index 817a66144fcecafb1cae808b9baca46ef9f8692a..7e692d619e33dbfa01d92677c0977f849a1528df 100644 --- a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/castsTests/CastBuilderTest.java +++ b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/castsTests/CastBuilderTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -655,7 +655,7 @@ public class CastBuilderTest { } @Test - public void testSampleNonNASequence() { + public void testMustNotBeNAOnIntSequence() { arg.mustNotBeNA(RError.Message.GENERIC, "Error"); RIntSequence seq = RDataFactory.createIntSequence(1, 1, 1); Object res = cast(seq); @@ -663,10 +663,9 @@ public class CastBuilderTest { } @Test - public void testSampleNAVector() { + public void testReplaceDoubleNA() { arg.replaceNA("REPLACEMENT"); - RDoubleVector vec = RDataFactory.createDoubleVector(new double[]{0, 1, RRuntime.DOUBLE_NA, 3}, false); - Object res = cast(vec); + Object res = cast(RRuntime.DOUBLE_NA); Assert.assertEquals("REPLACEMENT", res); } diff --git a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/castsTests/ResultTypesAnalyserTest.java b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/castsTests/ResultTypesAnalyserTest.java index 47670c9a92b000884ebb89f41e9dd2c5295f4e72..c275686083061f5b5670e5f9068ff438b60a71fb 100644 --- a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/castsTests/ResultTypesAnalyserTest.java +++ b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/castsTests/ResultTypesAnalyserTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -88,10 +88,13 @@ import com.oracle.truffle.r.runtime.data.RNull; import com.oracle.truffle.r.runtime.data.RRaw; import com.oracle.truffle.r.runtime.data.RRawVector; import com.oracle.truffle.r.runtime.data.RString; +import com.oracle.truffle.r.runtime.data.RStringSequence; import com.oracle.truffle.r.runtime.data.RStringVector; +import com.oracle.truffle.r.runtime.data.model.RAbstractComplexVector; import com.oracle.truffle.r.runtime.data.model.RAbstractDoubleVector; import com.oracle.truffle.r.runtime.data.model.RAbstractIntVector; import com.oracle.truffle.r.runtime.data.model.RAbstractLogicalVector; +import com.oracle.truffle.r.runtime.data.model.RAbstractRawVector; import com.oracle.truffle.r.runtime.data.model.RAbstractStringVector; import com.oracle.truffle.r.runtime.data.model.RAbstractVector; @@ -114,7 +117,7 @@ public class ResultTypesAnalyserTest { @Test public void testAsDoubleVector() { arg.asDoubleVector(); - assertTypes(RNull.class, RMissing.class, double.class, RDoubleSequence.class, RDoubleVector.class); + assertTypes(RNull.class, RMissing.class, double.class, RAbstractDoubleVector.class, RDoubleVector.class); } @Test @@ -126,25 +129,25 @@ public class ResultTypesAnalyserTest { @Test public void testAsLogicalVector() { arg.asLogicalVector(); - assertTypes(RNull.class, RMissing.class, byte.class, RLogicalVector.class); + assertTypes(RNull.class, RMissing.class, byte.class, RAbstractLogicalVector.class, RLogicalVector.class); } @Test public void testAsStringVector() { arg.asStringVector(); - assertTypes(RNull.class, RMissing.class, String.class, RStringVector.class); + assertTypes(RNull.class, RMissing.class, String.class, RAbstractStringVector.class, RStringVector.class, RStringSequence.class); } @Test public void testAsRawVector() { arg.asRawVector(); - assertTypes(RNull.class, RMissing.class, RRaw.class, RRawVector.class); + assertTypes(RNull.class, RMissing.class, RAbstractRawVector.class, RRaw.class, RRawVector.class); } @Test public void testAsComplexVector() { arg.asComplexVector(); - assertTypes(RNull.class, RMissing.class, RComplex.class, RComplexVector.class); + assertTypes(RNull.class, RMissing.class, RAbstractComplexVector.class, RComplex.class, RComplexVector.class); } @Test @@ -442,7 +445,7 @@ public class ResultTypesAnalyserTest { @Test public void testMustNotBeMissingAndBoxPrimitive() { arg.mustNotBeMissing().returnIf(nullValue(), nullConstant()).mustBe(stringValue()).boxPrimitive().asStringVector(); - assertTypes(atom(RNull.class).or(atom(RStringVector.class)), true); + assertTypes(atom(RNull.class).or(atom(RStringVector.class).or(atom(RAbstractStringVector.class))), true); } @Test diff --git a/mx.fastr/mx_fastr.py b/mx.fastr/mx_fastr.py index 700ba883572d9bf829100793adebb5662751bb9e..429c9d84e47a1dabbf50a20cf5203b8180f283b5 100644 --- a/mx.fastr/mx_fastr.py +++ b/mx.fastr/mx_fastr.py @@ -338,7 +338,7 @@ def _simple_generated_unit_tests(): return map(_test_subpackage, ['engine.shell', 'engine.interop', 'library.base', 'library.grid', 'library.fastrGrid', 'library.methods', 'library.stats', 'library.tools', 'library.utils', 'library.fastr', 'builtins', 'functions', 'parser', 'rffi', 'rng', 'runtime.data', 'S4']) def _simple_unit_tests(): - return _simple_generated_unit_tests() + ['com.oracle.truffle.tck.tests'] + return _simple_generated_unit_tests() + ['com.oracle.truffle.r.nodes.castsTests', 'com.oracle.truffle.tck.tests'] def _nodes_unit_tests(): return ['com.oracle.truffle.r.nodes.test', 'com.oracle.truffle.r.nodes.access.vector']