要測試Java中的shuffle函數的正確性,可以采用以下步驟:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
testShuffle()
:public static void testShuffle() {
// 在此處編寫測試代碼
}
testShuffle()
方法中,創建一個待打亂的列表:List<Integer> numbers = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
numbers.add(i);
}
Collections.shuffle()
方法打亂列表:Collections.shuffle(numbers);
for (int i = 1; i <= 10; i++) {
assertTrue(numbers.contains(i));
}
shuffle()
方法沒有正確地打亂列表。為了避免偶然性,可以多次打亂并檢查結果,例如5次:boolean isShuffled = false;
for (int i = 0; i < 5; i++) {
List<Integer> original = new ArrayList<>(numbers);
Collections.shuffle(numbers);
if (!original.equals(numbers)) {
isShuffled = true;
break;
}
}
assertTrue(isShuffled);
shuffle()
方法的正確性得到了驗證。注意:這里的assertTrue()
是JUnit測試框架中的斷言方法。如果你沒有使用JUnit,可以自定義一個簡單的斷言方法,例如:
public static void assertTrue(boolean condition) {
if (!condition) {
throw new RuntimeException("Assertion failed");
}
}
將上述代碼片段組合在一起,即可創建一個完整的測試方法來驗證shuffle()
函數的正確性。