X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=test%2FTestHungarian.cpp;h=3d6173fdcfa54041d412b22d6174350ff270e16d;hb=3aa517d206c44156fe86697aeadc5f75ea212329;hp=3cb29b240a68c680f6969e7d1092d82cfff8a9c7;hpb=3811d034ba9e1f44a2e9915289438db3807217fe;p=trackerpp.git diff --git a/test/TestHungarian.cpp b/test/TestHungarian.cpp index 3cb29b2..3d6173f 100644 --- a/test/TestHungarian.cpp +++ b/test/TestHungarian.cpp @@ -1,24 +1,80 @@ #include "hungarian.h" #include "gtest/gtest.h" +#include using namespace std; using namespace Eigen; -TEST(Hungarian, Verify) +TEST(Hungarian, 3x3) { Matrix3i C; C << 1, 2, 3, - 2, 4, 2, + 2, 4, 6, 3, 6, 9; VectorXi row_ind, col_ind; int ret = linear_sum_assignment(C, row_ind, col_ind); + cout << "row: [" << row_ind.transpose() << "], col: [" << col_ind.transpose() << "]" << endl; Vector3i expect_row_ind, expect_col_ind; expect_row_ind << 0, 1, 2; + expect_col_ind << 2, 1, 0; + + EXPECT_EQ(ret, 10); + EXPECT_TRUE(expect_row_ind == row_ind); + EXPECT_TRUE(expect_col_ind == col_ind); +} + +TEST(Hungarian, 4x3) +{ + MatrixXi C(4, 3); + + C << 4, 1, 3, + 2, 4, 2, + 3, 6, 9, + 2, 6, 3; + + VectorXi row_ind, col_ind; + int ret = linear_sum_assignment(C, row_ind, col_ind); + Vector3i expect_row_ind, expect_col_ind; + + expect_row_ind << 0, 1, 3; expect_col_ind << 1, 2, 0; - EXPECT_EQ(ret, 7); + EXPECT_EQ(ret, 5); EXPECT_TRUE(expect_row_ind == row_ind); EXPECT_TRUE(expect_col_ind == col_ind); } + +TEST(Distance, consine) +{ + Vector3d u, v; + u << 1, 0, 0; + v << 0, 1, 0; + double d = distance_cosine(u, v); + EXPECT_DOUBLE_EQ(d, 1.0); + + u << 100, 0, 0; + v << 0, 1, 0; + d = distance_cosine(u, v); + EXPECT_DOUBLE_EQ(d, 1.0); + + u << 1, 1, 0; + v << 0, 1, 0; + d = distance_cosine(u, v); + EXPECT_TRUE(std::abs(d - 0.2928932) < 0.0001); +} + +TEST(Distance, euclidean) +{ + Vector3d u, v; + u << 1, 0, 0; + v << 0, 1, 0; + double d = distance_euclidean(u, v); + EXPECT_TRUE(std::abs(d - 1.41421356) < 0.0001); + + u << 1, 1, 0; + v << 0, 1, 0; + d = distance_euclidean(u, v); + EXPECT_DOUBLE_EQ(d, 1.0); +}