Written by Anonymous
- import org.sikuli.script.*;
- import java.util.ArrayList;
- import java.util.List;
-
- class PatternFinder implements Runnable {
- private final Object pattern;
- private final Region region;
-
- public PatternFinder(Object pattern, Region region){
- this.pattern = pattern;
- this.region = region;
- }
- @Override
- public void run() {
- region.has(pattern, 0);
- }
- }
-
- public class SikuliTest {
- public static void main(String[] args) {
- long test_start;
- ImagePath.add("SikuliTest/patterns/");
-
- // patterns
- List<Object> patterns = new ArrayList<>();
- patterns.add(new Pattern("pattern1.png"));
- patterns.add(new Pattern("pattern2.png"));
- patterns.add(new Pattern("pattern3.png"));
- patterns.add(new Pattern("pattern4.png"));
- patterns.add(new Pattern("pattern5.png"));
- patterns.add(new Pattern("pattern6.png"));
-
- // test_region
- Region test_region = new Region(0, 0, 1024, 768);
- test_region.setAutoWaitTimeout(0);
-
- // TEST 1
- test_start = System.currentTimeMillis();
- for (Object pattern : patterns) {
- test_region.has(pattern,0);
- }
- System.out.printf("Test 1 took: %d ms\n", System.currentTimeMillis() - test_start);
-
- // TEST 2
- test_start = System.currentTimeMillis();
- test_region.findAnyList(patterns);
- System.out.printf("Test 2 took: %d ms\n", System.currentTimeMillis() - test_start);
-
- // TEST 3
- test_start = System.currentTimeMillis();
- List<PatternFinder> pattern_finders = new ArrayList<>();
- for (Object pattern : patterns) {
- pattern_finders.add(new PatternFinder(pattern, test_region));
- }
- List<Thread> threads = new ArrayList<>();
- for (PatternFinder pattern_finder : pattern_finders) {
- Thread thread = new Thread(pattern_finder);
- threads.add(thread);
- thread.start();
- }
- try {
- for (Thread thread : threads) thread.join();
- } catch (InterruptedException e){
- e.printStackTrace();
- }
- System.out.printf("Test 3 took: %d ms\n", System.currentTimeMillis() - test_start);
- }
- }