use hcie_engine_api::Engine; #[test] fn test_layer_mask_api_and_editing() { let mut engine = Engine::new(100, 100); let layer_id = engine.active_layer_id(); // Initially layer has no mask assert!(!engine.has_layer_mask(layer_id)); assert!(engine.get_layer_mask_pixels(layer_id).is_none()); // Add layer mask engine.add_layer_mask(layer_id); assert!(engine.has_layer_mask(layer_id)); let mask = engine.get_layer_mask_pixels(layer_id).expect("Mask pixels must exist"); assert_eq!(mask.len(), 100 * 100); assert_eq!(mask[0], 255); // Toggle mask editing mode assert!(!engine.is_editing_mask()); engine.set_editing_mask(true); assert!(engine.is_editing_mask()); // Set custom mask pixels let custom_mask = vec![128u8; 100 * 100]; engine.set_layer_mask_pixels(layer_id, custom_mask.clone(), Some([0, 0, 100, 100])); assert_eq!(engine.get_layer_mask_pixels(layer_id), Some(custom_mask.as_slice())); // Remove layer mask engine.remove_layer_mask(layer_id); assert!(!engine.has_layer_mask(layer_id)); assert!(engine.get_layer_mask_pixels(layer_id).is_none()); }