40 namespace Test {
namespace FlatZinc {
49 (void)
new FlatZincTest(
"fzn_logic",
50 "var bool: b1 :: output_var;\n\
51 var bool: b2 :: output_var;\n\
52 var bool: b3 :: output_var;\n\
53 var bool: b4 :: output_var;\n\
54 var bool: b5 :: output_var;\n\
55 var bool: b6 :: output_var;\n\
56 array [1..3] of var bool: ab1 :: output_array([1..3]);\n\
57 array [1..3] of var bool: ab2 :: output_array([1..3]);\n\
59 constraint bool_eq(true, true);\n\
60 constraint bool_eq(false, false);\n\
62 constraint bool_not(true, false);\n\
63 constraint bool_not(false, true);\n\
65 constraint bool_and(false, true, false);\n\
66 constraint bool_and(false, false, false);\n\
67 constraint bool_and(true, false, false);\n\
68 constraint bool_and(true, true, true);\n\
69 constraint bool_and(b1, true, true);\n\
71 constraint bool_or(false, true, true);\n\
72 constraint bool_or(false, false, false);\n\
73 constraint bool_or(true, false, true);\n\
74 constraint bool_or(true, true, true);\n\
75 constraint bool_or(b2, false, true);\n\
77 constraint bool_xor(false, true, true);\n\
78 constraint bool_xor(false, false, false);\n\
79 constraint bool_xor(true, false, true);\n\
80 constraint bool_xor(true, true, false);\n\
81 constraint bool_xor(b3, false, true);\n\
83 constraint bool_le_reif(false, true, true);\n\
84 constraint bool_le_reif(false, false, true);\n\
85 constraint bool_le_reif(true, false, false);\n\
86 constraint bool_le_reif(true, true, true);\n\
87 constraint bool_le_reif(true, b4, true);\n\
89 constraint bool_le_reif(false, true, true);\n\
90 constraint bool_le_reif(false, false, true);\n\
91 constraint bool_le_reif(true, false, false);\n\
92 constraint bool_le_reif(true, true, true);\n\
93 constraint bool_le_reif(true, b5, true);\n\
95 constraint bool_not(false, true);\n\
96 constraint bool_not(true, false);\n\
97 constraint bool_not(b6, false);\n\
99 constraint array_bool_and([false], false);\n\
100 constraint array_bool_and([true], true);\n\
101 constraint array_bool_and([false, true], false);\n\
102 constraint array_bool_and([false, false], false);\n\
103 constraint array_bool_and([true, false], false);\n\
104 constraint array_bool_and([true, true], true);\n\
105 constraint array_bool_and(ab1, true);\n\
107 constraint array_bool_or([false], false);\n\
108 constraint array_bool_or([true], true);\n\
109 constraint array_bool_or([false, true], true);\n\
110 constraint array_bool_or([false, false], false);\n\
111 constraint array_bool_or([true, false], true);\n\
112 constraint array_bool_or([true, true], true);\n\
113 constraint array_bool_or(ab2, true);\n\
117 "ab1 = array1d(1..3, [true, true, true]);\n\
118 ab2 = array1d(1..3, [true, false, false]);\n\
Gecode::FloatVal c(-8, 8)