summaryrefslogtreecommitdiff
path: root/gerber/tests/test_gerber_statements.py
diff options
context:
space:
mode:
authorHamilton Kibbe <hamilton.kibbe@gmail.com>2014-10-06 08:33:53 -0400
committerHamilton Kibbe <hamilton.kibbe@gmail.com>2014-10-06 08:33:53 -0400
commit597427d785d6f44348fe15631f2c184504195fb0 (patch)
tree1ce13f04f3d2d23ff6059acc2bc464a16d46a9c6 /gerber/tests/test_gerber_statements.py
parent0b8e2e4b8b552e90d55eabe39aefba0b5b3daef5 (diff)
downloadgerbonara-597427d785d6f44348fe15631f2c184504195fb0.tar.gz
gerbonara-597427d785d6f44348fe15631f2c184504195fb0.tar.bz2
gerbonara-597427d785d6f44348fe15631f2c184504195fb0.zip
add excellon statements
Diffstat (limited to 'gerber/tests/test_gerber_statements.py')
-rw-r--r--gerber/tests/test_gerber_statements.py96
1 files changed, 96 insertions, 0 deletions
diff --git a/gerber/tests/test_gerber_statements.py b/gerber/tests/test_gerber_statements.py
new file mode 100644
index 0000000..121aa42
--- /dev/null
+++ b/gerber/tests/test_gerber_statements.py
@@ -0,0 +1,96 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# Author: Hamilton Kibbe <ham@hamiltonkib.be>
+
+from .tests import *
+from ..gerber_statements import *
+
+
+def test_FSParamStmt_factory():
+ """ Test FSParamStruct factory correctly handles parameters
+ """
+ stmt = {'param': 'FS', 'zero': 'L', 'notation': 'A', 'x': '27'}
+ fs = FSParamStmt.from_dict(stmt)
+ assert_equal(fs.param, 'FS')
+ assert_equal(fs.zero_suppression, 'leading')
+ assert_equal(fs.notation, 'absolute')
+ assert_equal(fs.format, (2, 7))
+
+ stmt = {'param': 'FS', 'zero': 'T', 'notation': 'I', 'x': '27'}
+ fs = FSParamStmt.from_dict(stmt)
+ assert_equal(fs.param, 'FS')
+ assert_equal(fs.zero_suppression, 'trailing')
+ assert_equal(fs.notation, 'incremental')
+ assert_equal(fs.format, (2, 7))
+
+
+def test_FSParamStmt_dump():
+ """ Test FSParamStmt to_gerber()
+ """
+ stmt = {'param': 'FS', 'zero': 'L', 'notation': 'A', 'x': '27'}
+ fs = FSParamStmt.from_dict(stmt)
+ assert_equal(fs.to_gerber(), '%FSLAX27Y27*%')
+
+ stmt = {'param': 'FS', 'zero': 'T', 'notation': 'I', 'x': '25'}
+ fs = FSParamStmt.from_dict(stmt)
+ assert_equal(fs.to_gerber(), '%FSTIX25Y25*%')
+
+
+def test_MOParamStmt_factory():
+ """ Test MOParamStruct factory correctly handles parameters
+ """
+ stmt = {'param': 'MO', 'mo': 'IN'}
+ mo = MOParamStmt.from_dict(stmt)
+ assert_equal(mo.param, 'MO')
+ assert_equal(mo.mode, 'inch')
+
+ stmt = {'param': 'MO', 'mo': 'MM'}
+ mo = MOParamStmt.from_dict(stmt)
+ assert_equal(mo.param, 'MO')
+ assert_equal(mo.mode, 'metric')
+
+
+def test_MOParamStmt_dump():
+ """ Test MOParamStmt to_gerber()
+ """
+ stmt = {'param': 'MO', 'mo': 'IN'}
+ mo = MOParamStmt.from_dict(stmt)
+ assert_equal(mo.to_gerber(), '%MOIN*%')
+
+ stmt = {'param': 'MO', 'mo': 'MM'}
+ mo = MOParamStmt.from_dict(stmt)
+ assert_equal(mo.to_gerber(), '%MOMM*%')
+
+
+def test_IPParamStmt_factory():
+ """ Test IPParamStruct factory correctly handles parameters
+ """
+ stmt = {'param': 'IP', 'ip': 'POS'}
+ ip = IPParamStmt.from_dict(stmt)
+ assert_equal(ip.ip, 'positive')
+
+ stmt = {'param': 'IP', 'ip': 'NEG'}
+ ip = IPParamStmt.from_dict(stmt)
+ assert_equal(ip.ip, 'negative')
+
+
+def test_IPParamStmt_dump():
+ """ Test IPParamStmt to_gerber()
+ """
+ stmt = {'param': 'IP', 'ip': 'POS'}
+ ip = IPParamStmt.from_dict(stmt)
+ assert_equal(ip.to_gerber(), '%IPPOS*%')
+
+ stmt = {'param': 'IP', 'ip': 'NEG'}
+ ip = IPParamStmt.from_dict(stmt)
+ assert_equal(ip.to_gerber(), '%IPNEG*%')
+
+
+def test_OFParamStmt_dump():
+ """ Test OFParamStmt to_gerber()
+ """
+ stmt = {'param': 'OF', 'a': '0.1234567', 'b': '0.1234567'}
+ of = OFParamStmt.from_dict(stmt)
+ assert_equal(of.to_gerber(), '%OFA0.123456B0.123456*%')
+