package test.java.integration.algorithms.gal; import com.datascience.core.algorithms.INewDataObserver; import com.datascience.core.base.Algorithm; import com.datascience.core.base.Project; import com.datascience.core.nominal.NominalProject; import com.datascience.datastoring.datamodels.full.MemoryJobStorage; import com.datascience.gal.BatchDawidSkene; import com.datascience.gal.IncrementalDawidSkene; import com.datascience.mv.BatchMV; import org.junit.Test; import java.util.List; /** * @Author: konrad */ public abstract class AbstractBase { public NominalProject getProject(Algorithm algorithm, List<String> categories) { MemoryJobStorage js = new MemoryJobStorage(); return new NominalProject(algorithm, js.getNominalData("testid"), js.getNominalResults("testid", categories)); } public NominalProject getBDSProject(List<String> categories) { return getProject(new BatchDawidSkene(), categories); } public NominalProject getBMVProject(List<String> categories) { return getProject(new BatchMV(), categories); } public NominalProject getIDSProject(List<String> categories) { IncrementalDawidSkene algorithm = new IncrementalDawidSkene(); algorithm.setEpsilon(0.0001); algorithm.setIterations(10); NominalProject project = getProject(algorithm, categories); project.getData().addNewUpdatableAlgorithm(algorithm); return project; } static public void ensureComputed(Project project) { if (!(project.getAlgorithm() instanceof INewDataObserver)) { project.getAlgorithm().compute(); } } @Test public void testBDS() { runTestScenario(getBDSProject(getCategories())); } @Test public void testIDS() { runTestScenario(getIDSProject(getCategories())); } @Test public void testBMV() { runTestScenario(getBMVProject(getCategories())); } abstract protected List<String> getCategories(); abstract protected void runTestScenario(NominalProject project); }