package com.cse10.classifier;
import com.cse10.database.DatabaseConstants;
import junit.framework.TestCase;
import org.junit.*;
import org.junit.Test;
import weka.core.Instances;
import weka.filters.unsupervised.attribute.StringToWordVector;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
//not depend on database
public class FeatureVectorTransformerTest {
private FeatureVectorTransformer featureVectorTransformer;
static String previousDB;
@BeforeClass
public static void setUpClass() throws Exception {
previousDB = DatabaseConstants.DB_URL;
DatabaseConstants.DB_URL = "jdbc:mysql://localhost:3306/newsstats_test";
}
@AfterClass
public static void tearDownClass() throws Exception {
DatabaseConstants.DB_URL = previousDB;
}
@Before
public void setUp() throws Exception {
featureVectorTransformer = new FeatureVectorTransformer();
}
@After
public void tearDown() throws Exception {
}
@Test
public void testConfigure() throws Exception {
featureVectorTransformer.configure(1, 1, true);
StringToWordVector stringToWordVector = featureVectorTransformer.getFilter();
TestCase.assertEquals(true, stringToWordVector.getIDFTransform());
TestCase.assertEquals(true, stringToWordVector.getLowerCaseTokens());
TestCase.assertEquals(true, stringToWordVector.getTFTransform());
TestCase.assertEquals(true, stringToWordVector.getLowerCaseTokens());
}
@Test
public void testSetInputFormat() throws Exception {
Instances data;
BufferedReader reader = new BufferedReader(
new FileReader("Classifier\\src\\main\\resources\\testData\\rawTestData"));
data = new Instances(reader);
reader.close();
featureVectorTransformer.setInputFormat(data);
Instances transformedData = featureVectorTransformer.getTransformedArticles(data);
TestCase.assertTrue(Instances.class.isInstance(transformedData));
}
@Test
public void testGetTransformedArticles() throws Exception {
Instances data;
BufferedReader reader = new BufferedReader(
new FileReader("Classifier\\src\\main\\resources\\testData\\rawTestData"));
data = new Instances(reader);
reader.close();
featureVectorTransformer.setInputFormat(data);
Instances transformedData = featureVectorTransformer.getTransformedArticles(data);
TestCase.assertTrue(Instances.class.isInstance(transformedData));
}
@Test
public void testGetTransformedArticles1() throws Exception {
Instances data;
BufferedReader reader = new BufferedReader(
new FileReader("Classifier\\src\\main\\resources\\testData\\rawTestData"));
data = new Instances(reader);
reader.close();
featureVectorTransformer.setInputFormat(data);
Instances transformedData = featureVectorTransformer.getTransformedArticles(data, "FVTTest");
File file = new File("Classifier\\src\\main\\resources\\arffData\\FVTTest");
TestCase.assertEquals(true, file.exists());
}
@Test
public void testGetFilter() throws Exception {
TestCase.assertTrue(StringToWordVector.class.isInstance(featureVectorTransformer.getFilter()));
}
}