def test_find_rfind_and_count(self): numbers = SortedList([2, 11, 2, 1, 29, 3, 7, 4, 2, 18, 4, 2]) self.assertEqual(numbers.find(1), 0) self.assertEqual(numbers.find(2), 1) self.assertEqual(numbers.find(3), 5) self.assertEqual(numbers.find(4), 6) self.assertEqual(numbers.find(5), -1) self.assertEqual(numbers.find(7), 8) self.assertEqual(numbers.find(100), -1) self.assertEqual(numbers.find(0), -1) self.assertEqual(numbers.count(1), 1) self.assertEqual(numbers.count(2), 4) self.assertEqual(numbers.count(3), 1) self.assertEqual(numbers.count(4), 2) self.assertEqual(numbers.count(5), 0) self.assertEqual(numbers.count(6), 0) self.assertEqual(numbers.count(7), 1) self.assertEqual(numbers.rfind(1), 0) self.assertEqual(numbers.rfind(2), 4) self.assertEqual(numbers.rfind(3), 5) self.assertEqual(numbers.rfind(4), 7) self.assertEqual(numbers.rfind(5), -1) self.assertEqual(numbers.rfind(7), 8) self.assertEqual(numbers.rfind(100), -1) self.assertEqual(numbers.rfind(0), -1)
def test_key_function(self): words = SortedList(['apple', 'lime', 'Lemon'], key=str.lower) self.assertEqual(list(words), ['apple', 'Lemon', 'lime']) words.add('Banana') self.assertEqual(list(words), ['apple', 'Banana', 'Lemon', 'lime']) self.assertNotIn('banana', words) self.assertIn('Banana', words) self.assertEqual(words.find('banana'), -1) self.assertEqual(words.find('Banana'), 1) words.remove('Lemon') self.assertEqual(list(words), ['apple', 'Banana', 'lime']) words.add('pear') self.assertEqual(list(words), ['apple', 'Banana', 'lime', 'pear']) self.assertEqual(words.find('LIME'), -1) self.assertEqual(words.find('lime'), 2) self.assertEqual(words.rfind('LIME'), -1) self.assertEqual(words.rfind('lime'), 2) self.assertEqual(words.count('LIME'), 0) self.assertEqual(words.count('lime'), 1) words.add('LIME') self.assertEqual(words.count('lime'), 1) self.assertEqual(words.count('LIME'), 1) words.add('lime') self.assertEqual(words.count('lime'), 2) self.assertEqual(words.count('LIME'), 1)