我必须测试一下,看看这个方法是否洗过一副牌。这里是实际洗牌部分的代码。
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;
}
}
测试它是否被洗过的问题是我只能交换两张牌,它会被认为是洗过的。这是我迄今为止对随机洗牌的测试。
static void randomShuffleTest () {
Deck deck1 = Deck.newDeckOf52();
Deck deck2 = Deck.newDeckOf52();
deck2.randomShuffle();
assert false == deck1.equals(deck2);
}
所以,我的问题是,我如何测试某些东西是否已经足够洗牌?