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