Python assertAlmostEqual()

Resumo : neste tutorial, você aprende como usar o assertAlmostEqual()método Python para testar se dois valores são aproximadamente iguais.

Introdução ao método Python assertAlmostEqual()

O assertAlmostEqual()é um método da TestCaseclasse do unittestmódulo. O assertAlmostEqual()teste se dois valores são aproximadamente iguais fazendo o seguinte:

  • Primeiro, calcule a diferença.
  • Segundo, arredonde para o número fornecido com casas decimais (padrão 7)
  • Terceiro, compare o valor arredondado com zero.

O seguinte mostra a sintaxe do assertAlmostEqual()método:

assertAlmostEqual(first, second, places=7, msg=None, delta=None)Linguagem de código:  Python  ( python )

Ele usa a seguinte verificação:

round(first-second, 7) == 0Linguagem de código:  Python  ( python )

O método usa casas (ou casas decimais) para arredondar a diferença antes de compará-la com zero. Observe que as casas não são algarismos significativos.

Se você passar a deltaem vez de places, a diferença entre o primeiro e o segundo deverá ser menor ou igual (ou maior que) delta.

O assertAlmostEqual()método permite usar lugares ou delta. Se você tentar passar os dois argumentos, receberá um arquivo TypeError.

Exemplo do método python assertAlmostEqual

Primeiro, defina uma função area()que calcule a área de um círculo no circle.pyarquivo:

import math


def area(radius: float) -> float:
    return math.pi * math.pow(radius, 2)Linguagem de código:  Python  ( python )

A area()função aceita um raio como ponto flutuante e retorna a área do círculo como ponto flutuante.

Como o Python só pode representar floats aproximadamente , você precisa usar o assertAlmostEqual()método para testar o resultado de area()com outro float.

Por exemplo, o teste a seguir que usa o assertEqual()método falhará:

self.assertEqual(0.1+0.1+0.1, 0.3)Linguagem de código:  Python  ( python )

No entanto, o seguinte teste que usa o assertAlmostEqual()método será aprovado:

self.assertAlmostEqual(0.1+0.1+0.1, 0.3)Linguagem de código:  Python  ( python )

Segundo, defina um módulo de teste test_circle.pye importe o circle.pymódulo:

import unittest
from circle import area
from math import pi


class TestCircle(unittest.TestCase):
    def test_area(self):
        self.assertAlmostEqual(area(0), 0)
        self.assertAlmostEqual(area(1), pi)
        self.assertAlmostEqual(area(0.1), pi*0.1*0.1)Linguagem de código:  Python  ( python )

Como funciona:

  • Primeiro, defina uma TestCircleclasse que herde a TestCaseclasse
  • Segundo, adicione o test_area()método de teste à TestCircleclasse.
  • Terceiro, use o assertAlmostEqual()método para testar se o resultado da area()função é quase igual a 0,, pie pi * 0.1 * 0.1.

Terceiro, execute o teste:

python -m unittest -vLinguagem de código:  Python  ( python )

Saída:

test_area (test_circle.TestCircle) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.000s

OKLinguagem de código:  Python  ( python )

Método Python assertNotAlmostEqual()

O assertNotAlmostEqual()método é o oposto do assertAlmostEqual()método. Ele testa se dois valores não são aproximadamente iguais.

Resumo

  • Use o método Python assertAlmostEqual()para testar se dois valores são aproximadamente iguais.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *