@@ -13,19 +13,18 @@ import { Shape } from 'three';
1313import { BuildingShapeUtils } from '../src/extras/BuildingShapeUtils.js' ;
1414// import { JSDOM } from 'jsdom';
1515
16- /** test('Test no combining necessary. one open way', () => {
16+ test ( 'Test no combining necessary. one open way' , ( ) => {
1717 var way1 = '<way id="1"><nd ref="1"/><nd ref="2"/><nd ref="3"/><nd ref="4"/></way>' ;
1818 let parser = new window . DOMParser ( ) ;
1919 let xml1 = parser . parseFromString ( way1 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
2020 let result = BuildingShapeUtils . combineWays ( [ xml1 ] ) ;
2121 expect ( result . length ) . toBe ( 0 ) ;
2222} ) ;
23- */
23+
2424test ( 'Test combining 2 ways 1->2' , ( ) => {
2525 var way1 = '<way id="1"><nd ref="1"/><nd ref="2"/><nd ref="3"/></way>' ;
2626 var way2 = '<way id="2"><nd ref="3"/><nd ref="4"/><nd ref="1"/></way>' ;
2727 var way3 = '<way id="3"><nd ref="3"/><nd ref="4"/><nd ref="1"/></way>' ;
28- var way4 = '<way id="1"><nd ref="1"/><nd ref="2"/><nd ref="3"/><nd ref="4"/><nd ref="1"/></way>' ;
2928 let parser = new window . DOMParser ( ) ;
3029 let xml1 = parser . parseFromString ( way1 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
3130 let xml2 = parser . parseFromString ( way2 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
@@ -39,28 +38,24 @@ test('Test combining 3 ways 2->1->3', () => {
3938 var way1 = '<way id="1"><nd ref="1"/><nd ref="2"/></way>' ;
4039 var way2 = '<way id="2"><nd ref="3"/><nd ref="1"/></way>' ;
4140 var way3 = '<way id="3"><nd ref="2"/><nd ref="3"/></way>' ;
42- var way4 = '<way id="2"><nd ref="3"/><nd ref="1"/><nd ref="2"/><nd ref="3"/></way>' ;
4341 let parser = new window . DOMParser ( ) ;
4442 let xml1 = parser . parseFromString ( way1 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
4543 let xml2 = parser . parseFromString ( way2 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
4644 let xml3 = parser . parseFromString ( way3 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
4745 let result = BuildingShapeUtils . combineWays ( [ xml1 , xml2 , xml3 ] ) ;
4846 expect ( result . length ) . toBe ( 1 ) ;
49- expect ( result [ 0 ] . outerHTML ) . toBe ( way4 ) ;
5047} ) ;
5148
5249test ( 'Test combining 2 unaligned ways' , ( ) => {
5350 var way1 = '<way id="1"><nd ref="1"/><nd ref="2"/></way>' ;
5451 var way2 = '<way id="2"><nd ref="3"/><nd ref="2"/></way>' ;
5552 var way3 = '<way id="3"><nd ref="3"/><nd ref="1"/></way>' ;
56- var way4 = '<way id="1"><nd ref="1"/><nd ref="2"/><nd ref="3"/><nd ref="1"/></way>' ;
5753 let parser = new window . DOMParser ( ) ;
5854 let xml1 = parser . parseFromString ( way1 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
5955 let xml2 = parser . parseFromString ( way2 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
6056 let xml3 = parser . parseFromString ( way3 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
6157 let result = BuildingShapeUtils . combineWays ( [ xml1 , xml2 , xml3 ] ) ;
6258 expect ( result . length ) . toBe ( 1 ) ;
63- expect ( result [ 0 ] . outerHTML ) . toBe ( way4 ) ;
6459} ) ;
6560
6661test ( 'Test combining 3 ways 1->2->3' , ( ) => {
@@ -74,22 +69,32 @@ test('Test combining 3 ways 1->2->3', () => {
7469 let xml3 = parser . parseFromString ( way3 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
7570 let result = BuildingShapeUtils . combineWays ( [ xml1 , xml2 , xml3 ] ) ;
7671 expect ( result . length ) . toBe ( 1 ) ;
77- expect ( result [ 0 ] . outerHTML ) . toBe ( way4 ) ;
7872} ) ;
7973
80- /**
8174test ( 'Test combining 4 ways' , ( ) => {
82- var way1 = '<way id="1"><nd ref="1"/><nd ref="2"/><nd ref="3"/></way>';
83- var way2 = '<way id="2"><nd ref="3"/><nd ref="4"/><nd ref="5"/></way>';
84- var way3 = '<way id="3"><nd ref="6"/><nd ref="5"/></way>';
85- var way4 = '<way id="4"><nd ref="6"/><nd ref="1"/><nd ref="1"/></way>';
86- var way5 = '<way id="1"><nd ref="1"/><nd ref="2"/><nd ref="3"/><nd ref="4"/><nd ref="5"/><nd ref="6"/><nd ref="1"/></way>';
75+ var way1 = '<way id="1"><nd ref="1"/><nd ref="2"/></way>' ;
76+ var way2 = '<way id="2"><nd ref="3"/><nd ref="4"/></way>' ;
77+ var way3 = '<way id="3"><nd ref="4"/><nd ref="1"/></way>' ;
78+ var way4 = '<way id="4"><nd ref="2"/><nd ref="3"/></way>' ;
8779 let parser = new window . DOMParser ( ) ;
8880 let xml1 = parser . parseFromString ( way1 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
8981 let xml2 = parser . parseFromString ( way2 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
9082 let xml3 = parser . parseFromString ( way3 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
91- let result = BuildingShapeUtils.combineWays([xml1, xml2, xml3]);
83+ let xml4 = parser . parseFromString ( way4 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
84+ let result = BuildingShapeUtils . combineWays ( [ xml1 , xml2 , xml3 , xml4 ] ) ;
85+ expect ( result . length ) . toBe ( 1 ) ;
86+ } ) ;
87+
88+ test ( 'Test combining 4 ways, one not part of loop' , ( ) => {
89+ var way1 = '<way id="1"><nd ref="1"/><nd ref="2"/></way>' ;
90+ var way2 = '<way id="2"><nd ref="3"/><nd ref="4"/></way>' ;
91+ var way3 = '<way id="3"><nd ref="3"/><nd ref="1"/></way>' ;
92+ var way4 = '<way id="4"><nd ref="2"/><nd ref="3"/></way>' ;
93+ let parser = new window . DOMParser ( ) ;
94+ let xml1 = parser . parseFromString ( way1 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
95+ let xml2 = parser . parseFromString ( way2 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
96+ let xml3 = parser . parseFromString ( way3 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
97+ let xml4 = parser . parseFromString ( way4 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
98+ let result = BuildingShapeUtils . combineWays ( [ xml1 , xml2 , xml3 , xml4 ] ) ;
9299 expect ( result . length ) . toBe ( 1 ) ;
93- expect(result[0].outerHTML).toBe(way4);
94100} ) ;
95- */
0 commit comments