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))
}
}
|