summaryrefslogtreecommitdiff
path: root/tests/expects
diff options
context:
space:
mode:
authorjaseg <git@jaseg.de>2021-06-06 13:28:42 +0200
committerjaseg <git@jaseg.de>2021-06-06 13:28:42 +0200
commit889ea37d9b66cbfb7a61795c7750b9f4311faa3f (patch)
tree34db36bcdf0501445aaec30c845ed644537e638a /tests/expects
parent5a5ba2b709f01b2100cd767a25a41737541ad53c (diff)
parent71c371ca680483aa9ef18d2998832460dd43abdf (diff)
downloadgerbonara-889ea37d9b66cbfb7a61795c7750b9f4311faa3f.tar.gz
gerbonara-889ea37d9b66cbfb7a61795c7750b9f4311faa3f.tar.bz2
gerbonara-889ea37d9b66cbfb7a61795c7750b9f4311faa3f.zip
Graft pcb-tools-extension master onto gerbonara main
Diffstat (limited to 'tests/expects')
-rw-r--r--tests/expects/RS2724x_offset.gtl78
-rw-r--r--tests/expects/RS2724x_rotate.gtl98
-rw-r--r--tests/expects/RS2724x_save.gtl78
-rw-r--r--tests/expects/RS2724x_single_quadrant.gtl35
-rw-r--r--tests/expects/RS2724x_to_inch.gtl78
-rw-r--r--tests/expects/RS2724x_to_metric.gtl78
-rw-r--r--tests/expects/dxf_complex_fill.gtl729
-rw-r--r--tests/expects/dxf_complex_fill_flip.gtl746
-rw-r--r--tests/expects/dxf_offset.gtl93
-rw-r--r--tests/expects/dxf_rectangle_inch.gtl19
-rw-r--r--tests/expects/dxf_rectangle_metric.gtl19
-rw-r--r--tests/expects/dxf_rotate.gtl93
-rw-r--r--tests/expects/dxf_save_fill.gtl84
-rw-r--r--tests/expects/dxf_save_fill_simple.gtl78
-rw-r--r--tests/expects/dxf_save_line.gtl93
-rw-r--r--tests/expects/dxf_save_line.txt84
-rw-r--r--tests/expects/dxf_save_mousebites.gtl582
-rw-r--r--tests/expects/dxf_save_mousebites.txt584
-rw-r--r--tests/expects/dxf_to_inch.gtl93
-rw-r--r--tests/expects/excellon_offset.txt41
-rw-r--r--tests/expects/excellon_rotate.txt41
-rw-r--r--tests/expects/excellon_save.txt41
-rw-r--r--tests/expects/excellon_to_inch.txt41
-rw-r--r--tests/expects/excellon_to_metric.txt41
24 files changed, 3947 insertions, 0 deletions
diff --git a/tests/expects/RS2724x_offset.gtl b/tests/expects/RS2724x_offset.gtl
new file mode 100644
index 0000000..3dc3e6a
--- /dev/null
+++ b/tests/expects/RS2724x_offset.gtl
@@ -0,0 +1,78 @@
+%MOMM*%
+%FSLAX34Y34*%
+%IPPOS*%
+%AMCOMP*
+20,1,0.2,0,0.1,0.4,0.1,$1*
+21,1,0.4,0.2,-0.2,-0.1,$1*
+1,1,0.4,-1.2,0,$1*
+4,1,4,1.2,0,1.4,-0.2,1.2,-0.4,1,-0.2,1.2,0,$1*
+5,1,6,1.2,0.2,0.4,$1*
+6,-0.7,0,0.5,0.05,0.15,2,0.05,0.6,$1*
+7,0.7,0,0.6,0.5,0.15,$1*%
+%ADD10C,0.01*%
+%ADD11C,1X0.4*%
+%ADD12R,1X0.5X0.2*%
+%ADD13O,1X0.5X0.2*%
+%ADD14O,0.5X1X0.2*%
+%ADD15P,1X5X90X0.2*%
+%ADD16COMP,0*%
+%ADD17COMP,45*%
+%ADD18COMP,-45*%
+G75*
+%LPD*%
+D10*
+G01*
+X120000Y50000D02*
+X200000Y50000D01*
+G03*
+X210000Y60000I0J10000D01*
+G01*
+X210000Y140000D01*
+G03*
+X200000Y150000I-10000J0D01*
+G01*
+X120000Y150000D01*
+G03*
+X110000Y140000I0J-10000D01*
+G01*
+X110000Y60000D01*
+G03*
+X120000Y50000I10000J0D01*
+G01*
+G36*
+G01*
+X155000Y60000D02*
+X160000Y60000D01*
+G03*
+X165000Y65000I0J5000D01*
+G01*
+X165000Y135000D01*
+G03*
+X160000Y140000I-5000J0D01*
+G01*
+X155000Y140000D01*
+G03*
+X150000Y135000I0J-5000D01*
+G01*
+X150000Y65000D01*
+G03*
+X155000Y60000I5000J0D01*
+G01*
+G37*
+D11*
+X135000Y60000D03*
+D12*
+X135000Y80000D03*
+D13*
+X135000Y100000D03*
+D14*
+X135000Y120000D03*
+D15*
+X135000Y140000D03*
+D16*
+X185000Y100000D03*
+D17*
+X185000Y125000D03*
+D18*
+X185000Y75000D03*
+M02*
diff --git a/tests/expects/RS2724x_rotate.gtl b/tests/expects/RS2724x_rotate.gtl
new file mode 100644
index 0000000..f7c82cd
--- /dev/null
+++ b/tests/expects/RS2724x_rotate.gtl
@@ -0,0 +1,98 @@
+%MOMM*%
+%FSLAX34Y34*%
+%IPPOS*%
+%AMCOMP*
+20,1,0.2,0,0.1,0.4,0.1,($1)+(20)*
+21,1,0.4,0.2,-0.2,-0.1,($1)+(20)*
+1,1,0.4,-1.2,0,($1)+(20)*
+4,1,4,1.2,0,1.4,-0.2,1.2,-0.4,1,-0.2,1.2,0,($1)+(20)*
+5,1,6,1.2,0.2,0.4,($1)+(20)*
+6,-0.7,0,0.5,0.05,0.15,2,0.05,0.6,($1)+(20)*
+7,0.7,0,0.6,0.5,0.15,($1)+(20)*%
+%AMMACR*
+21,1,$1,$2,0,0,20*
+1,0,$3,0,0,20*%
+%AMMACLO*
+$4=($1)-($2)*
+$5=($1)-($4)*
+21,1,$5,$2,0,0,20*
+1,1,$4,($4)/(2),0,20*
+1,1,$4,($4)/(-2),0,20*
+1,0,$3,0,0,20*%
+%AMMACPO*
+$4=($2)-($1)*
+$5=($2)-($4)*
+21,1,$1,$5,0,0,20*
+1,1,$4,0,($4)/(2),20*
+1,1,$4,0,($4)/(-2),20*
+1,0,$3,0,0,20*%
+%AMMACP*
+5,1,$2,0,0,$1,($3)+(20)*
+1,0,$4,0,0,20*%
+%ADD10C,0.01*%
+%ADD11C,1X0.4*%
+%ADD12MACR,1X0.5X0.2*%
+%ADD13MACLO,1X0.5X0.2*%
+%ADD14MACPO,0.5X1X0.2*%
+%ADD15MACP,1X5X90X0.2*%
+%ADD16COMP,0*%
+%ADD17COMP,45*%
+%ADD18COMP,-45*%
+G75*
+%LPD*%
+D10*
+G01*
+X49630Y-24751D02*
+X124805Y2611D01*
+G03*
+X130782Y15428I-3420J9397D01*
+G01*
+X103420Y90603D01*
+G03*
+X90603Y96580I-9397J-3420D01*
+G01*
+X15428Y69218D01*
+G03*
+X9451Y56401I3420J-9397D01*
+G01*
+X36813Y-18774D01*
+G03*
+X49630Y-24751I9397J3420D01*
+G01*
+G36*
+G01*
+X79099Y-3383D02*
+X83797Y-1673D01*
+G03*
+X86786Y4735I-1710J4698D01*
+G01*
+X62844Y70514D01*
+G03*
+X56436Y73502I-4698J-1710D01*
+G01*
+X51737Y71792D01*
+G03*
+X48749Y65383I1710J-4698D01*
+G01*
+X72690Y-395D01*
+G03*
+X79099Y-3383I4698J1710D01*
+G01*
+G37*
+D11*
+X60305Y-10224D03*
+D12*
+X53464Y8570D03*
+D13*
+X46624Y27364D03*
+D14*
+X39784Y46158D03*
+D15*
+X32943Y64952D03*
+D16*
+X93609Y44465D03*
+D17*
+X85058Y67957D03*
+D18*
+X102159Y20973D03*
+M02*
diff --git a/tests/expects/RS2724x_save.gtl b/tests/expects/RS2724x_save.gtl
new file mode 100644
index 0000000..5053d99
--- /dev/null
+++ b/tests/expects/RS2724x_save.gtl
@@ -0,0 +1,78 @@
+%MOMM*%
+%FSLAX34Y34*%
+%IPPOS*%
+%AMCOMP*
+20,1,0.2,0,0.1,0.4,0.1,$1*
+21,1,0.4,0.2,-0.2,-0.1,$1*
+1,1,0.4,-1.2,0,$1*
+4,1,4,1.2,0,1.4,-0.2,1.2,-0.4,1,-0.2,1.2,0,$1*
+5,1,6,1.2,0.2,0.4,$1*
+6,-0.7,0,0.5,0.05,0.15,2,0.05,0.6,$1*
+7,0.7,0,0.6,0.5,0.15,$1*%
+%ADD10C,0.01*%
+%ADD11C,1X0.4*%
+%ADD12R,1X0.5X0.2*%
+%ADD13O,1X0.5X0.2*%
+%ADD14O,0.5X1X0.2*%
+%ADD15P,1X5X90X0.2*%
+%ADD16COMP,0*%
+%ADD17COMP,45*%
+%ADD18COMP,-45*%
+G75*
+%LPD*%
+D10*
+G01*
+X10000Y0D02*
+X90000Y0D01*
+G03*
+X100000Y10000I0J10000D01*
+G01*
+X100000Y90000D01*
+G03*
+X90000Y100000I-10000J0D01*
+G01*
+X10000Y100000D01*
+G03*
+X0Y90000I0J-10000D01*
+G01*
+X0Y10000D01*
+G03*
+X10000Y0I10000J0D01*
+G01*
+G36*
+G01*
+X45000Y10000D02*
+X50000Y10000D01*
+G03*
+X55000Y15000I0J5000D01*
+G01*
+X55000Y85000D01*
+G03*
+X50000Y90000I-5000J0D01*
+G01*
+X45000Y90000D01*
+G03*
+X40000Y85000I0J-5000D01*
+G01*
+X40000Y15000D01*
+G03*
+X45000Y10000I5000J0D01*
+G01*
+G37*
+D11*
+X25000Y10000D03*
+D12*
+X25000Y30000D03*
+D13*
+X25000Y50000D03*
+D14*
+X25000Y70000D03*
+D15*
+X25000Y90000D03*
+D16*
+X75000Y50000D03*
+D17*
+X75000Y75000D03*
+D18*
+X75000Y25000D03*
+M02*
diff --git a/tests/expects/RS2724x_single_quadrant.gtl b/tests/expects/RS2724x_single_quadrant.gtl
new file mode 100644
index 0000000..dbec705
--- /dev/null
+++ b/tests/expects/RS2724x_single_quadrant.gtl
@@ -0,0 +1,35 @@
+%MOMM*%
+%FSLAX34Y34*%
+%IPPOS*%
+%ADD10C,0.1*%
+G75*
+%LPD*%
+D10*
+G36*
+G01*
+X0Y10000D02*
+X0Y90000D01*
+G02*
+X10000Y100000I10000J0D01*
+X20000Y90000I0J-10000D01*
+G01*
+X20000Y20000D01*
+X40000Y20000D01*
+G02*
+X50000Y10000I0J-10000D01*
+X40000Y0I-10000J0D01*
+G01*
+X10000Y0D01*
+G02*
+X0Y10000I0J10000D01*
+G37*
+G03*
+X70000Y50000D02*
+X60000Y60000I-10000J0D01*
+X50000Y50000I0J-10000D01*
+X60000Y40000I10000J0D01*
+X70000Y50000I0J10000D01*
+G02*
+X60000Y90000D02*
+X60000Y90000I0J0D01*
+M02*
diff --git a/tests/expects/RS2724x_to_inch.gtl b/tests/expects/RS2724x_to_inch.gtl
new file mode 100644
index 0000000..cb9234e
--- /dev/null
+++ b/tests/expects/RS2724x_to_inch.gtl
@@ -0,0 +1,78 @@
+%MOIN*%
+%FSLAX25Y25*%
+%IPPOS*%
+%AMCOMP*
+20,1,0.00787402,0,0.00393701,0.015748,0.00393701,$1*
+21,1,0.015748,0.00787402,-0.00787402,-0.00393701,$1*
+1,1,0.015748,-0.0472441,0,$1*
+4,1,4,0.0472441,0,0.0551181,-0.00787402,0.0472441,-0.015748,0.0393701,-0.00787402,0.0472441,0,$1*
+5,1,6,0.0472441,0.00787402,0.015748,$1*
+6,-0.0275591,0,0.019685,0.0019685,0.00590551,2,0.0019685,0.023622,$1*
+7,0.0275591,0,0.023622,0.019685,0.00590551,$1*%
+%ADD10C,0.0003937*%
+%ADD11C,0.03937X0.01575*%
+%ADD12R,0.03937X0.01969X0.007874*%
+%ADD13O,0.03937X0.01969X0.007874*%
+%ADD14O,0.01969X0.03937X0.007874*%
+%ADD15P,0.03937X5X90X0.007874*%
+%ADD16COMP,0*%
+%ADD17COMP,45*%
+%ADD18COMP,-45*%
+G75*
+%LPD*%
+D10*
+G01*
+X3937Y0D02*
+X35433Y0D01*
+G03*
+X39370Y3937I0J3937D01*
+G01*
+X39370Y35433D01*
+G03*
+X35433Y39370I-3937J0D01*
+G01*
+X3937Y39370D01*
+G03*
+X0Y35433I0J-3937D01*
+G01*
+X0Y3937D01*
+G03*
+X3937Y0I3937J0D01*
+G01*
+G36*
+G01*
+X17717Y3937D02*
+X19685Y3937D01*
+G03*
+X21654Y5906I0J1969D01*
+G01*
+X21654Y33465D01*
+G03*
+X19685Y35433I-1969J0D01*
+G01*
+X17717Y35433D01*
+G03*
+X15748Y33465I0J-1969D01*
+G01*
+X15748Y5906D01*
+G03*
+X17717Y3937I1969J0D01*
+G01*
+G37*
+D11*
+X9843Y3937D03*
+D12*
+X9843Y11811D03*
+D13*
+X9843Y19685D03*
+D14*
+X9843Y27559D03*
+D15*
+X9843Y35433D03*
+D16*
+X29528Y19685D03*
+D17*
+X29528Y29528D03*
+D18*
+X29528Y9843D03*
+M02*
diff --git a/tests/expects/RS2724x_to_metric.gtl b/tests/expects/RS2724x_to_metric.gtl
new file mode 100644
index 0000000..a8efda8
--- /dev/null
+++ b/tests/expects/RS2724x_to_metric.gtl
@@ -0,0 +1,78 @@
+%MOMM*%
+%FSLAX34Y34*%
+%IPPOS*%
+%AMCOMP*
+20,1,0.2,0,0.1,0.399999,0.1,$1*
+21,1,0.399999,0.2,-0.2,-0.1,$1*
+1,1,0.399999,-1.2,0,$1*
+4,1,4,1.2,0,1.4,-0.2,1.2,-0.399999,1,-0.2,1.2,0,$1*
+5,1,6,1.2,0.2,0.399999,$1*
+6,-0.700001,0,0.499999,0.0499999,0.15,2,0.0499999,0.599999,$1*
+7,0.700001,0,0.599999,0.499999,0.15,$1*%
+%ADD10C,0.01*%
+%ADD11C,1X0.4*%
+%ADD12R,1X0.5001X0.2*%
+%ADD13O,1X0.5001X0.2*%
+%ADD14O,0.5001X1X0.2*%
+%ADD15P,1X5X90X0.2*%
+%ADD16COMP,0*%
+%ADD17COMP,45*%
+%ADD18COMP,-45*%
+G75*
+%LPD*%
+D10*
+G01*
+X10000Y0D02*
+X90000Y0D01*
+G03*
+X100000Y10000I0J10000D01*
+G01*
+X100000Y90000D01*
+G03*
+X90000Y100000I-10000J0D01*
+G01*
+X10000Y100000D01*
+G03*
+X0Y90000I0J-10000D01*
+G01*
+X0Y10000D01*
+G03*
+X10000Y0I10000J0D01*
+G01*
+G36*
+G01*
+X45001Y10000D02*
+X50000Y10000D01*
+G03*
+X55001Y15001I0J5001D01*
+G01*
+X55001Y85001D01*
+G03*
+X50000Y90000I-5001J0D01*
+G01*
+X45001Y90000D01*
+G03*
+X40000Y85001I0J-5001D01*
+G01*
+X40000Y15001D01*
+G03*
+X45001Y10000I5001J0D01*
+G01*
+G37*
+D11*
+X25001Y10000D03*
+D12*
+X25001Y30000D03*
+D13*
+X25001Y50000D03*
+D14*
+X25001Y70000D03*
+D15*
+X25001Y90000D03*
+D16*
+X75001Y50000D03*
+D17*
+X75001Y75001D03*
+D18*
+X75001Y25001D03*
+M02*
diff --git a/tests/expects/dxf_complex_fill.gtl b/tests/expects/dxf_complex_fill.gtl
new file mode 100644
index 0000000..e667789
--- /dev/null
+++ b/tests/expects/dxf_complex_fill.gtl
@@ -0,0 +1,729 @@
+%MOMM*%
+%FSLAX34Y34*%
+%IPPOS*%
+%ADD10C,0*%
+G75*
+%LPD*%
+D10*
+G36*
+G01*
+X800000Y150000D02*
+G75*
+G03*
+X780000Y170000I-20000J0D01*
+G01*
+X774000Y170000D01*
+G03*
+X754000Y150000I0J-20000D01*
+G01*
+X754000Y50000D01*
+G01*
+X600000Y50000D01*
+G01*
+X600000Y150000D01*
+G03*
+X580000Y170000I-20000J0D01*
+G01*
+X574000Y170000D01*
+G03*
+X554000Y150000I0J-20000D01*
+G01*
+X554000Y50000D01*
+G01*
+X400000Y50000D01*
+G01*
+X400000Y150000D01*
+G03*
+X380000Y170000I-20000J0D01*
+G01*
+X374000Y170000D01*
+G03*
+X354000Y150000I0J-20000D01*
+G01*
+X354000Y50000D01*
+G01*
+X200000Y50000D01*
+G01*
+X200000Y150000D01*
+G03*
+X180000Y170000I-20000J0D01*
+G01*
+X174000Y170000D01*
+G03*
+X154000Y150000I0J-20000D01*
+G01*
+X154000Y50000D01*
+G01*
+X0Y50000D01*
+G01*
+X0Y450000D01*
+G01*
+X17000Y450000D01*
+G03*
+X37000Y470000I0J20000D01*
+G03*
+X17000Y490000I-20000J0D01*
+G01*
+X0Y490000D01*
+G01*
+X0Y560000D01*
+G01*
+X17000Y560000D01*
+G03*
+X37000Y580000I0J20000D01*
+G03*
+X17000Y600000I-20000J0D01*
+G01*
+X0Y600000D01*
+G01*
+X0Y1000000D01*
+G01*
+X154000Y1000000D01*
+G01*
+X154000Y900000D01*
+G03*
+X174000Y880000I20000J0D01*
+G01*
+X180000Y880000D01*
+G03*
+X200000Y900000I0J20000D01*
+G01*
+X200000Y1000000D01*
+G01*
+X354000Y1000000D01*
+G01*
+X354000Y900000D01*
+G03*
+X374000Y880000I20000J0D01*
+G01*
+X380000Y880000D01*
+G03*
+X400000Y900000I0J20000D01*
+G01*
+X400000Y1000000D01*
+G01*
+X554000Y1000000D01*
+G01*
+X554000Y900000D01*
+G03*
+X574000Y880000I20000J0D01*
+G01*
+X580000Y880000D01*
+G03*
+X600000Y900000I0J20000D01*
+G01*
+X600000Y1000000D01*
+G01*
+X754000Y1000000D01*
+G01*
+X754000Y900000D01*
+G03*
+X774000Y880000I20000J0D01*
+G01*
+X780000Y880000D01*
+G03*
+X800000Y900000I0J20000D01*
+G01*
+X800000Y1000000D01*
+G01*
+X954000Y1000000D01*
+G01*
+X954000Y600000D01*
+G01*
+X937000Y600000D01*
+G03*
+X917000Y580000I0J-20000D01*
+G03*
+X937000Y560000I20000J0D01*
+G01*
+X954000Y560000D01*
+G01*
+X954000Y490000D01*
+G01*
+X937000Y490000D01*
+G03*
+X917000Y470000I0J-20000D01*
+G03*
+X937000Y450000I20000J0D01*
+G01*
+X954000Y450000D01*
+G01*
+X954000Y50000D01*
+G01*
+X800000Y50000D01*
+G01*
+X800000Y150000D01*
+G37*
+%LPC*%
+G36*
+G01*
+X624500Y620350D02*
+G75*
+G01*
+X624500Y633350D01*
+G03*
+X612500Y633350I-6000J0D01*
+G01*
+X612500Y620350D01*
+G03*
+X624500Y620350I6000J0D01*
+G01*
+X824500Y620350D02*
+G75*
+G02*
+X812500Y620350I-6000J0D01*
+G01*
+X812500Y633350D01*
+G02*
+X824500Y633350I6000J0D01*
+G01*
+X824500Y620350D01*
+G01*
+X729500Y633350D02*
+G75*
+G02*
+X741500Y633350I6000J0D01*
+G01*
+X741500Y620350D01*
+G02*
+X729500Y620350I-6000J0D01*
+G01*
+X729500Y633350D01*
+G01*
+X141500Y620350D02*
+G75*
+G01*
+X141500Y633350D01*
+G03*
+X129500Y633350I-6000J0D01*
+G01*
+X129500Y620350D01*
+G03*
+X141500Y620350I6000J0D01*
+G01*
+X212500Y429650D02*
+G75*
+G01*
+X212500Y416650D01*
+G03*
+X224500Y416650I6000J0D01*
+G01*
+X224500Y429650D01*
+G03*
+X212500Y429650I-6000J0D01*
+G01*
+X341500Y416650D02*
+G75*
+G01*
+X341500Y429650D01*
+G03*
+X329500Y429650I-6000J0D01*
+G01*
+X329500Y416650D01*
+G03*
+X341500Y416650I6000J0D01*
+G01*
+X341500Y620350D02*
+G75*
+G01*
+X341500Y633350D01*
+G03*
+X329500Y633350I-6000J0D01*
+G01*
+X329500Y620350D01*
+G03*
+X341500Y620350I6000J0D01*
+G01*
+X624500Y416650D02*
+G75*
+G01*
+X624500Y429650D01*
+G03*
+X612500Y429650I-6000J0D01*
+G01*
+X612500Y416650D01*
+G03*
+X624500Y416650I6000J0D01*
+G01*
+X729500Y429650D02*
+G75*
+G01*
+X729500Y416650D01*
+G03*
+X741500Y416650I6000J0D01*
+G01*
+X741500Y429650D01*
+G03*
+X729500Y429650I-6000J0D01*
+G01*
+X541500Y620350D02*
+G75*
+G02*
+X529500Y620350I-6000J0D01*
+G01*
+X529500Y633350D01*
+G02*
+X541500Y633350I6000J0D01*
+G01*
+X541500Y620350D01*
+G01*
+X929500Y633350D02*
+G75*
+G02*
+X941500Y633350I6000J0D01*
+G01*
+X941500Y620350D01*
+G02*
+X929500Y620350I-6000J0D01*
+G01*
+X929500Y633350D01*
+G01*
+X412500Y429650D02*
+G75*
+G01*
+X412500Y416650D01*
+G03*
+X424500Y416650I6000J0D01*
+G01*
+X424500Y429650D01*
+G03*
+X412500Y429650I-6000J0D01*
+G01*
+X224500Y620350D02*
+G75*
+G01*
+X224500Y633350D01*
+G03*
+X212500Y633350I-6000J0D01*
+G01*
+X212500Y620350D01*
+G03*
+X224500Y620350I6000J0D01*
+G01*
+X541500Y416650D02*
+G75*
+G02*
+X529500Y416650I-6000J0D01*
+G01*
+X529500Y429650D01*
+G02*
+X541500Y429650I6000J0D01*
+G01*
+X541500Y416650D01*
+G01*
+X129500Y429650D02*
+G75*
+G02*
+X141500Y429650I6000J0D01*
+G01*
+X141500Y416650D01*
+G02*
+X129500Y416650I-6000J0D01*
+G01*
+X129500Y429650D01*
+G01*
+X24500Y416650D02*
+G75*
+G02*
+X12500Y416650I-6000J0D01*
+G01*
+X12500Y429650D01*
+G02*
+X24500Y429650I6000J0D01*
+G01*
+X24500Y416650D01*
+G01*
+X941500Y416650D02*
+G75*
+G02*
+X929500Y416650I-6000J0D01*
+G01*
+X929500Y429650D01*
+G02*
+X941500Y429650I6000J0D01*
+G01*
+X941500Y416650D01*
+G01*
+X424500Y620350D02*
+G75*
+G01*
+X424500Y633350D01*
+G03*
+X412500Y633350I-6000J0D01*
+G01*
+X412500Y620350D01*
+G03*
+X424500Y620350I6000J0D01*
+G01*
+X824500Y416650D02*
+G75*
+G02*
+X812500Y416650I-6000J0D01*
+G01*
+X812500Y429650D01*
+G02*
+X824500Y429650I6000J0D01*
+G01*
+X824500Y416650D01*
+G01*
+X12500Y633350D02*
+G75*
+G01*
+X12500Y620350D01*
+G03*
+X24500Y620350I6000J0D01*
+G01*
+X24500Y633350D01*
+G03*
+X12500Y633350I-6000J0D01*
+G01*
+X660500Y626850D02*
+G75*
+G03*
+X660500Y626850I-6000J0D01*
+G01*
+X905500Y626850D02*
+G75*
+G03*
+X905500Y626850I-6000J0D01*
+G01*
+X505500Y626850D02*
+G75*
+G03*
+X505500Y626850I-6000J0D01*
+G01*
+X860500Y626850D02*
+G75*
+G03*
+X860500Y626850I-6000J0D01*
+G01*
+X705500Y626850D02*
+G75*
+G03*
+X705500Y626850I-6000J0D01*
+G01*
+X705500Y423150D02*
+G75*
+G03*
+X705500Y423150I-6000J0D01*
+G01*
+X660500Y423150D02*
+G75*
+G03*
+X660500Y423150I-6000J0D01*
+G01*
+X505500Y423150D02*
+G75*
+G03*
+X505500Y423150I-6000J0D01*
+G01*
+X260500Y626850D02*
+G75*
+G03*
+X260500Y626850I-6000J0D01*
+G01*
+X905500Y423150D02*
+G75*
+G03*
+X905500Y423150I-6000J0D01*
+G01*
+X460500Y423150D02*
+G75*
+G03*
+X460500Y423150I-6000J0D01*
+G01*
+X460500Y626850D02*
+G75*
+G03*
+X460500Y626850I-6000J0D01*
+G01*
+X60500Y626850D02*
+G75*
+G03*
+X60500Y626850I-6000J0D01*
+G01*
+X105500Y626850D02*
+G75*
+G03*
+X105500Y626850I-6000J0D01*
+G01*
+X60500Y423150D02*
+G75*
+G03*
+X60500Y423150I-6000J0D01*
+G01*
+X305500Y626850D02*
+G75*
+G03*
+X305500Y626850I-6000J0D01*
+G01*
+X860500Y423150D02*
+G75*
+G03*
+X860500Y423150I-6000J0D01*
+G01*
+X541500Y633350D02*
+G75*
+G01*
+X541500Y620350D01*
+G02*
+X529500Y620350I-6000J0D01*
+G01*
+X529500Y633350D01*
+G02*
+X541500Y633350I6000J0D01*
+G01*
+X941500Y429650D02*
+G75*
+G01*
+X941500Y416650D01*
+G02*
+X929500Y416650I-6000J0D01*
+G01*
+X929500Y429650D01*
+G02*
+X941500Y429650I6000J0D01*
+G01*
+X260500Y423150D02*
+G75*
+G03*
+X260500Y423150I-6000J0D01*
+G01*
+X305500Y423150D02*
+G75*
+G03*
+X305500Y423150I-6000J0D01*
+G01*
+X824500Y633350D02*
+G75*
+G03*
+X812500Y633350I-6000J0D01*
+G01*
+X812500Y620350D01*
+G03*
+X824500Y620350I6000J0D01*
+G01*
+X824500Y633350D01*
+G01*
+X105500Y423150D02*
+G75*
+G03*
+X105500Y423150I-6000J0D01*
+G01*
+X217000Y560000D02*
+G75*
+G03*
+X237000Y580000I0J20000D01*
+G03*
+X217000Y600000I-20000J0D01*
+G01*
+X200000Y600000D01*
+G01*
+X200000Y700000D01*
+G03*
+X180000Y720000I-20000J0D01*
+G01*
+X174000Y720000D01*
+G03*
+X154000Y700000I0J-20000D01*
+G01*
+X154000Y600000D01*
+G01*
+X137000Y600000D01*
+G03*
+X117000Y580000I0J-20000D01*
+G03*
+X137000Y560000I20000J0D01*
+G01*
+X217000Y560000D01*
+G01*
+X417000Y560000D02*
+G75*
+G03*
+X437000Y580000I0J20000D01*
+G03*
+X417000Y600000I-20000J0D01*
+G01*
+X400000Y600000D01*
+G01*
+X400000Y700000D01*
+G03*
+X380000Y720000I-20000J0D01*
+G01*
+X374000Y720000D01*
+G03*
+X354000Y700000I0J-20000D01*
+G01*
+X354000Y600000D01*
+G01*
+X337000Y600000D01*
+G03*
+X317000Y580000I0J-20000D01*
+G03*
+X337000Y560000I20000J0D01*
+G01*
+X417000Y560000D01*
+G01*
+X617000Y560000D02*
+G75*
+G03*
+X637000Y580000I0J20000D01*
+G03*
+X617000Y600000I-20000J0D01*
+G01*
+X600000Y600000D01*
+G01*
+X600000Y700000D01*
+G03*
+X580000Y720000I-20000J0D01*
+G01*
+X574000Y720000D01*
+G03*
+X554000Y700000I0J-20000D01*
+G01*
+X554000Y600000D01*
+G01*
+X537000Y600000D01*
+G03*
+X517000Y580000I0J-20000D01*
+G03*
+X537000Y560000I20000J0D01*
+G01*
+X617000Y560000D01*
+G01*
+X817000Y560000D02*
+G75*
+G03*
+X837000Y580000I0J20000D01*
+G03*
+X817000Y600000I-20000J0D01*
+G01*
+X800000Y600000D01*
+G01*
+X800000Y700000D01*
+G03*
+X780000Y720000I-20000J0D01*
+G01*
+X774000Y720000D01*
+G03*
+X754000Y700000I0J-20000D01*
+G01*
+X754000Y600000D01*
+G01*
+X737000Y600000D01*
+G03*
+X717000Y580000I0J-20000D01*
+G03*
+X737000Y560000I20000J0D01*
+G01*
+X817000Y560000D01*
+G01*
+X180000Y330000D02*
+G75*
+G03*
+X200000Y350000I0J20000D01*
+G01*
+X200000Y450000D01*
+G01*
+X217000Y450000D01*
+G03*
+X237000Y470000I0J20000D01*
+G03*
+X217000Y490000I-20000J0D01*
+G01*
+X137000Y490000D01*
+G03*
+X117000Y470000I0J-20000D01*
+G03*
+X137000Y450000I20000J0D01*
+G01*
+X154000Y450000D01*
+G01*
+X154000Y350000D01*
+G03*
+X174000Y330000I20000J0D01*
+G01*
+X180000Y330000D01*
+G01*
+X380000Y330000D02*
+G75*
+G03*
+X400000Y350000I0J20000D01*
+G01*
+X400000Y450000D01*
+G01*
+X417000Y450000D01*
+G03*
+X437000Y470000I0J20000D01*
+G03*
+X417000Y490000I-20000J0D01*
+G01*
+X337000Y490000D01*
+G03*
+X317000Y470000I0J-20000D01*
+G03*
+X337000Y450000I20000J0D01*
+G01*
+X354000Y450000D01*
+G01*
+X354000Y350000D01*
+G03*
+X374000Y330000I20000J0D01*
+G01*
+X380000Y330000D01*
+G01*
+X580000Y330000D02*
+G75*
+G03*
+X600000Y350000I0J20000D01*
+G01*
+X600000Y450000D01*
+G01*
+X617000Y450000D01*
+G03*
+X637000Y470000I0J20000D01*
+G03*
+X617000Y490000I-20000J0D01*
+G01*
+X537000Y490000D01*
+G03*
+X517000Y470000I0J-20000D01*
+G03*
+X537000Y450000I20000J0D01*
+G01*
+X554000Y450000D01*
+G01*
+X554000Y350000D01*
+G03*
+X574000Y330000I20000J0D01*
+G01*
+X580000Y330000D01*
+G01*
+X780000Y330000D02*
+G75*
+G03*
+X800000Y350000I0J20000D01*
+G01*
+X800000Y450000D01*
+G01*
+X817000Y450000D01*
+G03*
+X837000Y470000I0J20000D01*
+G03*
+X817000Y490000I-20000J0D01*
+G01*
+X737000Y490000D01*
+G03*
+X717000Y470000I0J-20000D01*
+G03*
+X737000Y450000I20000J0D01*
+G01*
+X754000Y450000D01*
+G01*
+X754000Y350000D01*
+G03*
+X774000Y330000I20000J0D01*
+G01*
+X780000Y330000D01*
+G37*
+M02*
diff --git a/tests/expects/dxf_complex_fill_flip.gtl b/tests/expects/dxf_complex_fill_flip.gtl
new file mode 100644
index 0000000..1f91be3
--- /dev/null
+++ b/tests/expects/dxf_complex_fill_flip.gtl
@@ -0,0 +1,746 @@
+%MOMM*%
+%FSLAX34Y34*%
+%IPPOS*%
+%ADD10C,0*%
+%ADD11C,0*%
+G75*
+%LPD*%
+D10*
+G36*
+G01*
+X0Y1000000D02*
+G75*
+G01*
+X0Y0D01*
+G01*
+X1000000Y0D01*
+G01*
+X1000000Y1000000D01*
+G01*
+X0Y1000000D01*
+G37*
+G75*
+%LPC*%
+D11*
+G36*
+G01*
+X800000Y150000D02*
+G75*
+G03*
+X780000Y170000I-20000J0D01*
+G01*
+X774000Y170000D01*
+G03*
+X754000Y150000I0J-20000D01*
+G01*
+X754000Y50000D01*
+G01*
+X600000Y50000D01*
+G01*
+X600000Y150000D01*
+G03*
+X580000Y170000I-20000J0D01*
+G01*
+X574000Y170000D01*
+G03*
+X554000Y150000I0J-20000D01*
+G01*
+X554000Y50000D01*
+G01*
+X400000Y50000D01*
+G01*
+X400000Y150000D01*
+G03*
+X380000Y170000I-20000J0D01*
+G01*
+X374000Y170000D01*
+G03*
+X354000Y150000I0J-20000D01*
+G01*
+X354000Y50000D01*
+G01*
+X200000Y50000D01*
+G01*
+X200000Y150000D01*
+G03*
+X180000Y170000I-20000J0D01*
+G01*
+X174000Y170000D01*
+G03*
+X154000Y150000I0J-20000D01*
+G01*
+X154000Y50000D01*
+G01*
+X0Y50000D01*
+G01*
+X0Y450000D01*
+G01*
+X17000Y450000D01*
+G03*
+X37000Y470000I0J20000D01*
+G03*
+X17000Y490000I-20000J0D01*
+G01*
+X0Y490000D01*
+G01*
+X0Y560000D01*
+G01*
+X17000Y560000D01*
+G03*
+X37000Y580000I0J20000D01*
+G03*
+X17000Y600000I-20000J0D01*
+G01*
+X0Y600000D01*
+G01*
+X0Y1000000D01*
+G01*
+X154000Y1000000D01*
+G01*
+X154000Y900000D01*
+G03*
+X174000Y880000I20000J0D01*
+G01*
+X180000Y880000D01*
+G03*
+X200000Y900000I0J20000D01*
+G01*
+X200000Y1000000D01*
+G01*
+X354000Y1000000D01*
+G01*
+X354000Y900000D01*
+G03*
+X374000Y880000I20000J0D01*
+G01*
+X380000Y880000D01*
+G03*
+X400000Y900000I0J20000D01*
+G01*
+X400000Y1000000D01*
+G01*
+X554000Y1000000D01*
+G01*
+X554000Y900000D01*
+G03*
+X574000Y880000I20000J0D01*
+G01*
+X580000Y880000D01*
+G03*
+X600000Y900000I0J20000D01*
+G01*
+X600000Y1000000D01*
+G01*
+X754000Y1000000D01*
+G01*
+X754000Y900000D01*
+G03*
+X774000Y880000I20000J0D01*
+G01*
+X780000Y880000D01*
+G03*
+X800000Y900000I0J20000D01*
+G01*
+X800000Y1000000D01*
+G01*
+X954000Y1000000D01*
+G01*
+X954000Y600000D01*
+G01*
+X937000Y600000D01*
+G03*
+X917000Y580000I0J-20000D01*
+G03*
+X937000Y560000I20000J0D01*
+G01*
+X954000Y560000D01*
+G01*
+X954000Y490000D01*
+G01*
+X937000Y490000D01*
+G03*
+X917000Y470000I0J-20000D01*
+G03*
+X937000Y450000I20000J0D01*
+G01*
+X954000Y450000D01*
+G01*
+X954000Y50000D01*
+G01*
+X800000Y50000D01*
+G01*
+X800000Y150000D01*
+G37*
+%LPD*%
+G36*
+G01*
+X624500Y620350D02*
+G75*
+G01*
+X624500Y633350D01*
+G03*
+X612500Y633350I-6000J0D01*
+G01*
+X612500Y620350D01*
+G03*
+X624500Y620350I6000J0D01*
+G01*
+X824500Y620350D02*
+G75*
+G02*
+X812500Y620350I-6000J0D01*
+G01*
+X812500Y633350D01*
+G02*
+X824500Y633350I6000J0D01*
+G01*
+X824500Y620350D01*
+G01*
+X729500Y633350D02*
+G75*
+G02*
+X741500Y633350I6000J0D01*
+G01*
+X741500Y620350D01*
+G02*
+X729500Y620350I-6000J0D01*
+G01*
+X729500Y633350D01*
+G01*
+X141500Y620350D02*
+G75*
+G01*
+X141500Y633350D01*
+G03*
+X129500Y633350I-6000J0D01*
+G01*
+X129500Y620350D01*
+G03*
+X141500Y620350I6000J0D01*
+G01*
+X212500Y429650D02*
+G75*
+G01*
+X212500Y416650D01*
+G03*
+X224500Y416650I6000J0D01*
+G01*
+X224500Y429650D01*
+G03*
+X212500Y429650I-6000J0D01*
+G01*
+X341500Y416650D02*
+G75*
+G01*
+X341500Y429650D01*
+G03*
+X329500Y429650I-6000J0D01*
+G01*
+X329500Y416650D01*
+G03*
+X341500Y416650I6000J0D01*
+G01*
+X341500Y620350D02*
+G75*
+G01*
+X341500Y633350D01*
+G03*
+X329500Y633350I-6000J0D01*
+G01*
+X329500Y620350D01*
+G03*
+X341500Y620350I6000J0D01*
+G01*
+X624500Y416650D02*
+G75*
+G01*
+X624500Y429650D01*
+G03*
+X612500Y429650I-6000J0D01*
+G01*
+X612500Y416650D01*
+G03*
+X624500Y416650I6000J0D01*
+G01*
+X729500Y429650D02*
+G75*
+G01*
+X729500Y416650D01*
+G03*
+X741500Y416650I6000J0D01*
+G01*
+X741500Y429650D01*
+G03*
+X729500Y429650I-6000J0D01*
+G01*
+X541500Y620350D02*
+G75*
+G02*
+X529500Y620350I-6000J0D01*
+G01*
+X529500Y633350D01*
+G02*
+X541500Y633350I6000J0D01*
+G01*
+X541500Y620350D01*
+G01*
+X929500Y633350D02*
+G75*
+G02*
+X941500Y633350I6000J0D01*
+G01*
+X941500Y620350D01*
+G02*
+X929500Y620350I-6000J0D01*
+G01*
+X929500Y633350D01*
+G01*
+X412500Y429650D02*
+G75*
+G01*
+X412500Y416650D01*
+G03*
+X424500Y416650I6000J0D01*
+G01*
+X424500Y429650D01*
+G03*
+X412500Y429650I-6000J0D01*
+G01*
+X224500Y620350D02*
+G75*
+G01*
+X224500Y633350D01*
+G03*
+X212500Y633350I-6000J0D01*
+G01*
+X212500Y620350D01*
+G03*
+X224500Y620350I6000J0D01*
+G01*
+X541500Y416650D02*
+G75*
+G02*
+X529500Y416650I-6000J0D01*
+G01*
+X529500Y429650D01*
+G02*
+X541500Y429650I6000J0D01*
+G01*
+X541500Y416650D01*
+G01*
+X129500Y429650D02*
+G75*
+G02*
+X141500Y429650I6000J0D01*
+G01*
+X141500Y416650D01*
+G02*
+X129500Y416650I-6000J0D01*
+G01*
+X129500Y429650D01*
+G01*
+X24500Y416650D02*
+G75*
+G02*
+X12500Y416650I-6000J0D01*
+G01*
+X12500Y429650D01*
+G02*
+X24500Y429650I6000J0D01*
+G01*
+X24500Y416650D01*
+G01*
+X941500Y416650D02*
+G75*
+G02*
+X929500Y416650I-6000J0D01*
+G01*
+X929500Y429650D01*
+G02*
+X941500Y429650I6000J0D01*
+G01*
+X941500Y416650D01*
+G01*
+X424500Y620350D02*
+G75*
+G01*
+X424500Y633350D01*
+G03*
+X412500Y633350I-6000J0D01*
+G01*
+X412500Y620350D01*
+G03*
+X424500Y620350I6000J0D01*
+G01*
+X824500Y416650D02*
+G75*
+G02*
+X812500Y416650I-6000J0D01*
+G01*
+X812500Y429650D01*
+G02*
+X824500Y429650I6000J0D01*
+G01*
+X824500Y416650D01*
+G01*
+X12500Y633350D02*
+G75*
+G01*
+X12500Y620350D01*
+G03*
+X24500Y620350I6000J0D01*
+G01*
+X24500Y633350D01*
+G03*
+X12500Y633350I-6000J0D01*
+G01*
+X660500Y626850D02*
+G75*
+G03*
+X660500Y626850I-6000J0D01*
+G01*
+X905500Y626850D02*
+G75*
+G03*
+X905500Y626850I-6000J0D01*
+G01*
+X505500Y626850D02*
+G75*
+G03*
+X505500Y626850I-6000J0D01*
+G01*
+X860500Y626850D02*
+G75*
+G03*
+X860500Y626850I-6000J0D01*
+G01*
+X705500Y626850D02*
+G75*
+G03*
+X705500Y626850I-6000J0D01*
+G01*
+X705500Y423150D02*
+G75*
+G03*
+X705500Y423150I-6000J0D01*
+G01*
+X660500Y423150D02*
+G75*
+G03*
+X660500Y423150I-6000J0D01*
+G01*
+X505500Y423150D02*
+G75*
+G03*
+X505500Y423150I-6000J0D01*
+G01*
+X260500Y626850D02*
+G75*
+G03*
+X260500Y626850I-6000J0D01*
+G01*
+X905500Y423150D02*
+G75*
+G03*
+X905500Y423150I-6000J0D01*
+G01*
+X460500Y423150D02*
+G75*
+G03*
+X460500Y423150I-6000J0D01*
+G01*
+X460500Y626850D02*
+G75*
+G03*
+X460500Y626850I-6000J0D01*
+G01*
+X60500Y626850D02*
+G75*
+G03*
+X60500Y626850I-6000J0D01*
+G01*
+X105500Y626850D02*
+G75*
+G03*
+X105500Y626850I-6000J0D01*
+G01*
+X60500Y423150D02*
+G75*
+G03*
+X60500Y423150I-6000J0D01*
+G01*
+X305500Y626850D02*
+G75*
+G03*
+X305500Y626850I-6000J0D01*
+G01*
+X860500Y423150D02*
+G75*
+G03*
+X860500Y423150I-6000J0D01*
+G01*
+X541500Y633350D02*
+G75*
+G01*
+X541500Y620350D01*
+G02*
+X529500Y620350I-6000J0D01*
+G01*
+X529500Y633350D01*
+G02*
+X541500Y633350I6000J0D01*
+G01*
+X941500Y429650D02*
+G75*
+G01*
+X941500Y416650D01*
+G02*
+X929500Y416650I-6000J0D01*
+G01*
+X929500Y429650D01*
+G02*
+X941500Y429650I6000J0D01*
+G01*
+X260500Y423150D02*
+G75*
+G03*
+X260500Y423150I-6000J0D01*
+G01*
+X305500Y423150D02*
+G75*
+G03*
+X305500Y423150I-6000J0D01*
+G01*
+X824500Y633350D02*
+G75*
+G03*
+X812500Y633350I-6000J0D01*
+G01*
+X812500Y620350D01*
+G03*
+X824500Y620350I6000J0D01*
+G01*
+X824500Y633350D01*
+G01*
+X105500Y423150D02*
+G75*
+G03*
+X105500Y423150I-6000J0D01*
+G01*
+X217000Y560000D02*
+G75*
+G03*
+X237000Y580000I0J20000D01*
+G03*
+X217000Y600000I-20000J0D01*
+G01*
+X200000Y600000D01*
+G01*
+X200000Y700000D01*
+G03*
+X180000Y720000I-20000J0D01*
+G01*
+X174000Y720000D01*
+G03*
+X154000Y700000I0J-20000D01*
+G01*
+X154000Y600000D01*
+G01*
+X137000Y600000D01*
+G03*
+X117000Y580000I0J-20000D01*
+G03*
+X137000Y560000I20000J0D01*
+G01*
+X217000Y560000D01*
+G01*
+X417000Y560000D02*
+G75*
+G03*
+X437000Y580000I0J20000D01*
+G03*
+X417000Y600000I-20000J0D01*
+G01*
+X400000Y600000D01*
+G01*
+X400000Y700000D01*
+G03*
+X380000Y720000I-20000J0D01*
+G01*
+X374000Y720000D01*
+G03*
+X354000Y700000I0J-20000D01*
+G01*
+X354000Y600000D01*
+G01*
+X337000Y600000D01*
+G03*
+X317000Y580000I0J-20000D01*
+G03*
+X337000Y560000I20000J0D01*
+G01*
+X417000Y560000D01*
+G01*
+X617000Y560000D02*
+G75*
+G03*
+X637000Y580000I0J20000D01*
+G03*
+X617000Y600000I-20000J0D01*
+G01*
+X600000Y600000D01*
+G01*
+X600000Y700000D01*
+G03*
+X580000Y720000I-20000J0D01*
+G01*
+X574000Y720000D01*
+G03*
+X554000Y700000I0J-20000D01*
+G01*
+X554000Y600000D01*
+G01*
+X537000Y600000D01*
+G03*
+X517000Y580000I0J-20000D01*
+G03*
+X537000Y560000I20000J0D01*
+G01*
+X617000Y560000D01*
+G01*
+X817000Y560000D02*
+G75*
+G03*
+X837000Y580000I0J20000D01*
+G03*
+X817000Y600000I-20000J0D01*
+G01*
+X800000Y600000D01*
+G01*
+X800000Y700000D01*
+G03*
+X780000Y720000I-20000J0D01*
+G01*
+X774000Y720000D01*
+G03*
+X754000Y700000I0J-20000D01*
+G01*
+X754000Y600000D01*
+G01*
+X737000Y600000D01*
+G03*
+X717000Y580000I0J-20000D01*
+G03*
+X737000Y560000I20000J0D01*
+G01*
+X817000Y560000D01*
+G01*
+X180000Y330000D02*
+G75*
+G03*
+X200000Y350000I0J20000D01*
+G01*
+X200000Y450000D01*
+G01*
+X217000Y450000D01*
+G03*
+X237000Y470000I0J20000D01*
+G03*
+X217000Y490000I-20000J0D01*
+G01*
+X137000Y490000D01*
+G03*
+X117000Y470000I0J-20000D01*
+G03*
+X137000Y450000I20000J0D01*
+G01*
+X154000Y450000D01*
+G01*
+X154000Y350000D01*
+G03*
+X174000Y330000I20000J0D01*
+G01*
+X180000Y330000D01*
+G01*
+X380000Y330000D02*
+G75*
+G03*
+X400000Y350000I0J20000D01*
+G01*
+X400000Y450000D01*
+G01*
+X417000Y450000D01*
+G03*
+X437000Y470000I0J20000D01*
+G03*
+X417000Y490000I-20000J0D01*
+G01*
+X337000Y490000D01*
+G03*
+X317000Y470000I0J-20000D01*
+G03*
+X337000Y450000I20000J0D01*
+G01*
+X354000Y450000D01*
+G01*
+X354000Y350000D01*
+G03*
+X374000Y330000I20000J0D01*
+G01*
+X380000Y330000D01*
+G01*
+X580000Y330000D02*
+G75*
+G03*
+X600000Y350000I0J20000D01*
+G01*
+X600000Y450000D01*
+G01*
+X617000Y450000D01*
+G03*
+X637000Y470000I0J20000D01*
+G03*
+X617000Y490000I-20000J0D01*
+G01*
+X537000Y490000D01*
+G03*
+X517000Y470000I0J-20000D01*
+G03*
+X537000Y450000I20000J0D01*
+G01*
+X554000Y450000D01*
+G01*
+X554000Y350000D01*
+G03*
+X574000Y330000I20000J0D01*
+G01*
+X580000Y330000D01*
+G01*
+X780000Y330000D02*
+G75*
+G03*
+X800000Y350000I0J20000D01*
+G01*
+X800000Y450000D01*
+G01*
+X817000Y450000D01*
+G03*
+X837000Y470000I0J20000D01*
+G03*
+X817000Y490000I-20000J0D01*
+G01*
+X737000Y490000D01*
+G03*
+X717000Y470000I0J-20000D01*
+G03*
+X737000Y450000I20000J0D01*
+G01*
+X754000Y450000D01*
+G01*
+X754000Y350000D01*
+G03*
+X774000Y330000I20000J0D01*
+G01*
+X780000Y330000D01*
+G37*
+M02*
diff --git a/tests/expects/dxf_offset.gtl b/tests/expects/dxf_offset.gtl
new file mode 100644
index 0000000..df1b015
--- /dev/null
+++ b/tests/expects/dxf_offset.gtl
@@ -0,0 +1,93 @@
+%MOMM*%
+%FSLAX34Y34*%
+%IPPOS*%
+%ADD10C,0*%
+G75*
+%LPD*%
+D10*
+G01*
+X910000Y900000D02*
+G75*
+G01*
+X910000Y400000D01*
+G01*
+X1010000Y900000D02*
+G75*
+G01*
+X1010000Y400000D01*
+G01*
+X310000Y379390D02*
+G75*
+G01*
+X435827Y379390D01*
+G01*
+X435827Y228443D01*
+G01*
+X510000Y50000D02*
+G75*
+G01*
+X210000Y50000D01*
+G02*
+X110000Y150000I0J100000D01*
+G01*
+X110000Y450000D01*
+G02*
+X210000Y550000I100000J0D01*
+G01*
+X510000Y550000D01*
+G02*
+X610000Y450000I0J-100000D01*
+G01*
+X610000Y150000D01*
+G02*
+X510000Y50000I-100000J0D01*
+G01*
+X852704Y800394D02*
+G75*
+G01*
+X852704Y500394D01*
+G02*
+X752704Y400394I-100000J0D01*
+G01*
+X452704Y400394D01*
+G02*
+X352704Y500394I0J100000D01*
+G01*
+X352704Y800394D01*
+G02*
+X452704Y900394I100000J0D01*
+G01*
+X752704Y900394D01*
+G02*
+X852704Y800394I0J-100000D01*
+G01*
+X492038Y472062D02*
+G75*
+G01*
+X244512Y472062D01*
+G01*
+X244512Y185960D01*
+G01*
+X492038Y185960D01*
+G01*
+X492038Y472062D01*
+G01*
+X1037009Y176316D02*
+G75*
+G03*
+X1037009Y176316I-125463J0D01*
+G01*
+X712773Y700000D02*
+G75*
+G03*
+X712773Y700000I-102773J0D01*
+G01*
+X610000Y700000D02*
+G75*
+G01*
+X610000Y764592D01*
+G03*
+X672602Y684088I0J-64592D01*
+G01*
+X610000Y700000D01*
+M02*
diff --git a/tests/expects/dxf_rectangle_inch.gtl b/tests/expects/dxf_rectangle_inch.gtl
new file mode 100644
index 0000000..c196f92
--- /dev/null
+++ b/tests/expects/dxf_rectangle_inch.gtl
@@ -0,0 +1,19 @@
+%MOIN*%
+%FSLAX25Y25*%
+%IPPOS*%
+%ADD10C,0*%
+G75*
+%LPD*%
+D10*
+G01*
+X0Y39370D02*
+G75*
+G01*
+X0Y0D01*
+G01*
+X39370Y0D01*
+G01*
+X39370Y39370D01*
+G01*
+X0Y39370D01*
+M02*
diff --git a/tests/expects/dxf_rectangle_metric.gtl b/tests/expects/dxf_rectangle_metric.gtl
new file mode 100644
index 0000000..092471f
--- /dev/null
+++ b/tests/expects/dxf_rectangle_metric.gtl
@@ -0,0 +1,19 @@
+%MOMM*%
+%FSLAX34Y34*%
+%IPPOS*%
+%ADD10C,0*%
+G75*
+%LPD*%
+D10*
+G01*
+X0Y100000D02*
+G75*
+G01*
+X0Y0D01*
+G01*
+X100000Y0D01*
+G01*
+X100000Y100000D01*
+G01*
+X0Y100000D01*
+M02*
diff --git a/tests/expects/dxf_rotate.gtl b/tests/expects/dxf_rotate.gtl
new file mode 100644
index 0000000..5c04b64
--- /dev/null
+++ b/tests/expects/dxf_rotate.gtl
@@ -0,0 +1,93 @@
+%MOMM*%
+%FSLAX34Y34*%
+%IPPOS*%
+%ADD10C,0*%
+G75*
+%LPD*%
+D10*
+G01*
+X501270Y1044184D02*
+G75*
+G01*
+X672280Y574337D01*
+G01*
+X595239Y1078386D02*
+G75*
+G01*
+X766249Y608539D01*
+G01*
+X115513Y349758D02*
+G75*
+G01*
+X233752Y392793D01*
+G01*
+X285379Y250949D01*
+G01*
+X416110Y108637D02*
+G75*
+G01*
+X134202Y6031D01*
+G02*
+X6031Y65798I-34202J93969D01*
+G01*
+X-96575Y347706D01*
+G02*
+X-36808Y475877I93969J34202D01*
+G01*
+X245100Y578483D01*
+G02*
+X373271Y518716I34202J-93969D01*
+G01*
+X475877Y236808D01*
+G02*
+X416110Y108637I-93969J-34202D01*
+G01*
+X481496Y930988D02*
+G75*
+G01*
+X584102Y649080D01*
+G02*
+X524335Y520909I-93969J-34202D01*
+G01*
+X242427Y418303D01*
+G02*
+X114256Y478070I-34202J93969D01*
+G01*
+X11650Y759978D01*
+G02*
+X71417Y888149I93969J34202D01*
+G01*
+X353325Y990755D01*
+G02*
+X481496Y930988I34202J-93969D01*
+G01*
+X254877Y499102D02*
+G75*
+G01*
+X22279Y414443D01*
+G01*
+X120131Y145595D01*
+G01*
+X352730Y230254D01*
+G01*
+X254877Y499102D01*
+G01*
+X868133Y407583D02*
+G75*
+G03*
+X868133Y407583I-117896J-42911D01*
+G01*
+X384341Y788789D02*
+G75*
+G03*
+X384341Y788789I-96575J-35150D01*
+G01*
+X287766Y753639D02*
+G75*
+G01*
+X265674Y814336D01*
+G03*
+X352035Y760098I22092J-60697D01*
+G01*
+X287766Y753639D01*
+M02*
diff --git a/tests/expects/dxf_save_fill.gtl b/tests/expects/dxf_save_fill.gtl
new file mode 100644
index 0000000..4b82fb2
--- /dev/null
+++ b/tests/expects/dxf_save_fill.gtl
@@ -0,0 +1,84 @@
+%MOMM*%
+%FSLAX34Y34*%
+%IPPOS*%
+%ADD10C,0*%
+G75*
+%LPD*%
+D10*
+G36*
+G01*
+X400000Y0D02*
+G75*
+G01*
+X100000Y0D01*
+G02*
+X0Y100000I0J100000D01*
+G01*
+X0Y400000D01*
+G02*
+X100000Y500000I100000J0D01*
+G01*
+X400000Y500000D01*
+G02*
+X500000Y400000I0J-100000D01*
+G01*
+X500000Y100000D01*
+G02*
+X400000Y0I-100000J0D01*
+G01*
+X742704Y750394D02*
+G75*
+G01*
+X742704Y450394D01*
+G02*
+X642704Y350394I-100000J0D01*
+G01*
+X342704Y350394D01*
+G02*
+X242704Y450394I0J100000D01*
+G01*
+X242704Y750394D01*
+G02*
+X342704Y850394I100000J0D01*
+G01*
+X642704Y850394D01*
+G02*
+X742704Y750394I0J-100000D01*
+G01*
+X927009Y126316D02*
+G75*
+G03*
+X927009Y126316I-125463J0D01*
+G37*
+%LPC*%
+G36*
+G01*
+X382038Y422062D02*
+G75*
+G01*
+X134512Y422062D01*
+G01*
+X134512Y135960D01*
+G01*
+X382038Y135960D01*
+G01*
+X382038Y422062D01*
+G01*
+X602773Y650000D02*
+G75*
+G03*
+X602773Y650000I-102773J0D01*
+G37*
+%LPD*%
+G36*
+G01*
+X500000Y650000D02*
+G75*
+G01*
+X500000Y714592D01*
+G03*
+X562602Y634088I0J-64592D01*
+G01*
+X500000Y650000D01*
+G37*
+M02*
diff --git a/tests/expects/dxf_save_fill_simple.gtl b/tests/expects/dxf_save_fill_simple.gtl
new file mode 100644
index 0000000..5ff4d55
--- /dev/null
+++ b/tests/expects/dxf_save_fill_simple.gtl
@@ -0,0 +1,78 @@
+%MOMM*%
+%FSLAX34Y34*%
+%IPPOS*%
+%ADD10C,0*%
+G75*
+%LPD*%
+D10*
+G36*
+G01*
+X400000Y0D02*
+G75*
+G01*
+X100000Y0D01*
+G02*
+X0Y100000I0J100000D01*
+G01*
+X0Y400000D01*
+G02*
+X100000Y500000I100000J0D01*
+G01*
+X400000Y500000D01*
+G02*
+X500000Y400000I0J-100000D01*
+G01*
+X500000Y100000D01*
+G02*
+X400000Y0I-100000J0D01*
+G01*
+X742704Y750394D02*
+G75*
+G01*
+X742704Y450394D01*
+G02*
+X642704Y350394I-100000J0D01*
+G01*
+X342704Y350394D01*
+G02*
+X242704Y450394I0J100000D01*
+G01*
+X242704Y750394D01*
+G02*
+X342704Y850394I100000J0D01*
+G01*
+X642704Y850394D01*
+G02*
+X742704Y750394I0J-100000D01*
+G01*
+X382038Y422062D02*
+G75*
+G01*
+X134512Y422062D01*
+G01*
+X134512Y135960D01*
+G01*
+X382038Y135960D01*
+G01*
+X382038Y422062D01*
+G01*
+X927009Y126316D02*
+G75*
+G03*
+X927009Y126316I-125463J0D01*
+G01*
+X602773Y650000D02*
+G75*
+G03*
+X602773Y650000I-102773J0D01*
+G01*
+X500000Y650000D02*
+G75*
+G01*
+X500000Y714592D01*
+G03*
+X562602Y634088I0J-64592D01*
+G01*
+X500000Y650000D01*
+G37*
+M02*
diff --git a/tests/expects/dxf_save_line.gtl b/tests/expects/dxf_save_line.gtl
new file mode 100644
index 0000000..b3ee8f1
--- /dev/null
+++ b/tests/expects/dxf_save_line.gtl
@@ -0,0 +1,93 @@
+%MOMM*%
+%FSLAX34Y34*%
+%IPPOS*%
+%ADD10C,0.2*%
+G75*
+%LPD*%
+D10*
+G01*
+X800000Y850000D02*
+G75*
+G01*
+X800000Y350000D01*
+G01*
+X900000Y850000D02*
+G75*
+G01*
+X900000Y350000D01*
+G01*
+X200000Y329390D02*
+G75*
+G01*
+X325827Y329390D01*
+G01*
+X325827Y178443D01*
+G01*
+X400000Y0D02*
+G75*
+G01*
+X100000Y0D01*
+G02*
+X0Y100000I0J100000D01*
+G01*
+X0Y400000D01*
+G02*
+X100000Y500000I100000J0D01*
+G01*
+X400000Y500000D01*
+G02*
+X500000Y400000I0J-100000D01*
+G01*
+X500000Y100000D01*
+G02*
+X400000Y0I-100000J0D01*
+G01*
+X742704Y750394D02*
+G75*
+G01*
+X742704Y450394D01*
+G02*
+X642704Y350394I-100000J0D01*
+G01*
+X342704Y350394D01*
+G02*
+X242704Y450394I0J100000D01*
+G01*
+X242704Y750394D01*
+G02*
+X342704Y850394I100000J0D01*
+G01*
+X642704Y850394D01*
+G02*
+X742704Y750394I0J-100000D01*
+G01*
+X382038Y422062D02*
+G75*
+G01*
+X134512Y422062D01*
+G01*
+X134512Y135960D01*
+G01*
+X382038Y135960D01*
+G01*
+X382038Y422062D01*
+G01*
+X927009Y126316D02*
+G75*
+G03*
+X927009Y126316I-125463J0D01*
+G01*
+X602773Y650000D02*
+G75*
+G03*
+X602773Y650000I-102773J0D01*
+G01*
+X500000Y650000D02*
+G75*
+G01*
+X500000Y714592D01*
+G03*
+X562602Y634088I0J-64592D01*
+G01*
+X500000Y650000D01*
+M02*
diff --git a/tests/expects/dxf_save_line.txt b/tests/expects/dxf_save_line.txt
new file mode 100644
index 0000000..c3d73d4
--- /dev/null
+++ b/tests/expects/dxf_save_line.txt
@@ -0,0 +1,84 @@
+M48
+FMAT,2
+ICI,OFF
+METRIC,TZ,000.000
+T01C0.200
+%
+G90
+M71
+T01
+G00X80000Y85000
+M15
+G01X80000Y35000
+M16
+G05
+
+G00X90000Y85000
+M15
+G01X90000Y35000
+M16
+G05
+
+G00X20000Y32939
+M15
+G01X32583Y32939
+G01X32583Y17844
+M16
+G05
+
+G00X40000Y0
+M15
+G01X10000Y0
+G02X0Y10000I0J10000
+G01X0Y40000
+G02X10000Y50000I10000J0
+G01X40000Y50000
+G02X50000Y40000I0J-10000
+G01X50000Y10000
+G02X40000Y0I-10000J0
+M16
+G05
+
+G00X74270Y75039
+M15
+G01X74270Y45039
+G02X64270Y35039I-10000J0
+G01X34270Y35039
+G02X24270Y45039I0J10000
+G01X24270Y75039
+G02X34270Y85039I10000J0
+G01X64270Y85039
+G02X74270Y75039I0J-10000
+M16
+G05
+
+G00X38204Y42206
+M15
+G01X13451Y42206
+G01X13451Y13596
+G01X38204Y13596
+G01X38204Y42206
+M16
+G05
+
+G00X92701Y12632
+M15
+G03X92701Y12632I-12546J0
+M16
+G05
+
+G00X60277Y65000
+M15
+G03X60277Y65000I-10277J0
+M16
+G05
+
+G00X50000Y65000
+M15
+G01X50000Y71459
+G03X56260Y63409I0J-6459
+G01X50000Y65000
+M16
+G05
+
+M30
diff --git a/tests/expects/dxf_save_mousebites.gtl b/tests/expects/dxf_save_mousebites.gtl
new file mode 100644
index 0000000..64cc6d8
--- /dev/null
+++ b/tests/expects/dxf_save_mousebites.gtl
@@ -0,0 +1,582 @@
+%MOMM*%
+%FSLAX34Y34*%
+%IPPOS*%
+%ADD10C,0.5*%
+G75*
+%LPD*%
+D10*
+X800000Y850000D03*
+X800000Y836000D03*
+X800000Y822000D03*
+X800000Y808000D03*
+X800000Y794000D03*
+X800000Y780000D03*
+X800000Y766000D03*
+X800000Y752000D03*
+X800000Y738000D03*
+X800000Y724000D03*
+X800000Y710000D03*
+X800000Y696000D03*
+X800000Y682000D03*
+X800000Y668000D03*
+X800000Y654000D03*
+X800000Y640000D03*
+X800000Y626000D03*
+X800000Y612000D03*
+X800000Y598000D03*
+X800000Y584000D03*
+X800000Y570000D03*
+X800000Y556000D03*
+X800000Y542000D03*
+X800000Y528000D03*
+X800000Y514000D03*
+X800000Y500000D03*
+X800000Y486000D03*
+X800000Y472000D03*
+X800000Y458000D03*
+X800000Y444000D03*
+X800000Y430000D03*
+X800000Y416000D03*
+X800000Y402000D03*
+X800000Y388000D03*
+X800000Y374000D03*
+X800000Y360000D03*
+
+X900000Y850000D03*
+X900000Y836000D03*
+X900000Y822000D03*
+X900000Y808000D03*
+X900000Y794000D03*
+X900000Y780000D03*
+X900000Y766000D03*
+X900000Y752000D03*
+X900000Y738000D03*
+X900000Y724000D03*
+X900000Y710000D03*
+X900000Y696000D03*
+X900000Y682000D03*
+X900000Y668000D03*
+X900000Y654000D03*
+X900000Y640000D03*
+X900000Y626000D03*
+X900000Y612000D03*
+X900000Y598000D03*
+X900000Y584000D03*
+X900000Y570000D03*
+X900000Y556000D03*
+X900000Y542000D03*
+X900000Y528000D03*
+X900000Y514000D03*
+X900000Y500000D03*
+X900000Y486000D03*
+X900000Y472000D03*
+X900000Y458000D03*
+X900000Y444000D03*
+X900000Y430000D03*
+X900000Y416000D03*
+X900000Y402000D03*
+X900000Y388000D03*
+X900000Y374000D03*
+X900000Y360000D03*
+
+X200000Y329390D03*
+X214000Y329390D03*
+X228000Y329390D03*
+X242000Y329390D03*
+X256000Y329390D03*
+X270000Y329390D03*
+X284000Y329390D03*
+X298000Y329390D03*
+X312000Y329390D03*
+X325827Y329217D03*
+X325827Y315217D03*
+X325827Y301217D03*
+X325827Y287217D03*
+X325827Y273217D03*
+X325827Y259217D03*
+X325827Y245217D03*
+X325827Y231217D03*
+X325827Y217217D03*
+X325827Y203217D03*
+X325827Y189217D03*
+
+X400000Y0D03*
+X386000Y0D03*
+X372000Y0D03*
+X358000Y0D03*
+X344000Y0D03*
+X330000Y0D03*
+X316000Y0D03*
+X302000Y0D03*
+X288000Y0D03*
+X274000Y0D03*
+X260000Y0D03*
+X246000Y0D03*
+X232000Y0D03*
+X218000Y0D03*
+X204000Y0D03*
+X190000Y0D03*
+X176000Y0D03*
+X162000Y0D03*
+X148000Y0D03*
+X134000Y0D03*
+X120000Y0D03*
+X106000Y0D03*
+X92009Y320D03*
+X78177Y2410D03*
+X64773Y6410D03*
+X52057Y12242D03*
+X40280Y19790D03*
+X29672Y28909D03*
+X20440Y39418D03*
+X12764Y51113D03*
+X6796Y63764D03*
+X2652Y77125D03*
+X412Y90933D03*
+X0Y104920D03*
+X0Y118920D03*
+X0Y132920D03*
+X0Y146920D03*
+X0Y160920D03*
+X0Y174920D03*
+X0Y188920D03*
+X0Y202920D03*
+X0Y216920D03*
+X0Y230920D03*
+X0Y244920D03*
+X0Y258920D03*
+X0Y272920D03*
+X0Y286920D03*
+X0Y300920D03*
+X0Y314920D03*
+X0Y328920D03*
+X0Y342920D03*
+X0Y356920D03*
+X0Y370920D03*
+X0Y384920D03*
+X0Y398920D03*
+X834Y412884D03*
+X3602Y426596D03*
+X8256Y439788D03*
+X14706Y452201D03*
+X22825Y463592D03*
+X32454Y473739D03*
+X43404Y482444D03*
+X55463Y489534D03*
+X68392Y494873D03*
+X81940Y498356D03*
+X95842Y499914D03*
+X109841Y500000D03*
+X123841Y500000D03*
+X137841Y500000D03*
+X151841Y500000D03*
+X165841Y500000D03*
+X179841Y500000D03*
+X193841Y500000D03*
+X207841Y500000D03*
+X221841Y500000D03*
+X235841Y500000D03*
+X249841Y500000D03*
+X263841Y500000D03*
+X277841Y500000D03*
+X291841Y500000D03*
+X305841Y500000D03*
+X319841Y500000D03*
+X333841Y500000D03*
+X347841Y500000D03*
+X361841Y500000D03*
+X375841Y500000D03*
+X389841Y500000D03*
+X403840Y499926D03*
+X417746Y498413D03*
+X431305Y494974D03*
+X444252Y489676D03*
+X456333Y482623D03*
+X467311Y473954D03*
+X476972Y463838D03*
+X485127Y452472D03*
+X491617Y440080D03*
+X496313Y426903D03*
+X499125Y413200D03*
+X500000Y399239D03*
+X500000Y385239D03*
+X500000Y371239D03*
+X500000Y357239D03*
+X500000Y343239D03*
+X500000Y329239D03*
+X500000Y315239D03*
+X500000Y301239D03*
+X500000Y287239D03*
+X500000Y273239D03*
+X500000Y259239D03*
+X500000Y245239D03*
+X500000Y231239D03*
+X500000Y217239D03*
+X500000Y203239D03*
+X500000Y189239D03*
+X500000Y175239D03*
+X500000Y161239D03*
+X500000Y147239D03*
+X500000Y133239D03*
+X500000Y119239D03*
+X500000Y105239D03*
+X499616Y91250D03*
+X497421Y77435D03*
+X493319Y64061D03*
+X487391Y51391D03*
+X479753Y39672D03*
+X470554Y29133D03*
+X459975Y19981D03*
+X448222Y12395D03*
+X435525Y6523D03*
+X422134Y2480D03*
+X408309Y346D03*
+
+X742704Y750394D03*
+X742704Y736394D03*
+X742704Y722394D03*
+X742704Y708394D03*
+X742704Y694394D03*
+X742704Y680394D03*
+X742704Y666394D03*
+X742704Y652394D03*
+X742704Y638394D03*
+X742704Y624394D03*
+X742704Y610394D03*
+X742704Y596394D03*
+X742704Y582394D03*
+X742704Y568394D03*
+X742704Y554394D03*
+X742704Y540394D03*
+X742704Y526394D03*
+X742704Y512394D03*
+X742704Y498394D03*
+X742704Y484394D03*
+X742704Y470394D03*
+X742704Y456394D03*
+X742384Y442402D03*
+X740294Y428571D03*
+X736294Y415167D03*
+X730462Y402451D03*
+X722914Y390674D03*
+X713795Y380066D03*
+X703286Y370834D03*
+X691591Y363158D03*
+X678940Y357190D03*
+X665579Y353045D03*
+X651771Y350806D03*
+X637784Y350394D03*
+X623784Y350394D03*
+X609784Y350394D03*
+X595784Y350394D03*
+X581784Y350394D03*
+X567784Y350394D03*
+X553784Y350394D03*
+X539784Y350394D03*
+X525784Y350394D03*
+X511784Y350394D03*
+X497784Y350394D03*
+X483784Y350394D03*
+X469784Y350394D03*
+X455784Y350394D03*
+X441784Y350394D03*
+X427784Y350394D03*
+X413784Y350394D03*
+X399784Y350394D03*
+X385784Y350394D03*
+X371784Y350394D03*
+X357784Y350394D03*
+X343784Y350394D03*
+X329820Y351227D03*
+X316108Y353996D03*
+X302916Y358650D03*
+X290503Y365100D03*
+X279112Y373219D03*
+X268965Y382848D03*
+X260261Y393798D03*
+X253170Y405856D03*
+X247831Y418786D03*
+X244348Y432334D03*
+X242791Y446236D03*
+X242704Y460235D03*
+X242704Y474235D03*
+X242704Y488235D03*
+X242704Y502235D03*
+X242704Y516235D03*
+X242704Y530235D03*
+X242704Y544235D03*
+X242704Y558235D03*
+X242704Y572235D03*
+X242704Y586235D03*
+X242704Y600235D03*
+X242704Y614235D03*
+X242704Y628235D03*
+X242704Y642235D03*
+X242704Y656235D03*
+X242704Y670235D03*
+X242704Y684235D03*
+X242704Y698235D03*
+X242704Y712235D03*
+X242704Y726235D03*
+X242704Y740235D03*
+X242778Y754234D03*
+X244291Y768140D03*
+X247731Y781699D03*
+X253028Y794646D03*
+X260081Y806727D03*
+X268750Y817705D03*
+X278866Y827366D03*
+X290232Y835521D03*
+X302624Y842011D03*
+X315801Y846707D03*
+X329504Y849519D03*
+X343465Y850394D03*
+X357465Y850394D03*
+X371465Y850394D03*
+X385465Y850394D03*
+X399465Y850394D03*
+X413465Y850394D03*
+X427465Y850394D03*
+X441465Y850394D03*
+X455465Y850394D03*
+X469465Y850394D03*
+X483465Y850394D03*
+X497465Y850394D03*
+X511465Y850394D03*
+X525465Y850394D03*
+X539465Y850394D03*
+X553465Y850394D03*
+X567465Y850394D03*
+X581465Y850394D03*
+X595465Y850394D03*
+X609465Y850394D03*
+X623465Y850394D03*
+X637465Y850394D03*
+X651454Y850010D03*
+X665269Y847815D03*
+X678643Y843713D03*
+X691313Y837785D03*
+X703032Y830147D03*
+X713571Y820948D03*
+X722723Y810369D03*
+X730309Y798616D03*
+X736181Y785919D03*
+X740224Y772528D03*
+X742358Y758703D03*
+
+X382038Y422062D03*
+X368038Y422062D03*
+X354038Y422062D03*
+X340038Y422062D03*
+X326038Y422062D03*
+X312038Y422062D03*
+X298038Y422062D03*
+X284038Y422062D03*
+X270038Y422062D03*
+X256038Y422062D03*
+X242038Y422062D03*
+X228038Y422062D03*
+X214038Y422062D03*
+X200038Y422062D03*
+X186038Y422062D03*
+X172038Y422062D03*
+X158038Y422062D03*
+X144038Y422062D03*
+X134512Y417588D03*
+X134512Y403588D03*
+X134512Y389588D03*
+X134512Y375588D03*
+X134512Y361588D03*
+X134512Y347588D03*
+X134512Y333588D03*
+X134512Y319588D03*
+X134512Y305588D03*
+X134512Y291588D03*
+X134512Y277588D03*
+X134512Y263588D03*
+X134512Y249588D03*
+X134512Y235588D03*
+X134512Y221588D03*
+X134512Y207588D03*
+X134512Y193588D03*
+X134512Y179588D03*
+X134512Y165588D03*
+X134512Y151588D03*
+X134512Y137588D03*
+X146884Y135960D03*
+X160884Y135960D03*
+X174884Y135960D03*
+X188884Y135960D03*
+X202884Y135960D03*
+X216884Y135960D03*
+X230884Y135960D03*
+X244884Y135960D03*
+X258884Y135960D03*
+X272884Y135960D03*
+X286884Y135960D03*
+X300884Y135960D03*
+X314884Y135960D03*
+X328884Y135960D03*
+X342884Y135960D03*
+X356884Y135960D03*
+X370884Y135960D03*
+X382038Y138807D03*
+X382038Y152807D03*
+X382038Y166807D03*
+X382038Y180807D03*
+X382038Y194807D03*
+X382038Y208807D03*
+X382038Y222807D03*
+X382038Y236807D03*
+X382038Y250807D03*
+X382038Y264807D03*
+X382038Y278807D03*
+X382038Y292807D03*
+X382038Y306807D03*
+X382038Y320807D03*
+X382038Y334807D03*
+X382038Y348807D03*
+X382038Y362807D03*
+X382038Y376807D03*
+X382038Y390807D03*
+X382038Y404807D03*
+X382038Y418807D03*
+
+X927009Y126316D03*
+X926228Y140287D03*
+X923897Y154085D03*
+X920044Y167536D03*
+X914717Y180475D03*
+X907982Y192741D03*
+X899924Y204180D03*
+X890641Y214651D03*
+X880251Y224022D03*
+X868881Y232179D03*
+X856674Y239019D03*
+X843781Y244457D03*
+X830363Y248425D03*
+X816586Y250874D03*
+X802622Y251774D03*
+X788645Y251114D03*
+X774828Y248901D03*
+X761344Y245164D03*
+X748360Y239948D03*
+X736037Y233319D03*
+X724529Y225358D03*
+X713979Y216166D03*
+X704519Y205856D03*
+X696265Y194557D03*
+X689321Y182409D03*
+X683773Y169563D03*
+X679689Y156179D03*
+X677122Y142424D03*
+X676102Y128469D03*
+X676642Y114486D03*
+X678737Y100651D03*
+X682358Y87135D03*
+X687463Y74107D03*
+X693986Y61728D03*
+X701847Y50152D03*
+X710949Y39524D03*
+X721177Y29975D03*
+X732405Y21625D03*
+X744493Y14576D03*
+X757291Y8918D03*
+X770639Y4720D03*
+X784372Y2035D03*
+X798318Y895D03*
+X812304Y1316D03*
+X826157Y3291D03*
+X839703Y6797D03*
+X852775Y11789D03*
+X865210Y18206D03*
+X876852Y25968D03*
+X887558Y34978D03*
+X897195Y45124D03*
+X905641Y56280D03*
+X912793Y68307D03*
+X918560Y81056D03*
+X922873Y94367D03*
+X925676Y108077D03*
+X926935Y122013D03*
+
+X602773Y650000D03*
+X601821Y663957D03*
+X598982Y677655D03*
+X594309Y690841D03*
+X587889Y703270D03*
+X579841Y714712D03*
+X570313Y724955D03*
+X559483Y733809D03*
+X547550Y741111D03*
+X534737Y746724D03*
+X521280Y750545D03*
+X507428Y752504D03*
+X493439Y752563D03*
+X479572Y750722D03*
+X466083Y747015D03*
+X453222Y741510D03*
+X441228Y734310D03*
+X430323Y725547D03*
+X420709Y715385D03*
+X412565Y704012D03*
+X406040Y691637D03*
+X401256Y678491D03*
+X398301Y664818D03*
+X397231Y650870D03*
+X398065Y636905D03*
+X400788Y623184D03*
+X405348Y609959D03*
+X411663Y597476D03*
+X419614Y585966D03*
+X429055Y575643D03*
+X439810Y566697D03*
+X451680Y559295D03*
+X464446Y553573D03*
+X477870Y549638D03*
+X491705Y547563D03*
+X505693Y547385D03*
+X519575Y549109D03*
+X533095Y552702D03*
+X546002Y558098D03*
+X558056Y565196D03*
+X569035Y573866D03*
+X578734Y583946D03*
+X586975Y595251D03*
+X593605Y607569D03*
+X598500Y620674D03*
+X601570Y634322D03*
+X602758Y648261D03*
+
+X500000Y650000D03*
+X500000Y664000D03*
+X500000Y678000D03*
+X500000Y692000D03*
+X500000Y706000D03*
+X494599Y714366D03*
+X480883Y711699D03*
+X468062Y706144D03*
+X456736Y697962D03*
+X447434Y687536D03*
+X440591Y675353D03*
+X436529Y661984D03*
+X435437Y648054D03*
+X437366Y634216D03*
+X442226Y621115D03*
+X449789Y609367D03*
+X459702Y599520D03*
+X471501Y592035D03*
+X484633Y587262D03*
+X498484Y585425D03*
+X512407Y586610D03*
+X525748Y590761D03*
+X537885Y597685D03*
+X548249Y607056D03*
+X556356Y618437D03*
+X561825Y631294D03*
+X551844Y636823D03*
+X538276Y640271D03*
+X524707Y643720D03*
+X511139Y647169D03*
+
+M02*
diff --git a/tests/expects/dxf_save_mousebites.txt b/tests/expects/dxf_save_mousebites.txt
new file mode 100644
index 0000000..4a64514
--- /dev/null
+++ b/tests/expects/dxf_save_mousebites.txt
@@ -0,0 +1,584 @@
+M48
+FMAT,2
+ICI,OFF
+METRIC,TZ,000.000
+T01C0.500
+%
+G90
+M71
+T01
+X80000Y85000
+X80000Y83600
+X80000Y82200
+X80000Y80800
+X80000Y79400
+X80000Y78000
+X80000Y76600
+X80000Y75200
+X80000Y73800
+X80000Y72400
+X80000Y71000
+X80000Y69600
+X80000Y68200
+X80000Y66800
+X80000Y65400
+X80000Y64000
+X80000Y62600
+X80000Y61200
+X80000Y59800
+X80000Y58400
+X80000Y57000
+X80000Y55600
+X80000Y54200
+X80000Y52800
+X80000Y51400
+X80000Y50000
+X80000Y48600
+X80000Y47200
+X80000Y45800
+X80000Y44400
+X80000Y43000
+X80000Y41600
+X80000Y40200
+X80000Y38800
+X80000Y37400
+X80000Y36000
+
+X90000Y85000
+X90000Y83600
+X90000Y82200
+X90000Y80800
+X90000Y79400
+X90000Y78000
+X90000Y76600
+X90000Y75200
+X90000Y73800
+X90000Y72400
+X90000Y71000
+X90000Y69600
+X90000Y68200
+X90000Y66800
+X90000Y65400
+X90000Y64000
+X90000Y62600
+X90000Y61200
+X90000Y59800
+X90000Y58400
+X90000Y57000
+X90000Y55600
+X90000Y54200
+X90000Y52800
+X90000Y51400
+X90000Y50000
+X90000Y48600
+X90000Y47200
+X90000Y45800
+X90000Y44400
+X90000Y43000
+X90000Y41600
+X90000Y40200
+X90000Y38800
+X90000Y37400
+X90000Y36000
+
+X20000Y32939
+X21400Y32939
+X22800Y32939
+X24200Y32939
+X25600Y32939
+X27000Y32939
+X28400Y32939
+X29800Y32939
+X31200Y32939
+X32583Y32922
+X32583Y31522
+X32583Y30122
+X32583Y28722
+X32583Y27322
+X32583Y25922
+X32583Y24522
+X32583Y23122
+X32583Y21722
+X32583Y20322
+X32583Y18922
+
+X40000Y0
+X38600Y0
+X37200Y0
+X35800Y0
+X34400Y0
+X33000Y0
+X31600Y0
+X30200Y0
+X28800Y0
+X27400Y0
+X26000Y0
+X24600Y0
+X23200Y0
+X21800Y0
+X20400Y0
+X19000Y0
+X17600Y0
+X16200Y0
+X14800Y0
+X13400Y0
+X12000Y0
+X10600Y0
+X9201Y32
+X7818Y241
+X6477Y641
+X5206Y1224
+X4028Y1979
+X2967Y2891
+X2044Y3942
+X1276Y5111
+X680Y6376
+X265Y7712
+X41Y9093
+X0Y10492
+X0Y11892
+X0Y13292
+X0Y14692
+X0Y16092
+X0Y17492
+X0Y18892
+X0Y20292
+X0Y21692
+X0Y23092
+X0Y24492
+X0Y25892
+X0Y27292
+X0Y28692
+X0Y30092
+X0Y31492
+X0Y32892
+X0Y34292
+X0Y35692
+X0Y37092
+X0Y38492
+X0Y39892
+X83Y41288
+X360Y42660
+X826Y43979
+X1471Y45220
+X2282Y46359
+X3245Y47374
+X4340Y48244
+X5546Y48953
+X6839Y49487
+X8194Y49836
+X9584Y49991
+X10984Y50000
+X12384Y50000
+X13784Y50000
+X15184Y50000
+X16584Y50000
+X17984Y50000
+X19384Y50000
+X20784Y50000
+X22184Y50000
+X23584Y50000
+X24984Y50000
+X26384Y50000
+X27784Y50000
+X29184Y50000
+X30584Y50000
+X31984Y50000
+X33384Y50000
+X34784Y50000
+X36184Y50000
+X37584Y50000
+X38984Y50000
+X40384Y49993
+X41775Y49841
+X43131Y49497
+X44425Y48968
+X45633Y48262
+X46731Y47395
+X47697Y46384
+X48513Y45247
+X49162Y44008
+X49631Y42690
+X49912Y41320
+X50000Y39924
+X50000Y38524
+X50000Y37124
+X50000Y35724
+X50000Y34324
+X50000Y32924
+X50000Y31524
+X50000Y30124
+X50000Y28724
+X50000Y27324
+X50000Y25924
+X50000Y24524
+X50000Y23124
+X50000Y21724
+X50000Y20324
+X50000Y18924
+X50000Y17524
+X50000Y16124
+X50000Y14724
+X50000Y13324
+X50000Y11924
+X50000Y10524
+X49962Y9125
+X49742Y7743
+X49332Y6406
+X48739Y5139
+X47975Y3967
+X47055Y2913
+X45997Y1998
+X44822Y1239
+X43553Y652
+X42213Y248
+X40831Y35
+
+X74270Y75039
+X74270Y73639
+X74270Y72239
+X74270Y70839
+X74270Y69439
+X74270Y68039
+X74270Y66639
+X74270Y65239
+X74270Y63839
+X74270Y62439
+X74270Y61039
+X74270Y59639
+X74270Y58239
+X74270Y56839
+X74270Y55439
+X74270Y54039
+X74270Y52639
+X74270Y51239
+X74270Y49839
+X74270Y48439
+X74270Y47039
+X74270Y45639
+X74238Y44240
+X74029Y42857
+X73629Y41517
+X73046Y40245
+X72291Y39067
+X71380Y38007
+X70329Y37083
+X69159Y36316
+X67894Y35719
+X66558Y35305
+X65177Y35081
+X63778Y35039
+X62378Y35039
+X60978Y35039
+X59578Y35039
+X58178Y35039
+X56778Y35039
+X55378Y35039
+X53978Y35039
+X52578Y35039
+X51178Y35039
+X49778Y35039
+X48378Y35039
+X46978Y35039
+X45578Y35039
+X44178Y35039
+X42778Y35039
+X41378Y35039
+X39978Y35039
+X38578Y35039
+X37178Y35039
+X35778Y35039
+X34378Y35039
+X32982Y35123
+X31611Y35400
+X30292Y35865
+X29050Y36510
+X27911Y37322
+X26896Y38285
+X26026Y39380
+X25317Y40586
+X24783Y41879
+X24435Y43233
+X24279Y44624
+X24270Y46023
+X24270Y47423
+X24270Y48823
+X24270Y50223
+X24270Y51623
+X24270Y53023
+X24270Y54423
+X24270Y55823
+X24270Y57223
+X24270Y58623
+X24270Y60023
+X24270Y61423
+X24270Y62823
+X24270Y64223
+X24270Y65623
+X24270Y67023
+X24270Y68423
+X24270Y69823
+X24270Y71223
+X24270Y72623
+X24270Y74023
+X24278Y75423
+X24429Y76814
+X24773Y78170
+X25303Y79465
+X26008Y80673
+X26875Y81771
+X27887Y82737
+X29023Y83552
+X30262Y84201
+X31580Y84671
+X32950Y84952
+X34347Y85039
+X35747Y85039
+X37147Y85039
+X38547Y85039
+X39947Y85039
+X41347Y85039
+X42747Y85039
+X44147Y85039
+X45547Y85039
+X46947Y85039
+X48347Y85039
+X49747Y85039
+X51147Y85039
+X52547Y85039
+X53947Y85039
+X55347Y85039
+X56747Y85039
+X58147Y85039
+X59547Y85039
+X60947Y85039
+X62347Y85039
+X63747Y85039
+X65145Y85001
+X66527Y84781
+X67864Y84371
+X69131Y83778
+X70303Y83015
+X71357Y82095
+X72272Y81037
+X73031Y79862
+X73618Y78592
+X74022Y77253
+X74236Y75870
+
+X38204Y42206
+X36804Y42206
+X35404Y42206
+X34004Y42206
+X32604Y42206
+X31204Y42206
+X29804Y42206
+X28404Y42206
+X27004Y42206
+X25604Y42206
+X24204Y42206
+X22804Y42206
+X21404Y42206
+X20004Y42206
+X18604Y42206
+X17204Y42206
+X15804Y42206
+X14404Y42206
+X13451Y41759
+X13451Y40359
+X13451Y38959
+X13451Y37559
+X13451Y36159
+X13451Y34759
+X13451Y33359
+X13451Y31959
+X13451Y30559
+X13451Y29159
+X13451Y27759
+X13451Y26359
+X13451Y24959
+X13451Y23559
+X13451Y22159
+X13451Y20759
+X13451Y19359
+X13451Y17959
+X13451Y16559
+X13451Y15159
+X13451Y13759
+X14688Y13596
+X16088Y13596
+X17488Y13596
+X18888Y13596
+X20288Y13596
+X21688Y13596
+X23088Y13596
+X24488Y13596
+X25888Y13596
+X27288Y13596
+X28688Y13596
+X30088Y13596
+X31488Y13596
+X32888Y13596
+X34288Y13596
+X35688Y13596
+X37088Y13596
+X38204Y13881
+X38204Y15281
+X38204Y16681
+X38204Y18081
+X38204Y19481
+X38204Y20881
+X38204Y22281
+X38204Y23681
+X38204Y25081
+X38204Y26481
+X38204Y27881
+X38204Y29281
+X38204Y30681
+X38204Y32081
+X38204Y33481
+X38204Y34881
+X38204Y36281
+X38204Y37681
+X38204Y39081
+X38204Y40481
+X38204Y41881
+
+X92701Y12632
+X92623Y14029
+X92390Y15408
+X92004Y16754
+X91472Y18048
+X90798Y19274
+X89992Y20418
+X89064Y21465
+X88025Y22402
+X86888Y23218
+X85667Y23902
+X84378Y24446
+X83036Y24842
+X81659Y25087
+X80262Y25177
+X78865Y25111
+X77483Y24890
+X76134Y24516
+X74836Y23995
+X73604Y23332
+X72453Y22536
+X71398Y21617
+X70452Y20586
+X69626Y19456
+X68932Y18241
+X68377Y16956
+X67969Y15618
+X67712Y14242
+X67610Y12847
+X67664Y11449
+X67874Y10065
+X68236Y8714
+X68746Y7411
+X69399Y6173
+X70185Y5015
+X71095Y3952
+X72118Y2997
+X73241Y2162
+X74449Y1458
+X75729Y892
+X77064Y472
+X78437Y203
+X79832Y90
+X81230Y132
+X82616Y329
+X83970Y680
+X85278Y1179
+X86521Y1821
+X87685Y2597
+X88756Y3498
+X89719Y4512
+X90564Y5628
+X91279Y6831
+X91856Y8106
+X92287Y9437
+X92568Y10808
+X92693Y12201
+
+X60277Y65000
+X60182Y66396
+X59898Y67765
+X59431Y69084
+X58789Y70327
+X57984Y71471
+X57031Y72495
+X55948Y73381
+X54755Y74111
+X53474Y74672
+X52128Y75055
+X50743Y75250
+X49344Y75256
+X47957Y75072
+X46608Y74701
+X45322Y74151
+X44123Y73431
+X43032Y72555
+X42071Y71539
+X41256Y70401
+X40604Y69164
+X40126Y67849
+X39830Y66482
+X39723Y65087
+X39807Y63691
+X40079Y62318
+X40535Y60996
+X41166Y59748
+X41961Y58597
+X42905Y57564
+X43981Y56670
+X45168Y55929
+X46445Y55357
+X47787Y54964
+X49170Y54756
+X50569Y54739
+X51958Y54911
+X53310Y55270
+X54600Y55810
+X55806Y56520
+X56903Y57387
+X57873Y58395
+X58698Y59525
+X59360Y60757
+X59850Y62067
+X60157Y63432
+X60276Y64826
+
+X50000Y65000
+X50000Y66400
+X50000Y67800
+X50000Y69200
+X50000Y70600
+X49460Y71437
+X48088Y71170
+X46806Y70614
+X45674Y69796
+X44743Y68754
+X44059Y67535
+X43653Y66198
+X43544Y64805
+X43737Y63422
+X44223Y62112
+X44979Y60937
+X45970Y59952
+X47150Y59203
+X48463Y58726
+X49848Y58543
+X51241Y58661
+X52575Y59076
+X53789Y59768
+X54825Y60706
+X55636Y61844
+X56182Y63129
+X55184Y63682
+X53828Y64027
+X52471Y64372
+X51114Y64717
+
+M30
diff --git a/tests/expects/dxf_to_inch.gtl b/tests/expects/dxf_to_inch.gtl
new file mode 100644
index 0000000..f838214
--- /dev/null
+++ b/tests/expects/dxf_to_inch.gtl
@@ -0,0 +1,93 @@
+%MOIN*%
+%FSLAX25Y25*%
+%IPPOS*%
+%ADD10C,0*%
+G75*
+%LPD*%
+D10*
+G01*
+X314961Y334646D02*
+G75*
+G01*
+X314961Y137795D01*
+G01*
+X354331Y334646D02*
+G75*
+G01*
+X354331Y137795D01*
+G01*
+X78740Y129681D02*
+G75*
+G01*
+X128278Y129681D01*
+G01*
+X128278Y70253D01*
+G01*
+X157480Y0D02*
+G75*
+G01*
+X39370Y0D01*
+G02*
+X0Y39370I0J39370D01*
+G01*
+X0Y157480D01*
+G02*
+X39370Y196850I39370J0D01*
+G01*
+X157480Y196850D01*
+G02*
+X196850Y157480I0J-39370D01*
+G01*
+X196850Y39370D01*
+G02*
+X157480Y0I-39370J0D01*
+G01*
+X292403Y295431D02*
+G75*
+G01*
+X292403Y177320D01*
+G02*
+X253033Y137950I-39370J0D01*
+G01*
+X134923Y137950D01*
+G02*
+X95553Y177320I0J39370D01*
+G01*
+X95553Y295431D01*
+G02*
+X134923Y334801I39370J0D01*
+G01*
+X253033Y334801D01*
+G02*
+X292403Y295431I0J-39370D01*
+G01*
+X150409Y166166D02*
+G75*
+G01*
+X52957Y166166D01*
+G01*
+X52957Y53528D01*
+G01*
+X150409Y53528D01*
+G01*
+X150409Y166166D01*
+G01*
+X364964Y49731D02*
+G75*
+G03*
+X364964Y49731I-49395J0D01*
+G01*
+X237312Y255906D02*
+G75*
+G03*
+X237312Y255906I-40462J0D01*
+G01*
+X196850Y255906D02*
+G75*
+G01*
+X196850Y281336D01*
+G03*
+X221497Y249641I0J-25430D01*
+G01*
+X196850Y255906D01*
+M02*
diff --git a/tests/expects/excellon_offset.txt b/tests/expects/excellon_offset.txt
new file mode 100644
index 0000000..9a0b430
--- /dev/null
+++ b/tests/expects/excellon_offset.txt
@@ -0,0 +1,41 @@
+M48
+FMAT,2
+ICI,OFF
+METRIC,TZ,000.000
+T01C0.600
+T02C0.700
+T03C0.800
+T04C1.000
+%
+G90
+M71
+T01
+X15610Y7438
+X15610Y8413
+X14610Y11100G85X13100Y11100
+T02
+X14610Y8900
+X14610Y6950
+X13140Y6950
+X13050Y8900
+T03
+G00X14610Y7925
+M15
+G01X13140Y7925
+M16
+G05
+X14600Y12100
+T04
+G00X11600Y6700
+M15
+G02X12600Y5700I0J-1000
+G03X13600Y4700A1000
+G03X14600Y5700A1000
+G01X17600Y5700
+G01X17600Y7600
+G03X15100Y10100I-2500J0
+G01X11600Y10100
+G01X11600Y6700
+M16
+G05
+M30
diff --git a/tests/expects/excellon_rotate.txt b/tests/expects/excellon_rotate.txt
new file mode 100644
index 0000000..f33dcfd
--- /dev/null
+++ b/tests/expects/excellon_rotate.txt
@@ -0,0 +1,41 @@
+M48
+FMAT,2
+ICI,OFF
+METRIC,TZ,000.000
+T01C0.600
+T02C0.700
+T03C0.800
+T04C1.000
+%
+G90
+M71
+T01
+X7521Y1051
+X7188Y1967
+X5329Y4150G85X3910Y3633
+T02
+X6082Y2082
+X6749Y250
+X5367Y-253
+X4616Y1549
+T03
+G00X6415Y1166
+M15
+G01X5034Y663
+M16
+G05
+X4978Y5086
+T04
+G00X4006Y-1014
+M15
+G02X5287Y-1612I342J-940
+G03X6569Y-2210A1000
+G03X7167Y-928A1000
+G01X9986Y98
+G01X9336Y1883
+G03X6132Y3378I-2349J-855
+G01X2843Y2181
+G01X4006Y-1014
+M16
+G05
+M30
diff --git a/tests/expects/excellon_save.txt b/tests/expects/excellon_save.txt
new file mode 100644
index 0000000..18fdcc4
--- /dev/null
+++ b/tests/expects/excellon_save.txt
@@ -0,0 +1,41 @@
+M48
+FMAT,2
+ICI,OFF
+METRIC,TZ,000.000
+T01C0.600
+T02C0.700
+T03C0.800
+T04C1.000
+%
+G90
+M71
+T01
+X4610Y2438
+X4610Y3413
+X3610Y6100G85X2100Y6100
+T02
+X3610Y3900
+X3610Y1950
+X2140Y1950
+X2050Y3900
+T03
+G00X3610Y2925
+M15
+G01X2140Y2925
+M16
+G05
+X3600Y7100
+T04
+G00X600Y1700
+M15
+G02X1600Y700I0J-1000
+G03X2600Y-300A1000
+G03X3600Y700A1000
+G01X6600Y700
+G01X6600Y2600
+G03X4100Y5100I-2500J0
+G01X600Y5100
+G01X600Y1700
+M16
+G05
+M30
diff --git a/tests/expects/excellon_to_inch.txt b/tests/expects/excellon_to_inch.txt
new file mode 100644
index 0000000..6af5494
--- /dev/null
+++ b/tests/expects/excellon_to_inch.txt
@@ -0,0 +1,41 @@
+M48
+FMAT,2
+ICI,OFF
+INCH,TZ
+T01C0.0236
+T02C0.0275
+T03C0.0314
+T04C0.0393
+%
+G90
+M72
+T01
+X1815Y960
+X1815Y1344
+X1421Y2402G85X827Y2402
+T02
+X1421Y1535
+X1421Y768
+X843Y768
+X807Y1535
+T03
+G00X1421Y1152
+M15
+G01X843Y1152
+M16
+G05
+X1417Y2795
+T04
+G00X236Y669
+M15
+G02X630Y276I0J-394
+G03X1024Y-118A394
+G03X1417Y276A394
+G01X2598Y276
+G01X2598Y1024
+G03X1614Y2008I-984J0
+G01X236Y2008
+G01X236Y669
+M16
+G05
+M30
diff --git a/tests/expects/excellon_to_metric.txt b/tests/expects/excellon_to_metric.txt
new file mode 100644
index 0000000..20f698e
--- /dev/null
+++ b/tests/expects/excellon_to_metric.txt
@@ -0,0 +1,41 @@
+M48
+FMAT,2
+ICI,OFF
+METRIC,TZ,000.000
+T01C0.599
+T02C0.698
+T03C0.797
+T04C0.998
+%
+G90
+M71
+T01
+X4610Y2438
+X4610Y3414
+X3609Y6101G85X2101Y6101
+T02
+X3609Y3899
+X3609Y1951
+X2141Y1951
+X2050Y3899
+T03
+G00X3609Y2926
+M15
+G01X2141Y2926
+M16
+G05
+X3599Y7099
+T04
+G00X599Y1699
+M15
+G02X1600Y701I0J-1001
+G03X2601Y-300A1001
+G03X3599Y701A1001
+G01X6599Y701
+G01X6599Y2601
+G03X4100Y5100I-2499J0
+G01X599Y5100
+G01X599Y1699
+M16
+G05
+M30