java中是否有列表、集合和映射的Junit测试用例?

java中是否有列表、集合和映射的Junit测试用例?,java,list,data-structures,junit,testcase,Java,List,Data Structures,Junit,Testcase,最近我在做一些关于创建一些数据结构的工作 所以我需要一些测试用例来确保它们正常运行 既然已经实现了这么多的数据结构,我想知道是否已经有一些免费的测试用例供通用 毕竟,创建测试很无聊 我现在使用的是: package com.xenoamess.commons.primitive.collections.lists.array_lists; import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.ut

最近我在做一些关于创建一些数据结构的工作

所以我需要一些测试用例来确保它们正常运行

既然已经实现了这么多的数据结构,我想知道是否已经有一些免费的测试用例供通用

毕竟,创建测试很无聊

我现在使用的是:

package com.xenoamess.commons.primitive.collections.lists.array_lists;

import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.Random;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;

/**
 * @author XenoAmess
 */
public class LongArrayListTest {

    public void checkEqual(LongArrayList a1, ArrayList<Long> a2) {
        assertEquals(a1.size(), a2.size());
        for (int i = 0; i < a1.size(); i++) {
            assertEquals(a1.get(i), a2.get(i));
            assertEquals(a1.getPrimitive(i), (long) a2.get(i));
        }
        assertEquals(a1, a2);
        assertEquals(a2, a1);
    }

    public void check(int length) {
        LongArrayList a1 = new LongArrayList();
        ArrayList<Long> a2 = new ArrayList<>();
        Random random = new Random();
        for (int i = 0; i < length; i++) {
            long l = random.nextLong();
            a1.add(l);
            a2.add(l);
        }

        checkEqual(a1, a2);

        boolean flag = false;
        for (Long l : a2) {
            flag = !flag;
            if (flag) {
                a1.remove(l);
            } else {
                a1.removeByContentPrimitive(l);
            }
        }

        assertTrue(a1.isEmpty());

        a1.addAll(a2);

        checkEqual(a1, a2);

        a1.sort(null);
        a2.sort(null);

        checkEqual(a1, a2);
    }

    public void performanceChecks(int length) {
        Random random = new Random();
        LongArrayList data = new LongArrayList();
        for (int i = 0; i < length; i++) {
            long l = random.nextLong();
            data.addPrimitive(l);
        }

        long begin1 = System.currentTimeMillis();
        LongArrayList a1 = new LongArrayList();

        for (int i = 0; i < length; i++) {
            a1.addPrimitive(data.getPrimitive(i));
        }
        a1.sort(null);
        Object a1c = a1.clone();
        for (int i = 0; i < length; i++) {
            a1.removeByContentPrimitive(data.getPrimitive(i));
        }
        long score1 = (System.currentTimeMillis() - begin1);
        System.out.println("LongArrayList time : " + score1);

        long begin2 = System.currentTimeMillis();
        ArrayList<Long> a2 = new ArrayList<>();
        for (int i = 0; i < length; i++) {
            a2.add(data.getPrimitive(i));
        }
        a2.sort(null);
        Object a2c = a2.clone();
        for (int i = 0; i < length; i++) {
            a2.remove((Object) data.getPrimitive(i));
        }
        long score2 = (System.currentTimeMillis() - begin2);
        System.out.println("ArrayList<Long> time : " + score2);
        assertTrue(score2 > score1);
        assertEquals(a1c, a2c);
    }

    @Test
    public void checks() {
        for (int i = 0; i < 1000; i++) {
            check(100);
        }
        System.out.println("micro end");
        for (int i = 0; i < 20; i++) {
            check(10000);
        }
        System.out.println("small end");
        for (int i = 0; i < 5; i++) {
            check(100000);
        }
        System.out.println("medium end");
//        for (int i = 0; i < 1; i++) {
//            check(1000000);
//        }
        System.out.println("large deleted");
        System.out.println("performance checks started:");
        performanceChecks(100000);
    }
}
package com.xenoamess.commons.primitive.collections.lists.array\u list;
导入org.junit.jupiter.api.Test;
导入java.util.ArrayList;
导入java.util.Random;
导入静态org.junit.jupiter.api.Assertions.assertEquals;
导入静态org.junit.jupiter.api.Assertions.assertTrue;
/**
*@author-XenoAmess
*/
公共类LongArrayList测试{
公共无效检查相等(LongArrayList a1、ArrayList a2){
资产质量(a1.size(),a2.size());
对于(int i=0;i1);
资产质量(a1c、a2c);
}
@试验
公开作废支票(){
对于(int i=0;i<1000;i++){
支票(100);
}
System.out.println(“微端”);
对于(int i=0;i<20;i++){
支票(10000);
}
System.out.println(“小端”);
对于(int i=0;i<5;i++){
支票(100000);
}
系统输出打印项次(“中端”);
//对于(int i=0;i<1;i++){
//支票(1000000);
//        }
System.out.println(“大删除”);
System.out.println(“性能检查已开始:”);
绩效检查(100000);
}
}

您可以参考测试用例,而不是您所寻找的答案,但是使用像
AssertJ
(或
Hamcrest
)这样的断言库将使您的测试更快、更容易,因为它们有许多断言集合内容的方法,如果您的源代码相当小并且是独立的,那么您甚至可以为您的集合类型扩展它。它会自动为您生成测试。您可以参考测试用例,而不是您正在寻找的答案,但使用断言库,如
AssertJ
(或
Hamcrest
),将使您的测试更快、更容易,因为它们有许多断言集合内容的方法,如果您的源代码相当小并且是独立的,那么您甚至可以为您的集合类型扩展它。它将自动为您生成测试。