NCAS-CMS / NCAS-CMS/cf-python

Address flakiness of `test_curl_xy`

Offen
#348 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

testing
Vorherrschende Sprache
Python
Sterne
150
Forks
23
Ø Merge
1 T. 11 Std.
Gemergte PRs (30 T.)
2

Beschreibung

test_curl_xy from the test_Maths module is proving itself to be a flaky test, particularly when run within the CI jobs rather than locally (at least as far as I have observed locally, where it always passes):

FAIL: test_curl_xy (test_Maths.MathTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/runner/tmp/test_cf-python/cf/test/test_Maths.py", line 146, in test_curl_xy
    self.assertTrue((c.data == c0.data).all())
AssertionError: False is not true

We should adapt it so that the outcome is reliably deterministic. It is probably a simple-enough case of testing floating point equality to a tolerance rather than strict equality as present.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit test/test_Maths.py, insbesondere mit test_curl_xy rund um die fehlschlagende Assertion in Zeile 146. Führe den Test in der CI-ähnlichen Umgebung aus und vergleiche die für c.data und c0.data verwendeten Gleitkommadaten. Die Aufgabe ist abgeschlossen, wenn der Test eine für die beobachtete Gleitkommavariation geeignete Toleranz verwendet und zuverlässig besteht.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
testing
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.