//! 滑块匹配集成测试。 mod common; use common::{load_image, sample_path}; use ddddocr_core::Slider; /// 边缘模式匹配应定位到预期坐标。 #[test] fn slide_match_locates_target_position() { let engine = Slider::new(); let target = load_image(sample_path("target1.png")).expect("请确保 samples/target1.png 存在"); let background = load_image(sample_path("background1.png")).expect("请确保 samples/background1.png 存在"); let start = std::time::Instant::now(); let result = engine .slide_match(&target, &background, false) .expect("Slide match 执行失败"); let elapsed = start.elapsed(); println!("边缘模式匹配: {result}"); println!("耗时: {elapsed:?}"); assert_eq!(result.target_x, 237); assert_eq!(result.target_y, 77); assert!(result.confidence > 0.0); } /// 灰度对比匹配应定位到预期坐标。 #[test] fn slide_comparison_locates_target_position() { let engine = Slider::new(); let target = load_image(sample_path("target2.jpg")).expect("请确保 samples/target2.jpg 存在"); let background = load_image(sample_path("background2.jpg")).expect("请确保 samples/background2.jpg 存在"); let start = std::time::Instant::now(); let result = engine .slide_comparison(&target, &background) .expect("Slide comparison 执行失败"); let elapsed = start.elapsed(); println!( "灰度对比匹配: 坐标 [x: {}, y: {}], 置信度 {:.4}", result.target_x, result.target_y, result.confidence ); println!("耗时: {elapsed:?}"); assert_eq!(result.target_x, 171); assert_eq!(result.target_y, 90); assert!(result.confidence > 0.0); }