package com.datascience.gal.dataGenerator; import com.datascience.core.base.AssignedLabel; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import java.io.File; import java.util.Collection; import static java.io.File.separator; import static org.junit.Assert.assertTrue; /** * The class <code>DataManagerTest</code> contains tests for the class * {@link <code>DataManager</code>} * * @pattern JUnit Test Case * * @generatedBy CodePro at 7/25/12 10:47 AM * * @author piotr.gnys@10clouds.com * * @version $Revision$ */ public class DataManagerTest { @Before public void setUp() { new File(RESULTS_ROOT).mkdir(); } @Test public void testSaveLoadTestObjectsToFile() throws java.io.IOException, java.io.FileNotFoundException { // Save DataManager managerS = DataManager.getInstance(); DataGenerator generator = DataGenerator.getInstance(); TroiaObjectCollection objectsS = generator.generateTestObjects(10, 2); String filename = TEST_OBJECTS_FILE; managerS.saveTestObjectsToFile(filename, objectsS); // Load DataManager managerL = DataManager.getInstance(); TroiaObjectCollection objectsL = managerL.loadTestObjectsFromFile(filename); assertTrue(objectsS.size() == objectsL.size()); for (String key : objectsS) { assertTrue(objectsL.contains(key)); assertTrue(objectsL.getCategory(key).equals(objectsS.getCategory(key))); } } @Test public void testSaveLoadArtificialWorkers() throws java.io.IOException, java.io.FileNotFoundException { // Save DataManager managerS = DataManager.getInstance(); DataGenerator generator = DataGenerator.getInstance(); String filename = ARTIFICIAL_WORKERS_FILE; Collection<String> categories = generator.generateCategoryNames(3); Collection<ArtificialWorker> workersS = generator.generateArtificialWorkers(10, categories, 0, 1); managerS.saveArtificialWorkers(filename, workersS); // Load DataManager managerL = DataManager.getInstance(); Collection<ArtificialWorker> workersL = managerL.loadArtificialWorkersFromFile(filename); assertTrue(workersS.equals(workersL)); } @Test public void testSaveLoadLabelsToFile() throws java.io.IOException, java.io.FileNotFoundException { DataManager managerS = DataManager.getInstance(); DataGenerator generator = DataGenerator.getInstance(); String filename = LABELS_FILE; Collection<String> categories = generator.generateCategoryNames(3); TroiaObjectCollection objects = generator.generateTestObjects(10, categories); Collection<ArtificialWorker> workers = generator.generateArtificialWorkers(10, categories, 0, 1); Collection<AssignedLabel<String>> labelsS = generator.generateLabels(workers, objects, 2); managerS.saveLabelsToFile(filename, labelsS); DataManager managerL = DataManager.getInstance(); Collection<AssignedLabel<String>> labelsL = managerL.loadLabelsFromFile(LABELS_FILE); // TODO I have no idea why it fails (all objects are the equals when printing). assertTrue(labelsL.equals(labelsS)); } @Ignore @Test public void testSaveLoadTestData() throws java.io.IOException, java.io.FileNotFoundException { DataManager managerS = DataManager.getInstance(); int objectCount = 100; int categoryCount = 3; int workerCount = 7; double minQuality = 0; double maxQuality = 1; double goldRatio = 0.1; int workersPerObject = 3; Data dataS = DataGenerator.getInstance().generateTestData( "Test request", objectCount, categoryCount, workerCount, minQuality, maxQuality, goldRatio, workersPerObject); managerS.saveTestData(FILENAME_BASE, dataS); DataManager managerL = DataManager.getInstance(); Data dataL = managerL.loadTestData(FILENAME_BASE); assertTrue(dataS.getWorkers().equals(dataL.getWorkers())); assertTrue(dataS.getObjects().equals(dataL.getObjects())); assertTrue(dataS.getObjectCollection().equals(dataL.getObjectCollection())); assertTrue(dataS.getLabels().equals(dataL.getLabels())); assertTrue(dataS.getGoldLabels().equals(dataL.getGoldLabels())); assertTrue(dataS.getArtificialWorkers().equals(dataL.getArtificialWorkers())); // TODO getMisclasificationCost returns null // TODO getRequestId returns null //assertTrue(dataS.getMisclassificationCost().equals(dataL.getMisclassificationCost())); //assertTrue(dataS.getRequestId().equals(dataL.getRequestId())); //assertTrue(dataS.size() == dataL.size()); for (String c : dataL.getCategories()) { assertTrue(dataS.getCategories().contains(c)); } } private static final String RESULTS_ROOT = /*"target" + separator +*/ "test-results"; private static final String TEST_OBJECTS_FILE = RESULTS_ROOT + separator + "testObjects.txt"; private static final String ARTIFICIAL_WORKERS_FILE = RESULTS_ROOT + separator + "artificialWorkers.txt"; private static final String LABELS_FILE = RESULTS_ROOT + separator + "labels.txt"; private static final String FILENAME_BASE = RESULTS_ROOT + separator + "test"; } /* * $CPS$ This comment was generated by CodePro. Do not edit it. patternId = * com.instantiations.assist.eclipse.pattern.testCasePattern strategyId = * com.instantiations.assist.eclipse.pattern.testCasePattern.junitTestCase * additionalTestNames = assertTrue = false callTestMethod = true createMain = * false createSetUp = false createTearDown = false createTestFixture = false * createTestStubs = false methods = * saveTestObjectsToFile(QString;!QTestObjectCollection;) package = * tests.dawidSkeneTester package.sourceFolder = DSaSJavaClient/src * superclassType = junit.framework.TestCase testCase = TestDataManagerTest * testClassType = main.com.dawidSkeneTester.TestDataManager */