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