You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
rad pokazal, kako lahko Toma uporabijo za preverjanje
programov v Pythonu, ki kot rezultat vračajo array-e in podobne strukture, ki jih pozna numpy. Direktno
primerjanje seveda ne gre:
Check.equal('numpysum(3)', numpy.array([ 0, 2, 12]))
File "", line 70, in equal
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Ena možnost je, da pišeš Check.equal(…, clean=list), kar obe vrednosti pred primerjavo pretvori v običajen seznam. Druga možnost je, da napišeš svoj test: if (numpysum(3) != numpy.array([0, 2, 12])).any(): Check.error(“Prišlo je do hude napake”).
Tretja možnost je, da bi Check.equal popravili tako, da poleg argumenta clean sprejme tudi funkcijo za primerjavo, in potem kličemo to namesto ==. Vendar si tega ne upam tako na hitro spremeniti, da ne bi pokvaril starih testov. Če si ti bolj prepričan, da bo to delovalo, pa tudi lahko.
The text was updated successfully, but these errors were encountered:
@lokarM je tudi (na malo zapletenejšem primeru, kot je prikazan) opazil, da velja Check.equal('{1, 2}', [1, 2]). Težava je v tem, da Check.equal pred preverjanjem najprej na obeh argumentih uporabi Check.canonize, s čimer množico pretvori v urejen seznam njenih elementov. To, da uporabimo Check.canonize samo po sebi niti ni slabo, vendar moramo v Check.equal preveriti tudi enakost tipov.
rad pokazal, kako lahko Toma uporabijo za preverjanje
programov v Pythonu, ki kot rezultat vračajo array-e in podobne strukture, ki jih pozna numpy. Direktno
primerjanje seveda ne gre:
Check.equal('numpysum(3)', numpy.array([ 0, 2, 12]))
File "", line 70, in equal
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
@matijapretnar je odgovoril:
Ena možnost je, da pišeš Check.equal(…, clean=list), kar obe vrednosti pred primerjavo pretvori v običajen seznam. Druga možnost je, da napišeš svoj test: if (numpysum(3) != numpy.array([0, 2, 12])).any(): Check.error(“Prišlo je do hude napake”).
Tretja možnost je, da bi Check.equal popravili tako, da poleg argumenta clean sprejme tudi funkcijo za primerjavo, in potem kličemo to namesto ==. Vendar si tega ne upam tako na hitro spremeniti, da ne bi pokvaril starih testov. Če si ti bolj prepričan, da bo to delovalo, pa tudi lahko.
The text was updated successfully, but these errors were encountered: