Newer
Older
RDLProofSystem / src / test / java / terms / DependencyTest.java
@Sakoda2269 Sakoda2269 7 hours ago 2 KB dynamicTermのisMatchedByまで
package terms;
import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

import exceptions.SyntaxException;
import models.terms.Dependency;
import models.terms.Resource;
import utils.Utils;

public class DependencyTest {

	Resource a = new Resource("a", Utils.INT, 1);
	Resource b = new Resource("b", Utils.INT, 1);
	Resource c = new Resource("c", Utils.INT, 1);
	Resource d = new Resource("d", Utils.INT, 2);
	Resource e = new Resource("e", Utils.INT, 1);
	Resource f = new Resource("f", Utils.INT, 1);
	
	@Test
	void EqualsTest() {
		
		Dependency d1 = new Dependency(a, b);
		Dependency d2 = new Dependency(a, b, b);
		Dependency d22 = new Dependency(a, b, b);
		assertNotEquals(d1, d2);
		assertEquals(d2, d22);
		
		Dependency d3 = new Dependency(a, c);
		assertFalse(d1.equals(d3));
		
		Dependency d4 = new Dependency(a, b, c);
		Dependency d5 = new Dependency(a, c, b);
		assertEquals(d4, d5);
		
		Dependency d6 = new Dependency(b, a);
		assertFalse(d1.equals(d6));
	}
	
	@Test
	void OrderTest() {
		
		assertThrows(SyntaxException.class, () -> {
			new Dependency(d, a);
		});
		
		assertThrows(SyntaxException.class, () -> {
			new Dependency(a, b, d);
		});
		
		Dependency d1 = new Dependency(a, b);
		assertEquals(d1.getOrder(), 1);
		assertEquals(d1.getTermOrder(), 0);
		
		Dependency d2 = new Dependency(a, d);
		assertEquals(d2.getOrder(), 2);
		assertEquals(d2.getTermOrder(), 1);
		
		Dependency d3 = new Dependency(a, b, c);
		assertEquals(d3.getOrder(), 1);
	}
	
	@Test
	void StringTest() {
		Dependency d1 = new Dependency(a, b);
		assertEquals(d1.toString(), "a : b");
		
		Dependency d2 = new Dependency(a, b, c);
		assertEquals(d2.toString(), "a : b, c");
		
		Dependency d3 = new Dependency(a, c, b);
		assertEquals(d3.toString(), "a : b, c");
		
		Dependency d4 = new Dependency(a, b, e, c, b);
		assertEquals(d4.toString(), "a : b, b, c, e");
	}
	
	@Test
	void MaxIndexAndMaxDepthTest() {
		Dependency d1 = new Dependency(a, b);
		assertEquals(d1.getMaxIndex(), 2);
		assertEquals(d1.getMaxDepth(), 1);
		
		Dependency d2 = new Dependency(d1, c);
		assertEquals(d2.getMaxIndex(), 2);
		assertEquals(d2.getMaxDepth(), 2);
		
		Dependency d3 = new Dependency(d2, e, f);
		assertEquals(d3.getMaxIndex(), 3);
		assertEquals(d3.getMaxDepth(), 3);
		
	}
	
}