45 (void)
new FlatZincTest(
"fzn_logic",
46"var bool: b1 :: output_var;\n\
47var bool: b2 :: output_var;\n\
48var bool: b3 :: output_var;\n\
49var bool: b4 :: output_var;\n\
50var bool: b5 :: output_var;\n\
51var bool: b6 :: output_var;\n\
52array [1..3] of var bool: ab1 :: output_array([1..3]);\n\
53array [1..3] of var bool: ab2 :: output_array([1..3]);\n\
55constraint bool_eq(true, true);\n\
56constraint bool_eq(false, false);\n\
58constraint bool_not(true, false);\n\
59constraint bool_not(false, true);\n\
61constraint bool_and(false, true, false);\n\
62constraint bool_and(false, false, false);\n\
63constraint bool_and(true, false, false);\n\
64constraint bool_and(true, true, true);\n\
65constraint bool_and(b1, true, true);\n\
67constraint bool_or(false, true, true);\n\
68constraint bool_or(false, false, false);\n\
69constraint bool_or(true, false, true);\n\
70constraint bool_or(true, true, true);\n\
71constraint bool_or(b2, false, true);\n\
73constraint bool_xor(false, true, true);\n\
74constraint bool_xor(false, false, false);\n\
75constraint bool_xor(true, false, true);\n\
76constraint bool_xor(true, true, false);\n\
77constraint bool_xor(b3, false, true);\n\
79constraint bool_le_reif(false, true, true);\n\
80constraint bool_le_reif(false, false, true);\n\
81constraint bool_le_reif(true, false, false);\n\
82constraint bool_le_reif(true, true, true);\n\
83constraint bool_le_reif(true, b4, true);\n\
85constraint bool_le_reif(false, true, true);\n\
86constraint bool_le_reif(false, false, true);\n\
87constraint bool_le_reif(true, false, false);\n\
88constraint bool_le_reif(true, true, true);\n\
89constraint bool_le_reif(true, b5, true);\n\
91constraint bool_not(false, true);\n\
92constraint bool_not(true, false);\n\
93constraint bool_not(b6, false);\n\
95constraint array_bool_and([false], false);\n\
96constraint array_bool_and([true], true);\n\
97constraint array_bool_and([false, true], false);\n\
98constraint array_bool_and([false, false], false);\n\
99constraint array_bool_and([true, false], false);\n\
100constraint array_bool_and([true, true], true);\n\
101constraint array_bool_and(ab1, true);\n\
103constraint array_bool_or([false], false);\n\
104constraint array_bool_or([true], true);\n\
105constraint array_bool_or([false, true], true);\n\
106constraint array_bool_or([false, false], false);\n\
107constraint array_bool_or([true, false], true);\n\
108constraint array_bool_or([true, true], true);\n\
109constraint array_bool_or(ab2, true);\n\
113"ab1 = array1d(1..3, [true, true, true]);\n\
114ab2 = array1d(1..3, [true, false, false]);\n\
Gecode::FloatVal c(-8, 8)