Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check.equal #106

Open
lokarM opened this issue Jan 27, 2016 · 2 comments
Open

Check.equal #106

lokarM opened this issue Jan 27, 2016 · 2 comments
Labels
4 h Daljši projekt, vendar z jasno definiranimi koraki. tomo Rešitev zahteva celostno razumevanje kode (in Djanga (in Pythona))

Comments

@lokarM
Copy link
Collaborator

lokarM commented Jan 27, 2016

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.

@lokarM
Copy link
Collaborator Author

lokarM commented Jan 27, 2016

Morda bi bilo smiselno, da bi enkrat v prihodnosti imeli tudi to možnost:

Check.equal('klic', rez, test = testFun)

kjer je funkcija testFun taka,da zahteva dva argumenta in vrne True/False glede na enakost argumentov (karkoli v konkretni situaciji pač pomeni).

@matijapretnar matijapretnar changed the title Preverjanje pravilnosti: Check.equal Apr 26, 2016
@matijapretnar
Copy link
Collaborator

@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.

@github-project-automation github-project-automation bot moved this to Todo in Bled Feb 16, 2023
@matijapretnar matijapretnar moved this from Neopredeljeno to < 1 DAN in Bled Feb 16, 2023
@matijapretnar matijapretnar added the 4 h Daljši projekt, vendar z jasno definiranimi koraki. label Feb 17, 2023
@matijapretnar matijapretnar added this to the Novo testiranje nalog milestone Feb 18, 2023
@matijapretnar matijapretnar added tomo Rešitev zahteva celostno razumevanje kode (in Djanga (in Pythona)) and removed idea labels Feb 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
4 h Daljši projekt, vendar z jasno definiranimi koraki. tomo Rešitev zahteva celostno razumevanje kode (in Djanga (in Pythona))
Projects
Status: No status
Development

No branches or pull requests

2 participants