this repo has no description
1/***
2!Test
3expected:
4- !Result
5 solution: !Solution
6 among_avi1: [4, 5, 5, 6, 6, 6, 7, 7, 7, 7]
7 among_avi2: [4, 5, 5, 6, 6, 6, 7, 7, 8, 8]
8 among_vi: 7
9***/
10
11include "among.mzn";
12
13%-----------------------------------------------------------------------------%
14% among
15%-----------------------------------------------------------------------------%
16var -100..100: among_vi ::add_to_output;
17array[1..10] of var -100..100: among_avi1 ::add_to_output =
18 [4, 5, 5, 6, 6, 6, 7, 7, 7, 7];
19array[1..10] of var -100..100: among_avi2 ::add_to_output =
20 [4, 5, 5, 6, 6, 6, _, _, 8, 8];
21
22% Testing it three ways, with different args unfixed each time.
23constraint among(among_vi, among_avi1, {6,7}); % 1st arg unfixed -> 7
24constraint among(5, among_avi2, {6,7}); % 2nd arg unfixed -> [...]
25constraint forall(i in 7..10) ( among_avi2[i] != 6 );
26
27solve satisfy;
28
29output [
30 "among_avi1 = array1d(1..10, ", show(among_avi1), ");\n",
31 "among_avi2 = array1d(1..10, ", show(among_avi2), ");\n",
32 "among_vi = ", show(among_vi), ";\n"
33];