package com.plectix.simulator.parser.regex;
import junit.framework.Assert;
import org.junit.Test;
import com.plectix.simulator.parser.util.AgentFormatChecker;
public class TestAgentFormatChecker {
private String[] correct = {"a()",
"A(x)",
"a12()",
"a12(zxc)",
"a12ggv23234vhgvvh1v212123123123vhvgvh123123123123kbnjn32jbjb23()",
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()",
"a(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)",
"a(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx!1)",
"a(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx~u)",
"a(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx~u!1)",
"a(uhbhbjabsuyxgbsahb87126312h3ib1jbqdt872gdhb23d7ytd7gdnxn987yrubkd)",
"a(uhbhbjabsuyxgbsahb87126312h3ib1jbqdt872gdhb23d7ytd7gdnxn987yrubkd!1)",
"a(uhbhbjabsuyxgbsahb87126312h3ib1jbqdt872gdhb23d7ytd7gdnxn987yrubkd~u)",
"a(uhbhbjabsuyxgbsahb87126312h3ib1jbqdt872gdhb23d7ytd7gdnxn987yrubkd~u!1)",
"a(x~uhbhbjabsuyxgbsahb87126312h3ib1jbqdt872gdhb23d7ytd7gdnxn987yrubkd)",
"a(x~uhbhbjabsuyxgbsahb87126312h3ib1jbqdt872gdhb23d7ytd7gdnxn987yrubkd!1)",
"a(x!13453543)",
"a(x~d!1123123)",
"a12b15(aas!12,d~uuytuyt)",
"ghgt______(aaasxs123!12,d~uuytuyt!2)",
"ghgt_UFGHV_1234_(aaasxs123!12,d~uuytuyt!2)",
"ASDFGHHJKKLLKLKUGUGJHGHVNB(qwert~j)",
"A(qwertyqwertyqwertyuio~j)",
// "AS(qw1~j, qw2~j, qw3~j, qw4~j, qw5~j, qw6~j, qw7~j, qw8~j, qw10~j, qw11~j, qw12~j, qw13~j, qw14~j, qw15~j)",
"ADFGHHJKKLLKLKUGUGJHGHVNB(qw1~j!2,qw2~j!2,qw3~j!2,qw4~j!2,qw5~j!2,qw6~j!2,qw7~j!2,qw8~j!2,qw9~j!2,qw10~j!2,qw11S~j!2)",
"ASDFGHHJKKLLKLKUGUGJHGHVNB(qwertyqwertyqwertyuio~j)",
// "ASDFGHHJKKLLKLKUGUGJHGHVNB(qwertyqwertyqwertyuio~j, lksmxkasmlmxkmkamx)",
"ASDFGHHJKKLLKLKUGUGJHGHVNB(qwertyqwertyqwertyuio~j!12312312312)",
"adasdasd(asdadadasd~ASsasAS,SDSDSD!1)",
"RTK(tyrosine~unphospho,ligand!1)",
"RTK(tyrosine~unphospho,ligand!1"
};
private String[] uncorrect = {
"",
"a)",
// "b(",
// "12()",
// "98a()",
"A((x)",
"A((x))",
// "a12(5)",
// "a123(66zxc)",
"a12b15(aas!12,!d~uuytuyt)",
"ghgt_UFGHV_1234_(aaasxs123!12;d~uuytuyt!2)",
"ghgt__!____(aaasxs123!12,d~uuytuyt!2)"
};
@Test
public void test(){
testTime(correct, true);
testTime(uncorrect, false);
}
public void testTime( String[] lines, boolean expectRes){
Long [] stopwatch = new Long[lines.length];
for (int i = 0; i < lines.length; i++) {
stopwatch[i] = measureTime(i, lines[i], expectRes);
// System.out.println((i+1) + ")\t" + lines[i].length() + "\t" + stopwatch[i]+ "\t" + lines[i] );
}
}
private long measureTime(int i, String line, boolean expected) {
long timestamp = System.currentTimeMillis();
boolean actual = AgentFormatChecker.check(line);
timestamp = System.currentTimeMillis() - timestamp;
Assert.assertEquals(line, expected, actual);
Assert.assertTrue(line + ": too long", timestamp < 1000);
return timestamp;
}
}