Newer
Older
RDLProofSystem / src / test / java / terms / DependencyTermTest.java
package terms;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

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

public class DependencyTermTest {

	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, 1);
	Resource e = new Resource("e", Utils.INT, 1);
	Resource f = new Resource("f", Utils.INT, 1);
	Resource g = new Resource("g", Utils.INT, 1);
	Resource h = new Resource("h", Utils.INT, 2);
	Resource i = new Resource("i", Utils.INT, 2);
	Resource j = new Resource("j", Utils.INT, 2);
	Resource k = new Resource("k", Utils.INT, 2);
	
	@Test
	void EqualsTest() {
		DependencyTerm t1 = new DependencyTerm(a, b, c);
		DependencyTerm t2 = new DependencyTerm(a, b, c);
		assertEquals(t1, t2);
		
		DependencyTerm t3 = new DependencyTerm(a, b, c, d, e);
		assertNotEquals(t1, t3);
		
		DependencyTerm t4 = new DependencyTerm(a, d, e, b, c);
		assertEquals(t3, t4);
		
		DependencyTerm t5 = new DependencyTerm(a, b, c, b, c);
		assertNotEquals(t1, t5);
		
	}
	
	@Test
	void OrderTest() {
		DependencyTerm t1 = new DependencyTerm(a, b, c);
		assertEquals(t1.getOrder(), 1);
		
		DependencyTerm t2 = new DependencyTerm(h, i, a);
		assertEquals(t2.getOrder(), 1);
		
		DependencyTerm t3 = new DependencyTerm(a, b, c, d, e);
		assertEquals(t3.getOrder(), 1);
		
		DependencyTerm t4 = new DependencyTerm(h, i, a, j , b);
		assertEquals(t4.getOrder(), 1);
		
		DependencyTerm t5 = new DependencyTerm(h, i, a, j, k);
		assertEquals(t5.getOrder(), 2);
		
		assertThrows(SyntaxException.class, () -> {
			 new DependencyTerm(a, b, c, h, i);
		});
	}
	
	@Test
	void StringTest() {
		DependencyTerm t1 = new DependencyTerm(a, b, c);
		assertEquals(t1.toString(), "[a : b -> c]");
		
		DependencyTerm t3 = new DependencyTerm(a, b, c, d, e);
		assertEquals(t3.toString(), "[a : b -> c, d -> e]");
		
		DependencyTerm t4 = new DependencyTerm(a, d, e, b, c);
		assertEquals(t4.toString(), "[a : b -> c, d -> e]");
		
		DependencyTerm t5 = new DependencyTerm(a, b, c, b, c);
		assertEquals(t5.toString(), "[a : b -> c, b -> c]");
		
	}
	
}