summaryrefslogtreecommitdiff
path: root/gerber/tests/test_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'gerber/tests/test_utils.py')
-rw-r--r--gerber/tests/test_utils.py167
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)