Files
troupe-standup/wizard-work/beam/test_binary_search_bounds.py
T

19 lines
684 B
Python

import sys, random
sys.path.insert(0, "/root/.hermes/wizard-outputs/beam")
from binary_search_bounds import bisect_left, bisect_right, contains
# brute checks
for a in [[], [1], [1,2,3], [1,1,2,2,3]]:
for x in [0,1,2,3,4]:
assert bisect_left(a,x)==sum(1 for v in a if v<x), (a,x)
assert bisect_right(a,x)==sum(1 for v in a if v<=x), (a,x)
# random
random.seed(42)
for _ in range(1000):
n=random.randint(0,20)
a=sorted(random.randint(-5,5) for _ in range(n))
x=random.randint(-6,6)
assert bisect_left(a,x)==sum(1 for v in a if v<x)
assert bisect_right(a,x)==sum(1 for v in a if v<=x)
assert contains(a,x)==(x in a)
print("ALL TESTS PASSED")