jonkeane commented on a change in pull request #12431:
URL: https://github.com/apache/arrow/pull/12431#discussion_r810508212



##########
File path: r/tests/testthat/test-dplyr-funcs-datetime.R
##########
@@ -711,3 +711,40 @@ test_that("am/pm mirror lubridate", {
   )
 
 })
+test_that("dst extracts daylight savings time correctly", {
+  test_df <- tibble(
+    dates = as.POSIXct(c("2021-02-20", "2021-07-31", "2021-10-31", 
"2021-01-31"), tz = "Europe/London")
+  )
+  # https://issues.apache.org/jira/browse/ARROW-13168
+  skip_on_os("windows")
+
+  compare_dplyr_binding(
+    .input %>%
+      mutate(dst = dst(dates)) %>%
+      collect(),
+    test_df
+  )
+})
+
+test_that("dst errors with unsupported input", {
+  expect_error(
+    call_function("is_dst", Scalar$create("this is a string, not a 
timestamp")),
+    "NotImplemented: Function 'is_dst' has no kernel matching input types 
(scalar[string])",
+    fixed = TRUE
+  )
+  expect_error(
+    call_function("is_dst", Scalar$create(1L)),
+    "NotImplemented: Function 'is_dst' has no kernel matching input types 
(scalar[int32])",
+    fixed = TRUE
+  )
+  expect_error(
+    call_function("is_dst", Scalar$create(2.2)),
+    "NotImplemented: Function 'is_dst' has no kernel matching input types 
(scalar[double])",
+    fixed = TRUE
+  )
+  expect_error(
+    call_function("is_dst", Scalar$create(TRUE)),
+    "NotImplemented: Function 'is_dst' has no kernel matching input types 
(scalar[bool])",
+    fixed = TRUE
+  )

Review comment:
       Awesome, thanks for these! How do you feel about those error messages? 
Do you think they are clear enough to our end users about what's going on with 
those inputs? 
   
   I think they are pretty clear (though they aren't the absolute best), but at 
this point we weigh: do we add extra type checking to the binding _solely_ to 
improve these error messages or not? (Or put another way are these error 
messages so unintelligible that we should take on the additional code burden of 
additional type checking and error production in R?). What do you think?
   
   If we don't add the extra type checking and error production in R then we 
don't need to add tests here (since they are effectively duplicating the C++ 
error handling tests which presumably exist around these already). (Though 
thank you for plopping them in the PR — it makes it much easier to talk about 
here even if we plopped them in only to remove them later!)




-- 
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.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to