Written by Anonymous

  1. import org.sikuli.script.*;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4.  
  5. class PatternFinder implements Runnable {
  6. private final Object pattern;
  7. private final Region region;
  8.  
  9. public PatternFinder(Object pattern, Region region){
  10. this.pattern = pattern;
  11. this.region = region;
  12. }
  13. @Override
  14. public void run() {
  15. region.has(pattern, 0);
  16. }
  17. }
  18.  
  19. public class SikuliTest {
  20. public static void main(String[] args) {
  21. long test_start;
  22. ImagePath.add("SikuliTest/patterns/");
  23.  
  24. // patterns
  25. List<Object> patterns = new ArrayList<>();
  26. patterns.add(new Pattern("pattern1.png"));
  27. patterns.add(new Pattern("pattern2.png"));
  28. patterns.add(new Pattern("pattern3.png"));
  29. patterns.add(new Pattern("pattern4.png"));
  30. patterns.add(new Pattern("pattern5.png"));
  31. patterns.add(new Pattern("pattern6.png"));
  32.  
  33. // test_region
  34. Region test_region = new Region(0, 0, 1024, 768);
  35. test_region.setAutoWaitTimeout(0);
  36.  
  37. // TEST 1
  38. test_start = System.currentTimeMillis();
  39. for (Object pattern : patterns) {
  40. test_region.has(pattern,0);
  41. }
  42. System.out.printf("Test 1 took: %d ms\n", System.currentTimeMillis() - test_start);
  43.  
  44. // TEST 2
  45. test_start = System.currentTimeMillis();
  46. test_region.findAnyList(patterns);
  47. System.out.printf("Test 2 took: %d ms\n", System.currentTimeMillis() - test_start);
  48.  
  49. // TEST 3
  50. test_start = System.currentTimeMillis();
  51. List<PatternFinder> pattern_finders = new ArrayList<>();
  52. for (Object pattern : patterns) {
  53. pattern_finders.add(new PatternFinder(pattern, test_region));
  54. }
  55. List<Thread> threads = new ArrayList<>();
  56. for (PatternFinder pattern_finder : pattern_finders) {
  57. Thread thread = new Thread(pattern_finder);
  58. threads.add(thread);
  59. thread.start();
  60. }
  61. try {
  62. for (Thread thread : threads) thread.join();
  63. } catch (InterruptedException e){
  64. e.printStackTrace();
  65. }
  66. System.out.printf("Test 3 took: %d ms\n", System.currentTimeMillis() - test_start);
  67. }
  68. }
Notepad
Select All