summaryrefslogtreecommitdiff
path: root/gerber/tests/test_primitives.py
diff options
context:
space:
mode:
Diffstat (limited to 'gerber/tests/test_primitives.py')
-rw-r--r--gerber/tests/test_primitives.py1304
1 files changed, 687 insertions, 617 deletions
diff --git a/gerber/tests/test_primitives.py b/gerber/tests/test_primitives.py
index b932297..ad5b34f 100644
--- a/gerber/tests/test_primitives.py
+++ b/gerber/tests/test_primitives.py
@@ -2,467 +2,478 @@
# -*- coding: utf-8 -*-
# Author: Hamilton Kibbe <ham@hamiltonkib.be>
-from operator import add
+import pytest
+from operator import add
from ..primitives import *
-from .tests import *
def test_primitive_smoketest():
p = Primitive()
try:
p.bounding_box
- assert_false(True, 'should have thrown the exception')
+ assert not True, "should have thrown the exception"
except NotImplementedError:
pass
- #assert_raises(NotImplementedError, p.bounding_box)
+ # pytest.raises(NotImplementedError, p.bounding_box)
p.to_metric()
p.to_inch()
- #try:
+ # try:
# p.offset(1, 1)
# assert_false(True, 'should have thrown the exception')
- #except NotImplementedError:
+ # except NotImplementedError:
# pass
-
def test_line_angle():
""" Test Line primitive angle calculation
"""
- cases = [((0, 0), (1, 0), math.radians(0)),
- ((0, 0), (1, 1), math.radians(45)),
- ((0, 0), (0, 1), math.radians(90)),
- ((0, 0), (-1, 1), math.radians(135)),
- ((0, 0), (-1, 0), math.radians(180)),
- ((0, 0), (-1, -1), math.radians(225)),
- ((0, 0), (0, -1), math.radians(270)),
- ((0, 0), (1, -1), math.radians(315)), ]
+ cases = [
+ ((0, 0), (1, 0), math.radians(0)),
+ ((0, 0), (1, 1), math.radians(45)),
+ ((0, 0), (0, 1), math.radians(90)),
+ ((0, 0), (-1, 1), math.radians(135)),
+ ((0, 0), (-1, 0), math.radians(180)),
+ ((0, 0), (-1, -1), math.radians(225)),
+ ((0, 0), (0, -1), math.radians(270)),
+ ((0, 0), (1, -1), math.radians(315)),
+ ]
for start, end, expected in cases:
l = Line(start, end, 0)
line_angle = (l.angle + 2 * math.pi) % (2 * math.pi)
- assert_almost_equal(line_angle, expected)
+ pytest.approx(line_angle, expected)
def test_line_bounds():
""" Test Line primitive bounding box calculation
"""
- cases = [((0, 0), (1, 1), ((-1, 2), (-1, 2))),
- ((-1, -1), (1, 1), ((-2, 2), (-2, 2))),
- ((1, 1), (-1, -1), ((-2, 2), (-2, 2))),
- ((-1, 1), (1, -1), ((-2, 2), (-2, 2))), ]
+ cases = [
+ ((0, 0), (1, 1), ((-1, 2), (-1, 2))),
+ ((-1, -1), (1, 1), ((-2, 2), (-2, 2))),
+ ((1, 1), (-1, -1), ((-2, 2), (-2, 2))),
+ ((-1, 1), (1, -1), ((-2, 2), (-2, 2))),
+ ]
c = Circle((0, 0), 2)
r = Rectangle((0, 0), 2, 2)
for shape in (c, r):
for start, end, expected in cases:
l = Line(start, end, shape)
- assert_equal(l.bounding_box, expected)
+ assert l.bounding_box == expected
# Test a non-square rectangle
r = Rectangle((0, 0), 3, 2)
- cases = [((0, 0), (1, 1), ((-1.5, 2.5), (-1, 2))),
- ((-1, -1), (1, 1), ((-2.5, 2.5), (-2, 2))),
- ((1, 1), (-1, -1), ((-2.5, 2.5), (-2, 2))),
- ((-1, 1), (1, -1), ((-2.5, 2.5), (-2, 2))), ]
+ cases = [
+ ((0, 0), (1, 1), ((-1.5, 2.5), (-1, 2))),
+ ((-1, -1), (1, 1), ((-2.5, 2.5), (-2, 2))),
+ ((1, 1), (-1, -1), ((-2.5, 2.5), (-2, 2))),
+ ((-1, 1), (1, -1), ((-2.5, 2.5), (-2, 2))),
+ ]
for start, end, expected in cases:
l = Line(start, end, r)
- assert_equal(l.bounding_box, expected)
+ assert l.bounding_box == expected
def test_line_vertices():
c = Circle((0, 0), 2)
l = Line((0, 0), (1, 1), c)
- assert_equal(l.vertices, None)
+ assert l.vertices == None
# All 4 compass points, all 4 quadrants and the case where start == end
- test_cases = [((0, 0), (1, 0), ((-1, -1), (-1, 1), (2, 1), (2, -1))),
- ((0, 0), (1, 1), ((-1, -1), (-1, 1),
- (0, 2), (2, 2), (2, 0), (1, -1))),
- ((0, 0), (0, 1), ((-1, -1), (-1, 2), (1, 2), (1, -1))),
- ((0, 0), (-1, 1), ((-1, -1), (-2, 0),
- (-2, 2), (0, 2), (1, 1), (1, -1))),
- ((0, 0), (-1, 0), ((-2, -1), (-2, 1), (1, 1), (1, -1))),
- ((0, 0), (-1, -1), ((-2, -2), (1, -1),
- (1, 1), (-1, 1), (-2, 0), (0, -2))),
- ((0, 0), (0, -1), ((-1, -2), (-1, 1), (1, 1), (1, -2))),
- ((0, 0), (1, -1), ((-1, -1), (0, -2),
- (2, -2), (2, 0), (1, 1), (-1, 1))),
- ((0, 0), (0, 0), ((-1, -1), (-1, 1), (1, 1), (1, -1))), ]
+ test_cases = [
+ ((0, 0), (1, 0), ((-1, -1), (-1, 1), (2, 1), (2, -1))),
+ ((0, 0), (1, 1), ((-1, -1), (-1, 1), (0, 2), (2, 2), (2, 0), (1, -1))),
+ ((0, 0), (0, 1), ((-1, -1), (-1, 2), (1, 2), (1, -1))),
+ ((0, 0), (-1, 1), ((-1, -1), (-2, 0), (-2, 2), (0, 2), (1, 1), (1, -1))),
+ ((0, 0), (-1, 0), ((-2, -1), (-2, 1), (1, 1), (1, -1))),
+ ((0, 0), (-1, -1), ((-2, -2), (1, -1), (1, 1), (-1, 1), (-2, 0), (0, -2))),
+ ((0, 0), (0, -1), ((-1, -2), (-1, 1), (1, 1), (1, -2))),
+ ((0, 0), (1, -1), ((-1, -1), (0, -2), (2, -2), (2, 0), (1, 1), (-1, 1))),
+ ((0, 0), (0, 0), ((-1, -1), (-1, 1), (1, 1), (1, -1))),
+ ]
r = Rectangle((0, 0), 2, 2)
for start, end, vertices in test_cases:
l = Line(start, end, r)
- assert_equal(set(vertices), set(l.vertices))
+ assert set(vertices) == set(l.vertices)
def test_line_conversion():
- c = Circle((0, 0), 25.4, units='metric')
- l = Line((2.54, 25.4), (254.0, 2540.0), c, units='metric')
+ c = Circle((0, 0), 25.4, units="metric")
+ l = Line((2.54, 25.4), (254.0, 2540.0), c, units="metric")
# No effect
l.to_metric()
- assert_equal(l.start, (2.54, 25.4))
- assert_equal(l.end, (254.0, 2540.0))
- assert_equal(l.aperture.diameter, 25.4)
+ assert l.start == (2.54, 25.4)
+ assert l.end == (254.0, 2540.0)
+ assert l.aperture.diameter == 25.4
l.to_inch()
- assert_equal(l.start, (0.1, 1.0))
- assert_equal(l.end, (10.0, 100.0))
- assert_equal(l.aperture.diameter, 1.0)
+ assert l.start == (0.1, 1.0)
+ assert l.end == (10.0, 100.0)
+ assert l.aperture.diameter == 1.0
# No effect
l.to_inch()
- assert_equal(l.start, (0.1, 1.0))
- assert_equal(l.end, (10.0, 100.0))
- assert_equal(l.aperture.diameter, 1.0)
+ assert l.start == (0.1, 1.0)
+ assert l.end == (10.0, 100.0)
+ assert l.aperture.diameter == 1.0
- c = Circle((0, 0), 1.0, units='inch')
- l = Line((0.1, 1.0), (10.0, 100.0), c, units='inch')
+ c = Circle((0, 0), 1.0, units="inch")
+ l = Line((0.1, 1.0), (10.0, 100.0), c, units="inch")
# No effect
l.to_inch()
- assert_equal(l.start, (0.1, 1.0))
- assert_equal(l.end, (10.0, 100.0))
- assert_equal(l.aperture.diameter, 1.0)
+ assert l.start == (0.1, 1.0)
+ assert l.end == (10.0, 100.0)
+ assert l.aperture.diameter == 1.0
l.to_metric()
- assert_equal(l.start, (2.54, 25.4))
- assert_equal(l.end, (254.0, 2540.0))
- assert_equal(l.aperture.diameter, 25.4)
+ assert l.start == (2.54, 25.4)
+ assert l.end == (254.0, 2540.0)
+ assert l.aperture.diameter == 25.4
# No effect
l.to_metric()
- assert_equal(l.start, (2.54, 25.4))
- assert_equal(l.end, (254.0, 2540.0))
- assert_equal(l.aperture.diameter, 25.4)
+ assert l.start == (2.54, 25.4)
+ assert l.end == (254.0, 2540.0)
+ assert l.aperture.diameter == 25.4
- r = Rectangle((0, 0), 25.4, 254.0, units='metric')
- l = Line((2.54, 25.4), (254.0, 2540.0), r, units='metric')
+ r = Rectangle((0, 0), 25.4, 254.0, units="metric")
+ l = Line((2.54, 25.4), (254.0, 2540.0), r, units="metric")
l.to_inch()
- assert_equal(l.start, (0.1, 1.0))
- assert_equal(l.end, (10.0, 100.0))
- assert_equal(l.aperture.width, 1.0)
- assert_equal(l.aperture.height, 10.0)
+ assert l.start == (0.1, 1.0)
+ assert l.end == (10.0, 100.0)
+ assert l.aperture.width == 1.0
+ assert l.aperture.height == 10.0
- r = Rectangle((0, 0), 1.0, 10.0, units='inch')
- l = Line((0.1, 1.0), (10.0, 100.0), r, units='inch')
+ r = Rectangle((0, 0), 1.0, 10.0, units="inch")
+ l = Line((0.1, 1.0), (10.0, 100.0), r, units="inch")
l.to_metric()
- assert_equal(l.start, (2.54, 25.4))
- assert_equal(l.end, (254.0, 2540.0))
- assert_equal(l.aperture.width, 25.4)
- assert_equal(l.aperture.height, 254.0)
+ assert l.start == (2.54, 25.4)
+ assert l.end == (254.0, 2540.0)
+ assert l.aperture.width == 25.4
+ assert l.aperture.height == 254.0
def test_line_offset():
c = Circle((0, 0), 1)
l = Line((0, 0), (1, 1), c)
l.offset(1, 0)
- assert_equal(l.start, (1., 0.))
- assert_equal(l.end, (2., 1.))
+ assert l.start == (1.0, 0.0)
+ assert l.end == (2.0, 1.0)
l.offset(0, 1)
- assert_equal(l.start, (1., 1.))
- assert_equal(l.end, (2., 2.))
+ assert l.start == (1.0, 1.0)
+ assert l.end == (2.0, 2.0)
def test_arc_radius():
""" Test Arc primitive radius calculation
"""
- cases = [((-3, 4), (5, 0), (0, 0), 5),
- ((0, 1), (1, 0), (0, 0), 1), ]
+ cases = [((-3, 4), (5, 0), (0, 0), 5), ((0, 1), (1, 0), (0, 0), 1)]
for start, end, center, radius in cases:
- a = Arc(start, end, center, 'clockwise', 0, 'single-quadrant')
- assert_equal(a.radius, radius)
+ a = Arc(start, end, center, "clockwise", 0, "single-quadrant")
+ assert a.radius == radius
def test_arc_sweep_angle():
""" Test Arc primitive sweep angle calculation
"""
- cases = [((1, 0), (0, 1), (0, 0), 'counterclockwise', math.radians(90)),
- ((1, 0), (0, 1), (0, 0), 'clockwise', math.radians(270)),
- ((1, 0), (-1, 0), (0, 0), 'clockwise', math.radians(180)),
- ((1, 0), (-1, 0), (0, 0), 'counterclockwise', math.radians(180)), ]
+ cases = [
+ ((1, 0), (0, 1), (0, 0), "counterclockwise", math.radians(90)),
+ ((1, 0), (0, 1), (0, 0), "clockwise", math.radians(270)),
+ ((1, 0), (-1, 0), (0, 0), "clockwise", math.radians(180)),
+ ((1, 0), (-1, 0), (0, 0), "counterclockwise", math.radians(180)),
+ ]
for start, end, center, direction, sweep in cases:
- c = Circle((0,0), 1)
- a = Arc(start, end, center, direction, c, 'single-quadrant')
- assert_equal(a.sweep_angle, sweep)
+ c = Circle((0, 0), 1)
+ a = Arc(start, end, center, direction, c, "single-quadrant")
+ assert a.sweep_angle == sweep
def test_arc_bounds():
""" Test Arc primitive bounding box calculation
"""
cases = [
- ((1, 0), (0, 1), (0, 0), 'clockwise', ((-1.5, 1.5), (-1.5, 1.5))),
- ((1, 0), (0, 1), (0, 0), 'counterclockwise',((-0.5, 1.5), (-0.5, 1.5))),
-
- ((0, 1), (-1, 0), (0, 0), 'clockwise', ((-1.5, 1.5), (-1.5, 1.5))),
- ((0, 1), (-1, 0), (0, 0), 'counterclockwise', ((-1.5, 0.5), (-0.5, 1.5))),
-
- ((-1, 0), (0, -1), (0, 0), 'clockwise', ((-1.5, 1.5), (-1.5, 1.5))),
- ((-1, 0), (0, -1), (0, 0), 'counterclockwise', ((-1.5, 0.5), (-1.5, 0.5))),
-
- ((0, -1), (1, 0), (0, 0), 'clockwise', ((-1.5, 1.5), (-1.5, 1.5))),
- ((0, -1), (1, 0), (0, 0), 'counterclockwise',((-0.5, 1.5), (-1.5, 0.5))),
-
+ ((1, 0), (0, 1), (0, 0), "clockwise", ((-1.5, 1.5), (-1.5, 1.5))),
+ ((1, 0), (0, 1), (0, 0), "counterclockwise", ((-0.5, 1.5), (-0.5, 1.5))),
+ ((0, 1), (-1, 0), (0, 0), "clockwise", ((-1.5, 1.5), (-1.5, 1.5))),
+ ((0, 1), (-1, 0), (0, 0), "counterclockwise", ((-1.5, 0.5), (-0.5, 1.5))),
+ ((-1, 0), (0, -1), (0, 0), "clockwise", ((-1.5, 1.5), (-1.5, 1.5))),
+ ((-1, 0), (0, -1), (0, 0), "counterclockwise", ((-1.5, 0.5), (-1.5, 0.5))),
+ ((0, -1), (1, 0), (0, 0), "clockwise", ((-1.5, 1.5), (-1.5, 1.5))),
+ ((0, -1), (1, 0), (0, 0), "counterclockwise", ((-0.5, 1.5), (-1.5, 0.5))),
# Arcs with the same start and end point render a full circle
- ((1, 0), (1, 0), (0, 0), 'clockwise', ((-1.5, 1.5), (-1.5, 1.5))),
- ((1, 0), (1, 0), (0, 0), 'counterclockwise', ((-1.5, 1.5), (-1.5, 1.5))),
+ ((1, 0), (1, 0), (0, 0), "clockwise", ((-1.5, 1.5), (-1.5, 1.5))),
+ ((1, 0), (1, 0), (0, 0), "counterclockwise", ((-1.5, 1.5), (-1.5, 1.5))),
]
for start, end, center, direction, bounds in cases:
- c = Circle((0,0), 1)
- a = Arc(start, end, center, direction, c, 'multi-quadrant')
- assert_equal(a.bounding_box, bounds)
+ c = Circle((0, 0), 1)
+ a = Arc(start, end, center, direction, c, "multi-quadrant")
+ assert a.bounding_box == bounds
+
def test_arc_bounds_no_aperture():
""" Test Arc primitive bounding box calculation ignoring aperture
"""
cases = [
- ((1, 0), (0, 1), (0, 0), 'clockwise', ((-1.0, 1.0), (-1.0, 1.0))),
- ((1, 0), (0, 1), (0, 0), 'counterclockwise',((0.0, 1.0), (0.0, 1.0))),
-
- ((0, 1), (-1, 0), (0, 0), 'clockwise', ((-1.0, 1.0), (-1.0, 1.0))),
- ((0, 1), (-1, 0), (0, 0), 'counterclockwise', ((-1.0, 0.0), (0.0, 1.0))),
-
- ((-1, 0), (0, -1), (0, 0), 'clockwise', ((-1.0, 1.0), (-1.0, 1.0))),
- ((-1, 0), (0, -1), (0, 0), 'counterclockwise', ((-1.0, 0.0), (-1.0, 0.0))),
-
- ((0, -1), (1, 0), (0, 0), 'clockwise', ((-1.0, 1.0), (-1.0, 1.0))),
- ((0, -1), (1, 0), (0, 0), 'counterclockwise',((-0.0, 1.0), (-1.0, 0.0))),
-
+ ((1, 0), (0, 1), (0, 0), "clockwise", ((-1.0, 1.0), (-1.0, 1.0))),
+ ((1, 0), (0, 1), (0, 0), "counterclockwise", ((0.0, 1.0), (0.0, 1.0))),
+ ((0, 1), (-1, 0), (0, 0), "clockwise", ((-1.0, 1.0), (-1.0, 1.0))),
+ ((0, 1), (-1, 0), (0, 0), "counterclockwise", ((-1.0, 0.0), (0.0, 1.0))),
+ ((-1, 0), (0, -1), (0, 0), "clockwise", ((-1.0, 1.0), (-1.0, 1.0))),
+ ((-1, 0), (0, -1), (0, 0), "counterclockwise", ((-1.0, 0.0), (-1.0, 0.0))),
+ ((0, -1), (1, 0), (0, 0), "clockwise", ((-1.0, 1.0), (-1.0, 1.0))),
+ ((0, -1), (1, 0), (0, 0), "counterclockwise", ((-0.0, 1.0), (-1.0, 0.0))),
# Arcs with the same start and end point render a full circle
- ((1, 0), (1, 0), (0, 0), 'clockwise', ((-1.0, 1.0), (-1.0, 1.0))),
- ((1, 0), (1, 0), (0, 0), 'counterclockwise', ((-1.0, 1.0), (-1.0, 1.0))),
+ ((1, 0), (1, 0), (0, 0), "clockwise", ((-1.0, 1.0), (-1.0, 1.0))),
+ ((1, 0), (1, 0), (0, 0), "counterclockwise", ((-1.0, 1.0), (-1.0, 1.0))),
]
for start, end, center, direction, bounds in cases:
- c = Circle((0,0), 1)
- a = Arc(start, end, center, direction, c, 'multi-quadrant')
- assert_equal(a.bounding_box_no_aperture, bounds)
+ c = Circle((0, 0), 1)
+ a = Arc(start, end, center, direction, c, "multi-quadrant")
+ assert a.bounding_box_no_aperture == bounds
def test_arc_conversion():
- c = Circle((0, 0), 25.4, units='metric')
- a = Arc((2.54, 25.4), (254.0, 2540.0), (25400.0, 254000.0),
- 'clockwise', c, 'single-quadrant', units='metric')
+ c = Circle((0, 0), 25.4, units="metric")
+ a = Arc(
+ (2.54, 25.4),
+ (254.0, 2540.0),
+ (25400.0, 254000.0),
+ "clockwise",
+ c,
+ "single-quadrant",
+ units="metric",
+ )
# No effect
a.to_metric()
- assert_equal(a.start, (2.54, 25.4))
- assert_equal(a.end, (254.0, 2540.0))
- assert_equal(a.center, (25400.0, 254000.0))
- assert_equal(a.aperture.diameter, 25.4)
+ assert a.start == (2.54, 25.4)
+ assert a.end == (254.0, 2540.0)
+ assert a.center == (25400.0, 254000.0)
+ assert a.aperture.diameter == 25.4
a.to_inch()
- assert_equal(a.start, (0.1, 1.0))
- assert_equal(a.end, (10.0, 100.0))
- assert_equal(a.center, (1000.0, 10000.0))
- assert_equal(a.aperture.diameter, 1.0)
+ assert a.start == (0.1, 1.0)
+ assert a.end == (10.0, 100.0)
+ assert a.center == (1000.0, 10000.0)
+ assert a.aperture.diameter == 1.0
# no effect
a.to_inch()
- assert_equal(a.start, (0.1, 1.0))
- assert_equal(a.end, (10.0, 100.0))
- assert_equal(a.center, (1000.0, 10000.0))
- assert_equal(a.aperture.diameter, 1.0)
-
- c = Circle((0, 0), 1.0, units='inch')
- a = Arc((0.1, 1.0), (10.0, 100.0), (1000.0, 10000.0),
- 'clockwise', c, 'single-quadrant', units='inch')
+ assert a.start == (0.1, 1.0)
+ assert a.end == (10.0, 100.0)
+ assert a.center == (1000.0, 10000.0)
+ assert a.aperture.diameter == 1.0
+
+ c = Circle((0, 0), 1.0, units="inch")
+ a = Arc(
+ (0.1, 1.0),
+ (10.0, 100.0),
+ (1000.0, 10000.0),
+ "clockwise",
+ c,
+ "single-quadrant",
+ units="inch",
+ )
a.to_metric()
- assert_equal(a.start, (2.54, 25.4))
- assert_equal(a.end, (254.0, 2540.0))
- assert_equal(a.center, (25400.0, 254000.0))
- assert_equal(a.aperture.diameter, 25.4)
+ assert a.start == (2.54, 25.4)
+ assert a.end == (254.0, 2540.0)
+ assert a.center == (25400.0, 254000.0)
+ assert a.aperture.diameter == 25.4
def test_arc_offset():
c = Circle((0, 0), 1)
- a = Arc((0, 0), (1, 1), (2, 2), 'clockwise', c, 'single-quadrant')
+ a = Arc((0, 0), (1, 1), (2, 2), "clockwise", c, "single-quadrant")
a.offset(1, 0)
- assert_equal(a.start, (1., 0.))
- assert_equal(a.end, (2., 1.))
- assert_equal(a.center, (3., 2.))
+ assert a.start == (1.0, 0.0)
+ assert a.end == (2.0, 1.0)
+ assert a.center == (3.0, 2.0)
a.offset(0, 1)
- assert_equal(a.start, (1., 1.))
- assert_equal(a.end, (2., 2.))
- assert_equal(a.center, (3., 3.))
+ assert a.start == (1.0, 1.0)
+ assert a.end == (2.0, 2.0)
+ assert a.center == (3.0, 3.0)
def test_circle_radius():
""" Test Circle primitive radius calculation
"""
c = Circle((1, 1), 2)
- assert_equal(c.radius, 1)
+ assert c.radius == 1
def test_circle_hole_radius():
""" Test Circle primitive hole radius calculation
"""
c = Circle((1, 1), 4, 2)
- assert_equal(c.hole_radius, 1)
+ assert c.hole_radius == 1
def test_circle_bounds():
""" Test Circle bounding box calculation
"""
c = Circle((1, 1), 2)
- assert_equal(c.bounding_box, ((0, 2), (0, 2)))
+ assert c.bounding_box == ((0, 2), (0, 2))
def test_circle_conversion():
"""Circle conversion of units"""
# Circle initially metric, no hole
- c = Circle((2.54, 25.4), 254.0, units='metric')
+ c = Circle((2.54, 25.4), 254.0, units="metric")
c.to_metric() # shouldn't do antyhing
- assert_equal(c.position, (2.54, 25.4))
- assert_equal(c.diameter, 254.)
- assert_equal(c.hole_diameter, None)
+ assert c.position == (2.54, 25.4)
+ assert c.diameter == 254.0
+ assert c.hole_diameter == None
c.to_inch()
- assert_equal(c.position, (0.1, 1.))
- assert_equal(c.diameter, 10.)
- assert_equal(c.hole_diameter, None)
+ assert c.position == (0.1, 1.0)
+ assert c.diameter == 10.0
+ assert c.hole_diameter == None
# no effect
c.to_inch()
- assert_equal(c.position, (0.1, 1.))
- assert_equal(c.diameter, 10.)
- assert_equal(c.hole_diameter, None)
+ assert c.position == (0.1, 1.0)
+ assert c.diameter == 10.0
+ assert c.hole_diameter == None
# Circle initially metric, with hole
- c = Circle((2.54, 25.4), 254.0, 127.0, units='metric')
+ c = Circle((2.54, 25.4), 254.0, 127.0, units="metric")
- c.to_metric() #shouldn't do antyhing
- assert_equal(c.position, (2.54, 25.4))
- assert_equal(c.diameter, 254.)
- assert_equal(c.hole_diameter, 127.)
+ c.to_metric() # shouldn't do antyhing
+ assert c.position == (2.54, 25.4)
+ assert c.diameter == 254.0
+ assert c.hole_diameter == 127.0
c.to_inch()
- assert_equal(c.position, (0.1, 1.))
- assert_equal(c.diameter, 10.)
- assert_equal(c.hole_diameter, 5.)
+ assert c.position == (0.1, 1.0)
+ assert c.diameter == 10.0
+ assert c.hole_diameter == 5.0
# no effect
c.to_inch()
- assert_equal(c.position, (0.1, 1.))
- assert_equal(c.diameter, 10.)
- assert_equal(c.hole_diameter, 5.)
+ assert c.position == (0.1, 1.0)
+ assert c.diameter == 10.0
+ assert c.hole_diameter == 5.0
# Circle initially inch, no hole
- c = Circle((0.1, 1.0), 10.0, units='inch')
+ c = Circle((0.1, 1.0), 10.0, units="inch")
# No effect
c.to_inch()
- assert_equal(c.position, (0.1, 1.))
- assert_equal(c.diameter, 10.)
- assert_equal(c.hole_diameter, None)
+ assert c.position == (0.1, 1.0)
+ assert c.diameter == 10.0
+ assert c.hole_diameter == None
c.to_metric()
- assert_equal(c.position, (2.54, 25.4))
- assert_equal(c.diameter, 254.)
- assert_equal(c.hole_diameter, None)
+ assert c.position == (2.54, 25.4)
+ assert c.diameter == 254.0
+ assert c.hole_diameter == None
# no effect
c.to_metric()
- assert_equal(c.position, (2.54, 25.4))
- assert_equal(c.diameter, 254.)
- assert_equal(c.hole_diameter, None)
+ assert c.position == (2.54, 25.4)
+ assert c.diameter == 254.0
+ assert c.hole_diameter == None
- c = Circle((0.1, 1.0), 10.0, 5.0, units='inch')
- #No effect
+ c = Circle((0.1, 1.0), 10.0, 5.0, units="inch")
+ # No effect
c.to_inch()
- assert_equal(c.position, (0.1, 1.))
- assert_equal(c.diameter, 10.)
- assert_equal(c.hole_diameter, 5.)
+ assert c.position == (0.1, 1.0)
+ assert c.diameter == 10.0
+ assert c.hole_diameter == 5.0
c.to_metric()
- assert_equal(c.position, (2.54, 25.4))
- assert_equal(c.diameter, 254.)
- assert_equal(c.hole_diameter, 127.)
+ assert c.position == (2.54, 25.4)
+ assert c.diameter == 254.0
+ assert c.hole_diameter == 127.0
# no effect
c.to_metric()
- assert_equal(c.position, (2.54, 25.4))
- assert_equal(c.diameter, 254.)
- assert_equal(c.hole_diameter, 127.)
+ assert c.position == (2.54, 25.4)
+ assert c.diameter == 254.0
+ assert c.hole_diameter == 127.0
def test_circle_offset():
c = Circle((0, 0), 1)
c.offset(1, 0)
- assert_equal(c.position, (1., 0.))
+ assert c.position == (1.0, 0.0)
c.offset(0, 1)
- assert_equal(c.position, (1., 1.))
+ assert c.position == (1.0, 1.0)
def test_ellipse_ctor():
""" Test ellipse creation
"""
e = Ellipse((2, 2), 3, 2)
- assert_equal(e.position, (2, 2))
- assert_equal(e.width, 3)
- assert_equal(e.height, 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_equal(e.bounding_box, ((0, 4), (1, 3)))
+ assert e.bounding_box == ((0, 4), (1, 3))
e = Ellipse((2, 2), 4, 2, rotation=90)
- assert_equal(e.bounding_box, ((1, 3), (0, 4)))
+ assert e.bounding_box == ((1, 3), (0, 4))
e = Ellipse((2, 2), 4, 2, rotation=180)
- assert_equal(e.bounding_box, ((0, 4), (1, 3)))
+ assert e.bounding_box == ((0, 4), (1, 3))
e = Ellipse((2, 2), 4, 2, rotation=270)
- assert_equal(e.bounding_box, ((1, 3), (0, 4)))
+ assert e.bounding_box == ((1, 3), (0, 4))
def test_ellipse_conversion():
- e = Ellipse((2.54, 25.4), 254.0, 2540., units='metric')
+ e = Ellipse((2.54, 25.4), 254.0, 2540.0, units="metric")
# No effect
e.to_metric()
- assert_equal(e.position, (2.54, 25.4))
- assert_equal(e.width, 254.)
- assert_equal(e.height, 2540.)
+ assert e.position == (2.54, 25.4)
+ assert e.width == 254.0
+ assert e.height == 2540.0
e.to_inch()
- assert_equal(e.position, (0.1, 1.))
- assert_equal(e.width, 10.)
- assert_equal(e.height, 100.)
+ assert e.position == (0.1, 1.0)
+ assert e.width == 10.0
+ assert e.height == 100.0
# No effect
e.to_inch()
- assert_equal(e.position, (0.1, 1.))
- assert_equal(e.width, 10.)
- assert_equal(e.height, 100.)
+ assert e.position == (0.1, 1.0)
+ assert e.width == 10.0
+ assert e.height == 100.0
- e = Ellipse((0.1, 1.), 10.0, 100., units='inch')
+ e = Ellipse((0.1, 1.0), 10.0, 100.0, units="inch")
# no effect
e.to_inch()
- assert_equal(e.position, (0.1, 1.))
- assert_equal(e.width, 10.)
- assert_equal(e.height, 100.)
+ assert e.position == (0.1, 1.0)
+ assert e.width == 10.0
+ assert e.height == 100.0
e.to_metric()
- assert_equal(e.position, (2.54, 25.4))
- assert_equal(e.width, 254.)
- assert_equal(e.height, 2540.)
+ assert e.position == (2.54, 25.4)
+ assert e.width == 254.0
+ assert e.height == 2540.0
# No effect
e.to_metric()
- assert_equal(e.position, (2.54, 25.4))
- assert_equal(e.width, 254.)
- assert_equal(e.height, 2540.)
+ 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_equal(e.position, (1., 0.))
+ assert e.position == (1.0, 0.0)
e.offset(0, 1)
- assert_equal(e.position, (1., 1.))
+ assert e.position == (1.0, 1.0)
def test_rectangle_ctor():
@@ -471,19 +482,19 @@ def test_rectangle_ctor():
test_cases = (((0, 0), 1, 1), ((0, 0), 1, 2), ((1, 1), 1, 2))
for pos, width, height in test_cases:
r = Rectangle(pos, width, height)
- assert_equal(r.position, pos)
- assert_equal(r.width, width)
- assert_equal(r.height, height)
+ assert r.position == pos
+ assert r.width == width
+ assert r.height == height
def test_rectangle_hole_radius():
""" Test rectangle hole diameter calculation
"""
- r = Rectangle((0,0), 2, 2)
- assert_equal(0, r.hole_radius)
+ r = Rectangle((0, 0), 2, 2)
+ assert 0 == r.hole_radius
- r = Rectangle((0,0), 2, 2, 1)
- assert_equal(0.5, r.hole_radius)
+ r = Rectangle((0, 0), 2, 2, 1)
+ assert 0.5 == r.hole_radius
def test_rectangle_bounds():
@@ -491,126 +502,137 @@ def test_rectangle_bounds():
"""
r = Rectangle((0, 0), 2, 2)
xbounds, ybounds = r.bounding_box
- assert_array_almost_equal(xbounds, (-1, 1))
- assert_array_almost_equal(ybounds, (-1, 1))
+ pytest.approx(xbounds, (-1, 1))
+ pytest.approx(ybounds, (-1, 1))
r = Rectangle((0, 0), 2, 2, rotation=45)
xbounds, ybounds = r.bounding_box
- assert_array_almost_equal(xbounds, (-math.sqrt(2), math.sqrt(2)))
- assert_array_almost_equal(ybounds, (-math.sqrt(2), math.sqrt(2)))
+ pytest.approx(xbounds, (-math.sqrt(2), math.sqrt(2)))
+ pytest.approx(ybounds, (-math.sqrt(2), math.sqrt(2)))
+
def test_rectangle_vertices():
sqrt2 = math.sqrt(2.0)
TEST_VECTORS = [
((0, 0), 2.0, 2.0, 0.0, ((-1.0, -1.0), (-1.0, 1.0), (1.0, 1.0), (1.0, -1.0))),
((0, 0), 2.0, 3.0, 0.0, ((-1.0, -1.5), (-1.0, 1.5), (1.0, 1.5), (1.0, -1.5))),
- ((0, 0), 2.0, 2.0, 90.0,((-1.0, -1.0), (-1.0, 1.0), (1.0, 1.0), (1.0, -1.0))),
- ((0, 0), 3.0, 2.0, 90.0,((-1.0, -1.5), (-1.0, 1.5), (1.0, 1.5), (1.0, -1.5))),
- ((0, 0), 2.0, 2.0, 45.0,((-sqrt2, 0.0), (0.0, sqrt2), (sqrt2, 0), (0, -sqrt2))),
+ ((0, 0), 2.0, 2.0, 90.0, ((-1.0, -1.0), (-1.0, 1.0), (1.0, 1.0), (1.0, -1.0))),
+ ((0, 0), 3.0, 2.0, 90.0, ((-1.0, -1.5), (-1.0, 1.5), (1.0, 1.5), (1.0, -1.5))),
+ (
+ (0, 0),
+ 2.0,
+ 2.0,
+ 45.0,
+ ((-sqrt2, 0.0), (0.0, sqrt2), (sqrt2, 0), (0, -sqrt2)),
+ ),
]
for pos, width, height, rotation, expected in TEST_VECTORS:
r = Rectangle(pos, width, height, rotation=rotation)
for test, expect in zip(sorted(r.vertices), sorted(expected)):
- assert_array_almost_equal(test, expect)
+ pytest.approx(test, expect)
r = Rectangle((0, 0), 2.0, 2.0, rotation=0.0)
r.rotation = 45.0
- for test, expect in zip(sorted(r.vertices), sorted(((-sqrt2, 0.0), (0.0, sqrt2), (sqrt2, 0), (0, -sqrt2)))):
- assert_array_almost_equal(test, expect)
+ for test, expect in zip(
+ sorted(r.vertices),
+ sorted(((-sqrt2, 0.0), (0.0, sqrt2), (sqrt2, 0), (0, -sqrt2))),
+ ):
+ pytest.approx(test, expect)
+
def test_rectangle_segments():
r = Rectangle((0, 0), 2.0, 2.0)
expected = [vtx for segment in r.segments for vtx in segment]
for vertex in r.vertices:
- assert_in(vertex, expected)
+ assert vertex in expected
def test_rectangle_conversion():
"""Test converting rectangles between units"""
# Initially metric no hole
- r = Rectangle((2.54, 25.4), 254.0, 2540.0, units='metric')
+ r = Rectangle((2.54, 25.4), 254.0, 2540.0, units="metric")
r.to_metric()
- assert_equal(r.position, (2.54, 25.4))
- assert_equal(r.width, 254.0)
- assert_equal(r.height, 2540.0)
+ assert r.position == (2.54, 25.4)
+ assert r.width == 254.0
+ assert r.height == 2540.0
r.to_inch()
- assert_equal(r.position, (0.1, 1.0))
- assert_equal(r.width, 10.0)
- assert_equal(r.height, 100.0)
+ assert r.position == (0.1, 1.0)
+ assert r.width == 10.0
+ assert r.height == 100.0
r.to_inch()
- assert_equal(r.position, (0.1, 1.0))
- assert_equal(r.width, 10.0)
- assert_equal(r.height, 100.0)
+ assert r.position == (0.1, 1.0)
+ assert r.width == 10.0
+ assert r.height == 100.0
# Initially metric with hole
- r = Rectangle((2.54, 25.4), 254.0, 2540.0, 127.0, units='metric')
+ r = Rectangle((2.54, 25.4), 254.0, 2540.0, 127.0, units="metric")
r.to_metric()
- assert_equal(r.position, (2.54,25.4))
- assert_equal(r.width, 254.0)
- assert_equal(r.height, 2540.0)
- assert_equal(r.hole_diameter, 127.0)
+ assert r.position == (2.54, 25.4)
+ assert r.width == 254.0
+ assert r.height == 2540.0
+ assert r.hole_diameter == 127.0
r.to_inch()
- assert_equal(r.position, (0.1, 1.0))
- assert_equal(r.width, 10.0)
- assert_equal(r.height, 100.0)
- assert_equal(r.hole_diameter, 5.0)
+ assert r.position == (0.1, 1.0)
+ assert r.width == 10.0
+ assert r.height == 100.0
+ assert r.hole_diameter == 5.0
r.to_inch()
- assert_equal(r.position, (0.1, 1.0))
- assert_equal(r.width, 10.0)
- assert_equal(r.height, 100.0)
- assert_equal(r.hole_diameter, 5.0)
+ assert r.position == (0.1, 1.0)
+ assert r.width == 10.0
+ assert r.height == 100.0
+ assert r.hole_diameter == 5.0
# Initially inch, no hole
- r = Rectangle((0.1, 1.0), 10.0, 100.0, units='inch')
+ r = Rectangle((0.1, 1.0), 10.0, 100.0, units="inch")
r.to_inch()
- assert_equal(r.position, (0.1, 1.0))
- assert_equal(r.width, 10.0)
- assert_equal(r.height, 100.0)
+ assert r.position == (0.1, 1.0)
+ assert r.width == 10.0
+ assert r.height == 100.0
r.to_metric()
- assert_equal(r.position, (2.54, 25.4))
- assert_equal(r.width, 254.0)
- assert_equal(r.height, 2540.0)
+ assert r.position == (2.54, 25.4)
+ assert r.width == 254.0
+ assert r.height == 2540.0
r.to_metric()
- assert_equal(r.position, (2.54, 25.4))
- assert_equal(r.width, 254.0)
- assert_equal(r.height, 2540.0)
+ assert r.position == (2.54, 25.4)
+ assert r.width == 254.0
+ assert r.height == 2540.0
# Initially inch with hole
- r = Rectangle((0.1, 1.0), 10.0, 100.0, 5.0, units='inch')
+ r = Rectangle((0.1, 1.0), 10.0, 100.0, 5.0, units="inch")
r.to_inch()
- assert_equal(r.position, (0.1, 1.0))
- assert_equal(r.width, 10.0)
- assert_equal(r.height, 100.0)
- assert_equal(r.hole_diameter, 5.0)
+ assert r.position == (0.1, 1.0)
+ assert r.width == 10.0
+ assert r.height == 100.0
+ assert r.hole_diameter == 5.0
r.to_metric()
- assert_equal(r.position, (2.54,25.4))
- assert_equal(r.width, 254.0)
- assert_equal(r.height, 2540.0)
- assert_equal(r.hole_diameter, 127.0)
+ assert r.position == (2.54, 25.4)
+ assert r.width == 254.0
+ assert r.height == 2540.0
+ assert r.hole_diameter == 127.0
r.to_metric()
- assert_equal(r.position, (2.54, 25.4))
- assert_equal(r.width, 254.0)
- assert_equal(r.height, 2540.0)
- assert_equal(r.hole_diameter, 127.0)
+ assert r.position == (2.54, 25.4)
+ assert r.width == 254.0
+ assert r.height == 2540.0
+ assert r.hole_diameter == 127.0
def test_rectangle_offset():
r = Rectangle((0, 0), 1, 2)
r.offset(1, 0)
- assert_equal(r.position, (1., 0.))
+ assert r.position == (1.0, 0.0)
r.offset(0, 1)
- assert_equal(r.position, (1., 1.))
+ assert r.position == (1.0, 1.0)
def test_diamond_ctor():
@@ -619,9 +641,9 @@ def test_diamond_ctor():
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_equal(d.position, pos)
- assert_equal(d.width, width)
- assert_equal(d.height, height)
+ assert d.position == pos
+ assert d.width == width
+ assert d.height == height
def test_diamond_bounds():
@@ -629,71 +651,73 @@ def test_diamond_bounds():
"""
d = Diamond((0, 0), 2, 2)
xbounds, ybounds = d.bounding_box
- assert_array_almost_equal(xbounds, (-1, 1))
- assert_array_almost_equal(ybounds, (-1, 1))
+ pytest.approx(xbounds, (-1, 1))
+ pytest.approx(ybounds, (-1, 1))
d = Diamond((0, 0), math.sqrt(2), math.sqrt(2), rotation=45)
xbounds, ybounds = d.bounding_box
- assert_array_almost_equal(xbounds, (-1, 1))
- assert_array_almost_equal(ybounds, (-1, 1))
+ pytest.approx(xbounds, (-1, 1))
+ pytest.approx(ybounds, (-1, 1))
def test_diamond_conversion():
- d = Diamond((2.54, 25.4), 254.0, 2540.0, units='metric')
+ d = Diamond((2.54, 25.4), 254.0, 2540.0, units="metric")
d.to_metric()
- assert_equal(d.position, (2.54, 25.4))
- assert_equal(d.width, 254.0)
- assert_equal(d.height, 2540.0)
+ assert d.position == (2.54, 25.4)
+ assert d.width == 254.0
+ assert d.height == 2540.0
d.to_inch()
- assert_equal(d.position, (0.1, 1.0))
- assert_equal(d.width, 10.0)
- assert_equal(d.height, 100.0)
+ assert d.position == (0.1, 1.0)
+ assert d.width == 10.0
+ assert d.height == 100.0
d.to_inch()
- assert_equal(d.position, (0.1, 1.0))
- assert_equal(d.width, 10.0)
- assert_equal(d.height, 100.0)
+ 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 = Diamond((0.1, 1.0), 10.0, 100.0, units="inch")
d.to_inch()
- assert_equal(d.position, (0.1, 1.0))
- assert_equal(d.width, 10.0)
- assert_equal(d.height, 100.0)
+ assert d.position == (0.1, 1.0)
+ assert d.width == 10.0
+ assert d.height == 100.0
d.to_metric()
- assert_equal(d.position, (2.54, 25.4))
- assert_equal(d.width, 254.0)
- assert_equal(d.height, 2540.0)
+ assert d.position == (2.54, 25.4)
+ assert d.width == 254.0
+ assert d.height == 2540.0
d.to_metric()
- assert_equal(d.position, (2.54, 25.4))
- assert_equal(d.width, 254.0)
- assert_equal(d.height, 2540.0)
+ 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_equal(d.position, (1., 0.))
+ assert d.position == (1.0, 0.0)
d.offset(0, 1)
- assert_equal(d.position, (1., 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)))
+ 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_equal(r.position, pos)
- assert_equal(r.width, width)
- assert_equal(r.height, height)
- assert_equal(r.chamfer, chamfer)
- assert_array_almost_equal(r.corners, 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():
@@ -701,91 +725,124 @@ def test_chamfer_rectangle_bounds():
"""
r = ChamferRectangle((0, 0), 2, 2, 0.2, (True, True, False, False))
xbounds, ybounds = r.bounding_box
- assert_array_almost_equal(xbounds, (-1, 1))
- assert_array_almost_equal(ybounds, (-1, 1))
- r = ChamferRectangle(
- (0, 0), 2, 2, 0.2, (True, True, False, False), rotation=45)
+ pytest.approx(xbounds, (-1, 1))
+ pytest.approx(ybounds, (-1, 1))
+ r = ChamferRectangle((0, 0), 2, 2, 0.2, (True, True, False, False), rotation=45)
xbounds, ybounds = r.bounding_box
- assert_array_almost_equal(xbounds, (-math.sqrt(2), math.sqrt(2)))
- assert_array_almost_equal(ybounds, (-math.sqrt(2), math.sqrt(2)))
+ pytest.approx(xbounds, (-math.sqrt(2), math.sqrt(2)))
+ pytest.approx(ybounds, (-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 = ChamferRectangle(
+ (2.54, 25.4), 254.0, 2540.0, 0.254, (True, True, False, False), units="metric"
+ )
r.to_metric()
- assert_equal(r.position, (2.54, 25.4))
- assert_equal(r.width, 254.0)
- assert_equal(r.height, 2540.0)
- assert_equal(r.chamfer, 0.254)
+ 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_equal(r.position, (0.1, 1.0))
- assert_equal(r.width, 10.0)
- assert_equal(r.height, 100.0)
- assert_equal(r.chamfer, 0.01)
+ 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_equal(r.position, (0.1, 1.0))
- assert_equal(r.width, 10.0)
- assert_equal(r.height, 100.0)
- assert_equal(r.chamfer, 0.01)
+ 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 = ChamferRectangle(
+ (0.1, 1.0), 10.0, 100.0, 0.01, (True, True, False, False), units="inch"
+ )
r.to_inch()
- assert_equal(r.position, (0.1, 1.0))
- assert_equal(r.width, 10.0)
- assert_equal(r.height, 100.0)
- assert_equal(r.chamfer, 0.01)
+ 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_equal(r.position, (2.54, 25.4))
- assert_equal(r.width, 254.0)
- assert_equal(r.height, 2540.0)
- assert_equal(r.chamfer, 0.254)
+ 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_equal(r.position, (2.54, 25.4))
- assert_equal(r.width, 254.0)
- assert_equal(r.height, 2540.0)
- assert_equal(r.chamfer, 0.254)
+ 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_equal(r.position, (1., 0.))
+ assert r.position == (1.0, 0.0)
r.offset(0, 1)
- assert_equal(r.position, (1., 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))),
+ (
+ 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_equal(set(r.vertices), set(expected))
+ assert set(r.vertices) == set(expected)
def test_round_rectangle_ctor():
""" Test round 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)))
+ 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, radius, corners in test_cases:
r = RoundRectangle(pos, width, height, radius, corners)
- assert_equal(r.position, pos)
- assert_equal(r.width, width)
- assert_equal(r.height, height)
- assert_equal(r.radius, radius)
- assert_array_almost_equal(r.corners, corners)
+ assert r.position == pos
+ assert r.width == width
+ assert r.height == height
+ assert r.radius == radius
+ pytest.approx(r.corners, corners)
def test_round_rectangle_bounds():
@@ -793,78 +850,77 @@ def test_round_rectangle_bounds():
"""
r = RoundRectangle((0, 0), 2, 2, 0.2, (True, True, False, False))
xbounds, ybounds = r.bounding_box
- assert_array_almost_equal(xbounds, (-1, 1))
- assert_array_almost_equal(ybounds, (-1, 1))
- r = RoundRectangle((0, 0), 2, 2, 0.2,
- (True, True, False, False), rotation=45)
+ pytest.approx(xbounds, (-1, 1))
+ pytest.approx(ybounds, (-1, 1))
+ r = RoundRectangle((0, 0), 2, 2, 0.2, (True, True, False, False), rotation=45)
xbounds, ybounds = r.bounding_box
- assert_array_almost_equal(xbounds, (-math.sqrt(2), math.sqrt(2)))
- assert_array_almost_equal(ybounds, (-math.sqrt(2), math.sqrt(2)))
+ pytest.approx(xbounds, (-math.sqrt(2), math.sqrt(2)))
+ pytest.approx(ybounds, (-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 = RoundRectangle(
+ (2.54, 25.4), 254.0, 2540.0, 0.254, (True, True, False, False), units="metric"
+ )
r.to_metric()
- assert_equal(r.position, (2.54, 25.4))
- assert_equal(r.width, 254.0)
- assert_equal(r.height, 2540.0)
- assert_equal(r.radius, 0.254)
+ 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_equal(r.position, (0.1, 1.0))
- assert_equal(r.width, 10.0)
- assert_equal(r.height, 100.0)
- assert_equal(r.radius, 0.01)
+ 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_equal(r.position, (0.1, 1.0))
- assert_equal(r.width, 10.0)
- assert_equal(r.height, 100.0)
- assert_equal(r.radius, 0.01)
+ 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 = RoundRectangle(
+ (0.1, 1.0), 10.0, 100.0, 0.01, (True, True, False, False), units="inch"
+ )
r.to_inch()
- assert_equal(r.position, (0.1, 1.0))
- assert_equal(r.width, 10.0)
- assert_equal(r.height, 100.0)
- assert_equal(r.radius, 0.01)
+ 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_equal(r.position, (2.54, 25.4))
- assert_equal(r.width, 254.0)
- assert_equal(r.height, 2540.0)
- assert_equal(r.radius, 0.254)
+ 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_equal(r.position, (2.54, 25.4))
- assert_equal(r.width, 254.0)
- assert_equal(r.height, 2540.0)
- assert_equal(r.radius, 0.254)
+ 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_equal(r.position, (1., 0.))
+ assert r.position == (1.0, 0.0)
r.offset(0, 1)
- assert_equal(r.position, (1., 1.))
+ assert r.position == (1.0, 1.0)
def test_obround_ctor():
""" Test obround creation
"""
- test_cases = (((0, 0), 1, 1),
- ((0, 0), 1, 2),
- ((1, 1), 1, 2))
+ test_cases = (((0, 0), 1, 1), ((0, 0), 1, 2), ((1, 1), 1, 2))
for pos, width, height in test_cases:
o = Obround(pos, width, height)
- assert_equal(o.position, pos)
- assert_equal(o.width, width)
- assert_equal(o.height, height)
+ assert o.position == pos
+ assert o.width == width
+ assert o.height == height
def test_obround_bounds():
@@ -872,94 +928,92 @@ def test_obround_bounds():
"""
o = Obround((2, 2), 2, 4)
xbounds, ybounds = o.bounding_box
- assert_array_almost_equal(xbounds, (1, 3))
- assert_array_almost_equal(ybounds, (0, 4))
+ pytest.approx(xbounds, (1, 3))
+ pytest.approx(ybounds, (0, 4))
o = Obround((2, 2), 4, 2)
xbounds, ybounds = o.bounding_box
- assert_array_almost_equal(xbounds, (0, 4))
- assert_array_almost_equal(ybounds, (1, 3))
+ pytest.approx(xbounds, (0, 4))
+ pytest.approx(ybounds, (1, 3))
def test_obround_orientation():
o = Obround((0, 0), 2, 1)
- assert_equal(o.orientation, 'horizontal')
+ assert o.orientation == "horizontal"
o = Obround((0, 0), 1, 2)
- assert_equal(o.orientation, 'vertical')
+ assert o.orientation == "vertical"
def test_obround_subshapes():
o = Obround((0, 0), 1, 4)
ss = o.subshapes
- assert_array_almost_equal(ss['rectangle'].position, (0, 0))
- assert_array_almost_equal(ss['circle1'].position, (0, 1.5))
- assert_array_almost_equal(ss['circle2'].position, (0, -1.5))
+ pytest.approx(ss["rectangle"].position, (0, 0))
+ pytest.approx(ss["circle1"].position, (0, 1.5))
+ pytest.approx(ss["circle2"].position, (0, -1.5))
o = Obround((0, 0), 4, 1)
ss = o.subshapes
- assert_array_almost_equal(ss['rectangle'].position, (0, 0))
- assert_array_almost_equal(ss['circle1'].position, (1.5, 0))
- assert_array_almost_equal(ss['circle2'].position, (-1.5, 0))
+ pytest.approx(ss["rectangle"].position, (0, 0))
+ pytest.approx(ss["circle1"].position, (1.5, 0))
+ pytest.approx(ss["circle2"].position, (-1.5, 0))
def test_obround_conversion():
- o = Obround((2.54, 25.4), 254.0, 2540.0, units='metric')
+ o = Obround((2.54, 25.4), 254.0, 2540.0, units="metric")
# No effect
o.to_metric()
- assert_equal(o.position, (2.54, 25.4))
- assert_equal(o.width, 254.0)
- assert_equal(o.height, 2540.0)
+ assert o.position == (2.54, 25.4)
+ assert o.width == 254.0
+ assert o.height == 2540.0
o.to_inch()
- assert_equal(o.position, (0.1, 1.0))
- assert_equal(o.width, 10.0)
- assert_equal(o.height, 100.0)
+ assert o.position == (0.1, 1.0)
+ assert o.width == 10.0
+ assert o.height == 100.0
# No effect
o.to_inch()
- assert_equal(o.position, (0.1, 1.0))
- assert_equal(o.width, 10.0)
- assert_equal(o.height, 100.0)
+ assert o.position == (0.1, 1.0)
+ assert o.width == 10.0
+ assert o.height == 100.0
- o = Obround((0.1, 1.0), 10.0, 100.0, units='inch')
+ o = Obround((0.1, 1.0), 10.0, 100.0, units="inch")
# No effect
o.to_inch()
- assert_equal(o.position, (0.1, 1.0))
- assert_equal(o.width, 10.0)
- assert_equal(o.height, 100.0)
+ assert o.position == (0.1, 1.0)
+ assert o.width == 10.0
+ assert o.height == 100.0
o.to_metric()
- assert_equal(o.position, (2.54, 25.4))
- assert_equal(o.width, 254.0)
- assert_equal(o.height, 2540.0)
+ assert o.position == (2.54, 25.4)
+ assert o.width == 254.0
+ assert o.height == 2540.0
# No effect
o.to_metric()
- assert_equal(o.position, (2.54, 25.4))
- assert_equal(o.width, 254.0)
- assert_equal(o.height, 2540.0)
+ assert o.position == (2.54, 25.4)
+ assert o.width == 254.0
+ assert o.height == 2540.0
def test_obround_offset():
o = Obround((0, 0), 1, 2)
o.offset(1, 0)
- assert_equal(o.position, (1., 0.))
+ assert o.position == (1.0, 0.0)
o.offset(0, 1)
- assert_equal(o.position, (1., 1.))
+ assert o.position == (1.0, 1.0)
def test_polygon_ctor():
""" Test polygon creation
"""
- test_cases = (((0, 0), 3, 5, 0),
- ((0, 0), 5, 6, 0),
- ((1, 1), 7, 7, 45))
+ test_cases = (((0, 0), 3, 5, 0), ((0, 0), 5, 6, 0), ((1, 1), 7, 7, 45))
for pos, sides, radius, hole_diameter in test_cases:
p = Polygon(pos, sides, radius, hole_diameter)
- assert_equal(p.position, pos)
- assert_equal(p.sides, sides)
- assert_equal(p.radius, radius)
- assert_equal(p.hole_diameter, hole_diameter)
+ assert p.position == pos
+ assert p.sides == sides
+ assert p.radius == radius
+ assert p.hole_diameter == hole_diameter
def test_polygon_bounds():
@@ -967,90 +1021,102 @@ def test_polygon_bounds():
"""
p = Polygon((2, 2), 3, 2, 0)
xbounds, ybounds = p.bounding_box
- assert_array_almost_equal(xbounds, (0, 4))
- assert_array_almost_equal(ybounds, (0, 4))
+ pytest.approx(xbounds, (0, 4))
+ pytest.approx(ybounds, (0, 4))
p = Polygon((2, 2), 3, 4, 0)
xbounds, ybounds = p.bounding_box
- assert_array_almost_equal(xbounds, (-2, 6))
- assert_array_almost_equal(ybounds, (-2, 6))
+ pytest.approx(xbounds, (-2, 6))
+ pytest.approx(ybounds, (-2, 6))
def test_polygon_conversion():
- p = Polygon((2.54, 25.4), 3, 254.0, 0, units='metric')
+ p = Polygon((2.54, 25.4), 3, 254.0, 0, units="metric")
# No effect
p.to_metric()
- assert_equal(p.position, (2.54, 25.4))
- assert_equal(p.radius, 254.0)
+ assert p.position == (2.54, 25.4)
+ assert p.radius == 254.0
p.to_inch()
- assert_equal(p.position, (0.1, 1.0))
- assert_equal(p.radius, 10.0)
+ assert p.position == (0.1, 1.0)
+ assert p.radius == 10.0
# No effect
p.to_inch()
- assert_equal(p.position, (0.1, 1.0))
- assert_equal(p.radius, 10.0)
+ assert p.position == (0.1, 1.0)
+ assert p.radius == 10.0
- p = Polygon((0.1, 1.0), 3, 10.0, 0, units='inch')
+ p = Polygon((0.1, 1.0), 3, 10.0, 0, units="inch")
# No effect
p.to_inch()
- assert_equal(p.position, (0.1, 1.0))
- assert_equal(p.radius, 10.0)
+ assert p.position == (0.1, 1.0)
+ assert p.radius == 10.0
p.to_metric()
- assert_equal(p.position, (2.54, 25.4))
- assert_equal(p.radius, 254.0)
+ assert p.position == (2.54, 25.4)
+ assert p.radius == 254.0
# No effect
p.to_metric()
- assert_equal(p.position, (2.54, 25.4))
- assert_equal(p.radius, 254.0)
+ assert p.position == (2.54, 25.4)
+ assert p.radius == 254.0
def test_polygon_offset():
p = Polygon((0, 0), 5, 10, 0)
p.offset(1, 0)
- assert_equal(p.position, (1., 0.))
+ assert p.position == (1.0, 0.0)
p.offset(0, 1)
- assert_equal(p.position, (1., 1.))
+ assert p.position == (1.0, 1.0)
def test_region_ctor():
""" Test Region creation
"""
apt = Circle((0, 0), 0)
- lines = (Line((0, 0), (1, 0), apt), Line((1, 0), (1, 1), apt),
- Line((1, 1), (0, 1), apt), Line((0, 1), (0, 0), apt))
+ lines = (
+ Line((0, 0), (1, 0), apt),
+ Line((1, 0), (1, 1), apt),
+ Line((1, 1), (0, 1), apt),
+ Line((0, 1), (0, 0), apt),
+ )
points = ((0, 0), (1, 0), (1, 1), (0, 1))
r = Region(lines)
for i, p in enumerate(lines):
- assert_equal(r.primitives[i], p)
+ assert r.primitives[i] == p
def test_region_bounds():
""" Test region bounding box calculation
"""
apt = Circle((0, 0), 0)
- lines = (Line((0, 0), (1, 0), apt), Line((1, 0), (1, 1), apt),
- Line((1, 1), (0, 1), apt), Line((0, 1), (0, 0), apt))
+ lines = (
+ Line((0, 0), (1, 0), apt),
+ Line((1, 0), (1, 1), apt),
+ Line((1, 1), (0, 1), apt),
+ Line((0, 1), (0, 0), apt),
+ )
r = Region(lines)
xbounds, ybounds = r.bounding_box
- assert_array_almost_equal(xbounds, (0, 1))
- assert_array_almost_equal(ybounds, (0, 1))
+ pytest.approx(xbounds, (0, 1))
+ pytest.approx(ybounds, (0, 1))
def test_region_offset():
apt = Circle((0, 0), 0)
- lines = (Line((0, 0), (1, 0), apt), Line((1, 0), (1, 1), apt),
- Line((1, 1), (0, 1), apt), Line((0, 1), (0, 0), apt))
+ lines = (
+ Line((0, 0), (1, 0), apt),
+ Line((1, 0), (1, 1), apt),
+ Line((1, 1), (0, 1), apt),
+ Line((0, 1), (0, 0), apt),
+ )
r = Region(lines)
xlim, ylim = r.bounding_box
r.offset(0, 1)
new_xlim, new_ylim = r.bounding_box
- assert_array_almost_equal(new_xlim, xlim)
- assert_array_almost_equal(new_ylim, tuple([y + 1 for y in ylim]))
+ pytest.approx(new_xlim, xlim)
+ pytest.approx(new_ylim, tuple([y + 1 for y in ylim]))
def test_round_butterfly_ctor():
@@ -1059,58 +1125,58 @@ def test_round_butterfly_ctor():
test_cases = (((0, 0), 3), ((0, 0), 5), ((1, 1), 7))
for pos, diameter in test_cases:
b = RoundButterfly(pos, diameter)
- assert_equal(b.position, pos)
- assert_equal(b.diameter, diameter)
- assert_equal(b.radius, diameter / 2.)
+ assert b.position == pos
+ assert b.diameter == diameter
+ assert b.radius == diameter / 2.0
def test_round_butterfly_ctor_validation():
""" Test RoundButterfly argument validation
"""
- assert_raises(TypeError, RoundButterfly, 3, 5)
- assert_raises(TypeError, RoundButterfly, (3, 4, 5), 5)
+ 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')
+ b = RoundButterfly((2.54, 25.4), 254.0, units="metric")
# No Effect
b.to_metric()
- assert_equal(b.position, (2.54, 25.4))
- assert_equal(b.diameter, (254.0))
+ assert b.position == (2.54, 25.4)
+ assert b.diameter == (254.0)
b.to_inch()
- assert_equal(b.position, (0.1, 1.0))
- assert_equal(b.diameter, 10.0)
+ assert b.position == (0.1, 1.0)
+ assert b.diameter == 10.0
# No effect
b.to_inch()
- assert_equal(b.position, (0.1, 1.0))
- assert_equal(b.diameter, 10.0)
+ assert b.position == (0.1, 1.0)
+ assert b.diameter == 10.0
- b = RoundButterfly((0.1, 1.0), 10.0, units='inch')
+ b = RoundButterfly((0.1, 1.0), 10.0, units="inch")
# No effect
b.to_inch()
- assert_equal(b.position, (0.1, 1.0))
- assert_equal(b.diameter, 10.0)
+ assert b.position == (0.1, 1.0)
+ assert b.diameter == 10.0
b.to_metric()
- assert_equal(b.position, (2.54, 25.4))
- assert_equal(b.diameter, (254.0))
+ assert b.position == (2.54, 25.4)
+ assert b.diameter == (254.0)
# No Effect
b.to_metric()
- assert_equal(b.position, (2.54, 25.4))
- assert_equal(b.diameter, (254.0))
+ 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_equal(b.position, (1., 0.))
+ assert b.position == (1.0, 0.0)
b.offset(0, 1)
- assert_equal(b.position, (1., 1.))
+ assert b.position == (1.0, 1.0)
def test_round_butterfly_bounds():
@@ -1118,8 +1184,8 @@ def test_round_butterfly_bounds():
"""
b = RoundButterfly((0, 0), 2)
xbounds, ybounds = b.bounding_box
- assert_array_almost_equal(xbounds, (-1, 1))
- assert_array_almost_equal(ybounds, (-1, 1))
+ pytest.approx(xbounds, (-1, 1))
+ pytest.approx(ybounds, (-1, 1))
def test_square_butterfly_ctor():
@@ -1128,15 +1194,15 @@ def test_square_butterfly_ctor():
test_cases = (((0, 0), 3), ((0, 0), 5), ((1, 1), 7))
for pos, side in test_cases:
b = SquareButterfly(pos, side)
- assert_equal(b.position, pos)
- assert_equal(b.side, side)
+ assert b.position == pos
+ assert b.side == side
def test_square_butterfly_ctor_validation():
""" Test SquareButterfly argument validation
"""
- assert_raises(TypeError, SquareButterfly, 3, 5)
- assert_raises(TypeError, SquareButterfly, (3, 4, 5), 5)
+ pytest.raises(TypeError, SquareButterfly, 3, 5)
+ pytest.raises(TypeError, SquareButterfly, (3, 4, 5), 5)
def test_square_butterfly_bounds():
@@ -1144,125 +1210,129 @@ def test_square_butterfly_bounds():
"""
b = SquareButterfly((0, 0), 2)
xbounds, ybounds = b.bounding_box
- assert_array_almost_equal(xbounds, (-1, 1))
- assert_array_almost_equal(ybounds, (-1, 1))
+ pytest.approx(xbounds, (-1, 1))
+ pytest.approx(ybounds, (-1, 1))
def test_squarebutterfly_conversion():
- b = SquareButterfly((2.54, 25.4), 254.0, units='metric')
+ b = SquareButterfly((2.54, 25.4), 254.0, units="metric")
# No effect
b.to_metric()
- assert_equal(b.position, (2.54, 25.4))
- assert_equal(b.side, (254.0))
+ assert b.position == (2.54, 25.4)
+ assert b.side == (254.0)
b.to_inch()
- assert_equal(b.position, (0.1, 1.0))
- assert_equal(b.side, 10.0)
+ assert b.position == (0.1, 1.0)
+ assert b.side == 10.0
# No effect
b.to_inch()
- assert_equal(b.position, (0.1, 1.0))
- assert_equal(b.side, 10.0)
+ assert b.position == (0.1, 1.0)
+ assert b.side == 10.0
- b = SquareButterfly((0.1, 1.0), 10.0, units='inch')
+ b = SquareButterfly((0.1, 1.0), 10.0, units="inch")
# No effect
b.to_inch()
- assert_equal(b.position, (0.1, 1.0))
- assert_equal(b.side, 10.0)
+ assert b.position == (0.1, 1.0)
+ assert b.side == 10.0
b.to_metric()
- assert_equal(b.position, (2.54, 25.4))
- assert_equal(b.side, (254.0))
+ assert b.position == (2.54, 25.4)
+ assert b.side == (254.0)
# No effect
b.to_metric()
- assert_equal(b.position, (2.54, 25.4))
- assert_equal(b.side, (254.0))
+ 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_equal(b.position, (1., 0.))
+ assert b.position == (1.0, 0.0)
b.offset(0, 1)
- assert_equal(b.position, (1., 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))
+ 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_equal(d.position, pos)
- assert_equal(d.shape, shape)
- assert_equal(d.inner_diameter, in_d)
- assert_equal(d.outer_diameter, 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():
- assert_raises(TypeError, Donut, 3, 'round', 5, 7)
- assert_raises(TypeError, Donut, (3, 4, 5), 'round', 5, 7)
- assert_raises(ValueError, Donut, (0, 0), 'triangle', 3, 5)
- assert_raises(ValueError, Donut, (0, 0), 'round', 5, 3)
+ 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)
+ d = Donut((0, 0), "round", 0.0, 2.0)
xbounds, ybounds = d.bounding_box
- assert_equal(xbounds, (-1., 1.))
- assert_equal(ybounds, (-1., 1.))
+ assert xbounds == (-1.0, 1.0)
+ assert ybounds == (-1.0, 1.0)
def test_donut_conversion():
- d = Donut((2.54, 25.4), 'round', 254.0, 2540.0, units='metric')
+ d = Donut((2.54, 25.4), "round", 254.0, 2540.0, units="metric")
# No effect
d.to_metric()
- assert_equal(d.position, (2.54, 25.4))
- assert_equal(d.inner_diameter, 254.0)
- assert_equal(d.outer_diameter, 2540.0)
+ assert d.position == (2.54, 25.4)
+ assert d.inner_diameter == 254.0
+ assert d.outer_diameter == 2540.0
d.to_inch()
- assert_equal(d.position, (0.1, 1.0))
- assert_equal(d.inner_diameter, 10.0)
- assert_equal(d.outer_diameter, 100.0)
+ 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_equal(d.position, (0.1, 1.0))
- assert_equal(d.inner_diameter, 10.0)
- assert_equal(d.outer_diameter, 100.0)
+ 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')
+ d = Donut((0.1, 1.0), "round", 10.0, 100.0, units="inch")
# No effect
d.to_inch()
- assert_equal(d.position, (0.1, 1.0))
- assert_equal(d.inner_diameter, 10.0)
- assert_equal(d.outer_diameter, 100.0)
+ assert d.position == (0.1, 1.0)
+ assert d.inner_diameter == 10.0
+ assert d.outer_diameter == 100.0
d.to_metric()
- assert_equal(d.position, (2.54, 25.4))
- assert_equal(d.inner_diameter, 254.0)
- assert_equal(d.outer_diameter, 2540.0)
+ 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_equal(d.position, (2.54, 25.4))
- assert_equal(d.inner_diameter, 254.0)
- assert_equal(d.outer_diameter, 2540.0)
+ 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 = Donut((0, 0), "round", 1, 10)
d.offset(1, 0)
- assert_equal(d.position, (1., 0.))
+ assert d.position == (1.0, 0.0)
d.offset(0, 1)
- assert_equal(d.position, (1., 1.))
+ assert d.position == (1.0, 1.0)
def test_drill_ctor():
@@ -1271,89 +1341,89 @@ def test_drill_ctor():
test_cases = (((0, 0), 2), ((1, 1), 3), ((2, 2), 5))
for position, diameter in test_cases:
d = Drill(position, diameter)
- assert_equal(d.position, position)
- assert_equal(d.diameter, diameter)
- assert_equal(d.radius, diameter / 2.)
+ assert d.position == position
+ assert d.diameter == diameter
+ assert d.radius == diameter / 2.0
def test_drill_ctor_validation():
""" Test drill argument validation
"""
- assert_raises(TypeError, Drill, 3, 5)
- assert_raises(TypeError, Drill, (3,4,5), 5)
-
+ pytest.raises(TypeError, Drill, 3, 5)
+ pytest.raises(TypeError, Drill, (3, 4, 5), 5)
def test_drill_bounds():
d = Drill((0, 0), 2)
xbounds, ybounds = d.bounding_box
- assert_array_almost_equal(xbounds, (-1, 1))
- assert_array_almost_equal(ybounds, (-1, 1))
+ pytest.approx(xbounds, (-1, 1))
+ pytest.approx(ybounds, (-1, 1))
d = Drill((1, 2), 2)
xbounds, ybounds = d.bounding_box
- assert_array_almost_equal(xbounds, (0, 2))
- assert_array_almost_equal(ybounds, (1, 3))
+ pytest.approx(xbounds, (0, 2))
+ pytest.approx(ybounds, (1, 3))
def test_drill_conversion():
- d = Drill((2.54, 25.4), 254., units='metric')
+ d = Drill((2.54, 25.4), 254.0, units="metric")
- #No effect
+ # No effect
d.to_metric()
- assert_equal(d.position, (2.54, 25.4))
- assert_equal(d.diameter, 254.0)
+ assert d.position == (2.54, 25.4)
+ assert d.diameter == 254.0
d.to_inch()
- assert_equal(d.position, (0.1, 1.0))
- assert_equal(d.diameter, 10.0)
+ assert d.position == (0.1, 1.0)
+ assert d.diameter == 10.0
- #No effect
+ # No effect
d.to_inch()
- assert_equal(d.position, (0.1, 1.0))
- assert_equal(d.diameter, 10.0)
+ assert d.position == (0.1, 1.0)
+ assert d.diameter == 10.0
- d = Drill((0.1, 1.0), 10., units='inch')
+ d = Drill((0.1, 1.0), 10.0, units="inch")
# No effect
d.to_inch()
- assert_equal(d.position, (0.1, 1.0))
- assert_equal(d.diameter, 10.0)
+ assert d.position == (0.1, 1.0)
+ assert d.diameter == 10.0
d.to_metric()
- assert_equal(d.position, (2.54, 25.4))
- assert_equal(d.diameter, 254.0)
+ assert d.position == (2.54, 25.4)
+ assert d.diameter == 254.0
# No effect
d.to_metric()
- assert_equal(d.position, (2.54, 25.4))
- assert_equal(d.diameter, 254.0)
+ assert d.position == (2.54, 25.4)
+ assert d.diameter == 254.0
def test_drill_offset():
- d = Drill((0, 0), 1.)
+ d = Drill((0, 0), 1.0)
d.offset(1, 0)
- assert_equal(d.position, (1., 0.))
+ assert d.position == (1.0, 0.0)
d.offset(0, 1)
- assert_equal(d.position, (1., 1.))
+ assert d.position == (1.0, 1.0)
def test_drill_equality():
- d = Drill((2.54, 25.4), 254.)
- d1 = Drill((2.54, 25.4), 254.)
- assert_equal(d, d1)
+ d = Drill((2.54, 25.4), 254.0)
+ d1 = Drill((2.54, 25.4), 254.0)
+ assert d == d1
d1 = Drill((2.54, 25.4), 254.2)
- assert_not_equal(d, d1)
+ assert d != d1
def test_slot_bounds():
""" Test Slot primitive bounding box calculation
"""
- cases = [((0, 0), (1, 1), ((-1, 2), (-1, 2))),
- ((-1, -1), (1, 1), ((-2, 2), (-2, 2))),
- ((1, 1), (-1, -1), ((-2, 2), (-2, 2))),
- ((-1, 1), (1, -1), ((-2, 2), (-2, 2))), ]
+ cases = [
+ ((0, 0), (1, 1), ((-1, 2), (-1, 2))),
+ ((-1, -1), (1, 1), ((-2, 2), (-2, 2))),
+ ((1, 1), (-1, -1), ((-2, 2), (-2, 2))),
+ ((-1, 1), (1, -1), ((-2, 2), (-2, 2))),
+ ]
for start, end, expected in cases:
s = Slot(start, end, 2.0)
- assert_equal(s.bounding_box, expected)
-
+ assert s.bounding_box == expected