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
*/