summaryrefslogtreecommitdiff
path: root/gerbonara/gerber/tests/test_primitives.py
diff options
context:
space:
mode:
Diffstat (limited to 'gerbonara/gerber/tests/test_primitives.py')
-rw-r--r--gerbonara/gerber/tests/test_primitives.py533
1 files changed, 0 insertions, 533 deletions
diff --git a/gerbonara/gerber/tests/test_primitives.py b/gerbonara/gerber/tests/test_primitives.py
index d4ee653..3f8df51 100644
--- a/gerbonara/gerber/tests/test_primitives.py
+++ b/gerbonara/gerber/tests/test_primitives.py
@@ -406,76 +406,6 @@ def test_circle_offset():
assert c.position == (1.0, 1.0)
-def test_ellipse_ctor():
- """ Test ellipse creation
- """
- e = Ellipse((2, 2), 3, 2)
- assert e.position == (2, 2)
- assert e.width == 3
- assert e.height == 2
-
-
-def test_ellipse_bounds():
- """ Test ellipse bounding box calculation
- """
- e = Ellipse((2, 2), 4, 2)
- assert e.bounding_box == ((0, 1), (4, 3))
- e = Ellipse((2, 2), 4, 2, rotation=90)
- assert e.bounding_box == ((1, 0), (3, 4))
- e = Ellipse((2, 2), 4, 2, rotation=180)
- assert e.bounding_box == ((0, 1), (4, 3))
- e = Ellipse((2, 2), 4, 2, rotation=270)
- assert e.bounding_box == ((1, 0), (3, 4))
-
-
-def test_ellipse_conversion():
- e = Ellipse((2.54, 25.4), 254.0, 2540.0, units="metric")
-
- # No effect
- e.to_metric()
- assert e.position == (2.54, 25.4)
- assert e.width == 254.0
- assert e.height == 2540.0
-
- e.to_inch()
- assert e.position == (0.1, 1.0)
- assert e.width == 10.0
- assert e.height == 100.0
-
- # No effect
- e.to_inch()
- assert e.position == (0.1, 1.0)
- assert e.width == 10.0
- assert e.height == 100.0
-
- e = Ellipse((0.1, 1.0), 10.0, 100.0, units="inch")
-
- # no effect
- e.to_inch()
- assert e.position == (0.1, 1.0)
- assert e.width == 10.0
- assert e.height == 100.0
-
- e.to_metric()
- assert e.position == (2.54, 25.4)
- assert e.width == 254.0
- assert e.height == 2540.0
-
- # No effect
- e.to_metric()
- assert e.position == (2.54, 25.4)
- assert e.width == 254.0
- assert e.height == 2540.0
-
-
-def test_ellipse_offset():
- e = Ellipse((0, 0), 1, 2)
- e.offset(1, 0)
- assert e.position == (1.0, 0.0)
- e.offset(0, 1)
- assert e.position == (1.0, 1.0)
-
-
def test_rectangle_ctor():
""" Test rectangle creation
"""
@@ -635,199 +565,6 @@ def test_rectangle_offset():
assert r.position == (1.0, 1.0)
-def test_diamond_ctor():
- """ Test diamond creation
- """
- test_cases = (((0, 0), 1, 1), ((0, 0), 1, 2), ((1, 1), 1, 2))
- for pos, width, height in test_cases:
- d = Diamond(pos, width, height)
- assert d.position == pos
- assert d.width == width
- assert d.height == height
-
-
-def test_diamond_bounds():
- """ Test diamond bounding box calculation
- """
- d = Diamond((0, 0), 2, 2)
- bounds = d.bounding_box
- pytest.approx(bounds[0], (-1, -1))
- pytest.approx(bounds[1], (1, 1))
- d = Diamond((0, 0), math.sqrt(2), math.sqrt(2), rotation=45)
- bounds = d.bounding_box
- pytest.approx(bounds[0], (-1, -1))
- pytest.approx(bounds[1], (1, 1))
-
-
-def test_diamond_conversion():
- d = Diamond((2.54, 25.4), 254.0, 2540.0, units="metric")
-
- d.to_metric()
- assert d.position == (2.54, 25.4)
- assert d.width == 254.0
- assert d.height == 2540.0
-
- d.to_inch()
- assert d.position == (0.1, 1.0)
- assert d.width == 10.0
- assert d.height == 100.0
-
- d.to_inch()
- assert d.position == (0.1, 1.0)
- assert d.width == 10.0
- assert d.height == 100.0
-
- d = Diamond((0.1, 1.0), 10.0, 100.0, units="inch")
-
- d.to_inch()
- assert d.position == (0.1, 1.0)
- assert d.width == 10.0
- assert d.height == 100.0
-
- d.to_metric()
- assert d.position == (2.54, 25.4)
- assert d.width == 254.0
- assert d.height == 2540.0
-
- d.to_metric()
- assert d.position == (2.54, 25.4)
- assert d.width == 254.0
- assert d.height == 2540.0
-
-
-def test_diamond_offset():
- d = Diamond((0, 0), 1, 2)
- d.offset(1, 0)
- assert d.position == (1.0, 0.0)
- d.offset(0, 1)
- assert d.position == (1.0, 1.0)
-
-
-def test_chamfer_rectangle_ctor():
- """ Test chamfer rectangle creation
- """
- test_cases = (
- ((0, 0), 1, 1, 0.2, (True, True, False, False)),
- ((0, 0), 1, 2, 0.3, (True, True, True, True)),
- ((1, 1), 1, 2, 0.4, (False, False, False, False)),
- )
- for pos, width, height, chamfer, corners in test_cases:
- r = ChamferRectangle(pos, width, height, chamfer, corners)
- assert r.position == pos
- assert r.width == width
- assert r.height == height
- assert r.chamfer == chamfer
- pytest.approx(r.corners, corners)
-
-
-def test_chamfer_rectangle_bounds():
- """ Test chamfer rectangle bounding box calculation
- """
- r = ChamferRectangle((0, 0), 2, 2, 0.2, (True, True, False, False))
- bounds = r.bounding_box
- pytest.approx(bounds[0], (-1, -1))
- pytest.approx(bounds[1], (1, 1))
- r = ChamferRectangle((0, 0), 2, 2, 0.2, (True, True, False, False), rotation=45)
- bounds = r.bounding_box
- pytest.approx(bounds[0], (-math.sqrt(2), -math.sqrt(2)))
- pytest.approx(bounds[1], (math.sqrt(2), math.sqrt(2)))
-
-
-def test_chamfer_rectangle_conversion():
- r = ChamferRectangle(
- (2.54, 25.4), 254.0, 2540.0, 0.254, (True, True, False, False), units="metric"
- )
-
- r.to_metric()
- assert r.position == (2.54, 25.4)
- assert r.width == 254.0
- assert r.height == 2540.0
- assert r.chamfer == 0.254
-
- r.to_inch()
- assert r.position == (0.1, 1.0)
- assert r.width == 10.0
- assert r.height == 100.0
- assert r.chamfer == 0.01
-
- r.to_inch()
- assert r.position == (0.1, 1.0)
- assert r.width == 10.0
- assert r.height == 100.0
- assert r.chamfer == 0.01
-
- r = ChamferRectangle(
- (0.1, 1.0), 10.0, 100.0, 0.01, (True, True, False, False), units="inch"
- )
- r.to_inch()
- assert r.position == (0.1, 1.0)
- assert r.width == 10.0
- assert r.height == 100.0
- assert r.chamfer == 0.01
-
- r.to_metric()
- assert r.position == (2.54, 25.4)
- assert r.width == 254.0
- assert r.height == 2540.0
- assert r.chamfer == 0.254
-
- r.to_metric()
- assert r.position == (2.54, 25.4)
- assert r.width == 254.0
- assert r.height == 2540.0
- assert r.chamfer == 0.254
-
-
-def test_chamfer_rectangle_offset():
- r = ChamferRectangle((0, 0), 1, 2, 0.01, (True, True, False, False))
- r.offset(1, 0)
- assert r.position == (1.0, 0.0)
- r.offset(0, 1)
- assert r.position == (1.0, 1.0)
-
-
-def test_chamfer_rectangle_vertices():
- TEST_VECTORS = [
- (
- 1.0,
- (True, True, True, True),
- (
- (-2.5, -1.5),
- (-2.5, 1.5),
- (-1.5, 2.5),
- (1.5, 2.5),
- (2.5, 1.5),
- (2.5, -1.5),
- (1.5, -2.5),
- (-1.5, -2.5),
- ),
- ),
- (
- 1.0,
- (True, False, False, False),
- ((-2.5, -2.5), (-2.5, 2.5), (1.5, 2.5), (2.5, 1.5), (2.5, -2.5)),
- ),
- (
- 1.0,
- (False, True, False, False),
- ((-2.5, -2.5), (-2.5, 1.5), (-1.5, 2.5), (2.5, 2.5), (2.5, -2.5)),
- ),
- (
- 1.0,
- (False, False, True, False),
- ((-2.5, -1.5), (-2.5, 2.5), (2.5, 2.5), (2.5, -2.5), (-1.5, -2.5)),
- ),
- (
- 1.0,
- (False, False, False, True),
- ((-2.5, -2.5), (-2.5, 2.5), (2.5, 2.5), (2.5, -1.5), (1.5, -2.5)),
- ),
- ]
- for chamfer, corners, expected in TEST_VECTORS:
- r = ChamferRectangle((0, 0), 5, 5, chamfer, corners)
- assert set(r.vertices) == set(expected)
-
-
def test_round_rectangle_ctor():
""" Test round rectangle creation
"""
@@ -858,60 +595,6 @@ def test_round_rectangle_bounds():
pytest.approx(bounds[1], (math.sqrt(2), math.sqrt(2)))
-def test_round_rectangle_conversion():
- r = RoundRectangle(
- (2.54, 25.4), 254.0, 2540.0, 0.254, (True, True, False, False), units="metric"
- )
-
- r.to_metric()
- assert r.position == (2.54, 25.4)
- assert r.width == 254.0
- assert r.height == 2540.0
- assert r.radius == 0.254
-
- r.to_inch()
- assert r.position == (0.1, 1.0)
- assert r.width == 10.0
- assert r.height == 100.0
- assert r.radius == 0.01
-
- r.to_inch()
- assert r.position == (0.1, 1.0)
- assert r.width == 10.0
- assert r.height == 100.0
- assert r.radius == 0.01
-
- r = RoundRectangle(
- (0.1, 1.0), 10.0, 100.0, 0.01, (True, True, False, False), units="inch"
- )
-
- r.to_inch()
- assert r.position == (0.1, 1.0)
- assert r.width == 10.0
- assert r.height == 100.0
- assert r.radius == 0.01
-
- r.to_metric()
- assert r.position == (2.54, 25.4)
- assert r.width == 254.0
- assert r.height == 2540.0
- assert r.radius == 0.254
-
- r.to_metric()
- assert r.position == (2.54, 25.4)
- assert r.width == 254.0
- assert r.height == 2540.0
- assert r.radius == 0.254
-
-
-def test_round_rectangle_offset():
- r = RoundRectangle((0, 0), 1, 2, 0.01, (True, True, False, False))
- r.offset(1, 0)
- assert r.position == (1.0, 0.0)
- r.offset(0, 1)
- assert r.position == (1.0, 1.0)
-
-
def test_obround_ctor():
""" Test obround creation
"""
@@ -1119,222 +802,6 @@ def test_region_offset():
pytest.approx(new_ylim, tuple([y + 1 for y in ylim]))
-def test_round_butterfly_ctor():
- """ Test round butterfly creation
- """
- test_cases = (((0, 0), 3), ((0, 0), 5), ((1, 1), 7))
- for pos, diameter in test_cases:
- b = RoundButterfly(pos, diameter)
- assert b.position == pos
- assert b.diameter == diameter
- assert b.radius == diameter / 2.0
-
-
-def test_round_butterfly_ctor_validation():
- """ Test RoundButterfly argument validation
- """
- pytest.raises(TypeError, RoundButterfly, 3, 5)
- pytest.raises(TypeError, RoundButterfly, (3, 4, 5), 5)
-
-
-def test_round_butterfly_conversion():
- b = RoundButterfly((2.54, 25.4), 254.0, units="metric")
-
- # No Effect
- b.to_metric()
- assert b.position == (2.54, 25.4)
- assert b.diameter == (254.0)
-
- b.to_inch()
- assert b.position == (0.1, 1.0)
- assert b.diameter == 10.0
-
- # No effect
- b.to_inch()
- assert b.position == (0.1, 1.0)
- assert b.diameter == 10.0
-
- b = RoundButterfly((0.1, 1.0), 10.0, units="inch")
-
- # No effect
- b.to_inch()
- assert b.position == (0.1, 1.0)
- assert b.diameter == 10.0
-
- b.to_metric()
- assert b.position == (2.54, 25.4)
- assert b.diameter == (254.0)
-
- # No Effect
- b.to_metric()
- assert b.position == (2.54, 25.4)
- assert b.diameter == (254.0)
-
-
-def test_round_butterfly_offset():
- b = RoundButterfly((0, 0), 1)
- b.offset(1, 0)
- assert b.position == (1.0, 0.0)
- b.offset(0, 1)
- assert b.position == (1.0, 1.0)
-
-
-def test_round_butterfly_bounds():
- """ Test RoundButterfly bounding box calculation
- """
- b = RoundButterfly((0, 0), 2)
- bounds = b.bounding_box
- pytest.approx(bounds[0], (-1, -1))
- pytest.approx(bounds[1], (1, 1))
-
-
-def test_square_butterfly_ctor():
- """ Test SquareButterfly creation
- """
- test_cases = (((0, 0), 3), ((0, 0), 5), ((1, 1), 7))
- for pos, side in test_cases:
- b = SquareButterfly(pos, side)
- assert b.position == pos
- assert b.side == side
-
-
-def test_square_butterfly_ctor_validation():
- """ Test SquareButterfly argument validation
- """
- pytest.raises(TypeError, SquareButterfly, 3, 5)
- pytest.raises(TypeError, SquareButterfly, (3, 4, 5), 5)
-
-
-def test_square_butterfly_bounds():
- """ Test SquareButterfly bounding box calculation
- """
- b = SquareButterfly((0, 0), 2)
- bounds = b.bounding_box
- pytest.approx(bounds[0], (-1, -1))
- pytest.approx(bounds[1], (1, 1))
-
-
-def test_squarebutterfly_conversion():
- b = SquareButterfly((2.54, 25.4), 254.0, units="metric")
-
- # No effect
- b.to_metric()
- assert b.position == (2.54, 25.4)
- assert b.side == (254.0)
-
- b.to_inch()
- assert b.position == (0.1, 1.0)
- assert b.side == 10.0
-
- # No effect
- b.to_inch()
- assert b.position == (0.1, 1.0)
- assert b.side == 10.0
-
- b = SquareButterfly((0.1, 1.0), 10.0, units="inch")
-
- # No effect
- b.to_inch()
- assert b.position == (0.1, 1.0)
- assert b.side == 10.0
-
- b.to_metric()
- assert b.position == (2.54, 25.4)
- assert b.side == (254.0)
-
- # No effect
- b.to_metric()
- assert b.position == (2.54, 25.4)
- assert b.side == (254.0)
-
-
-def test_square_butterfly_offset():
- b = SquareButterfly((0, 0), 1)
- b.offset(1, 0)
- assert b.position == (1.0, 0.0)
- b.offset(0, 1)
- assert b.position == (1.0, 1.0)
-
-
-def test_donut_ctor():
- """ Test Donut primitive creation
- """
- test_cases = (
- ((0, 0), "round", 3, 5),
- ((0, 0), "square", 5, 7),
- ((1, 1), "hexagon", 7, 9),
- ((2, 2), "octagon", 9, 11),
- )
- for pos, shape, in_d, out_d in test_cases:
- d = Donut(pos, shape, in_d, out_d)
- assert d.position == pos
- assert d.shape == shape
- assert d.inner_diameter == in_d
- assert d.outer_diameter == out_d
-
-
-def test_donut_ctor_validation():
- pytest.raises(TypeError, Donut, 3, "round", 5, 7)
- pytest.raises(TypeError, Donut, (3, 4, 5), "round", 5, 7)
- pytest.raises(ValueError, Donut, (0, 0), "triangle", 3, 5)
- pytest.raises(ValueError, Donut, (0, 0), "round", 5, 3)
-
-
-def test_donut_bounds():
- d = Donut((0, 0), "round", 0.0, 2.0)
- bounds = d.bounding_box
- assert bounds[0] == (-1.0, -1.0)
- assert bounds[1] == (1.0, 1.0)
-
-
-def test_donut_conversion():
- d = Donut((2.54, 25.4), "round", 254.0, 2540.0, units="metric")
-
- # No effect
- d.to_metric()
- assert d.position == (2.54, 25.4)
- assert d.inner_diameter == 254.0
- assert d.outer_diameter == 2540.0
-
- d.to_inch()
- assert d.position == (0.1, 1.0)
- assert d.inner_diameter == 10.0
- assert d.outer_diameter == 100.0
-
- # No effect
- d.to_inch()
- assert d.position == (0.1, 1.0)
- assert d.inner_diameter == 10.0
- assert d.outer_diameter == 100.0
-
- d = Donut((0.1, 1.0), "round", 10.0, 100.0, units="inch")
-
- # No effect
- d.to_inch()
- assert d.position == (0.1, 1.0)
- assert d.inner_diameter == 10.0
- assert d.outer_diameter == 100.0
-
- d.to_metric()
- assert d.position == (2.54, 25.4)
- assert d.inner_diameter == 254.0
- assert d.outer_diameter == 2540.0
-
- # No effect
- d.to_metric()
- assert d.position == (2.54, 25.4)
- assert d.inner_diameter == 254.0
- assert d.outer_diameter == 2540.0
-
-
-def test_donut_offset():
- d = Donut((0, 0), "round", 1, 10)
- d.offset(1, 0)
- assert d.position == (1.0, 0.0)
- d.offset(0, 1)
- assert d.position == (1.0, 1.0)
-
-
def test_drill_ctor():
""" Test drill primitive creation
"""