Add hungarian testcase
authorPeng Li <seudut@gmail.com>
Tue, 17 Jul 2018 15:11:32 +0000 (23:11 +0800)
committerPeng Li <seudut@gmail.com>
Tue, 17 Jul 2018 15:11:32 +0000 (23:11 +0800)
src/hungarian.cpp
test/TestHungarian.cpp

index 9b46613..85b49e5 100644 (file)
@@ -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;
-}
-*/
index 3cb29b2..f20ec09 100644 (file)
@@ -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);
 }