Skip to content
Snippets Groups Projects
Forked from cse332-23su / p2-public
2 commits ahead of the upstream repository.
CircularArrayHashCodeTests.java 2.33 KiB
package provided;

import datastructures.worklists.CircularArrayFIFOQueue;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Timeout;

import java.util.concurrent.TimeUnit;

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

public class CircularArrayHashCodeTests {

	@Test()
    @Timeout(value = 3000, unit = TimeUnit.MILLISECONDS)
	public void test_hashCode_fewElements_equal() {
		CircularArrayFIFOQueue<String> l1 = new CircularArrayFIFOQueue<>(10);
		CircularArrayFIFOQueue<String> l2 = new CircularArrayFIFOQueue<>(10);
		for (int i = 0; i < 3; i++) {
			l1.add("a");
			l2.add("a");
		}
		assertEquals(l1.hashCode(), l2.hashCode());
	}

	@Test()
    @Timeout(value = 3000, unit = TimeUnit.MILLISECONDS)
	public void test_hashCode_fewElements_notEqual() {
		CircularArrayFIFOQueue<String> l1 = new CircularArrayFIFOQueue<>(10);
		CircularArrayFIFOQueue<String> l2 = new CircularArrayFIFOQueue<>(10);
		l1.add("a");
		l1.add("a");
		l1.add("b");
		l2.add("a");
		l2.add("a");
		l2.add("a");
        assertNotEquals(l1.hashCode(), l2.hashCode());
	}

	@Test()
    @Timeout(value = 3000, unit = TimeUnit.MILLISECONDS)
	public void test_hashCode_fewElements2_notEqual() {
		CircularArrayFIFOQueue<String> l1 = new CircularArrayFIFOQueue<>(10);
		CircularArrayFIFOQueue<String> l2 = new CircularArrayFIFOQueue<>(10);
		l1.add("a");
		l1.add("a");
		l1.add("a");
		l1.add("a");
		l2.add("a");
		l2.add("a");
		l2.add("a");
        assertNotEquals(l1.hashCode() , l2.hashCode());
	}

	@Test()
    @Timeout(value = 3000, unit = TimeUnit.MILLISECONDS)
	public void test_hashCode_fewElements3_notEqual() {
		CircularArrayFIFOQueue<String> l1 = new CircularArrayFIFOQueue<>(10);
		CircularArrayFIFOQueue<String> l2 = new CircularArrayFIFOQueue<>(10);
		l1.add("a");
		l1.add("b");
		l1.add("c");
		l2.add("c");
		l2.add("b");
		l2.add("a");
        assertNotEquals(l1.hashCode() , l2.hashCode());
	}

	@Test()
    @Timeout(value = 3000, unit = TimeUnit.MILLISECONDS)
	public void test_equalHashCode_fewElements2_equal() {
		CircularArrayFIFOQueue<String> l1 = new CircularArrayFIFOQueue<>(10);
		CircularArrayFIFOQueue<String> l2 = new CircularArrayFIFOQueue<>(10);
		l1.add("a");
		l1.add("b");
		l2.add("a");
		l2.add("b");
		assertEquals(l1 , l2);
		assertEquals(l1.hashCode() , l2.hashCode());
	}
}