test_gerber_buffer.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import unittest
  2. import camlib
  3. from shapely.geometry import Polygon, LineString, Point, LinearRing
  4. from shapely.geometry import MultiPoint, MultiPolygon
  5. from shapely.geometry import box as shply_box
  6. from shapely.ops import cascaded_union
  7. import shapely.affinity as affinity
  8. from shapely.wkt import loads as sloads
  9. from shapely.wkt import dumps as sdumps
  10. from shapely.geometry.base import BaseGeometry
  11. class GerberBuffer(unittest.TestCase):
  12. def setUp(self):
  13. self.gerber1 = camlib.Gerber()
  14. self.gerber1.use_buffer_for_union = True
  15. self.gerber1.parse_file ("./gerber_files/STM32F4-spindle.cmp")
  16. geometry1 = self.gerber1.solid_geometry
  17. self.geometry1_area = self.compute_area (geometry1)
  18. self.gerber2 = camlib.Gerber()
  19. self.gerber2.use_buffer_for_union = False
  20. self.gerber2.parse_file ("./gerber_files/STM32F4-spindle.cmp")
  21. geometry2 = self.gerber2.solid_geometry
  22. self.geometry2_area = self.compute_area (geometry2)
  23. def compute_area (self, geometry):
  24. area = 0
  25. try:
  26. for geo in geometry:
  27. area += geo.area
  28. ## Not iterable, do the actual indexing and add.
  29. except TypeError:
  30. area = geometry.area
  31. return area
  32. def test_buffer(self):
  33. self.assertLessEqual (abs(self.geometry2_area - self.geometry1_area), 0.000001)
  34. if __name__ == '__main__':
  35. unittest.main()