IntVar[] variables = new IntVar[n];
for (int i = 0; i < n; i++) {
variables[i] = VariableFactory.enumerated("V" + i, i, n + i, s);
}
AbstractStrategy asg = IntStrategyFactory.lexico_LB(variables);
s.set(asg);
env.worldPush();
Decision decision = asg.getDecision();
for (int i = 0; i < n; i++) {
decision.buildNext();
try {
decision.apply();
} catch (ContradictionException e) {
e.printStackTrace();
}
Assert.assertTrue(variables[i].isInstantiated());
Assert.assertEquals(variables[i].getValue(), i);
Decision tmp = decision;
decision = asg.getDecision();
if (decision != null) {
decision.setPrevious(tmp);
} else {
decision = tmp;
}