public void MurtyPairingUnique() { SparseMatrix profit = new SparseMatrix(5, 5); for (int i = 0; i < 5; i++) { profit[i, i] = 1; } var pairing = GC.MurtyPairing(profit); List <int[]> expected = new List <int[]>(); expected.Add(new int[5] { 0, 1, 2, 3, 4 }); Assert.AreEqual(expected.Count, pairing.Count()); int h = 0; foreach (Tuple <int[], double> assignment in pairing) { Assert.IsTrue(expected[h++].SequenceEqual(assignment.Item1)); } }
public void MurtyPairingFullSmall() { SparseMatrix profit = new SparseMatrix(3, 3); profit[0, 0] = 6; profit[0, 1] = 8; profit[0, 2] = 5; profit[1, 0] = 7; profit[1, 1] = 3; profit[1, 2] = 4; profit[2, 0] = 9; profit[2, 1] = 8; profit[2, 2] = 7; var pairing = GC.MurtyPairing(profit); List <int[]> expected = new List <int[]>(); expected.Add(new int[3] { 1, 0, 2 }); expected.Add(new int[3] { 1, 2, 0 }); expected.Add(new int[3] { 2, 0, 1 }); expected.Add(new int[3] { 0, 2, 1 }); expected.Add(new int[3] { 2, 1, 0 }); expected.Add(new int[3] { 0, 1, 2 }); Assert.AreEqual(expected.Count, pairing.Count()); int h = 0; foreach (Tuple <int[], double> assignment in pairing) { Assert.IsTrue(expected[h++].SequenceEqual(assignment.Item1)); } }