Dlaczego tak
Dla kwoty 50 funkcja zwraca 50, więc test_a przechodzi. Dla kwoty 100 warunek kwota > 100 jest fałszywy i funkcja zwraca 100 zamiast oczekiwanych 90, dlatego test_b kończy się niepowodzeniem. Dla 200 wynik 200 * 0.9 to 180.0, a w Pythonie 180.0 == 180 jest prawdą, więc test_c przechodzi – odpowiedź 2 wynika z błędnego założenia, że liczby float i int są zawsze różne.