java - JUnit test not completing -
i treid run test in junit none of them got completed , had terminate test did not exit on own. add necessary classes below:

test this:
import static org.junit.assert.assertequals; import java.util.arrays; import org.junit.test; public class anagramtest { anagram an; @test public void testspecialcharacters() { = new anagram("@#$%^&!@"); (int i=0;i<an.generate().size();i++) assertequals("special characters ", isanagram("@#$%^&!@",string.valueof(an.generate().get(i))), true); } @test public void testdoubleletter() { = new anagram("bc"); string[] expected = {"bc","cb"}; (int i=0;i<expected.length;i++) assertequals("double letter", expected[i], an.generate().get(i)); } public static boolean isanagram(string str1, string str2){ if(str1.length() != str2.length()) {return false;} char[] a, b; arrays.sort(a = str1.tochararray()); arrays.sort(b = str2.tochararray()); return arrays.equals(a,b); }... and anagram class:
import java.util.arraylist; import java.util.list; public class anagram { private char[] input; private stringbuffer sb = new stringbuffer(); private list output; public anagram(string input){ this.input = input.tochararray(); } public list generate(){ output = new arraylist(); doanagram(input.length); return output; } private void doanagram(int rsize){ if (rsize==1){ return; } (int i=0; < rsize ; i++){ doanagram(rsize-1); if (rsize==2){ (int j=0; j < input.length; j++){ sb.append(input[j]); } output.add(sb.tostring()); sb.delete(0,input.length+1); } rotate(rsize); } } private void rotate(int rsize){ int i; int pos = input.length - rsize; char tmp = input[pos]; (i=pos + 1; < input.length ; i++){ input[i-1] = input[i]; } input[i-1] = tmp; } } what doing wrong?
in test, in loop, an.generate().size() 40320 - might take while loop over! value rebuilt every iteration of loop, bad design.
Comments
Post a Comment