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])))
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])))
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])))
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])))
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])))
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])))