aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.tests/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/tests/interval/RelationTest.xtend
blob: 5527fbaa59922b13b5bb39cca8e90fbeb2b0e367 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.tests.interval

import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.interval.Interval
import java.util.Collection
import org.junit.Assert
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
import org.junit.runners.Parameterized.Parameter
import org.junit.runners.Parameterized.Parameters

import static hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.interval.Interval.*

@RunWith(Parameterized)
class RelationTest {
	@Parameters(name = "{index}: {0} <> {1}")
	static def Collection<Object[]> data() {
		#[
			#[EMPTY, EMPTY, true, false, true, false, EMPTY],
			#[EMPTY, between(1, 2), true, false, true, false, between(1, 2)],
			#[between(1, 2), EMPTY, true, false, true, false, between(1, 2)],
			#[upTo(1), upTo(0), false, true, false, true, upTo(1)],
			#[upTo(1), upTo(1), false, true, false, true, upTo(1)],
			#[upTo(1), upTo(2), false, true, false, true, upTo(2)],
			#[upTo(1), above(0), false, true, false, true, UNBOUNDED],
			#[upTo(1), above(1), false, true, false, true, UNBOUNDED],
			#[upTo(1), above(2), false, false, true, true, UNBOUNDED],
			#[upTo(1), between(-1, -1), false, true, false, true, upTo(1)],
			#[upTo(1), between(-1, 0), false, true, false, true, upTo(1)],
			#[upTo(1), between(-1, 1), false, true, false, true, upTo(1)],
			#[upTo(1), between(-1, 2), false, true, false, true, upTo(2)],
			#[upTo(1), between(1, 1), false, true, false, true, upTo(1)],
			#[upTo(1), between(1, 2), false, true, false, true, upTo(2)],
			#[upTo(1), between(2, 2), false, false, true, true, upTo(2)],
			#[upTo(1), between(2, 3), false, false, true, true, upTo(3)],
			#[above(1), upTo(0), false, false, false, false, UNBOUNDED],
			#[above(1), upTo(1), false, true, false, false, UNBOUNDED],
			#[above(1), upTo(2), false, true, false, true, UNBOUNDED],
			#[above(1), above(0), false, true, false, true, above(0)],
			#[above(1), above(1), false, true, false, true, above(1)],
			#[above(1), above(2), false, true, false, true, above(1)],
			#[above(1), between(-1, -1), false, false, false, false, above(-1)],
			#[above(1), between(-1, 0), false, false, false, false, above(-1)],
			#[above(1), between(-1, 1), false, true, false, false, above(-1)],
			#[above(1), between(-1, 2), false, true, false, true, above(-1)],
			#[above(1), between(1, 1), false, true, false, false, above(1)],
			#[above(1), between(1, 2), false, true, false, true, above(1)],
			#[above(1), between(2, 2), false, true, false, true, above(1)],
			#[above(1), between(2, 3), false, true, false, true, above(1)],
			#[between(1, 1), upTo(0), false, false, false, false, upTo(1)],
			#[between(1, 1), upTo(1), false, true, false, false, upTo(1)],
			#[between(1, 1), upTo(2), false, true, false, true, upTo(2)],
			#[between(1, 1), above(0), false, true, false, true, above(0)],
			#[between(1, 1), above(1), false, true, false, true, above(1)],
			#[between(1, 1), above(2), false, false, true, true, above(1)],
			#[between(1, 1), between(-1, -1), false, false, false, false, between(-1, 1)],
			#[between(1, 1), between(-1, 0), false, false, false, false, between(-1, 1)],
			#[between(1, 1), between(-1, 1), false, true, false, false, between(-1, 1)],
			#[between(1, 1), between(-1, 2), false, true, false, true, between(-1, 2)],
			#[between(1, 1), between(1, 1), true, true, false, false, between(1, 1)],
			#[between(1, 1), between(1, 2), false, true, false, true, between(1, 2)],
			#[between(1, 1), between(2, 2), false, false, true, true, between(1, 2)],
			#[between(1, 1), between(2, 3), false, false, true, true, between(1, 3)],
			#[between(-1, 1), upTo(-2), false, false, false, false, upTo(1)],
			#[between(-1, 1), upTo(-1), false, true, false, false, upTo(1)],
			#[between(-1, 1), upTo(0), false, true, false, true, upTo(1)],
			#[between(-1, 1), upTo(1), false, true, false, true, upTo(1)],
			#[between(-1, 1), upTo(2), false, true, false, true, upTo(2)],
			#[between(-1, 1), above(-2), false, true, false, true, above(-2)],
			#[between(-1, 1), above(-1), false, true, false, true, above(-1)],
			#[between(-1, 1), above(0), false, true, false, true, above(-1)],
			#[between(-1, 1), above(1), false, true, false, true, above(-1)],
			#[between(-1, 1), above(2), false, false, true, true, above(-1)],
			#[between(-1, 1), between(-3, -2), false, false, false, false, between(-3, 1)],
			#[between(-1, 1), between(-2, -2), false, false, false, false, between(-2, 1)],
			#[between(-1, 1), between(-2, -1), false, true, false, false, between(-2, 1)],
			#[between(-1, 1), between(-2, 0), false, true, false, true, between(-2, 1)],
			#[between(-1, 1), between(-2, 1), false, true, false, true, between(-2, 1)],
			#[between(-1, 1), between(-2, 2), false, true, false, true, between(-2, 2)],
			#[between(-1, 1), between(-1, -1), false, true, false, false, between(-1, 1)],
			#[between(-1, 1), between(-1, 0), false, true, false, true, between(-1, 1)],
			#[between(-1, 1), between(-1, 1), false, true, false, true, between(-1, 1)],
			#[between(-1, 1), between(-1, 2), false, true, false, true, between(-1, 2)],
			#[between(-1, 1), between(0, 0), false, true, false, true, between(-1, 1)],
			#[between(-1, 1), between(0, 1), false, true, false, true, between(-1, 1)],
			#[between(-1, 1), between(0, 2), false, true, false, true, between(-1, 2)],
			#[between(-1, 1), between(1, 1), false, true, false, true, between(-1, 1)],
			#[between(-1, 1), between(1, 2), false, true, false, true, between(-1, 2)],
			#[between(-1, 1), between(2, 2), false, false, true, true, between(-1, 2)],
			#[between(-1, 1), between(2, 3), false, false, true, true, between(-1, 3)]
		]
	}
	
	@Parameter(0) public var Interval a
	@Parameter(1) public var Interval b
	@Parameter(2) public var boolean mustEqual
	@Parameter(3) public var boolean mayEqual
	@Parameter(4) public var boolean mustBeLessThan
	@Parameter(5) public var boolean mayBeLessThan
	@Parameter(6) public var Interval join
	
	@Test
	def void mustEqualTest() {
		Assert.assertEquals(mustEqual, a.mustEqual(b))
	}
	
	@Test
	def void mayEqualTest() {
		Assert.assertEquals(mayEqual, a.mayEqual(b))
	}
	
	@Test
	def void mustBeLessThanTest() {
		Assert.assertEquals(mustBeLessThan, a.mustBeLessThan(b))
	}
	
	@Test
	def void mayBeLessThanTest() {
		Assert.assertEquals(mayBeLessThan, a.mayBeLessThan(b))
	}
	
	@Test
	def void joinTest() {
		Assert.assertEquals(join, a.join(b))
	}
}