@@ -21,24 +21,26 @@ namespace xgboost::metric {
21
21
22
22
inline void VerifyPrecision (DataSplitMode data_split_mode = DataSplitMode::kRow ) {
23
23
auto ctx = xgboost::CreateEmptyGenericParam (GPUIDX);
24
- xgboost::Metric* metric = xgboost:: Metric::Create (" pre" , &ctx);
24
+ std::unique_ptr< xgboost::Metric> metric{ Metric::Create (" pre" , &ctx)} ;
25
25
ASSERT_STREQ (metric->Name (), " pre" );
26
- EXPECT_NEAR (GetMetricEval (metric, {0 , 1 }, {0 , 1 }, {}, {}, data_split_mode), 0.5 , 1e-7 );
26
+ EXPECT_NEAR (GetMetricEval (metric. get () , {0 , 1 }, {0 , 1 }, {}, {}, data_split_mode), 0.5 , 1e-7 );
27
27
EXPECT_NEAR (
28
- GetMetricEval (metric, {0 .1f , 0 .9f , 0 .1f , 0 .9f }, {0 , 0 , 1 , 1 }, {}, {}, data_split_mode), 0.5 ,
29
- 1e-7 );
28
+ GetMetricEval (metric. get () , {0 .1f , 0 .9f , 0 .1f , 0 .9f }, {0 , 0 , 1 , 1 }, {}, {}, data_split_mode),
29
+ 0.5 , 1e-7 );
30
30
31
- delete metric;
32
- metric = xgboost::Metric::Create (" pre@2" , &ctx);
31
+ metric.reset (xgboost::Metric::Create (" pre@2" , &ctx));
33
32
ASSERT_STREQ (metric->Name (), " pre@2" );
34
- EXPECT_NEAR (GetMetricEval (metric, {0 , 1 }, {0 , 1 }, {}, {}, data_split_mode), 0 .5f , 1e-7 );
33
+ EXPECT_NEAR (GetMetricEval (metric. get () , {0 , 1 }, {0 , 1 }, {}, {}, data_split_mode), 0 .5f , 1e-7 );
35
34
EXPECT_NEAR (
36
- GetMetricEval (metric, {0 .1f , 0 .9f , 0 .1f , 0 .9f }, {0 , 0 , 1 , 1 }, {}, {}, data_split_mode), 0 . 5f ,
37
- 0 .001f );
35
+ GetMetricEval (metric. get () , {0 .1f , 0 .9f , 0 .1f , 0 .9f }, {0 , 0 , 1 , 1 }, {}, {}, data_split_mode),
36
+ 0 .5f , 0 . 001f );
38
37
39
- EXPECT_ANY_THROW (GetMetricEval (metric, {0 , 1 }, {}, {}, {}, data_split_mode));
38
+ EXPECT_ANY_THROW (GetMetricEval (metric. get () , {0 , 1 }, {}, {}, {}, data_split_mode));
40
39
41
- delete metric;
40
+ metric.reset (xgboost::Metric::Create (" pre@4" , &ctx));
41
+ EXPECT_NEAR (GetMetricEval (metric.get (), {0 .2f , 0 .3f , 0 .4f , 0 .5f , 0 .6f , 0 .7f },
42
+ {0 .0f , 1 .0f , 0 .0f , 0 .0f , 1 .0f , 1 .0f }, {}, {}, data_split_mode),
43
+ 0 .5f , 1e-7 );
42
44
}
43
45
44
46
inline void VerifyNDCG (DataSplitMode data_split_mode = DataSplitMode::kRow ) {
0 commit comments