From 1b2e376151279b77c6a83161665cd166b044c79c Mon Sep 17 00:00:00 2001 From: Zbynek Slajchrt <zbynek.slajchrt@oracle.com> Date: Mon, 22 Aug 2016 11:33:35 +0200 Subject: [PATCH] A fix-up in AnyNA --- .../truffle/r/nodes/builtin/base/AnyNA.java | 2 +- .../truffle/r/test/ExpectedTestOutput.test | 56 ++++++------------- .../r/test/builtins/TestBuiltin_anyNA.java | 1 + 3 files changed, 18 insertions(+), 41 deletions(-) diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/AnyNA.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/AnyNA.java index 2092bdc5ff..f4ca1e913a 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/AnyNA.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/AnyNA.java @@ -173,7 +173,7 @@ public abstract class AnyNA extends RBuiltinNode { for (int i = 0; i < list.getLength(); i++) { Object value = elementProfile.profile(list.getDataAt(i)); - if (length.executeInteger(frame, value) == 1) { + if (length.executeInteger(frame, value) > 0) { byte result = recursiveNode.execute(frame, value, recursive); if (result == RRuntime.LOGICAL_TRUE) { return RRuntime.LOGICAL_TRUE; diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test index 01a5d768b4..e6f7344c29 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test @@ -1,4 +1,3 @@ -<<<<<<< HEAD ##com.oracle.truffle.r.test.S4.TestS4.runRSourceTests #{ source("com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/S4/R/allocation1.R") } An object of class "Person" @@ -332,45 +331,6 @@ Error: trying to get slot "foo" from an object (class "bar") that is not an S4 o ##com.oracle.truffle.r.test.S4.TestS4.testSlotAccess #{ x<-getClass("ClassUnionRepresentation"); slot(x, "virtual") } [1] FALSE -======= -##com.oracle.truffle.r.test.builtins.TestBuiltin_Arg.testArg1 -#argv <- list(1+2i);Arg(argv[[1]]); -[1] 1.107149 - -##com.oracle.truffle.r.test.builtins.TestBuiltin_Arg.testArg2 -#argv <- list(c(1554.86976865791+337.57296578684i, 1953.0195914094+434.16395869265i, 2020.8001333202+267.40279521531i, 12019.4947666225+397.6223289386i, 40989.2104557418+1079.1450107273i, 59779.5384921205+1460.5074297272i, 40703.4141691824+1049.8100128697i, 12234.4562968499+469.0052365648i, 2311.58538965355+142.56529231224i, 2158.93441543181+94.80017111005i, 2768.79882180339+256.05759156168i, 3234.20673958634+282.64174433659i, 2796.76248579155+64.23534085425i, 2030.22757739534-164.56566766766i, 1522.09271008314-273.51503749101i, 1109.23177636373-215.24298332377i, 714.154122222449-75.284630456206i, 509.684427096512-24.577531288476i, 628.214718823948+42.431050163574i, 1053.2295477549+190.4802567974i, 1388.73708931304+133.04405268816i, 1213.97041311196-135.67196064028i, 790.469479873384-232.737914916798i, 503.424076694357-99.275737105817i, 430.214847703846+45.250156289826i, 640.795334515383+121.961327286573i, 794.927869993865+100.643091831764i, 554.394621183915-15.753680159958i, 286.476583987294-104.634488576316i, 232.82067569803-92.469328935268i, 229.472155078088-54.85406188579i, 253.438957119958-65.123390974834i, 285.141954428461-79.653095359009i, 257.168942241366-34.332533775171i, 214.215071612655+18.001149572355i, 199.882436088191+0i));Arg(argv[[1]]); - [1] 0.21378910 0.21874682 0.13156088 0.03306939 0.02632146 0.02442670 - [7] 0.02578598 0.03831602 0.06159623 0.04388244 0.09221737 0.08716990 -[13] 0.02296371 -0.08088091 -0.17779914 -0.19166492 -0.10502999 -0.04818375 -[19] 0.06743985 0.17891954 0.09551070 -0.11129703 -0.28633889 -0.19470278 -[25] 0.10479506 0.18807855 0.12593654 -0.02840836 -0.35019211 -0.37806413 -[31] -0.23464135 -0.25151740 -0.27240160 -0.13271712 0.08383610 0.00000000 - -##com.oracle.truffle.r.test.builtins.TestBuiltin_Arg.testArg3 -#argv <- list(c(-12.561836573133-726.935211685406i, -19.15961591777-1315.40822424617i, -666.84872452586-2013.90899841237i, -5775.9038598237-11495.8986046958i, -19052.0606820086-36788.5714510618i, -27954.209922899-52600.8398855356i, -19930.6456597181-35739.3494902644i, -7168.9170917163-10787.9325286278i, -2331.00733468417-1545.77448035635i, -1953.77845230855-212.90200115993i, -1953.60071030304+1420.43983282655i, -1700.4015174326+2765.31423009739i, -862.10275212019+2693.95914108523i, 163.24691179114+1837.1971341258i, 824.29498680332+1155.03126302727i, 939.495937605926+679.549172893055i, 686.101881005818+305.166761591578i, 460.339323160381-14.067413050801i, 533.688543397269-293.997358985575i, 773.041200043657-698.096300485637i, 716.84959340189-1127.39175172066i, 226.23728166311-1110.40349894929i, -203.687633095422-740.924670781257i, -271.865544904439-437.858153233594i, -316.769706633022-279.671035520361i, -624.842102639273-228.211019456587i, -806.31350008813-164.912647906911i, -506.559675826232+24.376187336594i, -142.784303570554+217.087547410547i, -44.704338624059+260.225831716256i, 10.565037460572+219.942519605707i, 143.643627814428+218.823069474359i, 232.58540850813+214.905815487636i, 223.286482103748+175.139821578561i, 185.008902762186+116.519845434485i, 171.150234739785-0i));Arg(argv[[1]]); - [1] -1.58807515 -1.58536083 -1.89055498 -2.03638740 -2.04864530 -2.05927874 - [7] -2.07950663 -2.15731903 -2.55603846 -3.03305155 2.51291713 2.12210230 -[13] 1.88051133 1.48217258 0.95096394 0.62620121 0.41850738 -0.03054928 -[19] -0.50351717 -0.73449866 -1.00443433 -1.36980404 -1.83907890 -2.12644093 -[25] -2.41831456 -2.79141494 -2.93984830 3.09350869 2.15258425 1.74092622 -[31] 1.52279777 0.98990906 0.74591046 0.66513920 0.56204835 0.00000000 - -##com.oracle.truffle.r.test.builtins.TestBuiltin_Arg.testArg4 -#argv <- list(logical(0));Arg(argv[[1]]); -numeric(0) - -##com.oracle.truffle.r.test.builtins.TestBuiltin_Arg.testArg5 -#argv <- list(structure(numeric(0), .Dim = c(0L, 0L)));Arg(argv[[1]]); -<0 x 0 matrix> - -##com.oracle.truffle.r.test.builtins.TestBuiltin_Arg.testArg6 -#argv <- list(FALSE);Arg(argv[[1]]); -[1] 0 - -##com.oracle.truffle.r.test.builtins.TestBuiltin_Arg.testArg8 -#argv <- list(-1);do.call('Arg', argv) -[1] 3.141593 ->>>>>>> 430de60... Arg builtin implemented ##com.oracle.truffle.r.test.S4.TestS4.testSlotAccess #{ x<-getClass("ClassUnionRepresentation"); slot(x, virtual) } @@ -2646,6 +2606,22 @@ In anyDuplicated.default(c(1L, 2L, 1L, 1L, 3L, 2L), incomparables = "cat") : #argv <- list(c(1.81566026854212e-304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));do.call('anyNA', argv) [1] FALSE +##com.oracle.truffle.r.test.builtins.TestBuiltin_anyNA.testanyNA2 +#anyNA(list(list(4,5,NA), 3), recursive=TRUE) +[1] TRUE + +##com.oracle.truffle.r.test.builtins.TestBuiltin_anyNA.testanyNA2 +#anyNA(list(list(c(NA)),c(1)), recursive=FALSE) +[1] FALSE + +##com.oracle.truffle.r.test.builtins.TestBuiltin_anyNA.testanyNA2 +#anyNA(list(list(c(NA)),c(1)), recursive=TRUE) +[1] TRUE + +##com.oracle.truffle.r.test.builtins.TestBuiltin_anyNA.testanyNA2 +#anyNA(list(list(c(NA)),c(1)), recursive=c(FALSE,TRUE)) +[1] FALSE + ##com.oracle.truffle.r.test.builtins.TestBuiltin_aperm.testAperm #{ a = array(1:24,c(2,3,4)); b = aperm(a); c(dim(b)[1],dim(b)[2],dim(b)[3]) } [1] 4 3 2 diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_anyNA.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_anyNA.java index 751fef3731..cea95545ce 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_anyNA.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_anyNA.java @@ -28,6 +28,7 @@ public class TestBuiltin_anyNA extends TestBase { assertEval("anyNA(list(list(c(NA)),c(1)), recursive=TRUE)"); assertEval("anyNA(list(list(c(NA)),c(1)), recursive=FALSE)"); assertEval("anyNA(list(list(c(NA)),c(1)), recursive=c(FALSE,TRUE))"); + assertEval("anyNA(list(list(4,5,NA), 3), recursive=TRUE)"); } } -- GitLab