www.pudn.com > ThinkinginJava4thEdition(SourceCode).zip > AtUnitExample4.java


//: annotations/AtUnitExample4.java 
package annotations; 
import java.util.*; 
import net.mindview.atunit.*; 
import net.mindview.util.*; 
import static net.mindview.util.Print.*; 
 
public class AtUnitExample4 { 
  static String theory = "All brontosauruses " + 
    "are thin at one end, much MUCH thicker in the " + 
    "middle, and then thin again at the far end."; 
  private String word; 
  private Random rand = new Random(); // Time-based seed 
  public AtUnitExample4(String word) { this.word = word; } 
  public String getWord() { return word; } 
  public String scrambleWord() { 
    List chars = new ArrayList(); 
    for(Character c : word.toCharArray()) 
      chars.add(c); 
    Collections.shuffle(chars, rand); 
    StringBuilder result = new StringBuilder(); 
    for(char ch : chars) 
      result.append(ch); 
    return result.toString(); 
  } 
  @TestProperty static List input = 
    Arrays.asList(theory.split(" ")); 
  @TestProperty 
    static Iterator words = input.iterator(); 
  @TestObjectCreate static AtUnitExample4 create() { 
    if(words.hasNext()) 
      return new AtUnitExample4(words.next()); 
    else 
      return null; 
  } 
  @Test boolean words() { 
    print("'" + getWord() + "'"); 
    return getWord().equals("are"); 
  } 
  @Test boolean scramble1() { 
    // Change to a specific seed to get verifiable results: 
    rand = new Random(47); 
    print("'" + getWord() + "'"); 
    String scrambled = scrambleWord(); 
    print(scrambled); 
    return scrambled.equals("lAl"); 
  } 
  @Test boolean scramble2() { 
    rand = new Random(74); 
    print("'" + getWord() + "'"); 
    String scrambled = scrambleWord(); 
    print(scrambled); 
    return scrambled.equals("tsaeborornussu"); 
  } 
  public static void main(String[] args) throws Exception { 
    System.out.println("starting"); 
    OSExecute.command( 
      "java net.mindview.atunit.AtUnit AtUnitExample4"); 
  } 
} /* Output: 
starting 
annotations.AtUnitExample4 
  . scramble1 'All' 
lAl 
 
  . scramble2 'brontosauruses' 
tsaeborornussu 
 
  . words 'are' 
 
OK (3 tests) 
*///:~