1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
<html>
<head>
<script src="../OLLoader.js"></script>
<script type="text/javascript">
var point = new OpenLayers.Geometry.Point(10, 15);
function test_MultiPoint_constructor (t) {
t.plan( 2 );
var multipoint = new OpenLayers.Geometry.MultiPoint();
t.ok( multipoint instanceof OpenLayers.Geometry.MultiPoint, "new OpenLayers.Geometry.MultiPoint returns multipoint object" );
t.eq( multipoint.CLASS_NAME, "OpenLayers.Geometry.MultiPoint", "multipoint.CLASS_NAME is set correctly");
}
function test_MultiPoint_constructor (t) {
t.plan( 3 );
var multipoint = new OpenLayers.Geometry.MultiPoint([point]);
t.ok( multipoint instanceof OpenLayers.Geometry.MultiPoint, "new OpenLayers.Geometry.MultiPoint returns multipoint object" );
t.eq( multipoint.CLASS_NAME, "OpenLayers.Geometry.MultiPoint", "multipoint.CLASS_NAME is set correctly");
t.eq( multipoint.components.length, 1, "multipolygon.components.length is set correctly");
}
function test_MultiPoint_move(t) {
t.plan(2);
var multipoint = new OpenLayers.Geometry.MultiPoint([point]);
var x = point.x;
var y = point.y;
var dx = 10 * Math.random();
var dy = 10 * Math.random();
multipoint.move(dx, dy);
t.eq(multipoint.components[0].x, x + dx, "move() correctly modifies x");
t.eq(multipoint.components[0].y, y + dy, "move() correctly modifies y");
}
function test_distanceTo(t) {
var points = [
new OpenLayers.Geometry.Point(0, 0),
new OpenLayers.Geometry.Point(10, 0),
new OpenLayers.Geometry.Point(0, 9),
new OpenLayers.Geometry.Point(-5, 0),
new OpenLayers.Geometry.Point(-5, 4)
];
var geoms = [
new OpenLayers.Geometry.MultiPoint([points[0], points[1]]),
new OpenLayers.Geometry.MultiPoint([points[2], points[3]]),
points[4]
];
var cases = [{
got: geoms[0].distanceTo(geoms[0]),
expected: 0
}, {
got: geoms[0].distanceTo(geoms[1]),
expected: 5
}, {
got: geoms[1].distanceTo(geoms[2]),
expected: 4
}, {
got: geoms[0].distanceTo(geoms[1], {details: true}),
expected: {
distance: 5,
x0: 0, y0: 0,
x1: -5, y1: 0
}
}, {
got: geoms[1].distanceTo(geoms[0], {details: true}),
expected: {
distance: 5,
x0: -5, y0: 0,
x1: 0, y1: 0
}
}, {
got: geoms[1].distanceTo(geoms[2], {details: true}),
expected: {
distance: 4,
x0: -5, y0: 0,
x1: -5, y1: 4
}
}];
t.plan(cases.length);
for(var i=0; i<cases.length; ++i) {
t.eq(cases[i].got, cases[i].expected, "case " + i);
}
}
function test_MultiPoint_equals(t) {
t.plan(3);
var x = Math.random() * 100;
var y = Math.random() * 100;
var geometry = new OpenLayers.Geometry.MultiPoint(
[new OpenLayers.Geometry.Point(x, y)]);
var equal = new OpenLayers.Geometry.MultiPoint(
[new OpenLayers.Geometry.Point(x, y)]);
var offX = new OpenLayers.Geometry.MultiPoint(
[new OpenLayers.Geometry.Point(x + 1, y)]);
var offY = new OpenLayers.Geometry.MultiPoint(
[new OpenLayers.Geometry.Point(x, y + 1)]);
t.ok(geometry.equals(equal),
"equals() returns true for a geometry with equivalent coordinates");
t.ok(!geometry.equals(offX),
"equals() returns false for a geometry with offset x");
t.ok(!geometry.equals(offY),
"equals() returns false for a geometry with offset y");
}
function test_MultiPoint_clone(t) {
t.plan(2);
var x = Math.random() * 100;
var y = Math.random() * 100;
var geometry = new OpenLayers.Geometry.MultiPoint(
[new OpenLayers.Geometry.Point(x, y)]);
var clone = geometry.clone();
t.ok(clone instanceof OpenLayers.Geometry.MultiPoint,
"clone() creates an OpenLayers.Geometry.MultiPoint");
t.ok(geometry.equals(clone), "clone has equivalent coordinates");
}
</script>
</head>
<body>
</body>
</html>
|