def test_binary_search(self): sorted_list = [1, 3, 5, 7, 9] index = binary_search(sorted_list, 1) self.assertEqual(0, index) index = binary_search(sorted_list, 7) self.assertEqual(3, index) index = binary_search(sorted_list, 10) self.assertEqual(None, index)
def count_n_by_x(x0, v0, a, xn, k=friction_factor()): ''' считаем количество тиков при заданных x0 v0 xn сложность log(количество тиков) ''' def f(n): return xn - count_xn(x0, v0, a, n, k) # Это не совсем точно, может и доедем еще на v0 if a * (xn - x0) < 0: return None return algorithm.binary_search(0, 8000, f, 0.01)
def test_binary_search(): items = [1, 2, 3, 4, 5, 6, 8, 9, 10] assert binary_search(items, 0, len(items), 1) == 0 assert binary_search(items, 0, len(items), 8) == 6 assert binary_search(items, 0, len(items), 7) == -1 a = list(range(10)) for i in a: assert binary_search(a, 0, len(a), i) == i assert binary_search(a, 0, len(a), -1) == -1 assert binary_search(a, 0, len(a), 10) == -1
def test(): L = [1, 4, 7, 9, 10, 20, 25, 34, 90, 10] assert binary_search(L, 25) == 6 assert binary_search(L, 1) == 0 #===> worst case assert binary_search(L, 123123) == -1
from algorithm import binary_search haystack = [4, 8, 15, 16, 23, 42] print(binary_search(haystack, 3)) print(binary_search(haystack, 16))
def test_not_found(self): result = binary_search(self.arr, 0, len(self.arr) - 1, 11) self.assertEqual(result, -1) result = binary_search([], 0, 0 - 1, 1) self.assertEqual(result, -1)
def test_search(self, num): result = binary_search(self.arr, 0, len(self.arr) - 1, num) self.assertEqual(result, self.arr.index(num))
def test_binary_search(self): def f(x): return x ** 3 eps = 1e-6 self.assertAlmostEquals(algorithm.binary_search(-3, 3, f, eps), 0., delta=1e-2)