File: MultiPoint.html

package info (click to toggle)
openlayers 2.13.1%2Bds2-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 67,180 kB
  • ctags: 11,977
  • sloc: xml: 7,435; python: 891; sh: 44; makefile: 23
file content (130 lines) | stat: -rw-r--r-- 4,749 bytes parent folder | download | duplicates (7)
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>