summaryrefslogtreecommitdiff
path: root/gerber/tests/test_cairo_backend.py
diff options
context:
space:
mode:
authorjaseg <git@jaseg.de>2021-06-13 15:00:17 +0200
committerjaseg <git@jaseg.de>2021-06-13 15:00:17 +0200
commit4eb0e063bcd34c21b737023aa6ed5baed80658d1 (patch)
tree3a56ef7d05f4f64cde930f2432119986e4aab49d /gerber/tests/test_cairo_backend.py
parent889ea37d9b66cbfb7a61795c7750b9f4311faa3f (diff)
downloadgerbonara-4eb0e063bcd34c21b737023aa6ed5baed80658d1.tar.gz
gerbonara-4eb0e063bcd34c21b737023aa6ed5baed80658d1.tar.bz2
gerbonara-4eb0e063bcd34c21b737023aa6ed5baed80658d1.zip
Repo re-org, make gerberex tests run
Diffstat (limited to 'gerber/tests/test_cairo_backend.py')
-rw-r--r--gerber/tests/test_cairo_backend.py279
1 files changed, 0 insertions, 279 deletions
diff --git a/gerber/tests/test_cairo_backend.py b/gerber/tests/test_cairo_backend.py
deleted file mode 100644
index 51007a9..0000000
--- a/gerber/tests/test_cairo_backend.py
+++ /dev/null
@@ -1,279 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: utf-8 -*-
-
-# Author: Garret Fick <garret@ficksworkshop.com>
-import os
-import shutil
-import tempfile
-
-from ..render.cairo_backend import GerberCairoContext
-from ..rs274x import read
-
-
-def _DISABLED_test_render_two_boxes():
- """Umaco exapmle of two boxes"""
- _test_render(
- "resources/example_two_square_boxes.gbr", "golden/example_two_square_boxes.png"
- )
-
-
-def _DISABLED_test_render_single_quadrant():
- """Umaco exapmle of a single quadrant arc"""
- _test_render(
- "resources/example_single_quadrant.gbr", "golden/example_single_quadrant.png"
- )
-
-
-def _DISABLED_test_render_simple_contour():
- """Umaco exapmle of a simple arrow-shaped contour"""
- gerber = _test_render(
- "resources/example_simple_contour.gbr", "golden/example_simple_contour.png"
- )
-
- # Check the resulting dimensions
- assert ((2.0, 11.0), (1.0, 9.0)) == gerber.bounding_box
-
-
-def _DISABLED_test_render_single_contour_1():
- """Umaco example of a single contour
-
- The resulting image for this test is used by other tests because they must generate the same output."""
- _test_render(
- "resources/example_single_contour_1.gbr", "golden/example_single_contour.png"
- )
-
-
-def _DISABLED_test_render_single_contour_2():
- """Umaco exapmle of a single contour, alternate contour end order
-
- The resulting image for this test is used by other tests because they must generate the same output."""
- _test_render(
- "resources/example_single_contour_2.gbr", "golden/example_single_contour.png"
- )
-
-
-def _DISABLED_test_render_single_contour_3():
- """Umaco exapmle of a single contour with extra line"""
- _test_render(
- "resources/example_single_contour_3.gbr", "golden/example_single_contour_3.png"
- )
-
-
-def _DISABLED_test_render_not_overlapping_contour():
- """Umaco example of D02 staring a second contour"""
- _test_render(
- "resources/example_not_overlapping_contour.gbr",
- "golden/example_not_overlapping_contour.png",
- )
-
-
-def _DISABLED_test_render_not_overlapping_touching():
- """Umaco example of D02 staring a second contour"""
- _test_render(
- "resources/example_not_overlapping_touching.gbr",
- "golden/example_not_overlapping_touching.png",
- )
-
-
-def test_render_overlapping_touching():
- """Umaco example of D02 staring a second contour"""
- _test_render(
- "resources/example_overlapping_touching.gbr",
- "golden/example_overlapping_touching.png",
- )
-
-
-def test_render_overlapping_contour():
- """Umaco example of D02 staring a second contour"""
- _test_render(
- "resources/example_overlapping_contour.gbr",
- "golden/example_overlapping_contour.png",
- )
-
-
-def _DISABLED_test_render_level_holes():
- """Umaco example of using multiple levels to create multiple holes"""
-
- # TODO This is clearly rendering wrong. I'm temporarily checking this in because there are more
- # rendering fixes in the related repository that may resolve these.
- _test_render(
- "resources/example_level_holes.gbr", "golden/example_overlapping_contour.png"
- )
-
-
-def _DISABLED_test_render_cutin():
- """Umaco example of using a cutin"""
-
- # TODO This is clearly rendering wrong.
- _test_render(
- "resources/example_cutin.gbr",
- "golden/example_cutin.png",
- "/Users/ham/Desktop/cutin.png",
- )
-
-
-def _DISABLED_test_render_fully_coincident():
- """Umaco example of coincident lines rendering two contours"""
-
- _test_render(
- "resources/example_fully_coincident.gbr", "golden/example_fully_coincident.png"
- )
-
-
-def _DISABLED_test_render_coincident_hole():
- """Umaco example of coincident lines rendering a hole in the contour"""
-
- _test_render(
- "resources/example_coincident_hole.gbr", "golden/example_coincident_hole.png"
- )
-
-
-def test_render_cutin_multiple():
- """Umaco example of a region with multiple cutins"""
-
- _test_render(
- "resources/example_cutin_multiple.gbr", "golden/example_cutin_multiple.png"
- )
-
-
-def _DISABLED_test_flash_circle():
- """Umaco example a simple circular flash with and without a hole"""
-
- _test_render(
- "resources/example_flash_circle.gbr",
- "golden/example_flash_circle.png",
- "/Users/ham/Desktop/flashcircle.png",
- )
-
-
-def _DISABLED_test_flash_rectangle():
- """Umaco example a simple rectangular flash with and without a hole"""
-
- _test_render(
- "resources/example_flash_rectangle.gbr", "golden/example_flash_rectangle.png"
- )
-
-
-def _DISABLED_test_flash_obround():
- """Umaco example a simple obround flash with and without a hole"""
-
- _test_render(
- "resources/example_flash_obround.gbr", "golden/example_flash_obround.png"
- )
-
-
-def _DISABLED_test_flash_polygon():
- """Umaco example a simple polygon flash with and without a hole"""
-
- _test_render(
- "resources/example_flash_polygon.gbr", "golden/example_flash_polygon.png"
- )
-
-
-def _DISABLED_test_holes_dont_clear():
- """Umaco example that an aperture with a hole does not clear the area"""
-
- _test_render(
- "resources/example_holes_dont_clear.gbr", "golden/example_holes_dont_clear.png"
- )
-
-
-def _DISABLED_test_render_am_exposure_modifier():
- """Umaco example that an aperture macro with a hole does not clear the area"""
-
- _test_render(
- "resources/example_am_exposure_modifier.gbr",
- "golden/example_am_exposure_modifier.png",
- )
-
-
-def test_render_svg_simple_contour():
- """Example of rendering to an SVG file"""
- _test_simple_render_svg("resources/example_simple_contour.gbr")
-
-
-def _resolve_path(path):
- return os.path.join(os.path.dirname(__file__), path)
-
-
-def _test_render(gerber_path, png_expected_path, create_output_path=None):
- """Render the gerber file and compare to the expected PNG output.
-
- Parameters
- ----------
- gerber_path : string
- Path to Gerber file to open
- png_expected_path : string
- Path to the PNG file to compare to
- create_output : string|None
- If not None, write the generated PNG to the specified path.
- This is primarily to help with
- """
-
- gerber_path = _resolve_path(gerber_path)
- png_expected_path = _resolve_path(png_expected_path)
- if create_output_path:
- create_output_path = _resolve_path(create_output_path)
-
- gerber = read(gerber_path)
-
- # Create PNG image to the memory stream
- ctx = GerberCairoContext()
- gerber.render(ctx)
-
- actual_bytes = ctx.dump(None)
-
- # If we want to write the file bytes, do it now. This happens
- if create_output_path:
- with open(create_output_path, "wb") as out_file:
- out_file.write(actual_bytes)
- # Creating the output is dangerous - it could overwrite the expected result.
- # So if we are creating the output, we make the test fail on purpose so you
- # won't forget to disable this
- assert not True, (
- "Test created the output %s. This needs to be disabled to make sure the test behaves correctly"
- % (create_output_path,)
- )
-
- # Read the expected PNG file
-
- with open(png_expected_path, "rb") as expected_file:
- expected_bytes = expected_file.read()
-
- # Don't directly use assert_equal otherwise any failure pollutes the test results
- equal = expected_bytes == actual_bytes
- assert equal
-
- return gerber
-
-
-def _test_simple_render_svg(gerber_path):
- """Render the gerber file as SVG
-
- Note: verifies only the header, not the full content.
-
- Parameters
- ----------
- gerber_path : string
- Path to Gerber file to open
- """
-
- gerber_path = _resolve_path(gerber_path)
- gerber = read(gerber_path)
-
- # Create SVG image to the memory stream
- ctx = GerberCairoContext()
- gerber.render(ctx)
-
- temp_dir = tempfile.mkdtemp()
- svg_temp_path = os.path.join(temp_dir, "output.svg")
-
- assert not os.path.exists(svg_temp_path)
- ctx.dump(svg_temp_path)
- assert os.path.exists(svg_temp_path)
-
- with open(svg_temp_path, "r") as expected_file:
- expected_bytes = expected_file.read()
- assert expected_bytes[:38] == '<?xml version="1.0" encoding="UTF-8"?>'
-
- shutil.rmtree(temp_dir)