@@ -60,6 +60,7 @@ test_that("loo_compare throws appropriate warnings", {
6060
6161
6262comp_colnames <- c(
63+ " model" ,
6364 " elpd_diff" ,
6465 " se_diff" ,
6566 " p_worse" ,
@@ -77,19 +78,26 @@ test_that("loo_compare returns expected results (2 models)", {
7778 expect_s3_class(comp1 , " compare.loo" )
7879 expect_s3_class(comp1 , " data.frame" )
7980 expect_equal(colnames(comp1 ), comp_colnames )
80- expect_equal(rownames(comp1 ), c(" model1" , " model2" ))
81- expect_output(print(comp1 ), " elpd_diff" )
82- expect_equal(comp1 [1 : 2 , 1 ], c(0 , 0 ), ignore_attr = TRUE )
83- expect_equal(comp1 [1 : 2 , 2 ], c(0 , 0 ), ignore_attr = TRUE )
81+ expect_equal(comp1 $ model , c(" model1" , " model2" ))
82+ expect_equal(comp1 $ elpd_diff , c(0 , 0 ), ignore_attr = TRUE )
83+ expect_equal(comp1 $ se_diff , c(0 , 0 ), ignore_attr = TRUE )
84+ expect_equal(comp1 $ p_worse , c(NA_real_ , NA_real_ ), ignore_attr = TRUE )
85+ expect_snapshot_value(comp1 , style = " serialize" )
86+ expect_snapshot(print(comp1 ))
8487
8588 comp2 <- loo_compare(w1 , w2 )
8689 expect_s3_class(comp2 , " compare.loo" )
8790 expect_equal(colnames(comp2 ), comp_colnames )
88-
8991 expect_snapshot_value(comp2 , style = " serialize" )
92+ expect_snapshot(print(comp2 ))
93+ expect_snapshot(print(comp2 , p_worse = FALSE ))
9094
9195 # specifying objects via ... and via arg x gives equal results
9296 expect_equal(comp2 , loo_compare(x = list (w1 , w2 )))
97+
98+ # custom naming works
99+ comp3 <- loo_compare(x = list (" A" = w2 , " B" = w1 ))
100+ expect_equal(comp3 $ model , c(" B" , " A" ))
93101})
94102
95103
@@ -98,12 +106,12 @@ test_that("loo_compare returns expected result (3 models)", {
98106 comp1 <- loo_compare(w1 , w2 , w3 )
99107
100108 expect_equal(colnames(comp1 ), comp_colnames )
101- expect_equal(rownames( comp1 ) , c(" model1" , " model2" , " model3" ))
102- expect_equal(comp1 [ 1 , 1 ], 0 )
109+ expect_equal(comp1 $ model , c(" model1" , " model2" , " model3" ))
110+ expect_equal(comp1 $ p_worse , c( NA , 1 , 1 ) )
103111 expect_s3_class(comp1 , " compare.loo" )
104112 expect_s3_class(comp1 , " data.frame" )
105-
106113 expect_snapshot_value(comp1 , style = " serialize" )
114+ expect_snapshot(print(comp1 ))
107115
108116 # specifying objects via '...' gives equivalent results (equal
109117 # except rownames) to using 'x' argument
@@ -119,13 +127,11 @@ test_that("compare throws deprecation warnings", {
119127
120128test_that(" compare returns expected result (2 models)" , {
121129 expect_warning(comp1 <- loo :: compare(w1 , w1 ), " Deprecated" )
122- expect_snapshot(comp1 )
123130 expect_equal(comp1 [1 : 2 ], c(elpd_diff = 0 , se = 0 ))
124131
125132 expect_warning(comp2 <- loo :: compare(w1 , w2 ), " Deprecated" )
126- expect_snapshot(comp2 )
127- expect_named(comp2 , c(" elpd_diff" , " se" ))
128- expect_s3_class(comp2 , " compare.loo" )
133+ expect_equal(round(comp2 [1 : 2 ], 3 ), c(elpd_diff = - 4.057 , se = 0.088 ))
134+ expect_s3_class(comp2 , " old_compare.loo" )
129135
130136 # specifying objects via ... and via arg x gives equal results
131137 expect_warning(comp_via_list <- loo :: compare(x = list (w1 , w2 )), " Deprecated" )
0 commit comments