Extract make metric name from ranking metric. (#8768)
- Extract the metric parsing routine from ranking. - Add a test. - Accept null for string view.
This commit is contained in:
38
tests/cpp/common/test_ranking_utils.cc
Normal file
38
tests/cpp/common/test_ranking_utils.cc
Normal file
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* Copyright 2023 by XGBoost Contributors
|
||||
*/
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <cstdint> // std::uint32_t
|
||||
|
||||
#include "../../../src/common/ranking_utils.h"
|
||||
|
||||
namespace xgboost {
|
||||
namespace ltr {
|
||||
TEST(RankingUtils, MakeMetricName) {
|
||||
std::uint32_t topn{32};
|
||||
bool minus{false};
|
||||
auto name = MakeMetricName("ndcg", "3-", &topn, &minus);
|
||||
ASSERT_EQ(name, "ndcg@3-");
|
||||
ASSERT_EQ(topn, 3);
|
||||
ASSERT_TRUE(minus);
|
||||
|
||||
name = MakeMetricName("ndcg", "6", &topn, &minus);
|
||||
ASSERT_EQ(topn, 6);
|
||||
ASSERT_TRUE(minus); // unchanged
|
||||
|
||||
minus = false;
|
||||
name = MakeMetricName("ndcg", "-", &topn, &minus);
|
||||
ASSERT_EQ(topn, 6); // unchanged
|
||||
ASSERT_TRUE(minus);
|
||||
|
||||
name = MakeMetricName("ndcg", nullptr, &topn, &minus);
|
||||
ASSERT_EQ(topn, 6); // unchanged
|
||||
ASSERT_TRUE(minus); // unchanged
|
||||
|
||||
name = MakeMetricName("ndcg", StringView{}, &topn, &minus);
|
||||
ASSERT_EQ(topn, 6); // unchanged
|
||||
ASSERT_TRUE(minus); // unchanged
|
||||
}
|
||||
} // namespace ltr
|
||||
} // namespace xgboost
|
||||
Reference in New Issue
Block a user