@@ -755,3 +755,61 @@ test_that("no dplyr warnings from selecting multiple columns", {
755755 )
756756 expect_equal(multi_slid_select , multi_slid )
757757})
758+
759+ test_that(" epi_slide_opt output naming features" , {
760+ multi_columns <- dplyr :: bind_rows(
761+ dplyr :: tibble(geo_value = " ak" , time_value = test_date + 1 : 200 , value = 1 : 200 , value2 = - 1 : - 200 ),
762+ dplyr :: tibble(geo_value = " al" , time_value = test_date + 1 : 5 , value = - (1 : 5 ), value2 = 1 : 5 )
763+ ) %> %
764+ as_epi_df() %> %
765+ group_by(geo_value )
766+ multi_columns_weekly <- dplyr :: bind_rows(
767+ dplyr :: tibble(geo_value = " ak" , time_value = test_date + 7 * (1 : 200 ), value = 1 : 200 , value2 = - 1 : - 200 ),
768+ dplyr :: tibble(geo_value = " al" , time_value = test_date + 7 * (1 : 5 ), value = - (1 : 5 ), value2 = 1 : 5 )
769+ ) %> %
770+ as_epi_df() %> %
771+ group_by(geo_value )
772+ yearmonthly <-
773+ tibble :: tibble(geo_value = 1 ,
774+ time_value = tsibble :: make_yearmonth(2000 , 1 ) + 1 : 30 - 1 ,
775+ value = 1 : 30 %% 2 == 0 ) %> %
776+ as_epi_df() %> %
777+ group_by(geo_value )
778+
779+ # Auto-naming:
780+ # * Changing .f and .window_size:
781+ expect_equal(
782+ multi_columns %> % epi_slide_opt(value2 , frollmean , .window_size = 14 ) %> % names(),
783+ c(names(multi_columns ), " value2_14dav" )
784+ )
785+ expect_equal(
786+ multi_columns %> % epi_slide_opt(value2 , slide_mean , .window_size = as.difftime(14 , units = " days" )) %> % names(),
787+ c(names(multi_columns ), " value2_14dav" )
788+ )
789+ expect_equal(
790+ multi_columns %> % epi_slide_opt(value2 , slide_sum , .window_size = Inf ) %> % names(),
791+ c(names(multi_columns ), " value2_running_sum" )
792+ )
793+ # * Changing .f and .align:
794+ expect_equal(
795+ multi_columns %> % epi_slide_opt(value2 , slide_min , .window_size = 14 , .align = " center" ) %> % names(),
796+ c(names(multi_columns ), " value2_14dcmin" )
797+ )
798+ expect_equal(
799+ multi_columns %> % epi_slide_opt(value2 , slide_max , .window_size = 14 , .align = " left" ) %> % names(),
800+ c(names(multi_columns ), " value2_14dlmax" )
801+ )
802+ # * Changing .f, time_type, .window_size:
803+ expect_equal(
804+ multi_columns_weekly %> % epi_slide_opt(value2 , slide_prod , .window_size = 2 ) %> % names(),
805+ c(names(multi_columns_weekly ), " value2_2wprod" )
806+ )
807+ expect_equal(
808+ multi_columns_weekly %> % epi_slide_opt(value2 , slide_prod , .window_size = as.difftime(2 , units = " weeks" )) %> % names(),
809+ c(names(multi_columns_weekly ), " value2_2wprod" )
810+ )
811+ expect_equal(
812+ yearmonthly %> % epi_slide_opt(value , slide_any , .window_size = 3 ) %> % names(),
813+ c(names(yearmonthly ), " value_3many" ) # not the best name, but super unlikely anyway
814+ )
815+ })
0 commit comments