diff options
Diffstat (limited to 'gerber/tests/test_excellon_statements.py')
-rw-r--r-- | gerber/tests/test_excellon_statements.py | 616 |
1 files changed, 325 insertions, 291 deletions
diff --git a/gerber/tests/test_excellon_statements.py b/gerber/tests/test_excellon_statements.py index 8e6e06e..41fe294 100644 --- a/gerber/tests/test_excellon_statements.py +++ b/gerber/tests/test_excellon_statements.py @@ -3,15 +3,15 @@ # Author: Hamilton Kibbe <ham@hamiltonkib.be> -from .tests import assert_equal, assert_not_equal, assert_raises +import pytest from ..excellon_statements import * from ..cam import FileSettings def test_excellon_statement_implementation(): stmt = ExcellonStatement() - assert_raises(NotImplementedError, stmt.from_excellon, None) - assert_raises(NotImplementedError, stmt.to_excellon) + pytest.raises(NotImplementedError, stmt.from_excellon, None) + pytest.raises(NotImplementedError, stmt.to_excellon) def test_excellontstmt(): @@ -26,154 +26,173 @@ def test_excellontstmt(): def test_excellontool_factory(): """ Test ExcellonTool factory methods """ - exc_line = 'T8F01B02S00003H04Z05C0.12500' - settings = FileSettings(format=(2, 5), zero_suppression='trailing', - units='inch', notation='absolute') + exc_line = "T8F01B02S00003H04Z05C0.12500" + settings = FileSettings( + format=(2, 5), zero_suppression="trailing", units="inch", notation="absolute" + ) tool = ExcellonTool.from_excellon(exc_line, settings) - assert_equal(tool.number, 8) - assert_equal(tool.diameter, 0.125) - assert_equal(tool.feed_rate, 1) - assert_equal(tool.retract_rate, 2) - assert_equal(tool.rpm, 3) - assert_equal(tool.max_hit_count, 4) - assert_equal(tool.depth_offset, 5) - - stmt = {'number': 8, 'feed_rate': 1, 'retract_rate': 2, 'rpm': 3, - 'diameter': 0.125, 'max_hit_count': 4, 'depth_offset': 5} + assert tool.number == 8 + assert tool.diameter == 0.125 + assert tool.feed_rate == 1 + assert tool.retract_rate == 2 + assert tool.rpm == 3 + assert tool.max_hit_count == 4 + assert tool.depth_offset == 5 + + stmt = { + "number": 8, + "feed_rate": 1, + "retract_rate": 2, + "rpm": 3, + "diameter": 0.125, + "max_hit_count": 4, + "depth_offset": 5, + } tool = ExcellonTool.from_dict(settings, stmt) - assert_equal(tool.number, 8) - assert_equal(tool.diameter, 0.125) - assert_equal(tool.feed_rate, 1) - assert_equal(tool.retract_rate, 2) - assert_equal(tool.rpm, 3) - assert_equal(tool.max_hit_count, 4) - assert_equal(tool.depth_offset, 5) + assert tool.number == 8 + assert tool.diameter == 0.125 + assert tool.feed_rate == 1 + assert tool.retract_rate == 2 + assert tool.rpm == 3 + assert tool.max_hit_count == 4 + assert tool.depth_offset == 5 def test_excellontool_dump(): """ Test ExcellonTool to_excellon() """ - exc_lines = ['T01F0S0C0.01200', 'T02F0S0C0.01500', 'T03F0S0C0.01968', - 'T04F0S0C0.02800', 'T05F0S0C0.03300', 'T06F0S0C0.03800', - 'T07F0S0C0.04300', 'T08F0S0C0.12500', 'T09F0S0C0.13000', - 'T08B01F02H03S00003C0.12500Z04', 'T01F0S300.999C0.01200'] - settings = FileSettings(format=(2, 5), zero_suppression='trailing', - units='inch', notation='absolute') + exc_lines = [ + "T01F0S0C0.01200", + "T02F0S0C0.01500", + "T03F0S0C0.01968", + "T04F0S0C0.02800", + "T05F0S0C0.03300", + "T06F0S0C0.03800", + "T07F0S0C0.04300", + "T08F0S0C0.12500", + "T09F0S0C0.13000", + "T08B01F02H03S00003C0.12500Z04", + "T01F0S300.999C0.01200", + ] + settings = FileSettings( + format=(2, 5), zero_suppression="trailing", units="inch", notation="absolute" + ) for line in exc_lines: tool = ExcellonTool.from_excellon(line, settings) - assert_equal(tool.to_excellon(), line) + assert tool.to_excellon() == line def test_excellontool_order(): - settings = FileSettings(format=(2, 5), zero_suppression='trailing', - units='inch', notation='absolute') - line = 'T8F00S00C0.12500' + settings = FileSettings( + format=(2, 5), zero_suppression="trailing", units="inch", notation="absolute" + ) + line = "T8F00S00C0.12500" tool1 = ExcellonTool.from_excellon(line, settings) - line = 'T8C0.12500F00S00' + line = "T8C0.12500F00S00" tool2 = ExcellonTool.from_excellon(line, settings) - assert_equal(tool1.diameter, tool2.diameter) - assert_equal(tool1.feed_rate, tool2.feed_rate) - assert_equal(tool1.rpm, tool2.rpm) + assert tool1.diameter == tool2.diameter + assert tool1.feed_rate == tool2.feed_rate + assert tool1.rpm == tool2.rpm def test_excellontool_conversion(): - tool = ExcellonTool.from_dict(FileSettings(units='metric'), - {'number': 8, 'diameter': 25.4}) + tool = ExcellonTool.from_dict( + FileSettings(units="metric"), {"number": 8, "diameter": 25.4} + ) tool.to_inch() - assert_equal(tool.diameter, 1.) - tool = ExcellonTool.from_dict(FileSettings(units='inch'), - {'number': 8, 'diameter': 1.}) + assert tool.diameter == 1.0 + tool = ExcellonTool.from_dict( + FileSettings(units="inch"), {"number": 8, "diameter": 1.0} + ) tool.to_metric() - assert_equal(tool.diameter, 25.4) + assert tool.diameter == 25.4 # Shouldn't change units if we're already using target units - tool = ExcellonTool.from_dict(FileSettings(units='inch'), - {'number': 8, 'diameter': 25.4}) + tool = ExcellonTool.from_dict( + FileSettings(units="inch"), {"number": 8, "diameter": 25.4} + ) tool.to_inch() - assert_equal(tool.diameter, 25.4) - tool = ExcellonTool.from_dict(FileSettings(units='metric'), - {'number': 8, 'diameter': 1.}) + assert tool.diameter == 25.4 + tool = ExcellonTool.from_dict( + FileSettings(units="metric"), {"number": 8, "diameter": 1.0} + ) tool.to_metric() - assert_equal(tool.diameter, 1.) + assert tool.diameter == 1.0 def test_excellontool_repr(): - tool = ExcellonTool.from_dict(FileSettings(), - {'number': 8, 'diameter': 0.125}) - assert_equal(str(tool), '<ExcellonTool 08: 0.125in. dia.>') - tool = ExcellonTool.from_dict(FileSettings(units='metric'), - {'number': 8, 'diameter': 0.125}) - assert_equal(str(tool), '<ExcellonTool 08: 0.125mm dia.>') + tool = ExcellonTool.from_dict(FileSettings(), {"number": 8, "diameter": 0.125}) + assert str(tool) == "<ExcellonTool 08: 0.125in. dia.>" + tool = ExcellonTool.from_dict( + FileSettings(units="metric"), {"number": 8, "diameter": 0.125} + ) + assert str(tool) == "<ExcellonTool 08: 0.125mm dia.>" def test_excellontool_equality(): - t = ExcellonTool.from_dict( - FileSettings(), {'number': 8, 'diameter': 0.125}) + t = ExcellonTool.from_dict(FileSettings(), {"number": 8, "diameter": 0.125}) + t1 = ExcellonTool.from_dict(FileSettings(), {"number": 8, "diameter": 0.125}) + assert t == t1 t1 = ExcellonTool.from_dict( - FileSettings(), {'number': 8, 'diameter': 0.125}) - assert_equal(t, t1) - t1 = ExcellonTool.from_dict(FileSettings(units='metric'), - {'number': 8, 'diameter': 0.125}) - assert_not_equal(t, t1) + FileSettings(units="metric"), {"number": 8, "diameter": 0.125} + ) + assert t != t1 def test_toolselection_factory(): """ Test ToolSelectionStmt factory method """ - stmt = ToolSelectionStmt.from_excellon('T01') - assert_equal(stmt.tool, 1) - assert_equal(stmt.compensation_index, None) - stmt = ToolSelectionStmt.from_excellon('T0223') - assert_equal(stmt.tool, 2) - assert_equal(stmt.compensation_index, 23) - stmt = ToolSelectionStmt.from_excellon('T042') - assert_equal(stmt.tool, 42) - assert_equal(stmt.compensation_index, None) + stmt = ToolSelectionStmt.from_excellon("T01") + assert stmt.tool == 1 + assert stmt.compensation_index == None + stmt = ToolSelectionStmt.from_excellon("T0223") + assert stmt.tool == 2 + assert stmt.compensation_index == 23 + stmt = ToolSelectionStmt.from_excellon("T042") + assert stmt.tool == 42 + assert stmt.compensation_index == None def test_toolselection_dump(): """ Test ToolSelectionStmt to_excellon() """ - lines = ['T01', 'T0223', 'T10', 'T09', 'T0000'] + lines = ["T01", "T0223", "T10", "T09", "T0000"] for line in lines: stmt = ToolSelectionStmt.from_excellon(line) - assert_equal(stmt.to_excellon(), line) + assert stmt.to_excellon() == line def test_z_axis_infeed_rate_factory(): """ Test ZAxisInfeedRateStmt factory method """ - stmt = ZAxisInfeedRateStmt.from_excellon('F01') - assert_equal(stmt.rate, 1) - stmt = ZAxisInfeedRateStmt.from_excellon('F2') - assert_equal(stmt.rate, 2) - stmt = ZAxisInfeedRateStmt.from_excellon('F03') - assert_equal(stmt.rate, 3) + stmt = ZAxisInfeedRateStmt.from_excellon("F01") + assert stmt.rate == 1 + stmt = ZAxisInfeedRateStmt.from_excellon("F2") + assert stmt.rate == 2 + stmt = ZAxisInfeedRateStmt.from_excellon("F03") + assert stmt.rate == 3 def test_z_axis_infeed_rate_dump(): """ Test ZAxisInfeedRateStmt to_excellon() """ - inputs = [ - ('F01', 'F01'), - ('F2', 'F02'), - ('F00003', 'F03') - ] + inputs = [("F01", "F01"), ("F2", "F02"), ("F00003", "F03")] for input_rate, expected_output in inputs: stmt = ZAxisInfeedRateStmt.from_excellon(input_rate) - assert_equal(stmt.to_excellon(), expected_output) + assert stmt.to_excellon() == expected_output def test_coordinatestmt_factory(): """ Test CoordinateStmt factory method """ - settings = FileSettings(format=(2, 5), zero_suppression='trailing', - units='inch', notation='absolute') + settings = FileSettings( + format=(2, 5), zero_suppression="trailing", units="inch", notation="absolute" + ) - line = 'X0278207Y0065293' + line = "X0278207Y0065293" stmt = CoordinateStmt.from_excellon(line, settings) - assert_equal(stmt.x, 2.78207) - assert_equal(stmt.y, 0.65293) + assert stmt.x == 2.78207 + assert stmt.y == 0.65293 # line = 'X02945' # stmt = CoordinateStmt.from_excellon(line) @@ -183,518 +202,533 @@ def test_coordinatestmt_factory(): # stmt = CoordinateStmt.from_excellon(line) # assert_equal(stmt.y, 0.575) - settings = FileSettings(format=(2, 4), zero_suppression='leading', - units='inch', notation='absolute') + settings = FileSettings( + format=(2, 4), zero_suppression="leading", units="inch", notation="absolute" + ) - line = 'X9660Y4639' + line = "X9660Y4639" stmt = CoordinateStmt.from_excellon(line, settings) - assert_equal(stmt.x, 0.9660) - assert_equal(stmt.y, 0.4639) - assert_equal(stmt.to_excellon(settings), "X9660Y4639") - assert_equal(stmt.units, 'inch') + assert stmt.x == 0.9660 + assert stmt.y == 0.4639 + assert stmt.to_excellon(settings) == "X9660Y4639" + assert stmt.units == "inch" - settings.units = 'metric' + settings.units = "metric" stmt = CoordinateStmt.from_excellon(line, settings) - assert_equal(stmt.units, 'metric') + assert stmt.units == "metric" def test_coordinatestmt_dump(): """ Test CoordinateStmt to_excellon() """ - lines = ['X278207Y65293', 'X243795', 'Y82528', 'Y86028', - 'X251295Y81528', 'X2525Y78', 'X255Y575', 'Y52', - 'X2675', 'Y575', 'X2425', 'Y52', 'X23', ] - settings = FileSettings(format=(2, 4), zero_suppression='leading', - units='inch', notation='absolute') + lines = [ + "X278207Y65293", + "X243795", + "Y82528", + "Y86028", + "X251295Y81528", + "X2525Y78", + "X255Y575", + "Y52", + "X2675", + "Y575", + "X2425", + "Y52", + "X23", + ] + settings = FileSettings( + format=(2, 4), zero_suppression="leading", units="inch", notation="absolute" + ) for line in lines: stmt = CoordinateStmt.from_excellon(line, settings) - assert_equal(stmt.to_excellon(settings), line) + assert stmt.to_excellon(settings) == line def test_coordinatestmt_conversion(): settings = FileSettings() - settings.units = 'metric' - stmt = CoordinateStmt.from_excellon('X254Y254', settings) + settings.units = "metric" + stmt = CoordinateStmt.from_excellon("X254Y254", settings) # No effect stmt.to_metric() - assert_equal(stmt.x, 25.4) - assert_equal(stmt.y, 25.4) + assert stmt.x == 25.4 + assert stmt.y == 25.4 stmt.to_inch() - assert_equal(stmt.units, 'inch') - assert_equal(stmt.x, 1.) - assert_equal(stmt.y, 1.) + assert stmt.units == "inch" + assert stmt.x == 1.0 + assert stmt.y == 1.0 # No effect stmt.to_inch() - assert_equal(stmt.x, 1.) - assert_equal(stmt.y, 1.) + assert stmt.x == 1.0 + assert stmt.y == 1.0 - settings.units = 'inch' - stmt = CoordinateStmt.from_excellon('X01Y01', settings) + settings.units = "inch" + stmt = CoordinateStmt.from_excellon("X01Y01", settings) # No effect stmt.to_inch() - assert_equal(stmt.x, 1.) - assert_equal(stmt.y, 1.) + assert stmt.x == 1.0 + assert stmt.y == 1.0 stmt.to_metric() - assert_equal(stmt.units, 'metric') - assert_equal(stmt.x, 25.4) - assert_equal(stmt.y, 25.4) + assert stmt.units == "metric" + assert stmt.x == 25.4 + assert stmt.y == 25.4 # No effect stmt.to_metric() - assert_equal(stmt.x, 25.4) - assert_equal(stmt.y, 25.4) + assert stmt.x == 25.4 + assert stmt.y == 25.4 def test_coordinatestmt_offset(): - stmt = CoordinateStmt.from_excellon('X01Y01', FileSettings()) + stmt = CoordinateStmt.from_excellon("X01Y01", FileSettings()) stmt.offset() - assert_equal(stmt.x, 1) - assert_equal(stmt.y, 1) + assert stmt.x == 1 + assert stmt.y == 1 stmt.offset(1, 0) - assert_equal(stmt.x, 2.) - assert_equal(stmt.y, 1.) + assert stmt.x == 2.0 + assert stmt.y == 1.0 stmt.offset(0, 1) - assert_equal(stmt.x, 2.) - assert_equal(stmt.y, 2.) + assert stmt.x == 2.0 + assert stmt.y == 2.0 def test_coordinatestmt_string(): - settings = FileSettings(format=(2, 4), zero_suppression='leading', - units='inch', notation='absolute') - stmt = CoordinateStmt.from_excellon('X9660Y4639', settings) - assert_equal(str(stmt), '<Coordinate Statement: X: 0.966 Y: 0.4639 >') + settings = FileSettings( + format=(2, 4), zero_suppression="leading", units="inch", notation="absolute" + ) + stmt = CoordinateStmt.from_excellon("X9660Y4639", settings) + assert str(stmt) == "<Coordinate Statement: X: 0.966 Y: 0.4639 >" def test_repeathole_stmt_factory(): - stmt = RepeatHoleStmt.from_excellon('R0004X015Y32', - FileSettings(zeros='leading', - units='inch')) - assert_equal(stmt.count, 4) - assert_equal(stmt.xdelta, 1.5) - assert_equal(stmt.ydelta, 32) - assert_equal(stmt.units, 'inch') + stmt = RepeatHoleStmt.from_excellon( + "R0004X015Y32", FileSettings(zeros="leading", units="inch") + ) + assert stmt.count == 4 + assert stmt.xdelta == 1.5 + assert stmt.ydelta == 32 + assert stmt.units == "inch" - stmt = RepeatHoleStmt.from_excellon('R0004X015Y32', - FileSettings(zeros='leading', - units='metric')) - assert_equal(stmt.units, 'metric') + stmt = RepeatHoleStmt.from_excellon( + "R0004X015Y32", FileSettings(zeros="leading", units="metric") + ) + assert stmt.units == "metric" def test_repeatholestmt_dump(): - line = 'R4X015Y32' + line = "R4X015Y32" stmt = RepeatHoleStmt.from_excellon(line, FileSettings()) - assert_equal(stmt.to_excellon(FileSettings()), line) + assert stmt.to_excellon(FileSettings()) == line def test_repeatholestmt_conversion(): - line = 'R4X0254Y254' + line = "R4X0254Y254" settings = FileSettings() - settings.units = 'metric' + settings.units = "metric" stmt = RepeatHoleStmt.from_excellon(line, settings) # No effect stmt.to_metric() - assert_equal(stmt.xdelta, 2.54) - assert_equal(stmt.ydelta, 25.4) + assert stmt.xdelta == 2.54 + assert stmt.ydelta == 25.4 stmt.to_inch() - assert_equal(stmt.units, 'inch') - assert_equal(stmt.xdelta, 0.1) - assert_equal(stmt.ydelta, 1.) + assert stmt.units == "inch" + assert stmt.xdelta == 0.1 + assert stmt.ydelta == 1.0 # no effect stmt.to_inch() - assert_equal(stmt.xdelta, 0.1) - assert_equal(stmt.ydelta, 1.) + assert stmt.xdelta == 0.1 + assert stmt.ydelta == 1.0 - line = 'R4X01Y1' - settings.units = 'inch' + line = "R4X01Y1" + settings.units = "inch" stmt = RepeatHoleStmt.from_excellon(line, settings) # no effect stmt.to_inch() - assert_equal(stmt.xdelta, 1.) - assert_equal(stmt.ydelta, 10.) + assert stmt.xdelta == 1.0 + assert stmt.ydelta == 10.0 stmt.to_metric() - assert_equal(stmt.units, 'metric') - assert_equal(stmt.xdelta, 25.4) - assert_equal(stmt.ydelta, 254.) + assert stmt.units == "metric" + assert stmt.xdelta == 25.4 + assert stmt.ydelta == 254.0 # No effect stmt.to_metric() - assert_equal(stmt.xdelta, 25.4) - assert_equal(stmt.ydelta, 254.) + assert stmt.xdelta == 25.4 + assert stmt.ydelta == 254.0 def test_repeathole_str(): - stmt = RepeatHoleStmt.from_excellon('R4X015Y32', FileSettings()) - assert_equal(str(stmt), '<Repeat Hole: 4 times, offset X: 1.5 Y: 32>') + stmt = RepeatHoleStmt.from_excellon("R4X015Y32", FileSettings()) + assert str(stmt) == "<Repeat Hole: 4 times, offset X: 1.5 Y: 32>" def test_commentstmt_factory(): """ Test CommentStmt factory method """ - line = ';Layer_Color=9474304' + line = ";Layer_Color=9474304" stmt = CommentStmt.from_excellon(line) - assert_equal(stmt.comment, line[1:]) + assert stmt.comment == line[1:] - line = ';FILE_FORMAT=2:5' + line = ";FILE_FORMAT=2:5" stmt = CommentStmt.from_excellon(line) - assert_equal(stmt.comment, line[1:]) + assert stmt.comment == line[1:] - line = ';TYPE=PLATED' + line = ";TYPE=PLATED" stmt = CommentStmt.from_excellon(line) - assert_equal(stmt.comment, line[1:]) + assert stmt.comment == line[1:] def test_commentstmt_dump(): """ Test CommentStmt to_excellon() """ - lines = [';Layer_Color=9474304', ';FILE_FORMAT=2:5', ';TYPE=PLATED', ] + lines = [";Layer_Color=9474304", ";FILE_FORMAT=2:5", ";TYPE=PLATED"] for line in lines: stmt = CommentStmt.from_excellon(line) - assert_equal(stmt.to_excellon(), line) + assert stmt.to_excellon() == line def test_header_begin_stmt(): stmt = HeaderBeginStmt() - assert_equal(stmt.to_excellon(None), 'M48') + assert stmt.to_excellon(None) == "M48" def test_header_end_stmt(): stmt = HeaderEndStmt() - assert_equal(stmt.to_excellon(None), 'M95') + assert stmt.to_excellon(None) == "M95" def test_rewindstop_stmt(): stmt = RewindStopStmt() - assert_equal(stmt.to_excellon(None), '%') + assert stmt.to_excellon(None) == "%" def test_z_axis_rout_position_stmt(): stmt = ZAxisRoutPositionStmt() - assert_equal(stmt.to_excellon(None), 'M15') + assert stmt.to_excellon(None) == "M15" def test_retract_with_clamping_stmt(): stmt = RetractWithClampingStmt() - assert_equal(stmt.to_excellon(None), 'M16') + assert stmt.to_excellon(None) == "M16" def test_retract_without_clamping_stmt(): stmt = RetractWithoutClampingStmt() - assert_equal(stmt.to_excellon(None), 'M17') + assert stmt.to_excellon(None) == "M17" def test_cutter_compensation_off_stmt(): stmt = CutterCompensationOffStmt() - assert_equal(stmt.to_excellon(None), 'G40') + assert stmt.to_excellon(None) == "G40" def test_cutter_compensation_left_stmt(): stmt = CutterCompensationLeftStmt() - assert_equal(stmt.to_excellon(None), 'G41') + assert stmt.to_excellon(None) == "G41" def test_cutter_compensation_right_stmt(): stmt = CutterCompensationRightStmt() - assert_equal(stmt.to_excellon(None), 'G42') + assert stmt.to_excellon(None) == "G42" def test_endofprogramstmt_factory(): - settings = FileSettings(units='inch') - stmt = EndOfProgramStmt.from_excellon('M30X01Y02', settings) - assert_equal(stmt.x, 1.) - assert_equal(stmt.y, 2.) - assert_equal(stmt.units, 'inch') - settings.units = 'metric' - stmt = EndOfProgramStmt.from_excellon('M30X01', settings) - assert_equal(stmt.x, 1.) - assert_equal(stmt.y, None) - assert_equal(stmt.units, 'metric') - stmt = EndOfProgramStmt.from_excellon('M30Y02', FileSettings()) - assert_equal(stmt.x, None) - assert_equal(stmt.y, 2.) + settings = FileSettings(units="inch") + stmt = EndOfProgramStmt.from_excellon("M30X01Y02", settings) + assert stmt.x == 1.0 + assert stmt.y == 2.0 + assert stmt.units == "inch" + settings.units = "metric" + stmt = EndOfProgramStmt.from_excellon("M30X01", settings) + assert stmt.x == 1.0 + assert stmt.y == None + assert stmt.units == "metric" + stmt = EndOfProgramStmt.from_excellon("M30Y02", FileSettings()) + assert stmt.x == None + assert stmt.y == 2.0 def test_endofprogramStmt_dump(): - lines = ['M30X01Y02', ] + lines = ["M30X01Y02"] for line in lines: stmt = EndOfProgramStmt.from_excellon(line, FileSettings()) - assert_equal(stmt.to_excellon(FileSettings()), line) + assert stmt.to_excellon(FileSettings()) == line def test_endofprogramstmt_conversion(): settings = FileSettings() - settings.units = 'metric' - stmt = EndOfProgramStmt.from_excellon('M30X0254Y254', settings) + settings.units = "metric" + stmt = EndOfProgramStmt.from_excellon("M30X0254Y254", settings) # No effect stmt.to_metric() - assert_equal(stmt.x, 2.54) - assert_equal(stmt.y, 25.4) + assert stmt.x == 2.54 + assert stmt.y == 25.4 stmt.to_inch() - assert_equal(stmt.units, 'inch') - assert_equal(stmt.x, 0.1) - assert_equal(stmt.y, 1.0) + assert stmt.units == "inch" + assert stmt.x == 0.1 + assert stmt.y == 1.0 # No effect stmt.to_inch() - assert_equal(stmt.x, 0.1) - assert_equal(stmt.y, 1.0) + assert stmt.x == 0.1 + assert stmt.y == 1.0 - settings.units = 'inch' - stmt = EndOfProgramStmt.from_excellon('M30X01Y1', settings) + settings.units = "inch" + stmt = EndOfProgramStmt.from_excellon("M30X01Y1", settings) # No effect stmt.to_inch() - assert_equal(stmt.x, 1.) - assert_equal(stmt.y, 10.0) + assert stmt.x == 1.0 + assert stmt.y == 10.0 stmt.to_metric() - assert_equal(stmt.units, 'metric') - assert_equal(stmt.x, 25.4) - assert_equal(stmt.y, 254.) + assert stmt.units == "metric" + assert stmt.x == 25.4 + assert stmt.y == 254.0 # No effect stmt.to_metric() - assert_equal(stmt.x, 25.4) - assert_equal(stmt.y, 254.) + assert stmt.x == 25.4 + assert stmt.y == 254.0 def test_endofprogramstmt_offset(): stmt = EndOfProgramStmt(1, 1) stmt.offset() - assert_equal(stmt.x, 1) - assert_equal(stmt.y, 1) + assert stmt.x == 1 + assert stmt.y == 1 stmt.offset(1, 0) - assert_equal(stmt.x, 2.) - assert_equal(stmt.y, 1.) + assert stmt.x == 2.0 + assert stmt.y == 1.0 stmt.offset(0, 1) - assert_equal(stmt.x, 2.) - assert_equal(stmt.y, 2.) + assert stmt.x == 2.0 + assert stmt.y == 2.0 def test_unitstmt_factory(): """ Test UnitStmt factory method """ - line = 'INCH,LZ' + line = "INCH,LZ" stmt = UnitStmt.from_excellon(line) - assert_equal(stmt.units, 'inch') - assert_equal(stmt.zeros, 'leading') + assert stmt.units == "inch" + assert stmt.zeros == "leading" - line = 'INCH,TZ' + line = "INCH,TZ" stmt = UnitStmt.from_excellon(line) - assert_equal(stmt.units, 'inch') - assert_equal(stmt.zeros, 'trailing') + assert stmt.units == "inch" + assert stmt.zeros == "trailing" - line = 'METRIC,LZ' + line = "METRIC,LZ" stmt = UnitStmt.from_excellon(line) - assert_equal(stmt.units, 'metric') - assert_equal(stmt.zeros, 'leading') + assert stmt.units == "metric" + assert stmt.zeros == "leading" - line = 'METRIC,TZ' + line = "METRIC,TZ" stmt = UnitStmt.from_excellon(line) - assert_equal(stmt.units, 'metric') - assert_equal(stmt.zeros, 'trailing') + assert stmt.units == "metric" + assert stmt.zeros == "trailing" def test_unitstmt_dump(): """ Test UnitStmt to_excellon() """ - lines = ['INCH,LZ', 'INCH,TZ', 'METRIC,LZ', 'METRIC,TZ', ] + lines = ["INCH,LZ", "INCH,TZ", "METRIC,LZ", "METRIC,TZ"] for line in lines: stmt = UnitStmt.from_excellon(line) - assert_equal(stmt.to_excellon(), line) + assert stmt.to_excellon() == line def test_unitstmt_conversion(): - stmt = UnitStmt.from_excellon('METRIC,TZ') + stmt = UnitStmt.from_excellon("METRIC,TZ") stmt.to_inch() - assert_equal(stmt.units, 'inch') + assert stmt.units == "inch" - stmt = UnitStmt.from_excellon('INCH,TZ') + stmt = UnitStmt.from_excellon("INCH,TZ") stmt.to_metric() - assert_equal(stmt.units, 'metric') + assert stmt.units == "metric" def test_incrementalmode_factory(): """ Test IncrementalModeStmt factory method """ - line = 'ICI,ON' + line = "ICI,ON" stmt = IncrementalModeStmt.from_excellon(line) - assert_equal(stmt.mode, 'on') + assert stmt.mode == "on" - line = 'ICI,OFF' + line = "ICI,OFF" stmt = IncrementalModeStmt.from_excellon(line) - assert_equal(stmt.mode, 'off') + assert stmt.mode == "off" def test_incrementalmode_dump(): """ Test IncrementalModeStmt to_excellon() """ - lines = ['ICI,ON', 'ICI,OFF', ] + lines = ["ICI,ON", "ICI,OFF"] for line in lines: stmt = IncrementalModeStmt.from_excellon(line) - assert_equal(stmt.to_excellon(), line) + assert stmt.to_excellon() == line def test_incrementalmode_validation(): """ Test IncrementalModeStmt input validation """ - assert_raises(ValueError, IncrementalModeStmt, 'OFF-ISH') + pytest.raises(ValueError, IncrementalModeStmt, "OFF-ISH") def test_versionstmt_factory(): """ Test VersionStmt factory method """ - line = 'VER,1' + line = "VER,1" stmt = VersionStmt.from_excellon(line) - assert_equal(stmt.version, 1) + assert stmt.version == 1 - line = 'VER,2' + line = "VER,2" stmt = VersionStmt.from_excellon(line) - assert_equal(stmt.version, 2) + assert stmt.version == 2 def test_versionstmt_dump(): """ Test VersionStmt to_excellon() """ - lines = ['VER,1', 'VER,2', ] + lines = ["VER,1", "VER,2"] for line in lines: stmt = VersionStmt.from_excellon(line) - assert_equal(stmt.to_excellon(), line) + assert stmt.to_excellon() == line def test_versionstmt_validation(): """ Test VersionStmt input validation """ - assert_raises(ValueError, VersionStmt, 3) + pytest.raises(ValueError, VersionStmt, 3) def test_formatstmt_factory(): """ Test FormatStmt factory method """ - line = 'FMAT,1' + line = "FMAT,1" stmt = FormatStmt.from_excellon(line) - assert_equal(stmt.format, 1) + assert stmt.format == 1 - line = 'FMAT,2' + line = "FMAT,2" stmt = FormatStmt.from_excellon(line) - assert_equal(stmt.format, 2) + assert stmt.format == 2 def test_formatstmt_dump(): """ Test FormatStmt to_excellon() """ - lines = ['FMAT,1', 'FMAT,2', ] + lines = ["FMAT,1", "FMAT,2"] for line in lines: stmt = FormatStmt.from_excellon(line) - assert_equal(stmt.to_excellon(), line) + assert stmt.to_excellon() == line def test_formatstmt_validation(): """ Test FormatStmt input validation """ - assert_raises(ValueError, FormatStmt, 3) + pytest.raises(ValueError, FormatStmt, 3) def test_linktoolstmt_factory(): """ Test LinkToolStmt factory method """ - line = '1/2/3/4' + line = "1/2/3/4" stmt = LinkToolStmt.from_excellon(line) - assert_equal(stmt.linked_tools, [1, 2, 3, 4]) + assert stmt.linked_tools == [1, 2, 3, 4] - line = '01/02/03/04' + line = "01/02/03/04" stmt = LinkToolStmt.from_excellon(line) - assert_equal(stmt.linked_tools, [1, 2, 3, 4]) + assert stmt.linked_tools == [1, 2, 3, 4] def test_linktoolstmt_dump(): """ Test LinkToolStmt to_excellon() """ - lines = ['1/2/3/4', '5/6/7', ] + lines = ["1/2/3/4", "5/6/7"] for line in lines: stmt = LinkToolStmt.from_excellon(line) - assert_equal(stmt.to_excellon(), line) + assert stmt.to_excellon() == line def test_measmodestmt_factory(): """ Test MeasuringModeStmt factory method """ - line = 'M72' + line = "M72" stmt = MeasuringModeStmt.from_excellon(line) - assert_equal(stmt.units, 'inch') + assert stmt.units == "inch" - line = 'M71' + line = "M71" stmt = MeasuringModeStmt.from_excellon(line) - assert_equal(stmt.units, 'metric') + assert stmt.units == "metric" def test_measmodestmt_dump(): """ Test MeasuringModeStmt to_excellon() """ - lines = ['M71', 'M72', ] + lines = ["M71", "M72"] for line in lines: stmt = MeasuringModeStmt.from_excellon(line) - assert_equal(stmt.to_excellon(), line) + assert stmt.to_excellon() == line def test_measmodestmt_validation(): """ Test MeasuringModeStmt input validation """ - assert_raises(ValueError, MeasuringModeStmt.from_excellon, 'M70') - assert_raises(ValueError, MeasuringModeStmt, 'millimeters') + pytest.raises(ValueError, MeasuringModeStmt.from_excellon, "M70") + pytest.raises(ValueError, MeasuringModeStmt, "millimeters") def test_measmodestmt_conversion(): - line = 'M72' + line = "M72" stmt = MeasuringModeStmt.from_excellon(line) - assert_equal(stmt.units, 'inch') + assert stmt.units == "inch" stmt.to_metric() - assert_equal(stmt.units, 'metric') + assert stmt.units == "metric" - line = 'M71' + line = "M71" stmt = MeasuringModeStmt.from_excellon(line) - assert_equal(stmt.units, 'metric') + assert stmt.units == "metric" stmt.to_inch() - assert_equal(stmt.units, 'inch') + assert stmt.units == "inch" def test_routemode_stmt(): stmt = RouteModeStmt() - assert_equal(stmt.to_excellon(FileSettings()), 'G00') + assert stmt.to_excellon(FileSettings()) == "G00" def test_linearmode_stmt(): stmt = LinearModeStmt() - assert_equal(stmt.to_excellon(FileSettings()), 'G01') + assert stmt.to_excellon(FileSettings()) == "G01" def test_drillmode_stmt(): stmt = DrillModeStmt() - assert_equal(stmt.to_excellon(FileSettings()), 'G05') + assert stmt.to_excellon(FileSettings()) == "G05" def test_absolutemode_stmt(): stmt = AbsoluteModeStmt() - assert_equal(stmt.to_excellon(FileSettings()), 'G90') + assert stmt.to_excellon(FileSettings()) == "G90" def test_unknownstmt(): - stmt = UnknownStmt('TEST') - assert_equal(stmt.stmt, 'TEST') - assert_equal(str(stmt), '<Unknown Statement: TEST>') + stmt = UnknownStmt("TEST") + assert stmt.stmt == "TEST" + assert str(stmt) == "<Unknown Statement: TEST>" def test_unknownstmt_dump(): - stmt = UnknownStmt('TEST') - assert_equal(stmt.to_excellon(FileSettings()), 'TEST') + stmt = UnknownStmt("TEST") + assert stmt.to_excellon(FileSettings()) == "TEST" |