@@ -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