@Test public void testCorrectness() { String costMethod = "MAXLIKELIHOOD"; NominalProject project = setUpNominalProject(); ILabelProbabilityDistributionCostCalculator lpdcc = LabelProbabilityDistributionCostCalculators.get(costMethod); IPriorityCalculator<String> pc = new CostBasedPriorityCalculator(lpdcc); Scheduler<String> scheduler = new Scheduler<String>(project, pc); Worker worker = new Worker("Worker1"); INominalData data = project.getData(); LObject<String> object1 = data.getOrCreateObject("object1"); LObject<String> object2 = data.getOrCreateObject("object2"); int w = 0; data.addAssign(assign(w++, object1, "A")); data.addAssign(assign(w++, object1, "B")); data.addAssign(assign(w++, object2, "A")); scheduler.update(); LObject<String> object = scheduler.nextObject(); assertEquals(object1, object); object = scheduler.nextObject(); assertEquals(object1, object); scheduler.update(); object = scheduler.nextObject(); assertEquals(object1, object); data.addAssign(assign(w++, object2, "B")); data.addAssign(assign(w++, object2, "C")); scheduler.update(); assertEquals(object2, scheduler.nextObject()); data.addAssign(assign(w++, object2, "C")); data.addAssign(assign(w++, object2, "C")); scheduler.update(); assertEquals(object1, scheduler.nextObject()); }