36namespace Test {
namespace FlatZinc {
45 (void)
new FlatZincTest(
"fzn_sets",
46"var set of 1..10: s1 :: output_var;\n\
47var set of 1..10: s2 :: output_var;\n\
48var set of 1..10: s3 :: output_var;\n\
49var set of 1..10: s4 :: output_var;\n\
50var set of 1..10: s5 :: output_var;\n\
51var set of 1..10: s6 :: output_var;\n\
52var set of 1..10: s7 :: output_var;\n\
53var set of 1..10: s8 :: output_var;\n\
55var bool: rs1 :: output_var;\n\
56var bool: rs2 :: output_var;\n\
57var bool: rs3 :: output_var;\n\
59constraint set_in(1, {1, 2, 3});\n\
60constraint set_in(1, s1);\n\
61constraint set_in_reif(2, s1, rs1);\n\
63constraint set_subset({1, 2}, {1, 2, 3});\n\
64constraint set_subset({1, 2}, s2);\n\
65constraint set_subset_reif({1, 2, 3}, s2, rs2);\n\
67constraint set_subset({1, 2}, {1, 2, 3});\n\
68constraint set_subset({1, 2, 3}, s3);\n\
69constraint set_subset_reif({1, 2, 3, 4}, s3, rs3);\n\
71constraint set_intersect({1, 2, 3}, {1, 3, 5}, {1, 3});\n\
72constraint set_intersect(s4, {1, 2, 3}, {1, 3});\n\
74constraint set_diff({1, 2, 3}, {1, 3, 5}, {2});\n\
75constraint set_diff(s5, {2}, {1, 3});\n\
77constraint set_symdiff({1, 2, 3}, {1, 3, 5}, {2, 5});\n\
78constraint set_symdiff(s6, {2, 5}, {1, 5});\n\
80constraint set_union({1, 2, 3}, {1, 3, 5}, {1, 2, 3, 5});\n\
81constraint set_union(s7, {2, 5}, {1, 2, 3, 4, 5});\n\
83constraint set_card({1, 2, 3}, 3);\n\
84constraint set_card(s8, 3);\n\
91s1 = {1, 3, 4, 5, 6, 7, 8, 9, 10};\n\
92s2 = {1, 2, 4, 5, 6, 7, 8, 9, 10};\n\
93s3 = {1, 2, 3, 5, 6, 7, 8, 9, 10};\n\
94s4 = {1, 3, 4, 5, 6, 7, 8, 9, 10};\n\
Gecode::FloatVal c(-8, 8)