package de.fuberlin.bii.dfaprovider;
import static org.junit.Assert.fail;
import java.io.File;
import org.junit.Assert;
import org.junit.Test;
/**
* Test-Klasse für den MinimalenDfaProvider-Klasse.
* @author Maximilian Schröder
*
*/
public class MinimalDfaProviderTest {
/**
* Test of getMinimalDfa method, with false input.
*/
@SuppressWarnings("static-method")
@Test
public void testGetMinimalDfaCorrectInput() throws Exception {
File failRDFile = new File("C:\\TEMP\\");
File failRDPath = new File("C:\\TEMP\\dfaprovider2.test.rd");
File failDFAPath = new File("C:\\TEMP\\dfaprovider2.test.rd.dfa");
File rdInputFile = new File("C:\\TEMP\\dfaprovider.test.rd");
MinimalDfaBuilder builder1 = new IndirectMinimalDfaBuilder();
MinimalDfaBuilder builder2 = new DirectMinimalDfaBuilder();
MinimalDfaBuilder failBuilder = null;
//Test for builder
try {
MinimalDfaProvider.getMinimalDfa(failRDFile, failBuilder);
fail("MinimalDfaProviderException should be raised");
}
catch(MinimalDfaProviderException expected){
// expected.printStackTrace();
}
//Test for file, builder1
try {
MinimalDfaProvider.getMinimalDfa(failRDPath, builder1);
fail("MinimalDfaProviderException should be raised");
}
catch(MinimalDfaProviderException expected){
// expected.printStackTrace();
}
//Test for file, builder 2
try {
MinimalDfaProvider.getMinimalDfa(failRDPath, builder2);
fail("MinimalDfaProviderException should be raised");
}
catch(MinimalDfaProviderException expected){
// expected.printStackTrace();
}
//Test for correct rdFile
try {
MinimalDfaProvider.getMinimalDfa(failRDFile, builder1);
fail("MinimalDfaProviderException should be raised");
}
catch(MinimalDfaProviderException expected){
// expected.printStackTrace();
}
//Test for correct dfaFile
try {
MinimalDfaProvider.getMinimalDfa(rdInputFile, builder1,false,false,failDFAPath);
fail("MinimalDfaProviderException should be raised");
}
catch(MinimalDfaProviderException expected){
// expected.printStackTrace();
}
}
/**
* Test of getMinimalDfa method, with 2 parameter.
*/
@Test
public static void testGetMinimalDfa2Param() throws Exception {
File rdInputFile = new File("C:\\TEMP\\dfaprovider.test.rd");
MinimalDfaBuilder builder1 = new IndirectMinimalDfaBuilder();
MinimalDfaBuilder builder2 = new DirectMinimalDfaBuilder();
//indirektMinimalDfaBuilder
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder1));
//direktMinimalDfaBuilder
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder2));
}
/**
* Test of getMinimalDfa method, with 3 parameter.
*/
@Test
public static void testGetMinimalDfa3Param() throws Exception {
File rdInputFile = new File("C:\\TEMP\\dfaprovider.test.rd");
MinimalDfaBuilder builder1 = new IndirectMinimalDfaBuilder();
MinimalDfaBuilder builder2 = new DirectMinimalDfaBuilder();
//indirektMinimalDfaBuilder
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder1, true));
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder1, false));
/* TODO: delete comment, if DirectMinimalDfaBuilder is working
//direktMinimalDfaBuilder
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder2, true));
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder2, false));
*/
}
/**
* Test of getMinimalDfa method, with 4 parameter.
*/
@Test
public static void testGetMinimalDfa4Param() throws Exception {
File rdInputFile = new File("C:\\TEMP\\dfaprovider.test.rd");
MinimalDfaBuilder builder1 = new IndirectMinimalDfaBuilder();
MinimalDfaBuilder builder2 = new DirectMinimalDfaBuilder();
//indirektMinimalDfaBuilder
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder1, true, true));
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder1, true, false));
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder1, false, true));
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder1, false, false));
/* TODO: delete comment, if DirectMinimalDfaBuilder is working
//direktMinimalDfaBuilder
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder2, true, true));
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder2, true, false));
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder2, false, true));
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder2, false, false));
*/
}
/**
* Test of getMinimalDfa method, with 5 parameter.
*/
@Test
public static void testGetMinimalDfa5Param() throws Exception {
File rdInputFile = new File("C:\\TEMP\\dfaprovider.test.rd");
File dfaInputFile = new File("C:\\TEMP\\dfaprovider.test.rd.dfa");
MinimalDfaBuilder builder1 = new IndirectMinimalDfaBuilder();
MinimalDfaBuilder builder2 = new DirectMinimalDfaBuilder();
//indirektMinimalDfaBuilder
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder1, true, true, dfaInputFile));
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder1, true, false, dfaInputFile));
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder1, false, true, dfaInputFile));
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder1, false, false, dfaInputFile));
/* TODO: delete comment, if DirectMinimalDfaBuilder is working
//direktMinimalDfaBuilder
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder2, true, true, dfaInputFile));
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder2, true, false, dfaInputFile));
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder2, false, true, dfaInputFile));
Assert.assertNotNull(MinimalDfaProvider.getMinimalDfa(rdInputFile, builder2, false, false, dfaInputFile));
*/
}
}