=== perfect (14:30:39 EDT)
action    20/20
doc_type  18/18
vendor    18/18
date      18/18
total     18/18
flags     precision 1.00  recall 1.00  (tp 20, fp 0, fn 0)
summary leaks (must be 0): 0 []
=== wrong (14:30:39 EDT)
action    19/20
doc_type  17/18
vendor    18/18
date      17/18
total     17/18
flags     precision 0.95  recall 0.90  (tp 18, fp 1, fn 2)
summary leaks (must be 0): 2 [('SYN-01', 'SYN$'), ('SYN-01', '$')]
=== empty (14:30:39 EDT)
action    0/20
doc_type  0/18
vendor    1/18
date      1/18
total     12/18
flags     precision 0.00  recall 0.00  (tp 0, fp 0, fn 20)
summary leaks (must be 0): 0 []
    ok = (norm(a) == norm(b)) if f == 'vendor' else (abs(float(a) - float(b)) < 0.005 if (f == 'total' and a is not None and b is not None) else a == b)
                                                         ~~~~~^^^
ValueError: could not convert string to float: 'SYN$ 12,480.00'
