use crate::draw_target::*;
use crate::path_builder::*;
#[test]
fn basic_rasterizer() {
let mut dt = DrawTarget::new(2, 2);
let mut pb = PathBuilder::new();
pb.rect(1., 1., 1., 1.);
dt.fill(&pb.finish(), &Source::Solid(SolidSource{r: 0xff, g: 0xff, b: 0xff, a: 0xff}), Winding::NonZero);
let white = 0xffffffff;
assert_eq!(dt.get_data(), &vec![0, 0, 0, white][..])
}
#[test]
fn clip_rect() {
let mut dt = DrawTarget::new(2, 2);
dt.push_clip_rect(rect(1, 1, 2, 2));
let mut pb = PathBuilder::new();
pb.rect(0., 0., 2., 2.);
dt.fill(&pb.finish(),
&Source::Solid(SolidSource{r: 0xff, g: 0xff, b: 0xff, a: 0xff}),
Winding::NonZero);
let white = 0xffffffff;
assert_eq!(dt.get_data(), &vec![0, 0, 0, white][..])
}
#[test]
fn nested_clip_rect() {
let mut dt = DrawTarget::new(2, 2);
dt.push_clip_rect(rect(0, 1, 2, 2));
dt.push_clip_rect(rect(1, 0, 2, 2));
let mut pb = PathBuilder::new();
pb.rect(0., 0., 2., 2.);
dt.fill(&pb.finish(),
&Source::Solid(SolidSource{r: 0xff, g: 0xff, b: 0xff, a: 0xff}),
Winding::NonZero);
let white = 0xffffffff;
assert_eq!(dt.get_data(), &vec![0, 0, 0, white][..])
}
#[test]
fn even_odd_rect() {
let mut dt = DrawTarget::new(2, 2);
let mut pb = PathBuilder::new();
pb.rect(0., 0., 2., 2.);
pb.rect(0., 0., 2., 2.);
pb.rect(1., 1., 2., 2.);
dt.fill(&pb.finish(),
&Source::Solid(SolidSource{r: 0xff, g: 0xff, b: 0xff, a: 0xff}),
Winding::EvenOdd);
let white = 0xffffffff;
assert_eq!(dt.get_data(), &vec![0, 0, 0, white][..])
}