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