Length 1 case handled

This commit is contained in:
Julien Lengrand-Lambert
2013-06-28 18:09:52 +02:00
parent a9a97b64b7
commit 7166bb43d0
2 changed files with 23 additions and 5 deletions

View File

@@ -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

View File

@@ -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__':