Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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));
            }
        }