Exemplo n.º 1
0
    def testFillUp(self):
        '''
        Check that the locality cut-off for a sorted list works fine!
        '''
        ns = NeighborSelection.NeighborSelection()

        ranked = range(1, 20)
        biased = ns._fillUp(ranked, -1, locality_pref=1)
        assert ranked == biased[0:len(ranked
                                      )], "locality_pref = 1, biased=" + biased

        # Now test cut-off
        biased = ns._fillUp(ranked, 6, locality_pref=1)
        assert len(
            biased) == 6, "locality_pref = 1, biased and cut to 6=" + biased
        assert ranked[0:6] == biased, "expect %s result %s" % (ranked[0:6],
                                                               biased)

        ranked = range(1, 16)
        biased = ns._fillUp(ranked, -1, locality_pref=0)
        assert set(ranked) == set(
            biased), "locality_pref = 0, biased=%s" % biased

        ranked = range(0, 20)
        biased = ns._fillUp(ranked, -1, locality_pref=0.25)
        assert len(ranked) == len(biased)
        assert set(ranked[0:5]) == set(
            biased[0:5]
        ), "locality_pref = 0.25, biased=" + biased  #first quarter -> only ranked ranks