示例#1
0
        public void LinearAssignment3()
        {
            threecomp[4, 2] = 3;
            threecomp.RemoveAt(2, 2);
            int[] best     = GC.LinearAssignment(threecomp);
            int[] expected = new int[6] {
                0, 1, 4, 3, 2, 5
            };

            Assert.IsTrue(expected.SequenceEqual(best));
        }
示例#2
0
        public void LinearAssignment2()
        {
            SparseMatrix profit = new SparseMatrix(3, 3);

            profit[0, 1] = 2; profit[0, 2] = 5;
            profit[1, 0] = 3;                   profit[1, 2] = 6;
            profit[2, 0] = 1; profit[2, 1] = 2;

            int[] best     = GC.LinearAssignment(profit);
            int[] expected = new int[3] {
                2, 0, 1
            };

            Assert.IsTrue(expected.SequenceEqual(best));
        }
示例#3
0
        public void LinearAssignmentUnique()
        {
            SparseMatrix profit = new SparseMatrix(4, 4);

            for (int i = 0; i < 10; i++)
            {
                profit[i, i] = (i + 1) / 2.0;
            }

            int[] best     = GC.LinearAssignment(profit);
            int[] expected = new int[10];
            AE.Fill(expected, i => i);

            Assert.IsTrue(expected.SequenceEqual(best));
        }