use rizzma::artist::{Affine2D, Artist, Line2D, Rgba};
use rizzma::skia::SkiaRenderer;
fn pixel(r: &SkiaRenderer, x: u32, y: u32) -> [u8; 4] {
let p = r.pixmap().pixel(x, y).expect("pixel in bounds");
[p.red(), p.green(), p.blue(), p.alpha()]
}
#[test]
fn renders_red_diagonal_into_pixmap() {
let mut renderer = SkiaRenderer::new(100, 100, 72.0);
let transform = Affine2D::from_scale(100.0, 100.0);
let line = Line2D::new(vec![0.0, 1.0], vec![0.0, 1.0])
.with_color(Rgba::RED)
.with_linewidth(2.0);
line.draw(&mut renderer, &transform);
let [r, g, b, a] = pixel(&renderer, 50, 50);
assert!(
r > 200 && g < 60 && b < 60 && a > 200,
"expected a red pixel on the diagonal, got [{r}, {g}, {b}, {a}]"
);
assert_eq!(
pixel(&renderer, 95, 95),
[0, 0, 0, 0],
"corner pixel should be untouched"
);
}