def test_arbitrary_rankings(self):
        """test that _select_best_with_multiple_criteria can sort with mutliple criteria and get the right answer"""
        a = (0,1)
        b = (1,1)
        c = (1,2)
        d = (2,1)
        e = (2,2)
        f = (0,4)
        g = (-1,5)
        input = [a,b,c,d,e,f,g]
        #sort by left minimum, right minimum
        result = EnsemblTranscriptDatasource._select_best_with_multiple_criteria(input, [(lambda x: x[0], min),(lambda x: x[1], min)])
        self.assertEqual(result[0], g)

        #sort by right minimum, left minimum
        result = EnsemblTranscriptDatasource._select_best_with_multiple_criteria(input,[(lambda x: x[1], min),(lambda x: x[0], min)])
        self.assertEqual(result[0], a)

        #sort by left maximum, right minimum
        result = EnsemblTranscriptDatasource._select_best_with_multiple_criteria(input, [(lambda x: x[0], max),(lambda x: x[0], min)])
        self.assertEqual(result[0], d)

        #sort by sum, then right maximum
        result = EnsemblTranscriptDatasource._select_best_with_multiple_criteria(input,[(sum, max), (lambda x: x[1],max)])
        self.assertEqual(result[0], g)
    def test_arbitrary_rankings(self):
        """test that _select_best_with_multiple_criteria can sort with mutliple criteria and get the right answer"""
        a = (0,1)
        b = (1,1)
        c = (1,2)
        d = (2,1)
        e = (2,2)
        f = (0,4)
        g = (-1,5)
        input = [a,b,c,d,e,f,g]
        #sort by left minimum, right minimum
        result = EnsemblTranscriptDatasource._select_best_with_multiple_criteria(input, [(lambda x: x[0], min),(lambda x: x[1], min)])
        self.assertEqual(result[0], g)

        #sort by right minimum, left minimum
        result = EnsemblTranscriptDatasource._select_best_with_multiple_criteria(input,[(lambda x: x[1], min),(lambda x: x[0], min)])
        self.assertEqual(result[0], a)

        #sort by left maximum, right minimum
        result = EnsemblTranscriptDatasource._select_best_with_multiple_criteria(input, [(lambda x: x[0], max),(lambda x: x[0], min)])
        self.assertEqual(result[0], d)

        #sort by sum, then right maximum
        result = EnsemblTranscriptDatasource._select_best_with_multiple_criteria(input,[(sum, max), (lambda x: x[1],max)])
        self.assertEqual(result[0], g)
Example #3
0
 def test_tie_breaking_rankings(self):
     """test that _select_best_with_multiple_criteria works with ties"""
     a = (0, 0, 1)
     b = (0, 0, 2)
     c = (0, 0, 3)
     input = [a, b, c]
     result = EnsemblTranscriptDatasource._select_best_with_multiple_criteria(
         input, [(lambda x: x[0], max), (lambda x: 3, min),
                 (lambda x: x[1], max), (lambda x: x[2], max)])
     self.assertEqual(result[0], c)
 def test_tie_breaking_rankings(self):
     """test that _select_best_with_multiple_criteria works with ties"""
     a = (0,0,1)
     b = (0,0,2)
     c = (0,0,3)
     input =[a,b,c]
     result = EnsemblTranscriptDatasource._select_best_with_multiple_criteria(input, [(lambda x: x[0], max),
                                                                             (lambda x: 3,min),
                                                                             (lambda x: x[1], max),
                                                                             (lambda x: x[2],max)])
     self.assertEqual(result[0],c)