def test_45deg(self): expected_ = " 0\nARC\n 62\n7\n 8\nDIMENSIONS\n 10\n0.0\n 20\n0.0\n"\ " 30\n0.0\n 40\n7.07106781187\n 50\n0.0\n 51\n45.0\n 0\nTEXT\n 62\n7\n"\ " 8\nDIMENSIONS\n 10\n6.94856061401\n 20\n2.8781880453\n 30\n0.0\n"\ " 40\n0.5\n 1\n%s 50\n-67.5\n 7\nISOCPEUR\n 72\n1\n 73\n2\n"\ " 11\n6.94856061401\n 21\n2.8781880453\n 31\n0.0\n 0\nINSERT\n 8\n"\ "DIMENSIONS\n 2\nDIMTICK_RADIUS\n 10\n7.07106781187\n 20\n0.0\n 30\n"\ "0.0\n 41\n1.0\n 42\n1.0\n 50\n90.0\n 0\nINSERT\n 8\nDIMENSIONS\n"\ " 2\nDIMTICK_RADIUS\n 10\n5.0\n 20\n5.0\n 30\n0.0\n 41\n1.0\n 42\n"\ "1.0\n 50\n315.0\n" dimline = AngularDimension( pos=(5, 5), center=(0, 0), start=(1, 0), end=(1, 1), ) if PYTHON3: result = dxfstr(dimline) expected = expected_ % "45°\n" else: result = dxfstr(dimline).encode('utf8') expected = expected_ % "45\xc2\xb0\n" self.assertSequenceEqual(normalize_dxf_chunk(result), normalize_dxf_chunk(expected))
def test_flat_DXFList(self): atoms = DXFList() atoms.append(DXFAtom('HEADER')) atoms.append(DXFAtom('SECTION', 1)) self.assertEqual(dxfstr(atoms), ' 0\nHEADER\n 1\nSECTION\n') result = tags2str(atoms) self.assertEqual(dxfstr(atoms), result)
def test_dxf_creation(self): self.reset_counter() table = Table((0, 0), 3, 3) indices = [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)] cell = UserCell(table, 'default', (1, 1)) for row, col in indices: table.set_cell(row, col, cell) dxfstr(table) dxfmock = DXFMock() self.assertEqual(cell.counter, 9) # count get_dxf_entity calls self.assertEqual(cell.counter, dxfmock.counter)
def test_dxf_creation(self): self.reset_counter() table = Table((0, 0), 3, 3) indices = [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)] cell = TestCell(table, 'default', (1, 1)) for row, col in indices: table.set_cell(row, col, cell) dxfstr(table) dxfmock = DXFMock() self.assertEqual(cell.counter, 9) # count get_dxf_entity calls self.assertEqual(cell.counter, dxfmock.counter)
def test_45deg_top(self): text = "lineA\nlineB\nlineC" valign = dxfwrite.TOP rotation = 45. mtext = MText(text, (0., 0., 0.), 1.0, rotation=rotation) line1 = self.expected_line_rot.substitute(text='lineA', px='0.0', py='0.0', pz='0.0', valign=str(valign), rot=str(rotation)) line2 = self.expected_line_rot.substitute(text='lineB', px='0.707107', py='-0.707107', pz='0.0', valign=str(valign), rot=str(rotation)) line3 = self.expected_line_rot.substitute(text='lineC', px='1.414214', py='-1.414214', pz='0.0', valign=str(valign), rot=str(rotation)) self.assertEqual(dxfstr(mtext), line1 + line2 + line3)
def test_simple_block(self): block = Block(name='empty') block.add(Line()) expected = " 0\nBLOCK\n 8\n0\n 2\nempty\n 3\nempty\n 70\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n" \ " 0\nLINE\n 8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 11\n0.0\n 21\n0.0\n 31\n0.0\n" \ " 0\nENDBLK\n" self.assertEqual(dxfstr(block), expected)
def test_Sublists(self): atoms = DXFList([ DXFList([ DXFAtom('TAG1'), DXFAtom('TAG2'), DXFList([ DXFAtom('TAG14'), DXFAtom('TAG15'), DXFAtom('TAG16'), ]), DXFAtom('TAG3'), ]), DXFList([ DXFAtom('TAG4'), DXFAtom('TAG5'), DXFAtom('TAG6'), DXFList([ DXFAtom('TAG11'), DXFAtom('TAG12'), DXFAtom('TAG13'), ]), ]), DXFAtom('TAG7'), ]) self.assertEqual(dxfstr(atoms), tags2str(atoms))
def test_init(self): dimline = RadialDimension(center=(0, 0), target=(3, 3), length=1., dimstyle='default', layer="RADIALDIMENSION", roundval=1) self.assertTrue("RADIALDIMENSION" in dxfstr(dimline))
def test_set_text(self): dimline = LinearDimension((5, 5), [(0, 0), (5, 0), (10, 0), (15, 0), (20, 0)]) dimline.set_text(1, 'override') self.assertEqual(dimline.text_override[1], 'override') dxf = dxfstr(dimline) self.assertTrue('override' in dxf) self.assertRaises(IndexError, dimline.set_text, 5, 'out of range')
def test_set_text(self): dimline = LinearDimension( (5, 5), [(0, 0), (5, 0), (10, 0), (15, 0), (20, 0)]) dimline.set_text(1, 'override') self.assertEqual(dimline.text_override[1], 'override') dxf = dxfstr(dimline) self.assertTrue('override' in dxf) self.assertRaises(IndexError, dimline.set_text, 5, 'out of range')
def test_init(self): dimline = LinearDimension(pos=(5, 5), measure_points=[(0, 0),(10, 0)], angle = 0., dimstyle='default', layer="LINEARDIMENSION", roundval=1) dxf = dxfstr(dimline) self.assertTrue('LINEARDIMENSION' in dxf)
def test_init(self): dimline = RadialDimension( center=(0, 0), target=(3, 3), length=1., dimstyle='default', layer="RADIALDIMENSION", roundval=1) self.assertTrue("RADIALDIMENSION" in dxfstr(dimline))
def test_init(self): dimline = LinearDimension(pos=(5, 5), measure_points=[(0, 0), (10, 0)], angle=0., dimstyle='default', layer="LINEARDIMENSION", roundval=1) dxf = dxfstr(dimline) self.assertTrue('LINEARDIMENSION' in dxf)
def test_block_attribs(self): block = Block(name='empty') block.add(Line()) block['xref'] = 'test\\test.dxf' expected = " 0\nBLOCK\n 8\n0\n 2\nempty\n 3\nempty\n 70\n0\n" \ " 10\n0.0\n 20\n0.0\n 30\n0.0\n 1\ntest\\test.dxf\n" \ " 0\nLINE\n 8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 11\n0.0\n 21\n0.0\n 31\n0.0\n" \ " 0\nENDBLK\n" self.assertEqual(dxfstr(block), expected)
def test_init(self): dimline = ArcDimension(pos=(5, 5), center=(0, 0), start=(1, 0), end=(1, 1), arc3points=False, dimstyle='default', layer="ARCDIMENSION", roundval=1) self.assertTrue("ARCDIMENSION" in dxfstr(dimline))
def test_init(self): dimline = AngularDimension(pos=(5, 5), center=(0, 0), start=(1, 0), end=(1, 1), dimstyle='default', layer="ANGULARDIMENSION", roundval=1) dxf = dxfstr(dimline) self.assertTrue("ANGULARDIMENSION" in dxf)
def test_one_liner(self): text = "OneLine" valign = dxfwrite.TOP mtext = MText(text, (0., 0., 0.)) expected = self.expected_line.substitute(text=text, px='0.0', py='0.0', pz='0.0', valign=str(valign)) self.assertEqual(dxfstr(mtext), expected)
def test_45deg(self): expected_ = " 0\nARC\n 62\n7\n 8\nDIMENSIONS\n 10\n0.0\n 20\n0.0\n"\ " 30\n0.0\n 40\n7.07106781187\n 50\n0.0\n 51\n45.0\n 0\nTEXT\n 62\n7\n"\ " 8\nDIMENSIONS\n 10\n6.94856061401\n 20\n2.8781880453\n 30\n0.0\n"\ " 40\n0.5\n 1\n%s 50\n-67.5\n 7\nISOCPEUR\n 72\n1\n 73\n2\n"\ " 11\n6.94856061401\n 21\n2.8781880453\n 31\n0.0\n 0\nINSERT\n 8\n"\ "DIMENSIONS\n 2\nDIMTICK_RADIUS\n 10\n7.07106781187\n 20\n0.0\n 30\n"\ "0.0\n 41\n1.0\n 42\n1.0\n 50\n90.0\n 0\nINSERT\n 8\nDIMENSIONS\n"\ " 2\nDIMTICK_RADIUS\n 10\n5.0\n 20\n5.0\n 30\n0.0\n 41\n1.0\n 42\n"\ "1.0\n 50\n315.0\n" dimline = AngularDimension(pos=(5,5), center=(0, 0), start=(1, 0), end=(1, 1), ) if PYTHON3: result = dxfstr(dimline) expected = expected_ % "45°\n" else: result = dxfstr(dimline).encode('utf8') expected = expected_ % "45\xc2\xb0\n" self.assertSequenceEqual(normalize_dxf_chunk(result), normalize_dxf_chunk(expected))
def test_init(self): dimline = AngularDimension( pos=(5, 5), center=(0, 0), start=(1, 0), end=(1, 1), dimstyle='default', layer="ANGULARDIMENSION", roundval=1) dxf = dxfstr(dimline) self.assertTrue("ANGULARDIMENSION" in dxf)
def test_init(self): dimline = ArcDimension( pos=(5, 5), center=(0, 0), start=(1, 0), end=(1, 1), arc3points=False, dimstyle='default', layer="ARCDIMENSION", roundval=1) self.assertTrue("ARCDIMENSION" in dxfstr(dimline))
def test_common_attribs(self): line = Line(start=(0,0,0), end=(1,1,1)) line['linetype'] = 'DASHED' line['elevation'] = 1.0 line['thickness'] = 0.70 line['color'] = 7 line['layer'] = 'dxfwrite' line['paper_space'] = 1 line['extrusion_direction'] = (0,0,1) expected = " 0\nLINE\n 6\nDASHED\n 38\n1.0\n 39\n0.7\n 62\n7\n 8\n" \ "dxfwrite\n 67\n1\n210\n0.0\n220\n0.0\n230\n1.0\n" \ " 10\n0.0\n 20\n0.0\n 30\n0.0\n 11\n1.0\n 21\n1.0\n 31\n1.0\n" self.assertEqual(dxfstr(line), expected)
def test_common_attribs(self): line = Line(start=(0, 0, 0), end=(1, 1, 1)) line['linetype'] = 'DASHED' line['elevation'] = 1.0 line['thickness'] = 0.70 line['color'] = 7 line['layer'] = 'dxfwrite' line['paper_space'] = 1 line['extrusion_direction'] = (0, 0, 1) expected = " 0\nLINE\n 6\nDASHED\n 38\n1.0\n 39\n0.7\n 62\n7\n 8\n" \ "dxfwrite\n 67\n1\n210\n0.0\n220\n0.0\n230\n1.0\n" \ " 10\n0.0\n 20\n0.0\n 30\n0.0\n 11\n1.0\n 21\n1.0\n 31\n1.0\n" self.assertEqual(dxfstr(line), expected)
def test_insert2(self): block = dxf.block('B1') att1 = dxf.attdef('TAG1', (1.0, 0.0), height=0.35) att2 = dxf.attdef('TAG2', (1.0, 0.5), height=0.35) block.add(att1) block.add(att2) attribs = {'TAG1': 'TextForTAG1', 'TAG2': 'TextForTAG2'} blockref = dxf.insert2(block, insert=(0, 0), attribs=attribs) result = dxfstr(blockref) self.assertTrue('TAG1' in result) self.assertTrue('TAG2' in result) self.assertTrue('TextForTAG1' in result) self.assertTrue('TextForTAG2' in result)
def test_init(self): rect = Rectangle(insert=(0, 0), width=5, height=3, rotation=45, halign=dxfwrite.CENTER, valign=dxfwrite.MIDDLE, color=2, bgcolor=3, layer='RECTANGLE', linetype="DASHED") dxf = dxfstr(rect) self.assertTrue("DASHED" in dxf) self.assertTrue("RECTANGLE" in dxf)
def test_implementation(self): ellipse = Ellipse(center=(0., 0.), rx=5.0, ry=3.0, startangle=0., endangle=90., rotation=30., segments=16, color=3, layer='0', linetype='SOLID') result = dxfstr(ellipse) self.assertSequenceEqual(normalize_dxf_chunk(result), normalize_dxf_chunk(expected))
def test_init(self): rect = Rectangle( insert=(0, 0), width=5, height=3, rotation=45, halign=dxfwrite.CENTER, valign=dxfwrite.MIDDLE, color=2, bgcolor=3, layer='RECTANGLE', linetype="DASHED") dxf = dxfstr(rect) self.assertTrue("DASHED" in dxf) self.assertTrue("RECTANGLE" in dxf)
def test_horiz_middle(self): text = "lineA\nlineB" valign = dxfwrite.MIDDLE mtext = MText(text, (0., 0., 0.), 1.0, valign=valign) line1 = self.expected_line.substitute(text='lineA', px='0.0', py='0.5', pz='0.0', valign=str(valign)) line2 = self.expected_line.substitute(text='lineB', px='0.0', py='-0.5', pz='0.0', valign=str(valign)) self.assertEqual(dxfstr(mtext), line1 + line2)
def test_text_with_attribs(self): text = Text(text='Manfred', height=0.7, rotation=30, xscale=2, oblique=75, style='ARIAL', mirror=0, halign=0, valign=0, alignpoint=(0, 0)) expected = " 0\nTEXT\n 8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 40\n0.7\n 1\nManfred\n" \ " 50\n30.0\n 41\n2.0\n 51\n75.0\n 7\nARIAL\n 71\n0\n 72\n0\n 73\n0\n" \ " 11\n0.0\n 21\n0.0\n 31\n0.0\n" self.assertEqual(dxfstr(text), expected)
def test_attdef_all_attribs(self): attdef = Attdef(length=99, rotation=30, xscale=1.5, oblique=75, style='ARIAL', mirror=1, halign=1, valign=2, alignpoint=(5, 5)) expected = " 0\nATTDEF\n 8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n" \ " 40\n1.0\n 1\nAttrib\n 3\nInput:\n 2\nATTRIB\n 70\n0\n" \ " 73\n99\n 50\n30.0\n 41\n1.5\n 51\n75.0\n 7\nARIAL\n" \ " 71\n1\n 72\n1\n 74\n2\n 11\n5.0\n 21\n5.0\n 31\n0.0\n" self.assertEqual(dxfstr(attdef), expected)
def test_insert_all_attribs(self): insert = Insert(attribs_follow=1, blockname='empty', xscale=1.0, yscale=2.0, zscale=3.0, rotation=30.0, columns=2, rows=7, colspacing=1.7, rowspacing=2.9) expected = " 0\nINSERT\n 8\n0\n 66\n1\n 2\nempty\n" \ " 10\n0.0\n 20\n0.0\n 30\n0.0\n" \ " 41\n1.0\n 42\n2.0\n 43\n3.0\n 50\n30.0\n" \ " 70\n2\n 71\n7\n 44\n1.7\n 45\n2.9\n" self.assertEqual(dxfstr(insert), expected)
def test_attrib_all_attribs(self): attrib = Attrib( length=99, rotation=30, xscale=1.5, oblique=75, style='ARIAL', mirror=1, halign=1, valign=2, alignpoint=(5,5) ) expected = " 0\nATTRIB\n 8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n" \ " 40\n1.0\n 1\nAttrib\n 2\nATTRIB\n 70\n0\n" \ " 73\n99\n 50\n30.0\n 41\n1.5\n 51\n75.0\n 7\nARIAL\n" \ " 71\n1\n 72\n1\n 74\n2\n 11\n5.0\n 21\n5.0\n 31\n0.0\n" self.assertEqual(dxfstr(attrib), expected)
def test_text_with_attribs(self): text = Text( text='Manfred', height=0.7, rotation=30, xscale=2, oblique=75, style='ARIAL', mirror=0, halign=0, valign=0, alignpoint = (0,0) ) expected = " 0\nTEXT\n 8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 40\n0.7\n 1\nManfred\n" \ " 50\n30.0\n 41\n2.0\n 51\n75.0\n 7\nARIAL\n 71\n0\n 72\n0\n 73\n0\n" \ " 11\n0.0\n 21\n0.0\n 31\n0.0\n" self.assertEqual(dxfstr(text), expected)
def test_components(self): expected = " 0\nPOLYLINE\n 62\n256\n 8\nRECTANGLE\n 66\n1\n 10\n"\ "0.0\n 20\n0.0\n 30\n0.0\n 70\n9\n 0\nVERTEX\n 8\n0\n 10\n"\ "0.0\n 20\n0.0\n 30\n0.0\n 0\nVERTEX\n 8\n0\n 10\n"\ "3.53553390593\n 20\n3.53553390593\n 30\n0.0\n 0\nVERTEX\n"\ " 8\n0\n 10\n1.41421356237\n 20\n5.65685424949\n 30\n0.0\n"\ " 0\nVERTEX\n 8\n0\n 10\n-2.12132034356\n 20\n2.12132034356\n"\ " 30\n0.0\n 0\nSEQEND\n 0\nSOLID\n 62\n3\n 8\nRECTANGLE\n"\ " 10\n0.0\n 20\n0.0\n 30\n0.0\n 11\n3.53553390593\n 21\n"\ "3.53553390593\n 31\n0.0\n 13\n1.41421356237\n 23\n"\ "5.65685424949\n 33\n0.0\n 12\n-2.12132034356\n 22\n"\ "2.12132034356\n 32\n0.0\n" rectangle = Rectangle((0, 0), 5, 3, rotation=45, bgcolor=3, layer='RECTANGLE') self.assertSequenceEqual(normalize_dxf_chunk(dxfstr(rectangle)), normalize_dxf_chunk(expected))
def test_components(self): expected = " 0\nPOLYLINE\n 62\n256\n 8\nRECTANGLE\n 66\n1\n 10\n"\ "0.0\n 20\n0.0\n 30\n0.0\n 70\n9\n 0\nVERTEX\n 8\nRECTANGLE\n 10\n"\ "0.0\n 20\n0.0\n 30\n0.0\n 0\nVERTEX\n 8\nRECTANGLE\n 10\n"\ "3.53553390593\n 20\n3.53553390593\n 30\n0.0\n 0\nVERTEX\n"\ " 8\nRECTANGLE\n 10\n1.41421356237\n 20\n5.65685424949\n 30\n0.0\n"\ " 0\nVERTEX\n 8\nRECTANGLE\n 10\n-2.12132034356\n 20\n2.12132034356\n"\ " 30\n0.0\n 0\nSEQEND\n 0\nSOLID\n 62\n3\n 8\nRECTANGLE\n"\ " 10\n0.0\n 20\n0.0\n 30\n0.0\n 11\n3.53553390593\n 21\n"\ "3.53553390593\n 31\n0.0\n 13\n1.41421356237\n 23\n"\ "5.65685424949\n 33\n0.0\n 12\n-2.12132034356\n 22\n"\ "2.12132034356\n 32\n0.0\n" rectangle = Rectangle((0, 0), 5, 3, rotation=45, bgcolor=3, layer='RECTANGLE') self.assertSequenceEqual(normalize_dxf_chunk(dxfstr(rectangle)), normalize_dxf_chunk(expected))
def test_insert_all_attribs(self): insert = Insert( attribs_follow = 1, blockname='empty', xscale=1.0, yscale=2.0, zscale=3.0, rotation=30.0, columns=2, rows=7, colspacing=1.7, rowspacing=2.9 ) expected = " 0\nINSERT\n 8\n0\n 66\n1\n 2\nempty\n" \ " 10\n0.0\n 20\n0.0\n 30\n0.0\n" \ " 41\n1.0\n 42\n2.0\n 43\n3.0\n 50\n30.0\n" \ " 70\n2\n 71\n7\n 44\n1.7\n 45\n2.9\n" self.assertEqual(dxfstr(insert), expected)
def test_horiz(self): expected = " 0\nLINE\n 62\n7\n 8\nDIMENSIONS\n 10\n-0.3\n" \ " 20\n5.0\n 30\n0.0\n 11\n10.3\n 21\n5.0\n 31\n" \ "0.0\n 0\nLINE\n 62\n5\n 8\nDIMENSIONS\n 10\n" \ "0.0\n 20\n5.0\n 30\n0.0\n 11\n0.0\n 21\n0.3\n" \ " 31\n0.0\n 0\nLINE\n 62\n5\n 8\nDIMENSIONS\n" \ " 10\n10.0\n 20\n5.0\n 30\n0.0\n 11\n10.0\n 21\n" \ "0.3\n 31\n0.0\n 0\nTEXT\n 62\n7\n 8\nDIMENSIONS\n 10\n" \ "5.0\n 20\n5.45\n 30\n0.0\n 40\n0.5\n 1\n1000\n" \ " 50\n0.0\n 7\nISOCPEUR\n 72\n1\n 73\n2\n" \ " 11\n5.0\n 21\n5.45\n 31\n0.0\n 0\nINSERT\n" \ " 8\nDIMENSIONS\n 2\nDIMTICK_ARCH\n 10\n0.0\n" \ " 20\n5.0\n 30\n0.0\n 41\n1.0\n 42\n1.0\n 50\n" \ "0.0\n 0\nINSERT\n 8\nDIMENSIONS\n 2\n" \ "DIMTICK_ARCH\n 10\n10.0\n 20\n5.0\n 30\n" \ "0.0\n 41\n1.0\n 42\n1.0\n 50\n0.0\n" dimline = LinearDimension(pos=(5,5),measure_points=[(0,0),(10,0)]) self.assertSequenceEqual(normalize_dxf_chunk(dxfstr(dimline)), normalize_dxf_chunk(expected))
def test_horiz(self): expected = " 0\nLINE\n 62\n7\n 8\nDIMENSIONS\n 10\n-0.3\n" \ " 20\n5.0\n 30\n0.0\n 11\n10.3\n 21\n5.0\n 31\n" \ "0.0\n 0\nLINE\n 62\n5\n 8\nDIMENSIONS\n 10\n" \ "0.0\n 20\n5.0\n 30\n0.0\n 11\n0.0\n 21\n0.3\n" \ " 31\n0.0\n 0\nLINE\n 62\n5\n 8\nDIMENSIONS\n" \ " 10\n10.0\n 20\n5.0\n 30\n0.0\n 11\n10.0\n 21\n" \ "0.3\n 31\n0.0\n 0\nTEXT\n 62\n7\n 8\nDIMENSIONS\n 10\n" \ "5.0\n 20\n5.45\n 30\n0.0\n 40\n0.5\n 1\n1000\n" \ " 50\n0.0\n 7\nISOCPEUR\n 72\n1\n 73\n2\n" \ " 11\n5.0\n 21\n5.45\n 31\n0.0\n 0\nINSERT\n" \ " 8\nDIMENSIONS\n 2\nDIMTICK_ARCH\n 10\n0.0\n" \ " 20\n5.0\n 30\n0.0\n 41\n1.0\n 42\n1.0\n 50\n" \ "0.0\n 0\nINSERT\n 8\nDIMENSIONS\n 2\n" \ "DIMTICK_ARCH\n 10\n10.0\n 20\n5.0\n 30\n" \ "0.0\n 41\n1.0\n 42\n1.0\n 50\n0.0\n" dimline = LinearDimension(pos=(5, 5), measure_points=[(0, 0), (10, 0)]) self.assertSequenceEqual(normalize_dxf_chunk(dxfstr(dimline)), normalize_dxf_chunk(expected))
def test_45deg(self): expected = " 0\nLINE\n 62\n7\n 8\nDIMENSIONS\n 10\n-0.212132034356\n" \ " 20\n-0.212132034356\n 30\n0.0\n 11\n5.21213203436\n 21\n" \ "5.21213203436\n 31\n0.0\n 0\nLINE\n 62\n5\n 8\n" \ "DIMENSIONS\n 10\n5.0\n 20\n5.0\n 30\n0.0\n 11\n" \ "9.78786796564\n 21\n0.212132034356\n 31\n0.0\n" \ " 0\nTEXT\n 62\n7\n 8\nDIMENSIONS\n 10\n2.18180194847\n" \ " 20\n2.81819805153\n 30\n0.0\n 40\n0.5\n 1\n" \ "707\n 50\n45.0\n 7\nISOCPEUR\n 72\n1\n 73\n" \ "2\n 11\n2.18180194847\n 21\n2.81819805153\n" \ " 31\n0.0\n 0\nINSERT\n 8\nDIMENSIONS\n" \ " 2\nDIMTICK_ARCH\n 10\n-4.4408920985%s\n" \ " 20\n4.4408920985%s\n 30\n0.0\n 41\n" \ "1.0\n 42\n1.0\n 50\n45.0\n 0\nINSERT\n" \ " 8\nDIMENSIONS\n 2\nDIMTICK_ARCH\n" \ " 10\n5.0\n 20\n5.0\n 30\n0.0\n 41\n1.0\n" \ " 42\n1.0\n 50\n45.0\n" % (_float_exp, _float_exp) self.maxDiff = None dimline = LinearDimension(pos=(5,5),measure_points=[(0,0),(10,0)], angle=45) self.assertSequenceEqual(normalize_dxf_chunk(dxfstr(dimline)), normalize_dxf_chunk(expected))
def test_45deg(self): expected = " 0\nLINE\n 62\n7\n 8\nDIMENSIONS\n 10\n-0.212132034356\n" \ " 20\n-0.212132034356\n 30\n0.0\n 11\n5.21213203436\n 21\n" \ "5.21213203436\n 31\n0.0\n 0\nLINE\n 62\n5\n 8\n" \ "DIMENSIONS\n 10\n5.0\n 20\n5.0\n 30\n0.0\n 11\n" \ "9.78786796564\n 21\n0.212132034356\n 31\n0.0\n" \ " 0\nTEXT\n 62\n7\n 8\nDIMENSIONS\n 10\n2.18180194847\n" \ " 20\n2.81819805153\n 30\n0.0\n 40\n0.5\n 1\n" \ "707\n 50\n45.0\n 7\nISOCPEUR\n 72\n1\n 73\n" \ "2\n 11\n2.18180194847\n 21\n2.81819805153\n" \ " 31\n0.0\n 0\nINSERT\n 8\nDIMENSIONS\n" \ " 2\nDIMTICK_ARCH\n 10\n-4.4408920985%s\n" \ " 20\n4.4408920985%s\n 30\n0.0\n 41\n" \ "1.0\n 42\n1.0\n 50\n45.0\n 0\nINSERT\n" \ " 8\nDIMENSIONS\n 2\nDIMTICK_ARCH\n" \ " 10\n5.0\n 20\n5.0\n 30\n0.0\n 41\n1.0\n" \ " 42\n1.0\n 50\n45.0\n" % (_float_exp, _float_exp) self.maxDiff = None dimline = LinearDimension(pos=(5, 5), measure_points=[(0, 0), (10, 0)], angle=45) self.assertSequenceEqual(normalize_dxf_chunk(dxfstr(dimline)), normalize_dxf_chunk(expected))
def test_solid_change_point(self): solid = Solid([(0, 0), (1, 0), (1, 1), (0, 1)]) solid[3] = (0, 2) # tuple! not DXFPoint expected = " 0\nSOLID\n 8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 11\n1.0\n 21\n0.0\n 31\n0.0\n" \ " 13\n1.0\n 23\n1.0\n 33\n0.0\n 12\n0.0\n 22\n2.0\n 32\n0.0\n" self.assertEqual(dxfstr(solid), expected)
def test_solid_4points(self): solid = Solid([(0, 0), (1, 0), (1, 1), (0, 1)]) expected = " 0\nSOLID\n 8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 11\n1.0\n 21\n0.0\n 31\n0.0\n" \ " 13\n1.0\n 23\n1.0\n 33\n0.0\n 12\n0.0\n 22\n1.0\n 32\n0.0\n" self.assertEqual(dxfstr(solid), expected)
def test_solid_4points(self): solid = Solid( [(0,0), (1,0), (1,1), (0,1)] ) expected = " 0\nSOLID\n 8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 11\n1.0\n 21\n0.0\n 31\n0.0\n" \ " 13\n1.0\n 23\n1.0\n 33\n0.0\n 12\n0.0\n 22\n1.0\n 32\n0.0\n" self.assertEqual(dxfstr(solid), expected)
def test_create_tag_unchanged(self): attdef = Attdef() attrib = attdef.new_attrib(tag="UNCHANGED") expected = " 0\nATTRIB\n 8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n" \ " 40\n1.0\n 1\nAttrib\n 2\nATTRIB\n 70\n0\n" self.assertEqual(dxfstr(attrib), expected)
def test_create_with_override(self): attdef = Attdef(layer='test') attrib = attdef.new_attrib(layer='xxx', insert=(2, 2)) expected = " 0\nATTRIB\n 8\nxxx\n 10\n2.0\n 20\n2.0\n 30\n0.0\n" \ " 40\n1.0\n 1\nAttrib\n 2\nATTRIB\n 70\n0\n" self.assertEqual(dxfstr(attrib), expected)
def test_create(self): attdef = Attdef(layer='test') attrib = attdef.new_attrib(text='newtext') expected = " 0\nATTRIB\n 8\ntest\n 10\n0.0\n 20\n0.0\n 30\n0.0\n" \ " 40\n1.0\n 1\nnewtext\n 2\nATTRIB\n 70\n0\n" self.assertEqual(dxfstr(attrib), expected)
def test_arc_no_attributes(self): arc = Arc() expected = " 0\nARC\n 8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 40\n1.0\n 50\n0.0\n 51\n360.0\n" self.assertEqual(dxfstr(arc), expected)
def test_arc_with_attribs(self): arc = Arc(center=(1,1), radius=1, startangle=30, endangle=60) expected = " 0\nARC\n 8\n0\n 10\n1.0\n 20\n1.0\n 30\n0.0\n 40\n1.0\n 50\n30.0\n 51\n60.0\n" self.assertEqual(dxfstr(arc), expected)
def test_group_code_1000(self): atom = DXFAtom ('SECTION', 1000) self.assertEqual(dxfstr(atom), '1000\nSECTION\n') self.assertEqual(dxfstr(atom), tags2str(atom))
def test_group_code_0(self): atom = DXFAtom('HEADER', 0) self.assertEqual(dxfstr(atom), ' 0\nHEADER\n') self.assertEqual(dxfstr(atom), tags2str(atom))
def __dxf__(self): """ Get the DXF string. """ return dxfstr(self.__dxftags__())
def __dxf__(self): ''' get the dxf string ''' return dxfstr(self.__dxftags__())
def test_empty_DXFList(self): atoms = DXFList() self.assertEqual(dxfstr(atoms), '') self.assertEqual(dxfstr(atoms), tags2str(atoms))
def test_solid_change_point(self): solid = Solid( [(0,0), (1,0), (1,1), (0,1)] ) solid[3] = (0, 2) # tuple! not DXFPoint expected = " 0\nSOLID\n 8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 11\n1.0\n 21\n0.0\n 31\n0.0\n" \ " 13\n1.0\n 23\n1.0\n 33\n0.0\n 12\n0.0\n 22\n2.0\n 32\n0.0\n" self.assertEqual(dxfstr(solid), expected)
def __dxf__(self): """ get the dxf string """ return dxfstr(self.__dxftags__())