def testBSearchValues(self): # This method causes a hard crash, reason unclear. array = CoreFoundation.CFArrayCreate( None, range(20), 20, CoreFoundation.kCFTypeArrayCallBacks) self.assertArgHasType(CoreFoundation.CFArrayBSearchValues, 2, b"@") self.assertArgIsFunction(CoreFoundation.CFArrayBSearchValues, 3, b"l@@@", False) self.assertArgHasType(CoreFoundation.CFArrayBSearchValues, 4, b"@") def compare(l, r, context): return cmp(l, r) r = CoreFoundation.CFArrayBSearchValues(array, (0, 20), 10, compare, None) self.assertEqual(r, 10) r = CoreFoundation.CFArrayBSearchValues(array, (0, 20), 9.5, compare, None) self.assertEqual(r, 10) r = CoreFoundation.CFArrayBSearchValues(array, (0, 20), 99, compare, None) self.assertTrue(r >= 20) r = CoreFoundation.CFArrayBSearchValues(array, (0, 20), -1, compare, None) self.assertEqual(r, 0)