Skip to content

Commit f361e6c

Browse files
committed
@llrs-roche review
1 parent 9695f84 commit f361e6c

File tree

3 files changed

+15
-15
lines changed

3 files changed

+15
-15
lines changed

R/qenv-eval_code.R

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,7 @@ setMethod("eval_code", signature = c("qenv", "expression"), function(object, cod
100100
if (length(srcref)) {
101101
eval_code(object, code = paste(attr(code, "wholeSrcref"), collapse = "\n"))
102102
} else {
103-
eval_code(
104-
object,
105-
code = paste(
106-
collapse = "\n",
107-
vapply(lang2calls(code), deparse1, collapse = "\n", character(1L))
108-
)
109-
)
103+
Reduce(function(x, code) eval_code(x, code), x = code, init = object)
110104
}
111105
})
112106

tests/testthat/test-qenv_eval_code.R

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
testthat::test_that("eval_code evaluates the code in the qenvs environment", {
22
q <- qenv()
3-
q1 <- eval_code(q, quote(iris1 <- iris))
4-
q2 <- eval_code(q1, quote(b <- nrow(iris1)))
5-
testthat::expect_identical(q2$b, 150L)
3+
q1 <- eval_code(q, quote(a <- 1L))
4+
q2 <- eval_code(q1, quote(b <- 1))
5+
testthat::expect_equal(q2@.xData, list2env(list(a = 1L, b = 1)))
66
})
77

88
testthat::test_that("eval_code locks the environment", {
@@ -40,10 +40,9 @@ testthat::test_that("eval_code works with character", {
4040
})
4141

4242
testthat::test_that("eval_code works with expression", {
43-
q1 <- eval_code(qenv(), as.expression(quote(a <- 1)))
44-
45-
testthat::expect_identical(get_code(q1), "a <- 1")
46-
testthat::expect_equal(q1@.xData, list2env(list(a = 1)))
43+
q1 <- eval_code(qenv(), expression(a <- 1, b <- 2))
44+
testthat::expect_identical(get_code(q1), "a <- 1\nb <- 2")
45+
testthat::expect_equal(q1@.xData, list2env(list(a = 1, b = 2)))
4746
})
4847

4948
testthat::test_that("eval_code works with quoted", {

tests/testthat/test-qenv_within.R

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,17 @@ testthat::test_that("styling of input code does not impact evaluation results",
6464

6565

6666
# return value ----
67-
testthat::test_that("within.qenv renturns a `qenv` where `@.xData` is a deep copy of that in `data`", {
67+
testthat::test_that("within.qenv empty call doesn't change qenv object", {
6868
q <- qenv()
6969
q <- within(qenv(), i <- iris)
7070
qq <- within(q, {})
71+
testthat::expect_identical(q, qq)
72+
})
73+
74+
testthat::test_that("within.qenv renturns a `qenv` where `@.xData` is a deep copy of that in `data`", {
75+
q <- qenv()
76+
q <- within(qenv(), i <- iris)
77+
qq <- within(q, i)
7178
testthat::expect_equal(q@.xData, qq@.xData)
7279
testthat::expect_false(identical(q@.xData, qq@.xData))
7380
})

0 commit comments

Comments
 (0)