このメソッドがカードのデッキをシャッフルしたかどうかをテストして確認する必要があります。ここでは、実際のシャッフル部分のコードを示します。
public void randomShuffle () {
for (int i = 0; i < DECK_SIZE; i++) {
int place = (int)((Math.random()*(51-i))+i);
Card temp = this.cardAt(i);
this.cardList[i] = this.cardAt(place);
this.cardList[place] = temp;
}
}
シャッフルされたかどうかをテストする際の問題は、2 枚のカードしか切り替えることができず、シャッフルされたと見なされることです。ランダムシャッフルのテストのために私がこれまでに持っているものは次のとおりです。
static void randomShuffleTest () {
Deck deck1 = Deck.newDeckOf52();
Deck deck2 = Deck.newDeckOf52();
deck2.randomShuffle();
assert false == deck1.equals(deck2);
}
それで、私の質問は、何かが十分にシャッフルされているかどうかをどのようにテストするのですか?