1-
2- import { describe , it , expect } from 'vitest' ;
3- import Tree from 'splaytree' ;
4- import compareSegments from '../src/compare_segments' ;
5- import compareEvents from '../src/compare_events' ;
6- import SweepEvent from '../src/sweep_event' ;
7-
8- describe ( 'compare segments' , ( ) => {
9-
10- describe ( 'not collinear' , ( ) => {
11-
12- it ( 'should order by shared left point - right point first' , ( ) => {
1+ import { describe , it , expect } from "vitest" ;
2+ import Tree from "splaytree" ;
3+ import compareSegments from "../src/compare_segments" ;
4+ import compareEvents from "../src/compare_events" ;
5+ import SweepEvent from "../src/sweep_event" ;
6+ import { Position } from "../src/types" ;
7+
8+ describe ( "compare segments" , ( ) => {
9+ describe ( "not collinear" , ( ) => {
10+ it ( "should order by shared left point - right point first" , ( ) => {
1311 const tree = new Tree ( compareSegments ) ;
14- const pt = [ 0.0 , 0.0 ] ;
12+ const pt : Position = [ 0.0 , 0.0 ] ;
1513 const se1 = new SweepEvent ( pt , true , new SweepEvent ( [ 1 , 1 ] , false ) ) ;
1614 const se2 = new SweepEvent ( pt , true , new SweepEvent ( [ 2 , 3 ] , false ) ) ;
1715
@@ -22,7 +20,7 @@ describe('compare segments', () => {
2220 expect ( tree . minNode ( ) . key . otherEvent . point ) . toEqual ( [ 1 , 1 ] ) ;
2321 } ) ;
2422
25- it ( ' should sort by different left point - right point y coord' , ( ) => {
23+ it ( " should sort by different left point - right point y coord" , ( ) => {
2624 const tree = new Tree ( compareSegments ) ;
2725 const se1 = new SweepEvent ( [ 0 , 1 ] , true , new SweepEvent ( [ 1 , 1 ] , false ) ) ;
2826 const se2 = new SweepEvent ( [ 0 , 2 ] , true , new SweepEvent ( [ 2 , 3 ] , false ) ) ;
@@ -34,8 +32,8 @@ describe('compare segments', () => {
3432 expect ( tree . maxNode ( ) . key . otherEvent . point ) . toEqual ( [ 2 , 3 ] ) ;
3533 } ) ;
3634
37- it ( ' should maintain events order in sweep line' , ( ) => {
38- const se1 = new SweepEvent ( [ 0 , 1 ] , true , new SweepEvent ( [ 2 , 1 ] , false ) ) ;
35+ it ( " should maintain events order in sweep line" , ( ) => {
36+ const se1 = new SweepEvent ( [ 0 , 1 ] , true , new SweepEvent ( [ 2 , 1 ] , false ) ) ;
3937 const se2 = new SweepEvent ( [ - 1 , 0 ] , true , new SweepEvent ( [ 2 , 3 ] , false ) ) ;
4038
4139 const se3 = new SweepEvent ( [ 0 , 1 ] , true , new SweepEvent ( [ 3 , 4 ] , false ) ) ;
@@ -52,25 +50,35 @@ describe('compare segments', () => {
5250 expect ( se4 . isAbove ( se3 . point ) ) . toBeFalsy ( ) ;
5351 } ) ;
5452
55- it ( ' should handle when first point is below' , ( ) => {
56- const se2 = new SweepEvent ( [ 0 , 1 ] , true , new SweepEvent ( [ 2 , 1 ] , false ) ) ;
53+ it ( " should handle when first point is below" , ( ) => {
54+ const se2 = new SweepEvent ( [ 0 , 1 ] , true , new SweepEvent ( [ 2 , 1 ] , false ) ) ;
5755 const se1 = new SweepEvent ( [ - 1 , 0 ] , true , new SweepEvent ( [ 2 , 3 ] , false ) ) ;
5856
5957 expect ( se1 . isBelow ( se2 . point ) ) . toBeFalsy ( ) ;
6058 expect ( compareSegments ( se1 , se2 ) ) . toBe ( 1 ) ;
6159 } ) ;
6260 } ) ;
6361
64- it ( 'should handle collinear segments' , ( ) => {
65- const se1 = new SweepEvent ( [ 1 , 1 ] , true , new SweepEvent ( [ 5 , 1 ] , false ) , true ) ;
66- const se2 = new SweepEvent ( [ 2 , 1 ] , true , new SweepEvent ( [ 3 , 1 ] , false ) , false ) ;
62+ it ( "should handle collinear segments" , ( ) => {
63+ const se1 = new SweepEvent (
64+ [ 1 , 1 ] ,
65+ true ,
66+ new SweepEvent ( [ 5 , 1 ] , false ) ,
67+ true
68+ ) ;
69+ const se2 = new SweepEvent (
70+ [ 2 , 1 ] ,
71+ true ,
72+ new SweepEvent ( [ 3 , 1 ] , false ) ,
73+ false
74+ ) ;
6775
6876 expect ( se1 . isSubject ) . not . toBe ( se2 . isSubject ) ;
6977 expect ( compareSegments ( se1 , se2 ) ) . toBe ( - 1 ) ;
7078 } ) ;
7179
72- it ( ' should handle collinear shared left point' , ( ) => {
73- const pt = [ 0 , 1 ] ;
80+ it ( " should handle collinear shared left point" , ( ) => {
81+ const pt = [ 0 , 1 ] as Position ;
7482
7583 const se1 = new SweepEvent ( pt , true , new SweepEvent ( [ 5 , 1 ] , false ) , false ) ;
7684 const se2 = new SweepEvent ( pt , true , new SweepEvent ( [ 3 , 1 ] , false ) , false ) ;
@@ -89,13 +97,23 @@ describe('compare segments', () => {
8997 expect ( compareSegments ( se1 , se2 ) ) . toBe ( 1 ) ;
9098 } ) ;
9199
92- it ( 'should handle collinear same polygon different left points' , ( ) => {
93- const se1 = new SweepEvent ( [ 1 , 1 ] , true , new SweepEvent ( [ 5 , 1 ] , false ) , true ) ;
94- const se2 = new SweepEvent ( [ 2 , 1 ] , true , new SweepEvent ( [ 3 , 1 ] , false ) , true ) ;
100+ it ( "should handle collinear same polygon different left points" , ( ) => {
101+ const se1 = new SweepEvent (
102+ [ 1 , 1 ] ,
103+ true ,
104+ new SweepEvent ( [ 5 , 1 ] , false ) ,
105+ true
106+ ) ;
107+ const se2 = new SweepEvent (
108+ [ 2 , 1 ] ,
109+ true ,
110+ new SweepEvent ( [ 3 , 1 ] , false ) ,
111+ true
112+ ) ;
95113
96114 expect ( se1 . isSubject ) . toBe ( se2 . isSubject ) ;
97115 expect ( se1 . point ) . not . toBe ( se2 . point ) ;
98116 expect ( compareSegments ( se1 , se2 ) ) . toBe ( - 1 ) ;
99117 expect ( compareSegments ( se2 , se1 ) ) . toBe ( 1 ) ;
100118 } ) ;
101- } ) ;
119+ } ) ;
0 commit comments