@@ -755,3 +755,61 @@ test_that("no dplyr warnings from selecting multiple columns", {
755
755
)
756
756
expect_equal(multi_slid_select , multi_slid )
757
757
})
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