From 0d625404c2ef4a286e1feee4485ff60c0fb9730e Mon Sep 17 00:00:00 2001 From: Peng Li Date: Tue, 17 Jul 2018 23:11:32 +0800 Subject: [PATCH] Add hungarian testcase --- src/hungarian.cpp | 33 --------------------------------- test/TestHungarian.cpp | 28 +++++++++++++++++++++++++--- 2 files changed, 25 insertions(+), 36 deletions(-) diff --git a/src/hungarian.cpp b/src/hungarian.cpp index 9b46613..85b49e5 100644 --- a/src/hungarian.cpp +++ b/src/hungarian.cpp @@ -301,36 +301,3 @@ int step_six(Hungary& state) } return 4; } - -/* -int main() -{ - Matrix3i C; -// MatrixXi C2(4, 3); -// - C << 1, 2, 3, - 2, 4, 2, - 3, 6, 9; - - Matrix3i M; - M << 0, 1, 2, - 0, 0, 0, - 1, 0, 0; - -// C2 << 4, 1, 3, -// 2, 4, 2, -// 3, 6, 9, -// 2, 6, 3; - - Vector3i vv; - //Matrix3i m1 = (M.array() == 1).select(0, MatrixXi::Ones(M.cols(), M.rows())); - //cout << m1.colwise().sum().transpose() << endl; - //vv = vv.rowwise() - - VectorXi row_ind, col_ind; - - //MatrixXi RR = MatrixXi::Random(10, 10); - linear_sum_assignment(C, row_ind, col_ind); - cout << "row: [" << row_ind.transpose() << "], col: [" << col_ind.transpose() << "]" << endl; -} -*/ diff --git a/test/TestHungarian.cpp b/test/TestHungarian.cpp index 3cb29b2..f20ec09 100644 --- a/test/TestHungarian.cpp +++ b/test/TestHungarian.cpp @@ -4,21 +4,43 @@ 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); } -- 2.11.0