ianmcook commented on a change in pull request #9999:
URL: https://github.com/apache/arrow/pull/9999#discussion_r619416026
##########
File path: r/tests/testthat/test-dplyr-mutate.R
##########
@@ -415,3 +406,160 @@ test_that("mutate and write_dataset", {
summarize(mean = mean(integer))
)
})
+
+# PACHA ADDITIONS ----
+# READ THIS CAREFULLY PLEASE, IT'S MY 1ST DAY WRITING THIS KIND OF SENSITIVE
TESTS
+
+# similar to
https://github.com/tidyverse/dplyr/blob/master/tests/testthat/test-mutate.r#L1-L10
+# the rest of that test belongs in L55-62 here
+test_that("empty mutate returns input", {
+ # dbl2 = 5, so I'm grouping by a constant
+ gtbl <- group_by(tbl, dbl2)
+
+ expect_dplyr_equal(input %>% mutate(!!!list()) %>% collect(), tbl)
+
+ expect_dplyr_equal(input %>% mutate() %>% collect(), gtbl)
+ expect_dplyr_equal(input %>% mutate(!!!list()) %>% collect(), gtbl)
+})
+
+# similar to
https://github.com/tidyverse/dplyr/blob/master/tests/testthat/test-mutate.r#L12-L6
+test_that("rownames preserved", {
+ skip("Row names are not preserved")
+ df <- data.frame(x = c(1, 2), row.names = c("a", "b"))
+ expect_dplyr_equal(input %>% mutate(y = 2) %>% collect(), df)
Review comment:
When you add a skipped test like this, take care to ensure that it only
fails/errors for the stated reason. This one would also error because of the
scalar recycling issue. This fixes that.
Also, this test actually passes, but for the wrong reason:
`expect_dplyr_equal()` calls `testthat::expect_equivalent()` which ignores
differences in rownames. The simplest way to resolve this is to explicitly
check the rownames:
```suggestion
expect_dplyr_equal(input %>% mutate(y = c(3, 4)) %>% collect() %>%
rownames(), df)
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]