单元测试 - 自动生成数组或其它数据的java库?
迷茫
迷茫 2017-04-18 10:48:41
0
2
628

比如说, 我希望验证一个排序算法是否正确. 我不想自己去写测试数据, 有没有什么库能够自动生成包含数据的数组或其它的容器类.

比如能够自动生成一个长度为100的有序int数组等等.

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(2)
巴扎黑

Mots clés, shuffle

    public static List<Integer> generateRandomArray(int len)
    {
        if(len <= 0)
        {
            throw new IllegalArgumentException(len + " can not be negitive.");
        }
        List<Integer> arr = new ArrayList<>(len);
        for(int i = 0; i < len; i++)
        {
            arr.add(i);
        }
        Collections.shuffle(arr);
        return arr;
    }
Ty80

Je n'ai jamais entendu parler d'une telle bibliothèque - mais pour ce genre de méthode simple, je suggère de "faire vous-même et d'avoir suffisamment de nourriture et de vêtements". Sur la base de vos bases actuelles, vous devriez réfléchir davantage, écrire davantage et pratiquer davantage – mettre en œuvre vous-même ce type de méthode est un bon processus de pose de bases.

Ce dont vous avez besoin maintenant n'est pas une méthode pour générer un tableau ordonné. Ce dont vous avez besoin, ce sont les deux méthodes suivantes :

Générer un tableau d'entiers non ordonnés de longueur n, la plage d'éléments du tableau est 0 ~ liée :

public int[] randomArray(int n, int bound) {
    Random random = new Random();

    int[] array = new int[n];
    for (int i = 0; i < n; i++) {
        array[i] = random.nextInt(bound);
    }

    return array;
}

Déterminez si le tableau est trié par ordre croissant :

public boolean isAscending(int[] array) {
    for (int i = 1; i < array.length; i++) {
        if (array[i - 1] > array[i]) { // 判断降序的话,将 > 改成 <
            return false;
        }
    }
    return true;
}

Avec ces deux méthodes, vous pouvez générer un tableau d'entiers pour le tri et déterminer si le tableau d'entiers est en ordre.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal