58 lines
2.4 KiB
MiniZinc
58 lines
2.4 KiB
MiniZinc
/***
|
|
!Test
|
|
expected: !Result
|
|
solution: !Solution:
|
|
y:
|
|
- '{}'
|
|
- '4.0..infinity'
|
|
- '{2.0,3.0}'
|
|
- '2.0..2.0 union 3.0..3.0 union 4.0..infinity'
|
|
- '-1.0..1.0'
|
|
- '-1.0..1.0 union 4.0..infinity'
|
|
- '-1.0..1.0 union 2.0..2.0 union 3.0..3.0'
|
|
- '-1.0..1.0 union 2.0..2.0 union 3.0..3.0 union 4.0..infinity'
|
|
- '{-3.0,-2.0}'
|
|
- '-3.0..-3.0 union -2.0..-2.0 union 4.0..infinity'
|
|
- '{-3.0,-2.0,2.0,3.0}'
|
|
- '-3.0..-3.0 union -2.0..-2.0 union 2.0..2.0 union 3.0..3.0 union 4.0..infinity'
|
|
- '-3.0..-3.0 union -2.0..-2.0 union -1.0..1.0'
|
|
- '-3.0..-3.0 union -2.0..-2.0 union -1.0..1.0 union 4.0..infinity'
|
|
- '-3.0..-3.0 union -2.0..-2.0 union -1.0..1.0 union 2.0..2.0 union 3.0..3.0'
|
|
- '-3.0..-3.0 union -2.0..-2.0 union -1.0..1.0 union 2.0..2.0 union 3.0..3.0 union 4.0..infinity'
|
|
- '-infinity..-4.0'
|
|
- '-infinity..-4.0 union 4.0..infinity'
|
|
- '-infinity..-4.0 union 2.0..2.0 union 3.0..3.0'
|
|
- '-infinity..-4.0 union 2.0..2.0 union 3.0..3.0 union 4.0..infinity'
|
|
- '-infinity..-4.0 union -1.0..1.0'
|
|
- '-infinity..-4.0 union -1.0..1.0 union 4.0..infinity'
|
|
- '-infinity..-4.0 union -1.0..1.0 union 2.0..2.0 union 3.0..3.0'
|
|
- '-infinity..-4.0 union -1.0..1.0 union 2.0..2.0 union 3.0..3.0 union 4.0..infinity'
|
|
- '-infinity..-4.0 union -3.0..-3.0 union -2.0..-2.0'
|
|
- '-infinity..-4.0 union -3.0..-3.0 union -2.0..-2.0 union 4.0..infinity'
|
|
- '-infinity..-4.0 union -3.0..-3.0 union -2.0..-2.0 union 2.0..2.0 union 3.0..3.0'
|
|
- '-infinity..-4.0 union -3.0..-3.0 union -2.0..-2.0 union 2.0..2.0 union 3.0..3.0 union 4.0..infinity'
|
|
- '-infinity..-4.0 union -3.0..-3.0 union -2.0..-2.0 union -1.0..1.0'
|
|
- '-infinity..-4.0 union -3.0..-3.0 union -2.0..-2.0 union -1.0..1.0 union 4.0..infinity'
|
|
- '-infinity..-4.0 union -3.0..-3.0 union -2.0..-2.0 union -1.0..1.0 union 2.0..2.0 union 3.0..3.0'
|
|
- '-infinity..-4.0 union -3.0..-3.0 union -2.0..-2.0 union -1.0..1.0 union 2.0..2.0 union 3.0..3.0 union 4.0..infinity'
|
|
***/
|
|
|
|
array [1..5] of set of float: x = [
|
|
-infinity..-4.0,
|
|
{-3.0, -2.0},
|
|
-1.0..1.0,
|
|
{2.0, 3.0},
|
|
4.0..infinity
|
|
];
|
|
|
|
function set of float: s(bool: b, set of float: x) = if b then x else {} endif;
|
|
|
|
array [1..32] of string: y :: add_to_output = [
|
|
show(
|
|
s(a, x[1]) union
|
|
s(b, x[2]) union
|
|
s(c, x[3]) union
|
|
s(d, x[4]) union
|
|
s(e, x[5])
|
|
) | a, b, c, d, e in [false, true]
|
|
]; |