我有一个方法,是对一个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);

解决方案 »

  1.   

    我的办法比较笨:
    1、建立一个新数组tn,长度为t1.Length;
    2、依次取t1的每一个值;
    3、如果该值不在tn中,则将该值插入到数组中(方法同插值排序);
    4、检验。
      

  2.   


    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("测试不通过!");
    }
      

  3.   

    变态测试:                Random random = new Random();
    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("测试不通过!");
    }
    }
      

  4.   

    忘记测试排序了  再改下: Random random = new Random();
    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("测试不通过!");
    }
    }
      

  5.   

        具体我也不是很懂,大概就是用例子来测试所编写的源程序吧,在网上找了一个定义。    测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
      

  6.   

    我也写了个。利用HashSet因为Set中不能存在重复数据,输出的值也做了对应的排序
    感觉还可以,不知道是不是楼主想要得 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;
    }
      

  7.   

    /**
     * @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;
    }