2015-06-26 20:42:55 +00:00
|
|
|
import unittest
|
|
|
|
import camlib
|
|
|
|
|
2015-11-01 23:07:52 +00:00
|
|
|
|
2015-06-26 20:42:55 +00:00
|
|
|
class GerberBuffer(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
|
|
self.gerber1 = camlib.Gerber()
|
|
|
|
self.gerber1.use_buffer_for_union = True
|
2015-11-01 23:07:52 +00:00
|
|
|
self.gerber1.parse_file("tests/gerber_files/STM32F4-spindle.cmp")
|
2015-06-26 20:42:55 +00:00
|
|
|
geometry1 = self.gerber1.solid_geometry
|
2015-10-28 01:27:27 +00:00
|
|
|
self.geometry1_area = self.compute_area(geometry1)
|
2015-06-26 20:42:55 +00:00
|
|
|
self.gerber2 = camlib.Gerber()
|
|
|
|
self.gerber2.use_buffer_for_union = False
|
2015-11-01 23:07:52 +00:00
|
|
|
self.gerber2.parse_file("tests/gerber_files/STM32F4-spindle.cmp")
|
2015-06-26 20:42:55 +00:00
|
|
|
geometry2 = self.gerber2.solid_geometry
|
|
|
|
self.geometry2_area = self.compute_area (geometry2)
|
|
|
|
|
2015-10-28 01:27:27 +00:00
|
|
|
def compute_area(self, geometry):
|
2015-06-26 20:42:55 +00:00
|
|
|
area = 0
|
|
|
|
try:
|
|
|
|
for geo in geometry:
|
|
|
|
area += geo.area
|
|
|
|
|
|
|
|
## Not iterable, do the actual indexing and add.
|
|
|
|
except TypeError:
|
|
|
|
area = geometry.area
|
|
|
|
return area
|
|
|
|
|
|
|
|
def test_buffer(self):
|
2015-10-28 01:27:27 +00:00
|
|
|
self.assertLessEqual(abs(self.geometry2_area - self.geometry1_area), 0.000001)
|
2015-06-26 20:42:55 +00:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
2015-10-28 01:27:27 +00:00
|
|
|
unittest.main()
|