summaryrefslogtreecommitdiff
path: root/gerbonara/gerber/tests
diff options
context:
space:
mode:
Diffstat (limited to 'gerbonara/gerber/tests')
-rw-r--r--gerbonara/gerber/tests/test_rs274x.py23
1 files changed, 14 insertions, 9 deletions
diff --git a/gerbonara/gerber/tests/test_rs274x.py b/gerbonara/gerber/tests/test_rs274x.py
index 06150de..b7ddbd4 100644
--- a/gerbonara/gerber/tests/test_rs274x.py
+++ b/gerbonara/gerber/tests/test_rs274x.py
@@ -456,19 +456,22 @@ def test_svg_export(reference, tmpfile):
@filter_syntax_warnings
@pytest.mark.parametrize('reference', REFERENCE_FILES, indirect=True)
def test_bounding_box(reference, tmpfile):
+ if reference.name == 'MinnowMax_assy.art':
+ # This leads to worst-case performance in resvg, this testcase takes over 1h to finish. So skip.
+ pytest.skip()
# skip this check on files that contain lines with a zero-size aperture at the board edge
if any(reference.match(f'*/{f}') for f in HAS_ZERO_SIZE_APERTURES):
pytest.skip()
- # skip this file because it does not contain any graphical objects
- if reference.match('*/multiline_read.ger'):
- pytest.skip()
-
margin = 1.0 # inch
dpi = 200
margin_px = int(dpi*margin) # intentionally round down to avoid aliasing artifacts
grb = GerberFile.open(reference)
+
+ if grb.is_empty:
+ pytest.skip()
+
out_svg = tmpfile('Output', '.svg')
with open(out_svg, 'w') as f:
f.write(str(grb.to_svg(margin=margin, arg_unit='inch', fg='white', bg='black')))
@@ -484,11 +487,13 @@ def test_bounding_box(reference, tmpfile):
rows = img.sum(axis=0)
col_prefix, col_suffix = np.argmax(cols > 0), np.argmax(cols[::-1] > 0)
row_prefix, row_suffix = np.argmax(rows > 0), np.argmax(rows[::-1] > 0)
+ print('cols:', col_prefix, col_suffix)
+ print('rows:', row_prefix, row_suffix)
# Check that all margins are completely black and that the content touches the margins. Allow for some tolerance to
- # allow for antialiasing artifacts.
- assert margin_px-1 <= col_prefix <= margin_px+1
- assert margin_px-1 <= col_suffix <= margin_px+1
- assert margin_px-1 <= row_prefix <= margin_px+1
- assert margin_px-1 <= row_suffix <= margin_px+1
+ # allow for antialiasing artifacts and for things like very thin features.
+ assert margin_px-2 <= col_prefix <= margin_px+2
+ assert margin_px-2 <= col_suffix <= margin_px+2
+ assert margin_px-2 <= row_prefix <= margin_px+2
+ assert margin_px-2 <= row_suffix <= margin_px+2