def test_sequencia_maiorzinha_continua(self): entrada = range(1, 121) saida_esperada = '[1-120]' saida = intervalos(entrada) self.assertEqual(saida, saida_esperada)
def test_sequencia_grande_continua(self): entrada = range(1, 10001) saida_esperada = '[1-10000]' saida = intervalos(entrada) self.assertEqual(saida, saida_esperada)
def test_um_numero(self): self.assertEqual(intervalos([100]), [(100,)])
def test_tres_numeros_consecutivos(self): self.assertEqual(intervalos([100, 101, 102]), [(100, 102)])
def test_lista_do_exemplo(self): entrada = [100, 101, 102, 103, 104, 105, 110, 111, 113, 114, 115, 150] saida_esperada = '[100-105], [110-111], [113-115], [150]' saida = intervalos(entrada) self.assertEqual(saida, saida_esperada)
def test_dois_numeros_consecutivos(self): self.assertEqual(intervalos([100, 101]), [(100, 101)])
def test_sequencia_curta_descontinua(self): entrada = [1, 2, 4, 5] saida_esperada = '[1-2], [4-5]' saida = intervalos(entrada) self.assertEqual(saida, saida_esperada)
def test_sequencia_duplamente_descontinua(self): entrada = [1, 2, 4, 5, 6, 7, 10, 11, 12, 150] saida_esperada = '[1-2], [4-7], [10-12], [150]' saida = intervalos(entrada) self.assertEqual(saida, saida_esperada)
def test_sequencia_5_100(self): entrada = range(5, 101) saida_esperada = '[5-100]' saida = intervalos(entrada) self.assertEqual(saida, saida_esperada)
def test_dois_numeros_avulsos(self): self.assertEqual(intervalos([100, 110]), [(100, ), (110, )])
def test_um_numero(self): self.assertEqual(intervalos([100]), [(100, )])
def test_um_unico_elemento(self): entrada = [45] saida_esperada = '[45]' saida = intervalos(entrada) self.assertEqual(saida, saida_esperada)
def test_sequencia_curta_continua(self): entrada = [1, 2, 3] saida_esperada = '[1-3]' saida = intervalos(entrada) self.assertEqual(saida, saida_esperada)
raices_polinomio = bairstow(coeficientes, r1, s1, tolerancia) raices_primera_derivada = bairstow(primera_derivada, r2, s2, tolerancia) raices_segunda_derivada = bairstow(segunda_derivada, r3, s3, tolerancia) # Raíces reales de la función derivada raices_reales_primera_derivada = [ x for x in raices_primera_derivada if type(x) is not complex ] raices_reales_primera_derivada.sort() raices_reales_segunda_derivada = [ x for x in raices_segunda_derivada if type(x) is not complex ] raices_reales_segunda_derivada.sort() # Los intervalos en que la función es creciente y en que es decreciente. intervalos_crecimiento = intervalos(primera_derivada, raices_primera_derivada, cifras_significativas) # Las coordenadas de los extremos locales y su tipo (máximo o mínimo). maximos = [] minimos = [] dict_positivos = dict(intervalos_crecimiento["positivo"]) # Si -inf está en los intervalos positivos, quiere decir que el # que le sigue está en los negativos, entonces el primer punto # crítico tiene una relación + -> -, por lo tanto es un máximo # y el siguiente punto crítico es un mínimo y el siguiente un # máximo y así sucesivamente. if -inf in dict_positivos: for i in range(len(raices_reales_primera_derivada)): x = raices_reales_primera_derivada[i]
def test_dois_numeros_avulsos(self): self.assertEqual(intervalos([100, 110]), [(100,), (110,)])