import java.util.List;
import java.util.ArrayList;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* The test class TimingTests.
*
* @author (your name)
* @version (a version number or a date)
*/
public class TimingTests
{
List<String> strings;
@Before
public void setUp() {
strings = new ArrayList<String>();
strings.add("value");
strings.add("test");
strings.add("tester");
strings.add("retest");
strings.add("two words");
//strings.add("this is a long slow sentence");
//strings.add("this is the opposite of multitasking");
strings.add("value");
strings.add("thim");
}
@Test
public void runTimingTests() {
System.out.println("Recursive: (Prepare to wait!)");
for (TimingDataPoint p : generateDataPoints(strings,new RecursiveED())) {
System.out.println(p);
}
System.out.println("Dynamic:");
for (TimingDataPoint p : generateDataPoints(strings,new DynamicED())) {
System.out.println(p);
}
}
public static List<TimingDataPoint> generateDataPoints(List<String> strings, EditDistance ed) {
List<TimingDataPoint> list = new ArrayList<TimingDataPoint>();
for (String s1 : strings) {
for (String s2 : strings) {
list.add(new TimingDataPoint(ed.getClass(),s1,s2,ed.time(s1,s2),ed.distance(s1,s2)));
}
}
return list;
}
private static class TimingDataPoint {
Class<?> className;
String string1, string2;
int distance;
long time;
public TimingDataPoint(Class<?> c, String a, String b, long t, int dist) {
className = c;
string1 = a;
string2 = b;
distance = dist;
time = t;
}
public String toString() {
return "(" + className + ") - " + string1 + ", " + string2 + " - " + distance + " -> " + time + " ms";
}
}
}