def theory4(self, s, target): '''若target在s中,且位置为n,则返回n''' ret = self.getTargetPostions(s, target) if ret: self.assertTrue( (bsearch(s, 0, len(s)-1, target) in ret) )
def theory2(self, s, target): '''若二分查找返回n(n >= 0),则target必包含在s中,且在s中的位置是n''' ret = bsearch(s, 0, len(s)-1, target) if (ret >= 0): self.assertEqual(target, s[ret])
def theory3(self, s, target): '''若target不在s中,则返回-1''' if not self.containsTarget(s, target): self.assertEqual(-1, bsearch(s, 0, len(s)-1, target))
def theory1(self, s, target): '''若二分查找返回-1,则target必不在s中 ''' ret = bsearch(s, 0, len(s)-1, target) if ret == -1: self.assertFalse(self.containsTarget(s, target))
def test_bound_itemlocation(self): s = [-324, -3, -1, 0, 42, 99, 101] self.assertEqual(0, bsearch(s, 0, len(s)-1, -324)); self.assertEqual(3, bsearch(s, 0, len(s)-1, 0)); self.assertEqual(6, bsearch(s, 0, len(s)-1, 101));
def test_bound_size_one(self): '''[boundary test] array with one element''' s = [42] self.assertEqual(0, bsearch(s, 0, len(s)-1, 42))
def test_bound_empty(self): '''[boundary test] empty array''' s = [] self.assertEqual(-1, bsearch(s, 0, len(s)-1, 42))
def test_mock(self): '''[mock test] normal case''' s = [1, 4, 42, 55, 67, 87, 100, 245] self.assertEqual(2, bsearch(s, 0, len(s)-1, 42)) self.assertEqual(-1, bsearch(s, 0, len(s)-1, 43))