this repo has no description
at develop 2.3 kB view raw
1 2% Test the is_fixed/1 built-in. 3 4constraint is_fixed(_) = false; 5 6constraint is_fixed(true) = true; 7constraint is_fixed(42) = true; 8constraint is_fixed(3.141) = true; 9constraint is_fixed("Hello World\n") == true; 10 11constraint is_fixed({}) = true; 12constraint is_fixed({1, 2, 3}) = true; 13constraint is_fixed({true}) = true; 14constraint is_fixed({4.0}) = true; 15 16constraint is_fixed([]) = true; 17constraint is_fixed([true, false, true]) = true; 18constraint is_fixed([1, 2, 3]) = true; 19constraint is_fixed([1.0, 2.0, 3.0]) = true; 20constraint is_fixed([{1, 2, 3}, {4, 5, 6}]) = true; 21constraint is_fixed(["abc", "def", "ghi"]) = true; 22 23bool: pb = true; 24int: pi = 3; 25float: pf = 4.0; 26set of int: psi = {1, 2, 3}; 27 28constraint is_fixed(pb) = true; 29constraint is_fixed(pi) = true; 30constraint is_fixed(pf) = true; 31constraint is_fixed(psi) = true; 32 33array[1..3] of bool: apb = [true, false, true]; 34array[1..3] of int: api = [1, 2, 3]; 35array[1..3] of float: apf = [1.0, 2.0, 3.0]; 36array[1..3] of set of int: apsi = [{}, {1}, {2, 3}]; 37array[1..3] of string: astr = ["foo", "bar", "baz"]; 38 39constraint is_fixed(apb) = true; 40constraint is_fixed(api) = true; 41constraint is_fixed(apf) = true; 42constraint is_fixed(apsi) = true; 43constraint is_fixed(astr) = true; 44 45constraint is_fixed(apb[1]) = true; 46constraint is_fixed(apb[pi]) = true; 47 48var bool: vb; 49var int: vi; 50var set of 0..100: vsi; 51 52constraint is_fixed(vb) = false; 53constraint is_fixed(vi) = false; 54constraint is_fixed(vsi) = false; 55 56array[1..3] of var bool: avb; 57array[1..3] of var int: avi; 58array[1..3] of var set of 0..100: avsi; 59 60constraint is_fixed(avb) = false; 61constraint is_fixed(avi) = false; 62constraint is_fixed(avsi) = false; 63 64var bool: vb2 = true; 65var int: vi2 = 42; 66var set of 0..100: vsi2 = {1, 2, 3}; 67 68constraint is_fixed(vb2) = true; 69constraint is_fixed(vi2) = true; 70constraint is_fixed(vsi2) = true; 71 72predicate test_int(var int: x) = 73 ( if is_fixed(x) then true else false endif ); 74 75constraint test_int(341) = true; 76constraint test_int(vi) = false; 77constraint test_int(vi2) = true; 78 79predicate test_array_int(array[int] of var int: x) = 80 ( if is_fixed(x) then true else false endif ); 81 82constraint test_array_int([1, 2, 3]) = true; 83constraint test_array_int([1, _, 3]) = false; 84constraint test_array_int(avi) = false; 85 86solve satisfy;