예제 #1
0
파일: test.py 프로젝트: anukat2015/AIR
 def testParetoDominatesMissingDocs(self):
     labels = [0, 1, 0, 1]
     a = [0, 1, 2]
     b = [1, 0, 3]
     self.assertEqual(sce._pareto_dominates(a, b, labels), False,
         "a (%s) doesn't dominate b (%s)" % (", ".join([str(x) for x in a]),
                                         ", ".join([str(x) for x in b])))
     self.assertEqual(sce._pareto_dominates(b, a, labels), True,
         "b (%s) dominates a (%s)" % (", ".join([str(x) for x in b]),
                                      ", ".join([str(x) for x in a])))
     b = [0, 1, 2]
     self.assertEqual(sce._pareto_dominates(a, b, labels), False,
         "a (%s) equal to b (%s)" % (", ".join([str(x) for x in a]),
                                     ", ".join([str(x) for x in b])))
예제 #2
0
    def testGenerateSyntheticRankingsRandomlyWithManyRelevant(self):
        length = 3
        docids = range(length)
        labels = [0] * length
        labels[0] = 1
        labels[1] = 1
        (better,
         worse) = sce._generate_synthetic_rankings_randomly(docids, labels)
        self.assertIn(better, [[0, 1, 2], [1, 0, 2], [0, 2, 1], [1, 2, 0]],
                      "better is valid:" + ", ".join([str(x) for x in better]))
        self.assertIn(worse, [[0, 2, 1], [1, 2, 0], [2, 0, 1], [2, 1, 0]],
                      "worse is valid:" + ", ".join([str(x) for x in worse]))
        if better in [[0, 2, 1], [1, 2, 0]]:
            self.assertIn(
                worse, [[2, 0, 1], [2, 1, 0]],
                "better dominates worse:" + ", ".join([str(x) for x in worse]))

        length = 5
        docids = range(length)
        labels = [0] * length
        labels[0] = 1
        labels[2] = 1
        labels[4] = 1
        print better
        print worse
        (better,
         worse) = sce._generate_synthetic_rankings_randomly(docids, labels)
        self.assertEqual(
            True, sce._pareto_dominates(better, worse, labels),
            "better (%s) dominates worse (%s)" %
            (", ".join([str(x)
                        for x in better]), ", ".join([str(x) for x in worse])))

        length = 10
        docids = range(length)
        labels = [0] * length
        labels[0] = 1
        labels[1] = 1
        labels[5] = 1
        labels[9] = 1
        print better
        print worse
        (better,
         worse) = sce._generate_synthetic_rankings_randomly(docids, labels)
        self.assertEqual(
            True, sce._pareto_dominates(better, worse, labels),
            "better (%s) dominates worse (%s)" %
            (", ".join([str(x)
                        for x in better]), ", ".join([str(x) for x in worse])))
예제 #3
0
파일: test.py 프로젝트: anukat2015/AIR
 def testParetoDominates4Docs(self):
     labels = [0, 1, 0, 0]
     a = [1, 0, 2, 3]
     b = [1, 2, 0, 3]
     self.assertEqual(sce._pareto_dominates(a, b, labels), False,
         "a (%s) equal to b (%s)" % (", ".join([str(x) for x in a]),
                                     ", ".join([str(x) for x in b])))
예제 #4
0
 def testParetoDominatesMissingDocs(self):
     labels = [0, 1, 0, 1]
     a = [0, 1, 2]
     b = [1, 0, 3]
     self.assertEqual(
         sce._pareto_dominates(a, b, labels), False,
         "a (%s) doesn't dominate b (%s)" %
         (", ".join([str(x) for x in a]), ", ".join([str(x) for x in b])))
     self.assertEqual(
         sce._pareto_dominates(b, a,
                               labels), True, "b (%s) dominates a (%s)" %
         (", ".join([str(x) for x in b]), ", ".join([str(x) for x in a])))
     b = [0, 1, 2]
     self.assertEqual(
         sce._pareto_dominates(a, b,
                               labels), False, "a (%s) equal to b (%s)" %
         (", ".join([str(x) for x in a]), ", ".join([str(x) for x in b])))
예제 #5
0
 def testParetoDominates4Docs(self):
     labels = [0, 1, 0, 0]
     a = [1, 0, 2, 3]
     b = [1, 2, 0, 3]
     self.assertEqual(
         sce._pareto_dominates(a, b,
                               labels), False, "a (%s) equal to b (%s)" %
         (", ".join([str(x) for x in a]), ", ".join([str(x) for x in b])))
예제 #6
0
파일: test.py 프로젝트: anukat2015/AIR
    def testGenerateSyntheticRankingsRandomlyWithManyRelevant(self):
        length = 3
        docids = range(length)
        labels = [0] * length
        labels[0] = 1
        labels[1] = 1
        (better, worse) = sce._generate_synthetic_rankings_randomly(docids,
                                                                    labels)
        self.assertIn(better, [[0, 1, 2], [1, 0, 2], [0, 2, 1], [1, 2, 0]],
            "better is valid:" + ", ".join([str(x) for x in better]))
        self.assertIn(worse, [[0, 2, 1], [1, 2, 0], [2, 0, 1], [2, 1, 0]],
            "worse is valid:" + ", ".join([str(x) for x in worse]))
        if better in [[0, 2, 1], [1, 2, 0]]:
            self.assertIn(worse, [[2, 0, 1], [2, 1, 0]],
                "better dominates worse:" + ", ".join([str(x) for x in worse]))

        length = 5
        docids = range(length)
        labels = [0] * length
        labels[0] = 1
        labels[2] = 1
        labels[4] = 1
        print better
        print worse
        (better, worse) = sce._generate_synthetic_rankings_randomly(docids,
                                                                    labels)
        self.assertEqual(True, sce._pareto_dominates(better, worse, labels),
                "better (%s) dominates worse (%s)" %
                (", ".join([str(x) for x in better]),
                 ", ".join([str(x) for x in worse])))

        length = 10
        docids = range(length)
        labels = [0] * length
        labels[0] = 1
        labels[1] = 1
        labels[5] = 1
        labels[9] = 1
        print better
        print worse
        (better, worse) = sce._generate_synthetic_rankings_randomly(docids,
                                                                    labels)
        self.assertEqual(True, sce._pareto_dominates(better, worse, labels),
                "better (%s) dominates worse (%s)" %
                (", ".join([str(x) for x in better]),
                 ", ".join([str(x) for x in worse])))