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 DivisionTest { @Parameters(name="{index}: {0} / {1} = {2}") static def Collection data() { #[ #[EMPTY, EMPTY, EMPTY], #[EMPTY, between(-1, 1), EMPTY], #[between(-1, 1), EMPTY, EMPTY], #[UNBOUNDED, UNBOUNDED, UNBOUNDED], #[UNBOUNDED, upTo(-2), UNBOUNDED], #[UNBOUNDED, upTo(0), UNBOUNDED], #[UNBOUNDED, upTo(3), UNBOUNDED], #[UNBOUNDED, above(-2), UNBOUNDED], #[UNBOUNDED, above(0), UNBOUNDED], #[UNBOUNDED, above(3), UNBOUNDED], #[UNBOUNDED, between(-4, -3), UNBOUNDED], #[UNBOUNDED, between(-4, 0), UNBOUNDED], #[UNBOUNDED, between(-3, 4), UNBOUNDED], #[UNBOUNDED, between(0, 4), UNBOUNDED], #[UNBOUNDED, between(3, 4), UNBOUNDED], #[UNBOUNDED, ZERO, EMPTY], #[upTo(-12), UNBOUNDED, UNBOUNDED], #[upTo(-12), upTo(-2), above(0)], #[upTo(-12), upTo(0), above(0)], #[upTo(-12), upTo(3), UNBOUNDED], #[upTo(-12), above(-2), UNBOUNDED], #[upTo(-12), above(0), upTo(0)], #[upTo(-12), above(3), upTo(0)], #[upTo(-12), between(-4, -3), above(3)], #[upTo(-12), between(-4, 0), above(3)], #[upTo(-12), between(-3, 4), UNBOUNDED], #[upTo(-12), between(0, 4), upTo(-3)], #[upTo(-12), between(3, 4), upTo(-3)], #[upTo(-12), ZERO, EMPTY], #[upTo(0), UNBOUNDED, UNBOUNDED], #[upTo(0), upTo(-2), above(0)], #[upTo(0), upTo(0), above(0)], #[upTo(0), upTo(3), UNBOUNDED], #[upTo(0), above(-2), UNBOUNDED], #[upTo(0), above(0), upTo(0)], #[upTo(0), above(3), upTo(0)], #[upTo(0), between(-4, -3), above(0)], #[upTo(0), between(-4, 0), above(0)], #[upTo(0), between(-3, 4), UNBOUNDED], #[upTo(0), between(0, 4), upTo(0)], #[upTo(0), between(3, 4), upTo(0)], #[upTo(0), ZERO, EMPTY], #[upTo(12), UNBOUNDED, UNBOUNDED], #[upTo(12), upTo(-2), above(-6)], #[upTo(12), upTo(0), UNBOUNDED], #[upTo(12), upTo(3), UNBOUNDED], #[upTo(12), above(-2), UNBOUNDED], #[upTo(12), above(0), UNBOUNDED], #[upTo(12), above(3), upTo(4)], #[upTo(12), between(-4, -3), above(-4)], #[upTo(12), between(-4, 0), UNBOUNDED], #[upTo(12), between(-3, 4), UNBOUNDED], #[upTo(12), between(0, 4), UNBOUNDED], #[upTo(12), between(3, 4), upTo(4)], #[upTo(12), ZERO, EMPTY], #[above(-12), UNBOUNDED, UNBOUNDED], #[above(-12), upTo(-2), upTo(6)], #[above(-12), upTo(0), UNBOUNDED], #[above(-12), upTo(3), UNBOUNDED], #[above(-12), above(-2), UNBOUNDED], #[above(-12), above(0), UNBOUNDED], #[above(-12), above(3), above(-4)], #[above(-12), between(-4, -3), upTo(4)], #[above(-12), between(-4, 0), UNBOUNDED], #[above(-12), between(-3, 4), UNBOUNDED], #[above(-12), between(0, 4), UNBOUNDED], #[above(-12), between(3, 4), above(-4)], #[above(-12), ZERO, EMPTY], #[above(0), UNBOUNDED, UNBOUNDED], #[above(0), upTo(-2), upTo(0)], #[above(0), upTo(0), upTo(0)], #[above(0), upTo(3), UNBOUNDED], #[above(0), above(-2), UNBOUNDED], #[above(0), above(0), above(0)], #[above(0), above(3), above(0)], #[above(0), between(-4, -3), upTo(0)], #[above(0), between(-4, 0), upTo(0)], #[above(0), between(-3, 4), UNBOUNDED], #[above(0), between(0, 4), above(0)], #[above(0), between(3, 4), above(0)], #[above(0), ZERO, EMPTY], #[above(12), UNBOUNDED, UNBOUNDED], #[above(12), upTo(-2), upTo(0)], #[above(12), upTo(0), upTo(0)], #[above(12), upTo(3), UNBOUNDED], #[above(12), above(-2), UNBOUNDED], #[above(12), above(0), above(0)], #[above(12), above(3), above(0)], #[above(12), between(-4, -3), upTo(-3)], #[above(12), between(-4, 0), upTo(-3)], #[above(12), between(-3, 4), UNBOUNDED], #[above(12), between(0, 4), above(3)], #[above(12), between(3, 4), above(3)], #[above(12), ZERO, EMPTY], #[between(-36, -12), UNBOUNDED, UNBOUNDED], #[between(-36, -12), upTo(-2), between(0, 18)], #[between(-36, -12), upTo(0), above(0)], #[between(-36, -12), upTo(3), UNBOUNDED], #[between(-36, -12), above(-2), UNBOUNDED], #[between(-36, -12), above(0), upTo(0)], #[between(-36, -12), above(3), between(-12, 0)], #[between(-36, -12), between(-4, -3), between(3, 12)], #[between(-36, -12), between(-4, 0), above(3)], #[between(-36, -12), between(-3, 4), UNBOUNDED], #[between(-36, -12), between(0, 4), upTo(-3)], #[between(-36, -12), between(3, 4), between(-12, -3)], #[between(-36, -12), ZERO, EMPTY], #[between(-36, 0), UNBOUNDED, UNBOUNDED], #[between(-36, 0), upTo(-2), between(0, 18)], #[between(-36, 0), upTo(0), above(0)], #[between(-36, 0), upTo(3), UNBOUNDED], #[between(-36, 0), above(-2), UNBOUNDED], #[between(-36, 0), above(0), upTo(0)], #[between(-36, 0), above(3), between(-12, 0)], #[between(-36, 0), between(-4, -3), between(0, 12)], #[between(-36, 0), between(-4, 0), above(0)], #[between(-36, 0), between(-3, 4), UNBOUNDED], #[between(-36, 0), between(0, 4), upTo(0)], #[between(-36, 0), between(3, 4), between(-12, 0)], #[between(-36, 0), ZERO, EMPTY], #[between(-12, 36), UNBOUNDED, UNBOUNDED], #[between(-12, 36), upTo(-2), between(-18, 6)], #[between(-12, 36), upTo(0), UNBOUNDED], #[between(-12, 36), upTo(3), UNBOUNDED], #[between(-12, 36), above(-2), UNBOUNDED], #[between(-12, 36), above(0), UNBOUNDED], #[between(-12, 36), above(3), between(-4, 12)], #[between(-12, 36), between(-4, -3), between(-12, 4)], #[between(-12, 36), between(-4, 0), UNBOUNDED], #[between(-12, 36), between(-3, 4), UNBOUNDED], #[between(-12, 36), between(0, 4), UNBOUNDED], #[between(-12, 36), between(3, 4), between(-4, 12)], #[between(-12, 36), ZERO, EMPTY], #[between(0, 36), UNBOUNDED, UNBOUNDED], #[between(0, 36), upTo(-2), between(-18, 0)], #[between(0, 36), upTo(0), upTo(0)], #[between(0, 36), upTo(3), UNBOUNDED], #[between(0, 36), above(-2), UNBOUNDED], #[between(0, 36), above(0), above(0)], #[between(0, 36), above(3), between(0, 12)], #[between(0, 36), between(-4, -3), between(-12, 0)], #[between(0, 36), between(-4, 0), upTo(0)], #[between(0, 36), between(-3, 4), UNBOUNDED], #[between(0, 36), between(0, 4), above(0)], #[between(0, 36), between(3, 4), between(0, 12)], #[between(0, 36), ZERO, EMPTY], #[between(12, 36), UNBOUNDED, UNBOUNDED], #[between(12, 36), upTo(-2), between(-18, 0)], #[between(12, 36), upTo(0), upTo(0)], #[between(12, 36), upTo(3), UNBOUNDED], #[between(12, 36), above(-2), UNBOUNDED], #[between(12, 36), above(0), above(0)], #[between(12, 36), above(3), between(0, 12)], #[between(12, 36), between(-4, -3), between(-12, -3)], #[between(12, 36), between(-4, 0), upTo(-3)], #[between(12, 36), between(-3, 4), UNBOUNDED], #[between(12, 36), between(0, 4), above(3)], #[between(12, 36), between(3, 4), between(3, 12)], #[between(12, 36), ZERO, EMPTY], #[ZERO, UNBOUNDED, ZERO], #[ZERO, upTo(-2), ZERO], #[ZERO, upTo(0), ZERO], #[ZERO, upTo(3), ZERO], #[ZERO, above(-2), ZERO], #[ZERO, above(0), ZERO], #[ZERO, above(3), ZERO], #[ZERO, between(-4, -3), ZERO], #[ZERO, between(-4, 0), ZERO], #[ZERO, between(-3, 4), ZERO], #[ZERO, between(0, 4), ZERO], #[ZERO, between(3, 4), ZERO], #[ZERO, ZERO, EMPTY] ] } @Parameter(0) public var Interval a @Parameter(1) public var Interval b @Parameter(2) public var Interval result @Test def void divisionTest() { Assert.assertEquals(result, a / b) } }