X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=test%2FTestHungarian.cpp;h=0ab52a0027366f8274008fd00b7a48869f65ad75;hb=a80807eb35cc0ff70a9afdd6b7db2f38cb686683;hp=3cb29b240a68c680f6969e7d1092d82cfff8a9c7;hpb=3811d034ba9e1f44a2e9915289438db3807217fe;p=trackerpp.git diff --git a/test/TestHungarian.cpp b/test/TestHungarian.cpp index 3cb29b2..0ab52a0 100644 --- a/test/TestHungarian.cpp +++ b/test/TestHungarian.cpp @@ -1,24 +1,56 @@ #include "hungarian.h" #include "gtest/gtest.h" +#include +#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(Hungarian, 0x0) +{ + MatrixXi C = MatrixXi::Zero(0, 0); + VectorXi row_ind, col_ind; + int ret = linear_sum_assignment(C, row_ind, col_ind); + EXPECT_EQ(ret, 0); +}