Skip to content

Commit 6fd5288

Browse files
committed
补充UT。review by chenmy
1 parent 7d0e494 commit 6fd5288

File tree

5 files changed

+340
-0
lines changed

5 files changed

+340
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
var Pixel = require('../../../src/common/commontypes/Pixel').Pixel;
2+
3+
describe('Pixel', function () {
4+
it('constructor, destroy', function () {
5+
var pixel = new Pixel();
6+
expect(pixel).not.toBeNull();
7+
expect(pixel.x).toEqual(0.0);
8+
expect(pixel.y).toEqual(0.0);
9+
pixel.destroy();
10+
expect(pixel.x).toBeNull();
11+
expect(pixel.y).toBeNull();
12+
expect(pixel.mode).toBeNull();
13+
});
14+
15+
it('toString', function () {
16+
var pixel = new Pixel(100, 50);
17+
var str = pixel.toString();
18+
expect(str).toEqual("x=100,y=50");
19+
pixel.destroy();
20+
});
21+
22+
it('equals', function () {
23+
var pixel = new Pixel(100, 50);
24+
var pixel2 = new Pixel(100, 50);
25+
var isEquals = pixel.equals(pixel2);
26+
expect(isEquals).toBeTruthy();
27+
pixel.destroy();
28+
pixel2.destroy();
29+
});
30+
31+
it('distanceTo', function () {
32+
var pixel = new Pixel(100, 50);
33+
var pixel2 = new Pixel(110, 30);
34+
var distance = pixel.distanceTo(pixel2);
35+
expect(distance).not.toBeNaN();
36+
pixel.destroy();
37+
pixel2.destroy();
38+
});
39+
40+
it('offset', function () {
41+
var pixel = new Pixel(100,50);
42+
var pixel2 = new Pixel(30,20);
43+
var pixel3 = pixel.offset(pixel2);
44+
expect(pixel3.x).toEqual(130);
45+
expect(pixel3.y).toEqual(70);
46+
pixel.destroy();
47+
pixel2.destroy();
48+
pixel3.destroy();
49+
});
50+
});
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
var FacilityAnalystUpstream3DParameters = require('../../../src/common/iServer/FacilityAnalystUpstream3DParameters').FacilityAnalystUpstream3DParameters;
2+
3+
describe('FacilityAnalystUpstream3DParameters', function () {
4+
it('constructor,destroy', function () {
5+
var options = {
6+
edgeID: 84,
7+
nodeID: 25,
8+
weightName: 'test',
9+
isUncertainDirectionValid: false,
10+
sourceNodeIDs: [20, 43, 85]
11+
};
12+
var parameter = new FacilityAnalystUpstream3DParameters(options);
13+
expect(parameter).not.toBeNull();
14+
expect(parameter.CLASS_NAME).toEqual("SuperMap.FacilityAnalystUpstream3DParameters");
15+
expect(parameter.edgeID).toEqual(84);
16+
expect(parameter.nodeID).toEqual(25);
17+
expect(parameter.weightName).toEqual('test');
18+
expect(parameter.isUncertainDirectionValid).toBeFalsy();
19+
expect(parameter.sourceNodeIDs.length).toEqual(3);
20+
parameter.destroy();
21+
expect(parameter.edgeID).toBeNull();
22+
expect(parameter.nodeID).toBeNull();
23+
expect(parameter.weightName).toBeNull();
24+
expect(parameter.isUncertainDirectionValid).toBeNull();
25+
expect(parameter.sourceNodeIDs).toBeNull();
26+
});
27+
});
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
var OverlapDisplayedOptions = require('../../../src/common/iServer/OverlapDisplayedOptions').OverlapDisplayedOptions;
2+
3+
describe('OverlapDisplayedOptions', function () {
4+
it('constructor, destroy', function () {
5+
var overlapDisplayed = new OverlapDisplayedOptions();
6+
expect(overlapDisplayed).not.toBeNull();
7+
expect(overlapDisplayed.CLASS_NAME).toEqual("SuperMap.OverlapDisplayedOptions");
8+
expect(overlapDisplayed.allowPointOverlap).toBeTruthy();
9+
expect(overlapDisplayed.allowPointWithTextDisplay).toBeTruthy();
10+
expect(overlapDisplayed.allowTextOverlap).toBeFalsy();
11+
expect(overlapDisplayed.allowTextAndPointOverlap).toBeTruthy();
12+
expect(overlapDisplayed.allowThemeGraduatedSymbolOverlap).toBeFalsy();
13+
expect(overlapDisplayed.allowThemeGraphOverlap).toBeFalsy();
14+
expect(overlapDisplayed.ugcLayer).not.toBeNull();
15+
expect(overlapDisplayed.ugcLayer.CLASS_NAME).toEqual("SuperMap.UGCLayer");
16+
overlapDisplayed.destroy();
17+
expect(overlapDisplayed.CLASS_NAME).toBeNull();
18+
expect(overlapDisplayed.allowPointOverlap).toBeNull();
19+
expect(overlapDisplayed.allowPointWithTextDisplay).toBeNull();
20+
expect(overlapDisplayed.allowTextOverlap).toBeNull();
21+
expect(overlapDisplayed.allowTextAndPointOverlap).toBeNull();
22+
expect(overlapDisplayed.allowThemeGraduatedSymbolOverlap).toBeNull();
23+
expect(overlapDisplayed.allowThemeGraphOverlap).toBeNull();
24+
expect(overlapDisplayed.ugcLayer).toBeNull();
25+
});
26+
27+
it('toServerJSONObject, fromJson', function () {
28+
var overlapDisplayed = new OverlapDisplayedOptions();
29+
var json = overlapDisplayed.toServerJSONObject();
30+
expect(json).not.toBeNull();
31+
expect(json.allowPointOverlap).toBeTruthy();
32+
expect(json.allowPointWithTextDisplay).toBeTruthy();
33+
expect(json.allowTextOverlap).toBeFalsy();
34+
expect(json.allowTextAndPointOverlap).toBeTruthy();
35+
expect(json.allowThemeGraduatedSymbolOverlap).toBeFalsy();
36+
expect(json.allowThemeGraphOverlap).toBeFalsy();
37+
expect(json.ugcLayer).not.toBeNull();
38+
//将服务端JSON对象转换成当前客户端对象
39+
overlapDisplayed.fromJson(json);
40+
overlapDisplayed.destroy();
41+
});
42+
43+
it('toString', function () {
44+
var overlapDisplayed = new OverlapDisplayedOptions();
45+
var string = overlapDisplayed.toString();
46+
expect(string).not.toBeNull();
47+
expect(string).toContain("'allowPointOverlap':true");
48+
overlapDisplayed.destroy();
49+
});
50+
});

