proj.getTargets().addSequence(t1);
proj.getSettings().addCandidateModuleStage1(dummy);
pm.setProject(proj);
//Run test to fail all
ProbeDesignTask task = pm.getProbeDesignTask(false, true, null, new DefaultNamingScheme(), new GoodAcceptor(),
new NoSelector(), new DefaultProbeDesigner(new PairwiseTagAllocator()), new DefaultTSSPairDesigner(new DefaultTSSConstructor()), new StreamErrorHandler(System.out,true));
task.run();
long candCount = task.getCandidatesGenerated();
assertTrue("Pairwise allocation (Stage 1 module), 10 candidates expected, " + candCount + " generated.",candCount == 10); //$NON-NLS-1$ //$NON-NLS-2$
//Move dummy to arm stage, check that there are no candidates generated
proj.getSettings().getCandidateModulesStage1().clear();
proj.getSettings().getArmModules().add(dummy);
task = pm.getProbeDesignTask(false, true, null, new DefaultNamingScheme(), new GoodAcceptor(),
new NoSelector(), new DefaultProbeDesigner(new PairwiseTagAllocator()), new DefaultTSSPairDesigner(new DefaultTSSConstructor()), new StreamErrorHandler(System.out,true));
task.run();
candCount = task.getCandidatesGenerated();
assertTrue("Pairwise allocation (TSS module), 0 candidates expected, " + candCount + " generated.",candCount==0); //$NON-NLS-1$ //$NON-NLS-2$
// Expand target and test use unique mode, 2 candidates expected
TargetHandler.expandTargets(pm.getProject().getTargets());
proj.getSettings().getArmModules().clear();
task = pm.getProbeDesignTask(false, true, null, new DefaultNamingScheme(), new GoodAcceptor(),
new NoSelector(), new DefaultProbeDesigner(new GreedyTagAllocator()), new DefaultTSSPairDesigner(new DefaultTSSConstructor()), new StreamErrorHandler(System.out,true));
task.run();
candCount = task.getCandidatesGenerated();
Probe p1 = pm.getProject().getProbes().getSequenceAt(0);
Probe p2 = pm.getProject().getProbes().getSequenceAt(1);
assertTrue("2 candidates expected, " + candCount + " generated.",candCount == 2); //$NON-NLS-1$ //$NON-NLS-2$
assertTrue("Same tags allocated in unique mode!",p1.getTagAt(0)!=p2.getTagAt(0)); //$NON-NLS-1$
// Expand target and test use per group, no modules, 2 candidates expected
libraries1_10[0].setMode(TagLibrary.USE_PER_GROUP);
task = pm.getProbeDesignTask(false, true, null, new DefaultNamingScheme(), new GoodAcceptor(),
new NoSelector(), new DefaultProbeDesigner(new GreedyTagAllocator()), new DefaultTSSPairDesigner(new DefaultTSSConstructor()), new StreamErrorHandler(System.out,true));
task.run();
candCount = task.getCandidatesGenerated();
p1 = pm.getProject().getProbes().getSequenceAt(0);
p2 = pm.getProject().getProbes().getSequenceAt(1);
assertTrue("2 candidates expected, " + candCount + " generated.",candCount == 2); //$NON-NLS-1$ //$NON-NLS-2$
assertTrue("Different tags allocated in group mode!",p1.getTagAt(0)==p2.getTagAt(0)); //$NON-NLS-1$
// Still expanded targets, per group mode, greedy allocator, dummy module in stage 1.
//Expect 20 candidates generated
libraries1_10[0].setMode(TagLibrary.USE_PER_GROUP);
proj.getSettings().getCandidateModulesStage1().add(dummy);
task = pm.getProbeDesignTask(false, true, null, new DefaultNamingScheme(), new GoodAcceptor(),
new NoSelector(), new DefaultProbeDesigner(new GreedyTagAllocator()), new DefaultTSSPairDesigner(new DefaultTSSConstructor()), new StreamErrorHandler(System.out,true));
task.run();
candCount = task.getCandidatesGenerated();
assertTrue("20 candidates expected, " + candCount + " generated.",candCount == 20); //$NON-NLS-1$ //$NON-NLS-2$
}