40 namespace Test {
namespace FlatZinc {
49 (void)
new FlatZincTest(
"fzn_sets",
50 "var set of 1..10: s1 :: output_var;\n\
51 var set of 1..10: s2 :: output_var;\n\
52 var set of 1..10: s3 :: output_var;\n\
53 var set of 1..10: s4 :: output_var;\n\
54 var set of 1..10: s5 :: output_var;\n\
55 var set of 1..10: s6 :: output_var;\n\
56 var set of 1..10: s7 :: output_var;\n\
57 var set of 1..10: s8 :: output_var;\n\
59 var bool: rs1 :: output_var;\n\
60 var bool: rs2 :: output_var;\n\
61 var bool: rs3 :: output_var;\n\
63 constraint set_in(1, {1, 2, 3});\n\
64 constraint set_in(1, s1);\n\
65 constraint set_in_reif(2, s1, rs1);\n\
67 constraint set_subset({1, 2}, {1, 2, 3});\n\
68 constraint set_subset({1, 2}, s2);\n\
69 constraint set_subset_reif({1, 2, 3}, s2, rs2);\n\
71 constraint set_subset({1, 2}, {1, 2, 3});\n\
72 constraint set_subset({1, 2, 3}, s3);\n\
73 constraint set_subset_reif({1, 2, 3, 4}, s3, rs3);\n\
75 constraint set_intersect({1, 2, 3}, {1, 3, 5}, {1, 3});\n\
76 constraint set_intersect(s4, {1, 2, 3}, {1, 3});\n\
78 constraint set_diff({1, 2, 3}, {1, 3, 5}, {2});\n\
79 constraint set_diff(s5, {2}, {1, 3});\n\
81 constraint set_symdiff({1, 2, 3}, {1, 3, 5}, {2, 5});\n\
82 constraint set_symdiff(s6, {2, 5}, {1, 5});\n\
84 constraint set_union({1, 2, 3}, {1, 3, 5}, {1, 2, 3, 5});\n\
85 constraint set_union(s7, {2, 5}, {1, 2, 3, 4, 5});\n\
87 constraint set_card({1, 2, 3}, 3);\n\
88 constraint set_card(s8, 3);\n\
95 s1 = {1, 3, 4, 5, 6, 7, 8, 9, 10};\n\
96 s2 = {1, 2, 4, 5, 6, 7, 8, 9, 10};\n\
97 s3 = {1, 2, 3, 5, 6, 7, 8, 9, 10};\n\
98 s4 = {1, 3, 4, 5, 6, 7, 8, 9, 10};\n\
Gecode::FloatVal c(-8, 8)