Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.06 KB | None | 0 0
  1. from random import randint
  2.  
  3.  
  4. def test_func(err_number, get_err):
  5.     if get_err >= err_number:
  6.         return True
  7.     return False
  8.  
  9. def search(A):
  10.     err_number = randint(0, 10)
  11.     print("ERROR NUMBER", err_number)
  12.     L = 0
  13.     R = len(A) - 1
  14.     while L <= R:
  15.         m = int((L + R) / 2)
  16.         g = test_func(err_number, m)
  17.         g1 = test_func(err_number, m+1)
  18.         if m == 0 and g is True:
  19.             return A[m]
  20.         if g is False and g1 is True:
  21.             return A[m]
  22.         if not g:
  23.             L = m + 1
  24.         elif g:
  25.             R = m - 1
  26.         else:
  27.             return A[m]
  28.     return -1
  29.  
  30.  
  31. found_test_cases = [
  32.     [1, 2, 3, 4, 5, 6, 7],
  33.     [1, 2, 3, 4, 5, 6, 7],
  34.     [1, 2, 3, 4, 5, 6, 7]
  35. ]
  36.  
  37. no_found_test_cases = [
  38.     (100, [1, 2, 3, 4, 5, 6, 7]),
  39.     (100, [1, 2, 3, 4, 5, 6, 7]),
  40.     (-1555, [1, 2, 3, 4, 5, 6, 7])
  41. ]
  42.  
  43. for A in found_test_cases:
  44.     value = search(A)
  45.     print(value)
  46.  
  47. # for T, A in no_found_test_cases:
  48. #     index, value = search(A, T)
  49. #     assert (index, value) == (-1, None)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement