我有一个方法,是对一个int数组,去除里面重复的值,保留一个值,并且排序
int[] RemoveDuplicateAndSort(int[] mydata)
{
。
}我想测试这个方法,想写一些测试用例,谢谢比如int[] t1={1,3,3,2,5,1,1,5,6,6};
int[] t2 = new int[100000];
for (int i = 0; i < t2.Length; i++)
t2[i] = i; int[] t3 =new int[]{}; int[] t4 = new int[5]; int[] t5 = { -65536, 1, 65536, 1, 65536 }; int[] Result = RemoveDuplicateAndSort(t);
int[] RemoveDuplicateAndSort(int[] mydata)
{
。
}我想测试这个方法,想写一些测试用例,谢谢比如int[] t1={1,3,3,2,5,1,1,5,6,6};
int[] t2 = new int[100000];
for (int i = 0; i < t2.Length; i++)
t2[i] = i; int[] t3 =new int[]{}; int[] t4 = new int[5]; int[] t5 = { -65536, 1, 65536, 1, 65536 }; int[] Result = RemoveDuplicateAndSort(t);
1、建立一个新数组tn,长度为t1.Length;
2、依次取t1的每一个值;
3、如果该值不在tn中,则将该值插入到数组中(方法同插值排序);
4、检验。
int[] a = new int[]{};
a = RemoveDuplicateAndSort(a) ;
Arrays.sort(a);
for(int i =0;i<a.length-1;i++){
if(a[i]==a[i+1])
System.out.println("测试不通过!");
}
for(int j =0;j<Integer.MAX_VALUE;j++){
int[] b = new int[random.nextInt()];
for(int k = 0 ;k<b.length;k++)
b[k] = random.nextInt();
b = RemoveDuplicateAndSort(b) ;
Arrays.sort(b);
for(int i =0;i<b.length-1;i++){
if(b[i]==b[i+1])
System.out.println("测试不通过!");
}
}
for(int j =0;j<Integer.MAX_VALUE;j++){
int[] b = new int[random.nextInt()];
for(int k = 0 ;k<b.length;k++)
b[k] = random.nextInt();
b = RemoveDuplicateAndSort(b) ;
for(int i =0;i<b.length-1;i++){
if(b[i]>=b[i+1])
System.out.println("测试不通过!");
}
}
感觉还可以,不知道是不是楼主想要得 public static int[] removeDuplicateAndSort(int[] mydate) {
/*
* dafault init capacity(16) and load factory(0.75)
*/
HashSet value = new HashSet();
/*
* for each date is element of mydate
*/ for (int date : mydate) {
value.add(date);
}
int size = value.size();
int[] result = new int[size];
Iterator it = value.iterator();
size = 0;
while (it.hasNext()) {
result[size] = (Integer) it.next();
size++;
}
return result;
}
* @param numArray
* int数组
* @param mode
* 排序模式, 0 升序 其他值为降序
* @return true numArray满足要求 false numArray不满足要求
*/
public boolean test(int[] numArray, int mode) {
if (numArray == null || numArray.length == 0) {
return false;
}
if (numArray.length == 1) {
return true;
} int ret; for (int i = 0; i < numArray.length - 1; i++) {
ret = numArray[i + 1] - numArray[i]; if (mode == 0 && ret <= 0) {
return false;
} if (mode != 0 && ret >= 0) {
return false;
}
} return true;
}