public void Test() { Solver solver = new Solver(-1000, 1000); IntVar i0 = new IntVar(solver, 0, 10); IntVar i1 = new IntVar(solver, 10, 20); IntVar i2 = new IntVar(solver, 20, 30); IntVar s = new IntVar(solver, 30, 60); IntVarList list = new IntVarList(solver, new IntVar[] { i0, i1, i2 }); IntVarListSum sum = list.Sum(); solver.Add(sum); solver.Propagate(); Assert.AreEqual(s.Domain, sum.Var0.Domain); }
static void Test1() { Solver solver = new Solver(0, 100); IntVar a = new IntVar(solver, 0, 10); IntVar b = new IntVar(solver, 0, 10); IntVar c = new IntVar(solver, 0, 10); IntVarList l = new IntVarList(a, b, c); IntVarListSum sum = l.Sum(); solver.Add(sum); solver.Propagate(); sum.Var0.Value = 6; a.Value = 1; b.Value = 2; }
static void Mul2() { IntDomain v = new IntDomain(); for (int idx = 0; idx < 100000; ++idx) { Solver s = new Solver(-1000, 1000); IntVar a = new IntVar(s, IntDomain.Random(-100, 100, 1), "a"); IntVar b = new IntVar(s, IntDomain.Random(-100, 100, 1), "b"); IntVar c = new IntVar(s, IntDomain.Random(-100, 100, 1), "c"); IntVar d = new IntVar(s, IntDomain.Random(-100, 100, 1), "d"); IntVarList l = new IntVarList(s, new IntVar[] { a, b, c, d }); //p.Add( a + b + c + d ); s.Add(l.Sum()); s.Propagate(); s.PrintVariables(); s.PrintConstraints(); } }