Skip to content

Commit 4da2af3

Browse files
Merge pull request #39 from mikhailofff/main
Add corner‑case tests for core simplify
2 parents 2ae38dd + 6c03c83 commit 4da2af3

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

iOverlay/src/core/simplify.rs

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,4 +363,64 @@ mod tests {
363363
assert_eq!(r1.len(), 1);
364364
assert_eq!(r1[0][0].len(), 3);
365365
}
366+
367+
#[test]
368+
fn test_without_points() {
369+
let contour: &[IntPoint] = &[];
370+
371+
let mut rev_contour = contour.to_vec();
372+
rev_contour.reverse();
373+
374+
let r0 = contour.simplify(FillRule::NonZero, Default::default());
375+
assert_eq!(r0.len(), 0);
376+
377+
let r1 = rev_contour.simplify(FillRule::NonZero, Default::default());
378+
assert_eq!(r1.len(), 0);
379+
}
380+
381+
#[test]
382+
fn test_with_single_point() {
383+
let contour = vec![IntPoint::new(0, 0)];
384+
385+
let mut rev_contour = contour.clone();
386+
rev_contour.reverse();
387+
388+
let r0 = contour.simplify(FillRule::NonZero, Default::default());
389+
assert_eq!(r0.len(), 0);
390+
391+
let r1 = contour.simplify(FillRule::NonZero, Default::default());
392+
assert_eq!(r1.len(), 0);
393+
}
394+
395+
#[test]
396+
fn test_with_pair_of_points() {
397+
let contour = vec![IntPoint::new(0, 0), IntPoint::new(1, 1)];
398+
399+
let mut rev_contour = contour.clone();
400+
rev_contour.reverse();
401+
402+
let r0 = contour.simplify(FillRule::NonZero, Default::default());
403+
assert_eq!(r0.len(), 0);
404+
405+
let r1 = contour.simplify(FillRule::NonZero, Default::default());
406+
assert_eq!(r1.len(), 0);
407+
}
408+
409+
#[test]
410+
fn test_near_collinear_paths() {
411+
let contour = vec![
412+
IntPoint::new(-100, -100),
413+
IntPoint::new(0, 0),
414+
IntPoint::new(101, 100),
415+
];
416+
417+
let mut rev_contour = contour.clone();
418+
rev_contour.reverse();
419+
420+
let r0 = contour.simplify(FillRule::NonZero, Default::default());
421+
assert_eq!(r0.len(), 1);
422+
423+
let r1 = contour.simplify(FillRule::NonZero, Default::default());
424+
assert_eq!(r1.len(), 1);
425+
}
366426
}

0 commit comments

Comments
 (0)