我有一個測試添加條件排序字符串的問題。如何編寫一些附加規則的字符串排序
表包含一個包含一些字符串的列。 字符串可以按字母順序排序。 但還有一些附加條件,以符號「[」開頭的行的優先級低於以數字開頭的行的優先級。
首先,我不知道算法。 其次,我不知道如何測試,但主要方法我應該使用算法,它用於排序(但如果算法包含不正確的執行,所以測試沒有發現問題)
我有一個測試添加條件排序字符串的問題。如何編寫一些附加規則的字符串排序
表包含一個包含一些字符串的列。 字符串可以按字母順序排序。 但還有一些附加條件,以符號「[」開頭的行的優先級低於以數字開頭的行的優先級。
首先,我不知道算法。 其次,我不知道如何測試,但主要方法我應該使用算法,它用於排序(但如果算法包含不正確的執行,所以測試沒有發現問題)
Write a custom comparator它實現了所有的條件規則,並檢查是否認爲
MyCustomComparator c = new MyCustomComparator();
for(int i=0; i < tab.size()-1; i++){
if(!c.compare(tab[i], tab[i+1])){
throw new Exception("Not sorted");
}
}
哪裏tab
是排序後的字符串的集合。
編輯:這當然假定條件規則不矛盾,例如a < b && b < c && c < a
等情況不會發生。
困難的部分已完成已經:實施比較算法。實際測試它,只需要創建一些數據集,以任意順序,包含字符串開頭的[
和字符串以數字開頭,然後調用你的排序算法,並檢查字符串都在預期的順序:
List<String> toSort = Arrays.asList(new String[] {"[123", "1234", "[234", "0123"});
Collections.sort(toSort, new YourComparator());
assertEquals(Arrays.asList("0123", "1234", "[123", "[234"), toSort);
謝謝。但我不知道算法。 –
所以這個問題不是用你在問題中說明的方式測試排序算法,而是在寫它的時候?那你爲什麼不問這個? –