diff --git a/test/combine_ways.js b/test/combine_ways.js index 4757e9f..1a08699 100644 --- a/test/combine_ways.js +++ b/test/combine_ways.js @@ -13,6 +13,14 @@ import { Shape } from 'three'; import { BuildingShapeUtils } from '../src/extras/BuildingShapeUtils.js'; // import { JSDOM } from 'jsdom'; +test('Test no combining necessary. one open way', () => { + var way1 = ''; + let parser = new window.DOMParser(); + let xml1 = parser.parseFromString(way1, 'text/xml').getElementsByTagName('way')[0]; + let result = BuildingShapeUtils.combineWays([xml1]); + expect(result.length).toBe(0); +}); + test('Test combining 2 ways 1->2', () => { var way1 = ''; var way2 = ''; @@ -51,3 +59,34 @@ test('Test combining 2 unaligned ways', () => { let expected = parser.parseFromString(way3, 'text/xml'); expect(result[0].outerHTML).toBe(way3); }); + +test('Test combining 3 ways 1->2->3', () => { + var way1 = ''; + var way2 = ''; + var way3 = ''; + var way4 = ''; + let parser = new window.DOMParser(); + let xml1 = parser.parseFromString(way1, 'text/xml').getElementsByTagName('way')[0]; + let xml2 = parser.parseFromString(way2, 'text/xml').getElementsByTagName('way')[0]; + let xml3 = parser.parseFromString(way3, 'text/xml').getElementsByTagName('way')[0]; + let result = BuildingShapeUtils.combineWays([xml1, xml2, xml3]); + expect(result.length).toBe(1); + let expected = parser.parseFromString(way4, 'text/xml'); + expect(result[0].outerHTML).toBe(way3); +}); + +test('Test combining 4 ways', () => { + var way1 = ''; + var way2 = ''; + var way3 = ''; + var way4 = ''; + var way5 = ''; + let parser = new window.DOMParser(); + let xml1 = parser.parseFromString(way1, 'text/xml').getElementsByTagName('way')[0]; + let xml2 = parser.parseFromString(way2, 'text/xml').getElementsByTagName('way')[0]; + let xml3 = parser.parseFromString(way3, 'text/xml').getElementsByTagName('way')[0]; + let result = BuildingShapeUtils.combineWays([xml1, xml2, xml3]); + expect(result.length).toBe(1); + let expected = parser.parseFromString(way4, 'text/xml'); + expect(result[0].outerHTML).toBe(way3); +});