2013-07-03, 12:44
  #1
Medlem
Jag hller p och provar lite med JUnit fr att bli bttre p min enhetstestning och har sttt p ett litet problem.

Har tv klasser, Card och Stack. Card representerar ett spelkort (frg och valr) och Stack en hg med kort. I Stack har jag en metod fr att blanda korten (en implementation av http://en.wikipedia.org/wiki/Fisher-Yates_shuffle).

Hur br jag bst g tillvga fr att p ett tillfrlitligt och bra stt testa att blandningen verkligen fungerar?

Man kan vl sga att problemet i grund och botten handlar om att testa randomisering.
__________________
Senast redigerad av o- 2013-07-03 kl. 12:46.
Citera
2013-07-04, 20:34
  #2
Medlem
Eftersom du lagt metoden i Stack s antar jag att blandningsalgoritmen saknar betydelse. I s fall skulle du kunna jmfra olika blandningar och se att de inte blir samma.

Om du skulle vilja testa algoritmen mste du mocka bort slumpen och f en deterministisk blandning.

Det r bra att du enhetstestar!
Citera
2013-07-05, 20:17
  #3
Medlem
Hmm, lter inte helt enkelt.

Jag tnker att man kanske kan gra p detta stt:

1. Skapa en stack
2. Skapa array som ska innehlla listor av kort givet index i stacken

3. blanda stacken
3.1 lgg till varje kort i slutet av listan i respektive index i arrayen.
3.2 Analysera hur jmnt frdelade arrayen med listorna r. Dvs. Det borde finnas ungefr lika mnga av varje kort i varje lista i arrayen. Skapa ngon sort kostandsfunktion som beskriver "felet"
3.3 Upprepa 3. tills stora talens lag har gjort sitt. "Felet" borde minska med antal iterationer.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in