mirror of
https://github.com/jlengrand/Coding4Interviews.git
synced 2026-03-10 08:11:24 +00:00
Length 1 case handled
This commit is contained in:
@@ -17,17 +17,23 @@ def bin_search(arr, t):
|
||||
"""
|
||||
Performs binary search on the input array.
|
||||
Searches for t in arr, using a binary search.
|
||||
Returns t index in arr if it is found, None otherwise
|
||||
Returns True if t is found, False otherwise.
|
||||
"""
|
||||
try:
|
||||
length = len(arr)
|
||||
except TypeError:
|
||||
return None
|
||||
return False
|
||||
|
||||
if arr is None or length < 1 :
|
||||
return None
|
||||
return False
|
||||
|
||||
if length == 1:
|
||||
return True if (arr[0] == t) else False
|
||||
|
||||
|
||||
return None
|
||||
|
||||
|
||||
|
||||
return False
|
||||
|
||||
|
||||
|
||||
@@ -13,12 +13,18 @@ class test_bin_search(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.arr1 = [1, 2, 3, 4, 5]
|
||||
self.s1 = 3
|
||||
self.res1 = None
|
||||
self.res1 = False
|
||||
|
||||
self.arr2 = None
|
||||
self.arr3 = []
|
||||
self.arr4 = 345
|
||||
|
||||
self.arr5 = [3]
|
||||
self.s51 = 1
|
||||
self.res51 = False
|
||||
self.s52 = 3
|
||||
self.res52 = True
|
||||
|
||||
def test_bin_search(self):
|
||||
# Test None input
|
||||
res = bin_search(self.arr2, self.s1)
|
||||
@@ -36,6 +42,12 @@ class test_bin_search(unittest.TestCase):
|
||||
res = bin_search(self.arr1, self.s1)
|
||||
self.assertEqual(res, self.res1)
|
||||
|
||||
# Testing length1 array
|
||||
res = bin_search(self.arr5, self.s51)
|
||||
self.assertEqual(res, self.res51)
|
||||
|
||||
res = bin_search(self.arr5, self.s52)
|
||||
self.assertEqual(res, self.res52)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
Reference in New Issue
Block a user