aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.tests/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/tests/cardinality/CbcPolyhedronSolverTest.xtend
blob: b22e2a20d3a4f0ec655f0a02db167aa52bc062a9 (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
package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.tests.cardinality

import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.CbcPolyhedronSolver
import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.Dimension
import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.Polyhedron
import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.PolyhedronSaturationResult
import org.junit.Test

import static org.junit.Assert.*
import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.LinearConstraint

class CbcPolyhedronSolverTest extends IntegerPolyhedronSolverTest {

	override protected createSolver() {
		new CbcPolyhedronSolver(false, 10, true)
	}
}

class RelaxedCbcPolyhedronSolverTest extends RelaxedPolyhedronSolverTest {

	override protected createSolver() {
		new CbcPolyhedronSolver(true, 10, true)
	}
}

class CbcPolyhedronSolverTimeoutTest {

	@Test
	def void timeoutTest() {
		val solver = new CbcPolyhedronSolver(false, 0, true)
		val x = new Dimension("x", 0, 1)
		val polyhedron = new Polyhedron(#[x], #[new LinearConstraint(#{x -> 1}, null, 0)], #[x])
		val operator = solver.createSaturationOperator(polyhedron)
		try {
			val result = operator.saturate

			assertEquals(PolyhedronSaturationResult.UNKNOWN, result)
		} finally {
			operator.close()
		}
	}
}