1. ホーム
  2. パイソン

[解決済み] pytest: ほぼ等しいことを表明する

2022-04-08 03:27:34

質問

操作方法 assert almost equal のようなものに頼ることなく、py.test for floatsを使用しています。

assert x - 0.00001 <= y <= x + 0.00001

具体的には、floatのペアを解凍することなく、素早く比較するためのきちんとしたソリューションを知っていると便利でしょう。

assert (1.32, 2.4) == i_return_tuple_of_two_floats()

解決方法は?

この質問は特にpy.testについて尋ねていることに気づきました。py.test 3.0には approx() 関数 (いや、本当のクラス) は、この目的に非常に便利です。

import pytest

assert 2.2 == pytest.approx(2.3)
# fails, default is ± 2.3e-06
assert 2.2 == pytest.approx(2.3, 0.1)
# passes

# also works the other way, in case you were worried:
assert pytest.approx(2.3, 0.1) == 2.2
# passes

ドキュメントは ここで .