diff options
Diffstat (limited to 'gerber/tests/test_utils.py')
-rw-r--r-- | gerber/tests/test_utils.py | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/gerber/tests/test_utils.py b/gerber/tests/test_utils.py deleted file mode 100644 index 68484d1..0000000 --- a/gerber/tests/test_utils.py +++ /dev/null @@ -1,167 +0,0 @@ -#! /usr/bin/env python -# -*- coding: utf-8 -*- - -# Author: Hamilton Kibbe <ham@hamiltonkib.be> - -import pytest -from ..utils import * - - -def test_zero_suppression(): - """ Test gerber value parser and writer handle zero suppression correctly. - """ - # Default format - fmt = (2, 5) - - # Test leading zero suppression - zero_suppression = "leading" - test_cases = [ - ("1", 0.00001), - ("10", 0.0001), - ("100", 0.001), - ("1000", 0.01), - ("10000", 0.1), - ("100000", 1.0), - ("1000000", 10.0), - ("-1", -0.00001), - ("-10", -0.0001), - ("-100", -0.001), - ("-1000", -0.01), - ("-10000", -0.1), - ("-100000", -1.0), - ("-1000000", -10.0), - ("0", 0.0), - ] - for string, value in test_cases: - assert value == parse_gerber_value(string, fmt, zero_suppression) - assert string == write_gerber_value(value, fmt, zero_suppression) - - # Test trailing zero suppression - zero_suppression = "trailing" - test_cases = [ - ("1", 10.0), - ("01", 1.0), - ("001", 0.1), - ("0001", 0.01), - ("00001", 0.001), - ("000001", 0.0001), - ("0000001", 0.00001), - ("-1", -10.0), - ("-01", -1.0), - ("-001", -0.1), - ("-0001", -0.01), - ("-00001", -0.001), - ("-000001", -0.0001), - ("-0000001", -0.00001), - ("0", 0.0), - ] - for string, value in test_cases: - assert value == parse_gerber_value(string, fmt, zero_suppression) - assert string == write_gerber_value(value, fmt, zero_suppression) - - assert write_gerber_value(0.000000001, fmt, "leading") == "0" - assert write_gerber_value(0.000000001, fmt, "trailing") == "0" - - -def test_format(): - """ Test gerber value parser and writer handle format correctly - """ - zero_suppression = "leading" - test_cases = [ - ((2, 7), "1", 0.0000001), - ((2, 6), "1", 0.000001), - ((2, 5), "1", 0.00001), - ((2, 4), "1", 0.0001), - ((2, 3), "1", 0.001), - ((2, 2), "1", 0.01), - ((2, 1), "1", 0.1), - ((2, 7), "-1", -0.0000001), - ((2, 6), "-1", -0.000001), - ((2, 5), "-1", -0.00001), - ((2, 4), "-1", -0.0001), - ((2, 3), "-1", -0.001), - ((2, 2), "-1", -0.01), - ((2, 1), "-1", -0.1), - ((2, 6), "0", 0), - ] - for fmt, string, value in test_cases: - assert value == parse_gerber_value(string, fmt, zero_suppression) - assert string == write_gerber_value(value, fmt, zero_suppression) - - zero_suppression = "trailing" - test_cases = [ - ((6, 5), "1", 100000.0), - ((5, 5), "1", 10000.0), - ((4, 5), "1", 1000.0), - ((3, 5), "1", 100.0), - ((2, 5), "1", 10.0), - ((1, 5), "1", 1.0), - ((6, 5), "-1", -100000.0), - ((5, 5), "-1", -10000.0), - ((4, 5), "-1", -1000.0), - ((3, 5), "-1", -100.0), - ((2, 5), "-1", -10.0), - ((1, 5), "-1", -1.0), - ((2, 5), "0", 0), - ] - for fmt, string, value in test_cases: - assert value == parse_gerber_value(string, fmt, zero_suppression) - assert string == write_gerber_value(value, fmt, zero_suppression) - - -def test_decimal_truncation(): - """ Test decimal_string truncates value to the correct precision - """ - value = 1.123456789 - for x in range(10): - result = decimal_string(value, precision=x) - calculated = "1." + "".join(str(y) for y in range(1, x + 1)) - assert result == calculated - - -def test_decimal_padding(): - """ Test decimal_string padding - """ - value = 1.123 - assert decimal_string(value, precision=3, padding=True) == "1.123" - assert decimal_string(value, precision=4, padding=True) == "1.1230" - assert decimal_string(value, precision=5, padding=True) == "1.12300" - assert decimal_string(value, precision=6, padding=True) == "1.123000" - assert decimal_string(0, precision=6, padding=True) == "0.000000" - - -def test_parse_format_validation(): - """ Test parse_gerber_value() format validation - """ - pytest.raises(ValueError, parse_gerber_value, "00001111", (7, 5)) - pytest.raises(ValueError, parse_gerber_value, "00001111", (5, 8)) - pytest.raises(ValueError, parse_gerber_value, "00001111", (13, 1)) - - -def test_write_format_validation(): - """ Test write_gerber_value() format validation - """ - pytest.raises(ValueError, write_gerber_value, 69.0, (7, 5)) - pytest.raises(ValueError, write_gerber_value, 69.0, (5, 8)) - pytest.raises(ValueError, write_gerber_value, 69.0, (13, 1)) - - -def test_detect_format_with_short_file(): - """ Verify file format detection works with short files - """ - assert "unknown" == detect_file_format("gerber/tests/__init__.py") - - -def test_validate_coordinates(): - pytest.raises(TypeError, validate_coordinates, 3) - pytest.raises(TypeError, validate_coordinates, 3.1) - pytest.raises(TypeError, validate_coordinates, "14") - pytest.raises(TypeError, validate_coordinates, (0,)) - pytest.raises(TypeError, validate_coordinates, (0, 1, 2)) - pytest.raises(TypeError, validate_coordinates, (0, "string")) - - -def test_convex_hull(): - points = [(0, 0), (1, 0), (1, 1), (0.5, 0.5), (0, 1), (0, 0)] - expected = [(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)] - assert set(convex_hull(points)) == set(expected) |