9 import fields2cover
as f2c
11 def near(a, b, error = 1e-7):
12 assert abs(a - b) < error
15 line = f2c.LinearRing(f2c.VectorPoint(
16 [f2c.Point(), f2c.Point(2,0), f2c.Point(2,2), f2c.Point(0,2), f2c.Point()]));
17 cell = f2c.Cell(line);
18 cell_clone = cell.clone();
20 near(cell_clone.area(), 4)
23 ring1 = f2c.LinearRing(f2c.VectorPoint(
24 [f2c.Point(), f2c.Point(2,0), f2c.Point(2,2), f2c.Point(0,2), f2c.Point()]));
25 ring2 = f2c.LinearRing(f2c.VectorPoint(
26 [f2c.Point(0.5,0.5), f2c.Point(1.5,0.5), f2c.Point(1.5,1.5),
27 f2c.Point(0.5,1.5), f2c.Point(0.5,0.5)]));
28 near(ring1.size(), 5);
29 near(ring2.size(), 5);
36 near(cell1.size(), 2);
38 cell1_ring1 = cell1.getGeometry(0);
39 near(cell1_ring1.size(), 5);
40 near(cell1_ring1.length(), 8);
41 cell1_ring2 = cell1.getGeometry(1);
42 near(cell1_ring2.size(), 5);
43 near(cell1_ring2.length(), 4);
45 cell_ring3 = f2c.LinearRing();
46 cell1.getGeometry(0, cell_ring3);
47 near(cell_ring3.size(), 5);
48 near(cell_ring3.length(), 8);
49 cell_ring4 = f2c.LinearRing();
50 cell1.getGeometry(1, cell_ring4);
51 near(cell_ring4.size(), 5);
52 near(cell_ring4.length(), 4);
57 ring1 = f2c.LinearRing(f2c.VectorPoint(
58 [f2c.Point(), f2c.Point(2,0), f2c.Point(2,2), f2c.Point(0,2), f2c.Point()]));
60 line = cell.createLineUntilBorder(f2c.Point(1, 1), 0);
70 ring1 = f2c.LinearRing(f2c.VectorPoint(
71 [f2c.Point(), f2c.Point(2,0), f2c.Point(2,2), f2c.Point(0,2), f2c.Point()]));
74 assert cell.isPointInBorder(f2c.Point(2,2))
75 assert cell.isPointInBorder(f2c.Point(1,2))
76 assert not cell.isPointInBorder(f2c.Point(1,1))
77 assert not cell.isPointInBorder(f2c.Point(10,10))
80 cell = f2c.Cell(f2c.LinearRing(f2c.VectorPoint(
81 [f2c.Point(), f2c.Point(1,0), f2c.Point(1,1), f2c.Point(0,1), f2c.Point()])))
84 cell_buffer = f2c.Cell.buffer(cell, 2.0);
86 near(cell_buffer.area(), 25, 0.1)
89 point_buffer = f2c.Cell.buffer(p, 3.0)
90 near(point_buffer.area(), 3 * 3 * math.pi, 0.2)
94 line = f2c.LineString(f2c.VectorPoint([f2c.Point(3,4), f2c.Point(3,6)]))
95 line_buffer = f2c.Cell.buffer(line, 4.0)
96 near(line_buffer.area(), 2 * (4 * 2), 1e-5);