new_contents: def busca_binaria(seq, procurado):
      """
      Deve retornar o índice onde o elemento deveriar ser inserido em lista ordenada
      :param procurado: elemento a ser procurado
      :param seq: sequencia a ser pesquisada
      :return: int
      """
      
      end = len(seq) 
      ini = 0
      mid = end // 2
      
      if len(seq) > 0:
          while end > ini:
              if procurado <= seq[mid]:
                  end = mid
              else:
                  ini = mid + 1
              mid = (ini + end) // 2
      return ini
  
  import unittest
  
  
  class BuscaBinariaTestes(unittest.TestCase):
      def teste_lista_vazia(self):
          self.assertEqual(0, busca_binaria([], 1))
          self.assertEqual(0, busca_binaria([], 2))
          self.assertEqual(0, busca_binaria([], 3))
  
      def teste_lista_unitaria(self):
          self.assertEqual(0, busca_binaria([1], 0))
          self.assertEqual(0, busca_binaria([1], 1))
          self.assertEqual(1, busca_binaria([1], 2))
          self.assertEqual(1, busca_binaria([1], 3))
          self.assertEqual(1, busca_binaria([1], 4))
  
      def teste_lista_nao_unitaria(self):
          lista = list(range(10))
          self.assertEqual(0, busca_binaria(lista, -2))
          self.assertEqual(0, busca_binaria(lista, -1))
          for i in lista:
              self.assertEqual(i, busca_binaria(lista, i))
          self.assertEqual(10, busca_binaria(lista, 10))
          self.assertEqual(10, busca_binaria(lista, 11))
          self.assertEqual(10, busca_binaria(lista, 12))
  
      def teste_lista_elementos_repetidos(self):
          lista = [1, 1, 1, 2, 2, 2]
          self.assertEqual(0, busca_binaria(lista, 1))
          self.assertEqual(3, busca_binaria(lista, 2))
  if __name__ == '__main__':
      unittest.main()
  
subject: Create busca_binaria_iterativa.py