Ho una funzione che restituisce una tupla che, tra le altre cose, contiene un valore float. Di solito uso assertAlmostEquals
per confrontarli, ma questo non funziona con le tuple. Inoltre, la tupla contiene anche altri tipi di dati. Attualmente sto affermando ogni elemento della tupla individualmente, ma questo è eccessivo per un elenco di tali tuple. C'è un buon modo per scrivere asserzioni per questi casi? Considerate questa funzione:Test asserzioni per tuple con galleggianti
def f(a):
return [(1.0/x, x * 2) for x in a]
Ora voglio scrivere un test per esso:
def testF(self):
self.assertEqual(f(range(1,3)), [(1.0, 2), (0.5, 4)])
Questo fallirà perché il risultato del 1.0/2
non è esattamente 0.5
. Qualcuno può raccomandare un buon modo di scrivere una tale asserzione in modo leggibile?
Modifica: In realtà 1.0/2
è esattamente 0.5
, ma si ottiene il mio significato.
In realtà 0,5 è esattamente rappresentabile per 'double'. – kennytm
Ho appena capito anche quello - ma tu hai capito il punto generale che spero. –