JuliaArrays / JuliaArrays/ArrayInterface.jl

Array Interface Test Suite

Offen
#331 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Julia
Sterne
140
Forks
44
Ø Merge
4 T. 14 Std.
Gemergte PRs (30 T.)
5

Beschreibung

I've come across comments that it takes many months or years before a new array type is dependable because it takes time to catch all the corner cases and bugs. I think we should be able to get an array to be safely usable for common applications in a much shorter time. It might help if we put together a set of tests for common assumptions that an array should meet so that testing is easier. For example...

function test_array_indices(x)
    lininds = eachindex(IndexLinear(), x)
    carinds = CartesianIndices(axes(x))
    for (li,ci) = zip(lininds,carinds)
        @test x[li] == x[ci]
    end
    @test length(lininds) == length(carinds) == length(x) == prod(size(x))
end

We could make that example a bit more verbose and inject some logging so that it's clear where errors come from.

We could also do similar things with stride-layout stuff.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

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 der Durchsicht des vorgeschlagenen test_array_indices-Beispiels und der bestehenden Organisation der array-interface-Tests, sofern vorhanden. Lege den Umfang der gemeinsamen Annahmen zu Arrays und Stride-Layouts fest und bestätige anschließend, dass die resultierende Testsuite Fehler klar meldet und die vereinbarten Fälle abdeckt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
julia
Bereich
testing
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

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