From c66c75434b2edc7b2059e8e8e5c82bfa16295bfd Mon Sep 17 00:00:00 2001
From: stepan <stepan.sindelar@oracle.com>
Date: Fri, 20 Apr 2018 16:12:38 +0200
Subject: [PATCH] Fix: model.frame creates '(weights)' attribute instead of '(
 weights )'

---
 .../src/com/oracle/truffle/r/library/stats/model.R        | 2 +-
 .../src/com/oracle/truffle/r/test/ExpectedTestOutput.test | 8 ++++++++
 .../oracle/truffle/r/test/library/stats/TestFormulae.java | 5 +++++
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/model.R b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/model.R
index 861b588603..ccd97715e8 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/model.R
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/model.R
@@ -782,7 +782,7 @@ modelframe <- function(formula, rownames, variables, varnames, dots, dotnames, s
             }
             
             data[[j]] <- dots[[i]]
-            dataNames[[j]] <- paste("(", ss, ")")
+            dataNames[[j]] <- paste0("(", ss, ")")
             j <- j + 1L
         }
     } else {
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 5ef348d3f9..acc052bd1c 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
@@ -163468,6 +163468,14 @@ data frame with 0 columns and 0 rows
 9  m 8 c
 10 f 9 c
 
+##com.oracle.truffle.r.test.library.stats.TestFormulae.testModelFrameWithWeights#
+#model.frame(formula = cyl ~ disp, data = mtcars[1:4,], weights = seq_len(nrow(mtcars[1:4,])))
+               cyl disp (weights)
+Mazda RX4        6  160         1
+Mazda RX4 Wag    6  160         2
+Datsun 710       4  108         3
+Hornet 4 Drive   6  258         4
+
 ##com.oracle.truffle.r.test.library.stats.TestFormulae.testModelMatrix#
 #{y<-0:9;z<-1:10;k<-2:11;w<-3:12;m<-4:13;u<-5:14;v<-6:15;; model.matrix(model.frame(terms.formula(u~z*k+w*m))) }
    (Intercept)  z  k  w  m z:k w:m
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/stats/TestFormulae.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/stats/TestFormulae.java
index f2d4ab6beb..d3a56d60ae 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/stats/TestFormulae.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/stats/TestFormulae.java
@@ -115,4 +115,9 @@ public class TestFormulae extends TestBase {
     public void testDotWithNoFramenames() {
         assertEval(Output.IgnoreErrorContext, "terms.formula(x ~ .^4)");
     }
+
+    @Test
+    public void testModelFrameWithWeights() {
+        assertEval("model.frame(formula = cyl ~ disp, data = mtcars[1:4,], weights = seq_len(nrow(mtcars[1:4,])))");
+    }
 }
-- 
GitLab