mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 16:57:49 +03:00
e75b9fc1b1
Summary: This commit moves most of the stuff in hgext3rd and related tests to hg-crew/hgext and hg-crew/test respectively. The things that are not moved are the ones which require some more complex imports. Depends on D6675309 Test Plan: - tests are failing at this commit, fixes are in the following commits Reviewers: #sourcecontrol Differential Revision: https://phabricator.intern.facebook.com/D6675329
23 lines
519 B
Python
23 lines
519 B
Python
|
|
def bisect(l, r, comp, val):
|
|
'''Bisect algorithm with custom compare function
|
|
|
|
Returns smallest index between l and r whose value is equal to val.
|
|
Returns None if there are no such index.
|
|
'''
|
|
if r < l:
|
|
return None
|
|
while l < r:
|
|
m = (l + r) / 2
|
|
cmpresult = comp(m, val)
|
|
if cmpresult == -1:
|
|
l = m + 1
|
|
elif cmpresult == 0:
|
|
r = m
|
|
else:
|
|
r = m - 1
|
|
|
|
if r < l or comp(l, val) != 0:
|
|
return None
|
|
return l
|