@@ -20,6 +20,15 @@ test('Test Closed Way', () => {
2020 expect ( BuildingShapeUtils . isClosed ( xmlData ) ) . toBe ( true ) ;
2121} ) ;
2222
23+ test ( 'Reverse way' , ( ) => {
24+ var way1 = '<way id="1"><nd ref="1"/><nd ref="2"/><nd ref="3"/></way>' ;
25+ var way2 = '<way id="1"><nd ref="3"/><nd ref="2"/><nd ref="1"/></way>' ;
26+ let parser = new window . DOMParser ( ) ;
27+ let xml1 = parser . parseFromString ( way1 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
28+ let result = BuildingShapeUtils . reverseWay ( xml1 ) ;
29+ expect ( result . outerHTML ) . toBe ( way2 ) ;
30+ } ) ;
31+
2332test ( 'Test Open Way' , ( ) => {
2433 var way = '<way id="1"><nd ref="2"/><nd ref="3"/><nd ref="4"/><nd ref="5"/><nd ref="6"/></way>' ;
2534 let parser = new window . DOMParser ( ) ;
@@ -38,7 +47,7 @@ test('Test joining 2 ways', () => {
3847 expect ( result . outerHTML ) . toBe ( way3 ) ;
3948} ) ;
4049
41- test ( 'Test combining 2 ways' , ( ) => {
50+ test ( 'Test combining 2 ways 1->2 ' , ( ) => {
4251 var way1 = '<way id="1"><nd ref="1"/><nd ref="2"/><nd ref="3"/></way>' ;
4352 var way2 = '<way id="2"><nd ref="3"/><nd ref="4"/><nd ref="1"/></way>' ;
4453 var way3 = '<way id="1"><nd ref="1"/><nd ref="2"/><nd ref="3"/><nd ref="4"/><nd ref="1"/></way>' ;
@@ -51,6 +60,32 @@ test('Test combining 2 ways', () => {
5160 expect ( result [ 0 ] . outerHTML ) . toBe ( way3 ) ;
5261} ) ;
5362
63+ test ( 'Test combining 2 ways 2->1' , ( ) => {
64+ var way2 = '<way id="1"><nd ref="1"/><nd ref="2"/><nd ref="3"/></way>' ;
65+ var way1 = '<way id="2"><nd ref="3"/><nd ref="4"/><nd ref="1"/></way>' ;
66+ var way3 = '<way id="2"><nd ref="3"/><nd ref="4"/><nd ref="1"/><nd ref="2"/><nd ref="3"/></way>' ;
67+ let parser = new window . DOMParser ( ) ;
68+ let xml1 = parser . parseFromString ( way1 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
69+ let xml2 = parser . parseFromString ( way2 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
70+ let result = BuildingShapeUtils . combineWays ( [ xml1 , xml2 ] ) ;
71+ expect ( result . length ) . toBe ( 1 ) ;
72+ let expected = parser . parseFromString ( way3 , 'text/xml' ) ;
73+ expect ( result [ 0 ] . outerHTML ) . toBe ( way3 ) ;
74+ } ) ;
75+
76+ test ( 'Test combining 2 unaligned ways' , ( ) => {
77+ var way1 = '<way id="1"><nd ref="1"/><nd ref="2"/><nd ref="3"/></way>' ;
78+ var way2 = '<way id="2"><nd ref="1"/><nd ref="4"/><nd ref="3"/></way>' ;
79+ var way3 = '<way id="1"><nd ref="1"/><nd ref="2"/><nd ref="3"/><nd ref="4"/><nd ref="1"/></way>' ;
80+ let parser = new window . DOMParser ( ) ;
81+ let xml1 = parser . parseFromString ( way1 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
82+ let xml2 = parser . parseFromString ( way2 , 'text/xml' ) . getElementsByTagName ( 'way' ) [ 0 ] ;
83+ let result = BuildingShapeUtils . combineWays ( [ xml1 , xml2 ] ) ;
84+ expect ( result . length ) . toBe ( 1 ) ;
85+ let expected = parser . parseFromString ( way3 , 'text/xml' ) ;
86+ expect ( result [ 0 ] . outerHTML ) . toBe ( way3 ) ;
87+ } ) ;
88+
5489const rightTriangle = new Shape ( ) ;
5590rightTriangle . moveTo ( 1 , 1 ) ;
5691rightTriangle . lineTo ( 1 , - 1 ) ;
0 commit comments