1 // Copyright by Contributors
2 #include <xgboost/objective.h>
3 #include <xgboost/generic_parameters.h>
4 #include <limits>
5
6 #include "../helpers.h"
7
TEST(Objective,DeclareUnifiedTest (HingeObj))8 TEST(Objective, DeclareUnifiedTest(HingeObj)) {
9 xgboost::GenericParameter tparam = xgboost::CreateEmptyGenericParam(GPUIDX);
10 std::unique_ptr<xgboost::ObjFunction> obj {
11 xgboost::ObjFunction::Create("binary:hinge", &tparam)
12 };
13
14 xgboost::bst_float eps = std::numeric_limits<xgboost::bst_float>::min();
15 CheckObjFunction(obj,
16 {-1.0f, -0.5f, 0.5f, 1.0f, -1.0f, -0.5f, 0.5f, 1.0f},
17 { 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f},
18 { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f},
19 { 0.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, -1.0f, 0.0f},
20 { eps, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, eps });
21 CheckObjFunction(obj,
22 {-1.0f, -0.5f, 0.5f, 1.0f, -1.0f, -0.5f, 0.5f, 1.0f},
23 { 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f},
24 {}, // Empty weight.
25 { 0.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, -1.0f, 0.0f},
26 { eps, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, eps });
27
28 ASSERT_NO_THROW(obj->DefaultEvalMetric());
29 }
30