Add travis sanitizers tests. (#3557)
* Add travis sanitizers tests. * Add gcc-7 in Travis. * Add SANITIZER_PATH for CMake. * Enable sanitizer tests in Travis. * Fix memory leaks in tests. * Fix all memory leaks reported by Address Sanitizer. * tests/cpp/helpers.h/CreateDMatrix now returns raw pointer.
This commit is contained in:
committed by
Rory Mitchell
parent
983cb0b374
commit
cf2d86a4f6
@@ -11,6 +11,7 @@ TEST(Metric, RMSE) {
|
||||
{0.1f, 0.9f, 0.1f, 0.9f},
|
||||
{ 0, 0, 1, 1}),
|
||||
0.6403f, 0.001f);
|
||||
delete metric;
|
||||
}
|
||||
|
||||
TEST(Metric, MAE) {
|
||||
@@ -21,6 +22,7 @@ TEST(Metric, MAE) {
|
||||
{0.1f, 0.9f, 0.1f, 0.9f},
|
||||
{ 0, 0, 1, 1}),
|
||||
0.5f, 0.001f);
|
||||
delete metric;
|
||||
}
|
||||
|
||||
TEST(Metric, LogLoss) {
|
||||
@@ -31,6 +33,7 @@ TEST(Metric, LogLoss) {
|
||||
{0.1f, 0.9f, 0.1f, 0.9f},
|
||||
{ 0, 0, 1, 1}),
|
||||
1.2039f, 0.001f);
|
||||
delete metric;
|
||||
}
|
||||
|
||||
TEST(Metric, Error) {
|
||||
@@ -56,6 +59,7 @@ TEST(Metric, Error) {
|
||||
{0.1f, 0.2f, 0.1f, 0.2f},
|
||||
{ 0, 0, 1, 1}),
|
||||
0.5f, 0.001f);
|
||||
delete metric;
|
||||
}
|
||||
|
||||
TEST(Metric, PoissionNegLogLik) {
|
||||
@@ -66,4 +70,5 @@ TEST(Metric, PoissionNegLogLik) {
|
||||
{0.1f, 0.2f, 0.1f, 0.2f},
|
||||
{ 0, 0, 1, 1}),
|
||||
1.1280f, 0.001f);
|
||||
delete metric;
|
||||
}
|
||||
|
||||
@@ -4,8 +4,11 @@
|
||||
#include "../helpers.h"
|
||||
|
||||
TEST(Metric, UnknownMetric) {
|
||||
EXPECT_ANY_THROW(xgboost::Metric::Create("unknown_name"));
|
||||
EXPECT_NO_THROW(xgboost::Metric::Create("rmse"));
|
||||
EXPECT_ANY_THROW(xgboost::Metric::Create("unknown_name@1"));
|
||||
EXPECT_NO_THROW(xgboost::Metric::Create("error@0.5f"));
|
||||
xgboost::Metric * metric;
|
||||
EXPECT_ANY_THROW(metric = xgboost::Metric::Create("unknown_name"));
|
||||
EXPECT_NO_THROW(metric = xgboost::Metric::Create("rmse"));
|
||||
delete metric;
|
||||
EXPECT_ANY_THROW(metric = xgboost::Metric::Create("unknown_name@1"));
|
||||
EXPECT_NO_THROW(metric = xgboost::Metric::Create("error@0.5f"));
|
||||
delete metric;
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ TEST(Metric, MultiClassError) {
|
||||
{0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f},
|
||||
{0, 1, 2}),
|
||||
0.666f, 0.001f);
|
||||
|
||||
delete metric;
|
||||
}
|
||||
|
||||
TEST(Metric, MultiClassLogLoss) {
|
||||
@@ -25,4 +27,6 @@ TEST(Metric, MultiClassLogLoss) {
|
||||
{0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f},
|
||||
{0, 1, 2}),
|
||||
2.302f, 0.001f);
|
||||
|
||||
delete metric;
|
||||
}
|
||||
|
||||
@@ -17,6 +17,8 @@ TEST(Metric, AMS) {
|
||||
metric = xgboost::Metric::Create("ams@0");
|
||||
ASSERT_STREQ(metric->Name(), "ams@0");
|
||||
EXPECT_NEAR(GetMetricEval(metric, {0, 1}, {0, 1}), 0.311f, 0.001f);
|
||||
|
||||
delete metric;
|
||||
}
|
||||
|
||||
TEST(Metric, AUC) {
|
||||
@@ -29,6 +31,8 @@ TEST(Metric, AUC) {
|
||||
0.5f, 0.001f);
|
||||
EXPECT_ANY_THROW(GetMetricEval(metric, {0, 1}, {}));
|
||||
EXPECT_ANY_THROW(GetMetricEval(metric, {0, 0}, {0, 0}));
|
||||
|
||||
delete metric;
|
||||
}
|
||||
|
||||
TEST(Metric, AUCPR) {
|
||||
@@ -50,6 +54,8 @@ TEST(Metric, AUCPR) {
|
||||
0.2769199f, 0.001f);
|
||||
EXPECT_ANY_THROW(GetMetricEval(metric, {0, 1}, {}));
|
||||
EXPECT_ANY_THROW(GetMetricEval(metric, {0, 0}, {0, 0}));
|
||||
|
||||
delete metric;
|
||||
}
|
||||
|
||||
TEST(Metric, Precision) {
|
||||
@@ -74,6 +80,8 @@ TEST(Metric, Precision) {
|
||||
0.5f, 0.001f);
|
||||
|
||||
EXPECT_ANY_THROW(GetMetricEval(metric, {0, 1}, {}));
|
||||
|
||||
delete metric;
|
||||
}
|
||||
|
||||
TEST(Metric, NDCG) {
|
||||
@@ -114,6 +122,8 @@ TEST(Metric, NDCG) {
|
||||
{0.1f, 0.9f, 0.1f, 0.9f},
|
||||
{ 0, 0, 1, 1}),
|
||||
0.3868f, 0.001f);
|
||||
|
||||
delete metric;
|
||||
}
|
||||
|
||||
TEST(Metric, MAP) {
|
||||
@@ -139,4 +149,5 @@ TEST(Metric, MAP) {
|
||||
{0.1f, 0.9f, 0.1f, 0.9f},
|
||||
{ 0, 0, 1, 1}),
|
||||
0.25f, 0.001f);
|
||||
delete metric;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user