test/common/iServer/ServerGeometrySpec.js

Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,97 @@ describe('ServerGeometry', function () {
221221
serverGeometry.destroy();
222222
});
223223

224+
it('toGeoLineEPS_LinearRing', function () {
225+
var options = {
226+
id: 1,
227+
parts: [4],
228+
points: [{"y": -4377.027184298267, "x": 4020.0045221720466},
229+
{"y": -4381.569363260499, "x": 4057.0600591960642},
230+
{"y": -4382.60877717323, "x": 4064.595810063362},
231+
{"y": -4377.027184298267, "x": 4020.0045221720466}],
232+
type: SuperMap.GeometryType.LINE
233+
};
234+
var serverGeometry = new SuperMap.ServerGeometry(options);
235+
var toGeoLineEPS_LinearRing = serverGeometry.toGeoLineEPS();
236+
expect(toGeoLineEPS_LinearRing).not.toBeNull();
237+
expect(toGeoLineEPS_LinearRing.CLASS_NAME).toEqual("SuperMap.Geometry.LinearRing");
238+
expect(toGeoLineEPS_LinearRing.id).toContain("SuperMap.Geometry_");
239+
expect(toGeoLineEPS_LinearRing.componentTypes[0]).toEqual("SuperMap.Geometry.Point");
240+
var components = toGeoLineEPS_LinearRing.components;
241+
expect(components.length).toEqual(4);
242+
for (var i = 0; i < components.length; i++) {
243+
expect(components[i].CLASS_NAME).toEqual("SuperMap.Geometry.Point");
244+
expect(components[i].id).toContain("SuperMap.Geometry_");
245+
expect(components[i].type).toEqual("Point");
246+
expect(components[i].parent.CLASS_NAME).toEqual("SuperMap.Geometry.LinearRing");
247+
expect(components[i].x).not.toBeNaN();
248+
expect(components[i].y).not.toBeNaN();
249+
}
250+
serverGeometry.destroy();
251+
});
252+
253+
it('toGeoLineEPS_LineString', function () {
254+
var options = {
255+
id: 1,
256+
parts: [4],
257+
points: [{"y": -4377.027184298267, "x": 4020.0045221720466},
258+
{"y": -4381.569363260499, "x": 4057.0600591960642},
259+
{"y": -4382.60877717323, "x": 4064.595810063362},
260+
{"y": -4382.939424428795, "x": 4076.2655245045335}],
261+
type: SuperMap.GeometryType.LINE
262+
};
263+
var serverGeometry = new SuperMap.ServerGeometry(options);
264+
var geoLine_LineString = serverGeometry.toGeoLineEPS();
265+
expect(geoLine_LineString).not.toBeNull();
266+
expect(geoLine_LineString.CLASS_NAME).toEqual("SuperMap.Geometry.LineString");
267+
expect(geoLine_LineString.id).toContain("SuperMap.Geometry_");
268+
expect(geoLine_LineString.componentTypes[0]).toEqual("SuperMap.Geometry.Point");
269+
expect(geoLine_LineString.componentTypes[1]).toEqual("SuperMap.PointWithMeasure");
270+
var components = geoLine_LineString.components;
271+
expect(components.length).toEqual(4);
272+
for (var i = 0; i < components.length; i++) {
273+
expect(components[i].CLASS_NAME).toEqual("SuperMap.Geometry.Point");
274+
expect(components[i].id).toContain("SuperMap.Geometry_");
275+
expect(components[i].type).toEqual("Point");
276+
expect(components[i].parent.CLASS_NAME).toEqual("SuperMap.Geometry.LineString");
277+
expect(components[i].x).not.toBeNaN();
278+
expect(components[i].y).not.toBeNaN();
279+
}
280+
serverGeometry.destroy();
281+
});
282+
283+
it('toGeoLineEPS_MultiLineString', function () {
284+
var options = {
285+
id: 1,
286+
parts: [4, 4],
287+
points: [{"y": -4377.027184298267, "x": 4020.0045221720466},
288+
{"y": -4381.569363260499, "x": 4057.0600591960642},
289+
{"y": -4382.60877717323, "x": 4064.595810063362},
290+
{"y": -4382.939424428795, "x": 4076.2655245045335},
291+
{"y": -4382.333381109672, "x": 4215.049444583775},
292+
{"y": -4382.389670274902, "x": 4247.756955878764},
293+
{"y": -4382.285032149534, "x": 4428.153084011883},
294+
{"y": -4383.017499027105, "x": 4647.579232906979}],
295+
type: SuperMap.GeometryType.LINE
296+
};
297+
var serverGeometry = new SuperMap.ServerGeometry(options);
298+
var geoLine_MultiLineString = serverGeometry.toGeoLineEPS();
299+
expect(geoLine_MultiLineString).not.toBeNull();
300+
expect(geoLine_MultiLineString.CLASS_NAME).toEqual("SuperMap.Geometry.MultiLineString");
301+
expect(geoLine_MultiLineString.id).toContain("SuperMap.Geometry_");
302+
expect(geoLine_MultiLineString.componentTypes[0]).toEqual("SuperMap.Geometry.LineString");
303+
var components = geoLine_MultiLineString.components;
304+
expect(components.length).toEqual(2);
305+
for (var i = 0; i < components.length; i++) {
306+
expect(components[i].CLASS_NAME).toEqual("SuperMap.Geometry.LineString");
307+
expect(components[i].id).toContain("SuperMap.Geometry_");
308+
expect(components[i].componentTypes[0]).toEqual("SuperMap.Geometry.Point");
309+
expect(components[i].componentTypes[1]).toEqual("SuperMap.PointWithMeasure");
310+
expect(components[i].components.length).toEqual(4);
311+
}
312+
serverGeometry.destroy();
313+
});
314+
224315
it('toGeoLinem', function () {
225316
var options = {
226317
id: 1,
@@ -241,4 +332,123 @@ describe('ServerGeometry', function () {
241332
expect(geoLinem.components[0].components.length).toEqual(3);
242333
serverGeometry.destroy();
243334
});
335+
336+
//将服务端的面几何对象转换为客户端几何对象。
337+
it('toGeoRegion', function () {
338+
var options = {
339+
id: 'test',
340+
parts: [4, 4],
341+
points: [{"y": -4377.027184298267, "x": 4020.0045221720466},
342+
{"y": -4381.569363260499, "x": 4057.0600591960642},
343+
{"y": -4382.60877717323, "x": 4064.595810063362},
344+
{"y": -4382.939424428795, "x": 4076.2655245045335},
345+
{"y": -4382.333381109672, "x": 4215.049444583775},
346+
{"y": -4382.389670274902, "x": 4247.756955878764},
347+
{"y": -4382.285032149534, "x": 4428.153084011883},
348+
{"y": -4383.017499027105, "x": 4647.579232906979}],
349+
type: SuperMap.GeometryType.LINE
350+
};
351+
var serverGeometry = new SuperMap.ServerGeometry(options);
352+
var geoRegion = serverGeometry.toGeoRegion();
353+
expect(geoRegion).not.toBeNull();
354+
expect(geoRegion.CLASS_NAME).toEqual("SuperMap.Geometry.MultiPolygon");
355+
expect(geoRegion.componentTypes[0]).toEqual("SuperMap.Geometry.Polygon");
356+
expect(geoRegion.components.length).toEqual(2);
357+
for (var i = 0; i < geoRegion.components.length; i++) {
358+
expect(geoRegion.components[i].CLASS_NAME).toEqual("SuperMap.Geometry.Polygon");
359+
var components = geoRegion.components[i].components[0].components;
360+
expect(components.length).toEqual(5);
361+
for(var j = 0;j<components.length;j++){
362+
expect(components[j].type).toEqual("Point");
363+
expect(components[j].x).not.toBeNaN();
364+
expect(components[j].y).not.toBeNaN();
365+
}
366+
}
367+
serverGeometry.destroy();
368+
});
369+
370+
//将服务端的面几何对象转换为客户端几何对象
371+
it('toGeoRegionEPS_Null', function () {
372+
var serverGeometry = new SuperMap.ServerGeometry({parts: []});
373+
var geoRegionEPS_Null = serverGeometry.toGeoRegionEPS();
374+
expect(geoRegionEPS_Null).toBeNull();
375+
serverGeometry.destroy();
376+
});
377+
378+
it('toGeoRegionEPS_parts =[1]', function () {
379+
var options = {
380+
id: 'test',
381+
parts: [1],
382+
points: [{"y": -4377.027184298267, "x": 4020.0045221720466},
383+
{"y": -4381.569363260499, "x": 4057.0600591960642},
384+
{"y": -4382.60877717323, "x": 4064.595810063362}],
385+
};
386+
var serverGeometry = new SuperMap.ServerGeometry(options);
387+
var geoRegionEPS = serverGeometry.toGeoRegionEPS();
388+
expect(geoRegionEPS).not.toBeNull();
389+
expect(geoRegionEPS.CLASS_NAME).toEqual("SuperMap.Geometry.MultiPolygon");
390+
expect(geoRegionEPS.componentTypes[0]).toEqual("SuperMap.Geometry.Polygon");
391+
expect(geoRegionEPS.components.length).toEqual(1);
392+
var component = geoRegionEPS.components[0].components[0];
393+
expect(component.CLASS_NAME).toEqual("SuperMap.Geometry.LinearRing");
394+
expect(component.componentTypes[0]).toEqual("SuperMap.Geometry.Point");
395+
var components = component.components;
396+
expect(components.length).toEqual(4);
397+
for (var i = 0; i < components.length; i++) {
398+
expect(components[i].type).toEqual("Point");
399+
expect(components[i].x).not.toBeNaN();
400+
expect(components[i].y).not.toBeNaN();
401+
expect(components[0]).toEqual(components[3]);
402+
}
403+
serverGeometry.destroy();
404+
});
405+
406+
it('toGeoRegionEPS_parts = [4, 4]', function () {
407+
var options = {
408+
id: 'test',
409+
parts: [4, 4],
410+
points: [{"y": -4377.027184298267, "x": 4020.0045221720466},
411+
{"y": -4381.569363260499, "x": 4057.0600591960642},
412+
{"y": -4382.60877717323, "x": 4064.595810063362},
413+
{"y": -4382.939424428795, "x": 4076.2655245045335},
414+
{"y": -4382.333381109672, "x": 4215.049444583775},
415+
{"y": -4382.389670274902, "x": 4247.756955878764},
416+
{"y": -4382.285032149534, "x": 4428.153084011883},
417+
{"y": -4383.017499027105, "x": 4647.579232906979}],
418+
type: SuperMap.GeometryType.LINE
419+
};
420+
var serverGeometry = new SuperMap.ServerGeometry(options);
421+
var geoRegionEPS = serverGeometry.toGeoRegionEPS();
422+
expect(geoRegionEPS).not.toBeNull();
423+
expect(geoRegionEPS.CLASS_NAME).toEqual("SuperMap.Geometry.MultiPolygon");
424+
expect(geoRegionEPS.componentTypes[0]).toEqual("SuperMap.Geometry.Polygon");
425+
expect(geoRegionEPS.components.length).toEqual(2);
426+
for (var i = 0; i < geoRegionEPS.components.length; i++) {
427+
expect(geoRegionEPS.components[i].CLASS_NAME).toEqual("SuperMap.Geometry.Polygon");
428+
expect(geoRegionEPS.components[i].bounds).not.toBeNull();
429+
expect(geoRegionEPS.components[i].components[0].CLASS_NAME).toEqual("SuperMap.Geometry.LinearRing");
430+
var components = geoRegionEPS.components[i].components[0].components;
431+
expect(components.length).toEqual(5);
432+
for (var j = 0; j < components.length; j++) {
433+
expect(components[j].type).toEqual("Point");
434+
expect(components[j].x).not.toBeNaN();
435+
expect(components[j].y).not.toBeNaN();
436+
}
437+
}
438+
serverGeometry.destroy();
439+
});
440+
441+
it('IsClockWise', function () {
442+
var points1= [{"y": -4377.027184298267, "x": 4020.0045221720466},
443+
{"y": -4381.569363260499, "x": 4057.0600591960642},
444+
{"y": -4382.60877717323, "x": 4064.595810063362},
445+
{"y": -4382.939424428795, "x": 4076.2655245045335},
446+
{"y": -4377.027184298267, "x": 4020.0045221720466}];
447+
var result1 = SuperMap.ServerGeometry.IsClockWise(points1);
448+
expect(result1).toEqual(23.052148170943838);
449+
var points2 = [{"y": -4377.027184298267, "x": 4020.0045221720466},
450+
{"y": -4381.569363260499, "x": 4057.0600591960642}];
451+
var result2 = SuperMap.ServerGeometry.IsClockWise(points2);
452+
expect(result2).toEqual(0);
453+
});
244454
});

test/test-main-common.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ require('./common/iServer/ComputeWeightMatrixServiceSpec.js');
1212
require('./common/iServer/DensityAnalystServiceSpec.js');
1313
require('./common/iServer/EditFeaturesServiceSpec.js');
1414
require('./common/iServer/FacilityAnalystStreamParametersSpec.js');
15+
require('./common/iServer/FacilityAnalystUpstream3DParametersSpec.js');
1516
require('./common/iServer/FieldStatisticServiceSpec.js');
1617
require('./common/iServer/FindClosestFacilitiesServiceSpec.js');
1718
require('./common/iServer/FindLocationServiceSpec.js');
@@ -37,6 +38,7 @@ require('./common/iServer/LabelMixedStyleSpec.js');
3738
require('./common/iServer/MapServiceSpec.js');
3839
require('./common/iServer/MathExpressionAnalysisServiceSpec.js');
3940
require('./common/iServer/MeasureServiceSpec.js');
41+
require('./common/iServer/OverlapDisplayedOptionsSpec.js');
4042
require('./common/iServer/OverlayAnalystServiceSpec.js');
4143
require('./common/iServer/QueryByBoundsServiceSpec.js');
4244
require('./common/iServer/QueryByDistanceServiceSpec.js');
@@ -95,6 +97,7 @@ require('./common/commonTypes/BaseTypesSpec.js');
9597
require('./common/commonTypes/BoundsSpec.js');
9698
require('./common/commonTypes/DateSpec.js');
9799
require('./common/commonTypes/LonLatSpec.js');
100+
require('./common/commonTypes/PixelSpec.js');
98101
require('./common/commonTypes/VectorSpec.js');
99102
require('./common/commonTypes/geometry/CollectionSpec.js');
100103
require('./common/commonTypes/geometry/GeoTextSpec.js');

0 commit comments

Comments
 (0)