Mam funkcję, która zwraca krotkę zawierającą między innymi wartość zmiennoprzecinkową. Zwykle używam assertAlmostEquals
do porównywania, ale to nie działa z krotkami. Ponadto, krotka zawiera również inne typy danych. Obecnie zapewniam każdy element krotki z osobna, ale to za dużo dla listy takich krotek. Czy jest jakiś dobry sposób na napisanie twierdzeń dla takich przypadków? Rozważmy tę funkcję:Asercje testowe dla krotek z pływami
def f(a):
return [(1.0/x, x * 2) for x in a]
Teraz chcę napisać test dla niego:
def testF(self):
self.assertEqual(f(range(1,3)), [(1.0, 2), (0.5, 4)])
to zawiedzie, ponieważ wynikiem 1.0/2
nie jest dokładnie 0.5
. Czy ktoś może polecić dobry sposób napisania takiego stwierdzenia w czytelny sposób?
Edytuj: Rzeczywiście 1.0/2
to dokładnie 0.5
, ale masz moje znaczenie.
Rzeczywiście 0,5 jest dokładnie reprezentowane dla "podwójnego". – kennytm
Też to wymyśliłem - ale masz ogólny punkt, który mam nadzieję. –