Changeset 6534 for anuga_core/source/anuga/utilities/test_polygon.py
- Timestamp:
- Mar 17, 2009, 5:44:57 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
anuga_core/source/anuga/utilities/test_polygon.py
r6215 r6534 195 195 196 196 197 def test_is_inside_polygon_quick(self): 198 """test_is_inside_polygon_quick 199 200 Test fast version of of is_inside_polygon 201 """ 202 203 # Simplest case: Polygon is the unit square 204 polygon = [[0,0], [1,0], [1,1], [0,1]] 205 206 assert is_inside_polygon_quick( (0.5, 0.5), polygon ) 207 assert not is_inside_polygon_quick( (0.5, 1.5), polygon ) 208 assert not is_inside_polygon_quick( (0.5, -0.5), polygon ) 209 assert not is_inside_polygon_quick( (-0.5, 0.5), polygon ) 210 assert not is_inside_polygon_quick( (1.5, 0.5), polygon ) 211 212 # Try point on borders 213 assert is_inside_polygon_quick( (1., 0.5), polygon, closed=True) 214 assert is_inside_polygon_quick( (0.5, 1), polygon, closed=True) 215 assert is_inside_polygon_quick( (0., 0.5), polygon, closed=True) 216 assert is_inside_polygon_quick( (0.5, 0.), polygon, closed=True) 217 218 assert not is_inside_polygon_quick( (0.5, 1), polygon, closed=False) 219 assert not is_inside_polygon_quick( (0., 0.5), polygon, closed=False) 220 assert not is_inside_polygon_quick( (0.5, 0.), polygon, closed=False) 221 assert not is_inside_polygon_quick( (1., 0.5), polygon, closed=False) 222 223 224 225 197 226 def test_inside_polygon_main(self): 198 227 … … 223 252 assert not is_inside_polygon( (0.5, -0.5), polygon ) 224 253 254 255 assert is_inside_polygon_quick( (0.5, 0.5), polygon ) 256 assert is_inside_polygon_quick( (1, -0.5), polygon ) 257 assert is_inside_polygon_quick( (1.5, 0), polygon ) 258 259 assert not is_inside_polygon_quick( (0.5, 1.5), polygon ) 260 assert not is_inside_polygon_quick( (0.5, -0.5), polygon ) 225 261 226 262 # Very convoluted polygon … … 406 442 assert num.allclose( res, [1,2,3,5,4,0] ) 407 443 assert count == 3 408 444 445 446 447 def test_is_inside_triangle(self): 448 449 450 # Simplest case: 451 triangle = [[0, 0], [1, 0], [0.5, 1]] 452 453 assert is_inside_triangle((0.5, 0.5), triangle) 454 assert is_inside_triangle((0.9, 0.1), triangle) 455 assert not is_inside_triangle((0.5, 1.5), triangle) 456 assert not is_inside_triangle((0.5, -0.5), triangle) 457 assert not is_inside_triangle((-0.5, 0.5), triangle) 458 assert not is_inside_triangle((1.5, 0.5), triangle) 459 460 # Try point on borders 461 assert is_inside_triangle((0.5, 0), triangle, closed=True) 462 assert is_inside_triangle((1, 0), triangle, closed=True) 463 464 assert not is_inside_triangle((0.5, 0), triangle, closed=False) 465 assert not is_inside_triangle((1, 0), triangle, closed=False) 466 467 # Try vertices 468 for P in triangle: 469 assert is_inside_triangle(P, triangle, closed=True) 470 assert not is_inside_triangle(P, triangle, closed=False) 471 472 473 # Slightly different 474 triangle = [[0, 0.1], [1, -0.2], [0.5, 1]] 475 assert is_inside_triangle((0.5, 0.5), triangle) 476 assert is_inside_triangle((0.4, 0.1), triangle) 477 assert not is_inside_triangle((1, 1), triangle) 478 479 # Try vertices 480 for P in triangle: 481 assert is_inside_triangle(P, triangle, closed=True) 482 assert not is_inside_triangle(P, triangle, closed=False) 483 484 485 409 486 410 487 def test_populate_polygon(self): … … 416 493 for point in points: 417 494 assert is_inside_polygon(point, polygon) 418 419 420 #Very convoluted polygon 495 assert is_inside_polygon_quick(point, polygon) 496 497 498 # Very convoluted polygon 421 499 polygon = [[0,0], [10,10], [15,5], [20, 10], [25,0], [30,10], [40,-10]] 422 500 … … 426 504 for point in points: 427 505 assert is_inside_polygon(point, polygon) 506 assert is_inside_polygon_quick(point, polygon) 428 507 429 508 … … 1782 1861 #------------------------------------------------------------- 1783 1862 if __name__ == "__main__": 1784 suite = unittest.makeSuite(Test_Polygon, 'test')1863 suite = unittest.makeSuite(Test_Polygon, 'test') 1785 1864 runner = unittest.TextTestRunner() 1786 1865 runner.run(suite)
Note: See TracChangeset
for help on using the changeset viewer.