@Test(groups = "1s")
public void AssignmentTest2() {
int n = 100;
Solver s = new Solver();
IEnvironment env = s.getEnvironment();
AbstractStrategy[] asgs = new AbstractStrategy[n];
IntVar[] variables = new IntVar[n];
for (int i = 0; i < n; i++) {
variables[i] = VariableFactory.enumerated("V" + i, i, n + i, s);
asgs[i] = IntStrategyFactory.lexico_LB(variables[i]);
}
AbstractStrategy sts = ISF.sequencer(asgs);
s.set(sts);
env.worldPush();
Decision decision = sts.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 = sts.getDecision();
if (decision != null) {
decision.setPrevious(tmp);
} else {
decision = tmp;
}
env.worldPush();
}
env.worldPop();
for (int i = n - 1; i >= 0; i--) {
env.worldPop();
decision.buildNext();
try {
decision.apply();
} catch (ContradictionException e) {
e.printStackTrace();