Files
9e2d31ad6d V2.5.0 - Opencl + more github actions + code refactor + tests + custom threshold + lite + dev
* opencl first buggy implementation

* more work on opencl. Buggy atm

* WORKING ALGORITHM ATM but slow

* working opencl code with implemented 2 step fully

* first reworks. addition of new fields in struct and some cleanup

* more changes. added a struct for memory buffers, creation of it, new functions for gui dedicated opencl template match

* more changes, no errors

* added to main functions in lib. Not tested yet

* first tests done, code working. Needs more optimisation

* some testing prints, code retested after fix in time measurement. Looks promising

* revert back

* tested optimisations reimplemented and working

* a bit more optimisations

* added opencl feature

* fmt

* added change ocl state, graceful exits

* windows fix

* small optimisation

* macos fix

* different variations of tests

* currently a fine solution to auto determine treshold of fast segmentation

* derivative activation only in opencl mode

* readme update

* add v2 algorithm

* added table of contents to readme

* update changelog (no date included yet)

* moved all the additional v2 buffers  under GpuMemoryPointers struct

* additional work on v2

* unifying v1 and v2 kernels + other data

* working on adding devices info

* more work done on detecting devices, creating kernels and moving kernels to precalculated

* working state of code. Implemented different OCL things, Kernel building outside of OCL Kernel storage, most of logic for V2.

* added v2 into logic. remaining to create standalone lib.rs functions

* various fixes

* added precision to buffer passed to GPU and updated

* adding more matchmodes and covering

* cleaning up code

* moving some enums to structs

* changes on lots of stuff, including changing device for OCL

* implemented lite feature

* changes on lite code, removed problems

* renamed template match

* cleaned unnecesary conditions

* fixed issue with memory not cleaned up on v2

* readme update and fix on matchmode

* fix for region on ocl matching

* fixes for ltie mode

* added opencl example

* fix for v2 opencl

* fix on opencl device choice to not take cpu

* lite fixes on macos

* linux fixes

* windows fix

* moved files to CORE folder

* full code restructure

* full code restructure

* started with testing

* more tests

* additional mac tests

* linux additions

* linux fixes + cargo.toml editing

* more fixes

* clippy fixes

* github action update

---------

Co-authored-by: DavorMar <[email protected]>
2025-04-27 14:00:11 +02:00

62 lines
1.9 KiB
Rust

// run with cargo test --tests --release -- --nocapture
#[cfg(feature = "dev")]
mod multi_test {
use rustautogui::{self, imgtools, RustAutoGui};
#[test]
fn main_test() {
let mut gui = rustautogui::RustAutoGui::new(true).unwrap();
gui.list_devices();
load_imgs(&mut gui);
gui.loop_find_stored_image_on_screen_and_move_mouse(0.9, 1.0, 10, "step_0")
.unwrap();
gui.left_click().unwrap();
gui.loop_find_stored_image_on_screen_and_move_mouse(0.9, 0.5, 10, "step_1")
.unwrap();
gui.left_click().unwrap();
gui.loop_find_stored_image_on_screen_and_move_mouse(0.9, 1.5, 10, "step_2")
.unwrap();
gui.left_click().unwrap();
gui.keyboard_input("test!@#45<>/\\|{}[]&*()_+").unwrap();
}
fn load_imgs(gui: &mut RustAutoGui) {
#[cfg(target_os = "windows")]
let insert = 'w';
#[cfg(target_os = "macos")]
let insert = "m";
#[cfg(target_os = "linux")]
let insert = 'l';
let img: image::ImageBuffer<image::Luma<u8>, Vec<u8>> = imgtools::load_image_bw(
format!("tests/testing_images/gui_tests/step_1_{}.png", insert).as_str(),
)
.unwrap();
gui.store_template_from_imagebuffer_custom(
img,
None,
rustautogui::MatchMode::SegmentedOcl,
"step_0",
0.9,
)
.unwrap();
gui.store_template_from_file(
format!("tests/testing_images/gui_tests/step_2_{}.png", insert).as_str(),
None,
rustautogui::MatchMode::SegmentedOclV2,
"step_1",
)
.unwrap();
gui.store_template_from_file_custom(
format!("tests/testing_images/gui_tests/step_3_{}.png", insert).as_str(),
None,
rustautogui::MatchMode::Segmented,
"step_2",
0.8,
)
.unwrap();
}
}