use rizzma::axis::axis::{Axis, AxisSide};
use rizzma::core::Bbox;
use rizzma::skia::SkiaRenderer;
use rizzma::text::FontSource;
fn has_ink(renderer: &SkiaRenderer, x0: u32, y0: u32, x1: u32, y1: u32) -> bool {
let pixmap = renderer.pixmap();
let w = pixmap.width();
let data = pixmap.data();
for y in y0..y1 {
for x in x0..x1 {
let idx = ((y * w + x) * 4 + 3) as usize;
if data[idx] != 0 {
return true;
}
}
}
false
}
#[test]
fn bottom_axis_inks_bottom_edge_not_interior() {
let mut renderer = SkiaRenderer::new(300, 300, 72.0);
let font = FontSource::dejavu_sans();
let bbox = Bbox::from_extents(50.0, 50.0, 250.0, 250.0);
let axis = Axis::new(AxisSide::Bottom);
axis.draw(&mut renderer, &bbox, (0.0, 10.0), &font);
assert!(
has_ink(&renderer, 50, 240, 250, 300),
"expected ink near the bottom edge (ticks/labels)"
);
assert!(
!has_ink(&renderer, 100, 80, 200, 160),
"unexpected ink in the upper-middle interior"
);
}