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:

enter image description here

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