File: test_240_arc_dimension.py

package info (click to toggle)
ezdxf 1.4.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 104,528 kB
  • sloc: python: 182,341; makefile: 116; lisp: 20; ansic: 4
file content (171 lines) | stat: -rw-r--r-- 4,176 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# Copyright (c) 2020, Manfred Moitzi
# License: MIT License

import pytest

import ezdxf
from ezdxf.entities.dimension import ArcDimension
from ezdxf.lldxf.const import DXF2013, DXF2010, DXF2018
from ezdxf.lldxf.tagwriter import TagCollector

ezdxf.options.preserve_proxy_graphics()


@pytest.fixture()
def arcdim() -> ArcDimension:
    return ArcDimension.from_text(ARC_DIM)


def test_load_arc_dimension(arcdim):
    assert arcdim.proxy_graphic is not None
    assert len(arcdim.proxy_graphic) == 968


def test_dimtype_is_8_for_R2018(arcdim):
    assert arcdim.dimtype == 8


# fmt: off
def test_export_proxy_graphic_R2010(arcdim):
    tagwriter = TagCollector(dxfversion=DXF2010)
    arcdim.export_dxf(tagwriter)
    assert (92, 968) in tagwriter.tags, (
        "Expected group code 92 for proxy graphic length tag. (< DXF R2013)"
    )


def test_export_proxy_graphic_R2013(arcdim):
    tagwriter = TagCollector(dxfversion=DXF2013)
    arcdim.export_dxf(tagwriter)
    assert (160, 968) in tagwriter.tags, (
        "Expected group code 160 for proxy graphic length tag. (>= DXF R2013)"
    )


def test_export_dimtype_R2013(arcdim):
    tagwriter = TagCollector(dxfversion=DXF2013)
    arcdim.export_dxf(tagwriter)
    assert (70, 37) in tagwriter.tags, (
        "Expected dimtype 32+5 for DXF version < R2018"
    )


def test_export_dimtype_R2018(arcdim):
    tagwriter = TagCollector(dxfversion=DXF2018)
    arcdim.export_dxf(tagwriter)
    assert (70, 40) in tagwriter.tags, (
        "Expected dimtype 32+8 for DXF version R2018+"
    )
# fmt: on


ARC_DIM = """  0
ARC_DIMENSION
  5
95
102
{ACAD_REACTORS
330
97
102
}
330
1F
100
AcDbEntity
  8
0
160
968
310
C80300000D000000540000002000000002000000033E695D8B227240B00D3CF1FB7B5540000000000000000082C85BAC2FDE7240FB1040429FB05740000000000000000000000000000000000000000000000000000000000000F03F5400000020000000020000004AF9442AE7FA60405A2D686189715A4000000000000000
310
00C0DC003571AE5F40043422DDA4515D40000000000000000000000000000000000000000000000000000000000000F03F64000000040000001EA72DF9806A69402CE3B4E7B59D34400000000000000000770FBC9D50855E4000000000000000000000000000000000000000000000F03FB634003D352CE93FB1DDE561C5C1
310
E33F00000000000000000418DC3967E1F83F000000000C0000001200000000000000D0000000260000001F8BC5F8B8B46A40197732241FF06140000000000000000000000000000000000000000000000000000000000000F03F0943D77B25BDEF3F417457E0C451C0BF00000000000000003100370032002C003400320000
310
00000006000000010000000000000000000440000000000000F03F0000000000000000000000000000F03F00000000000000000000000000000000000000000000000000000000000000000000000041007200690061006C00000061007200690061006C002E007400740066000000000000000C00000012000000FF7F0000
310
6400000004000000813C33FBB3606A400278BF21B8F4614000000000000000009AEFA7C64B37034000000000000000000000000000000000000000000000F03F0943D77B25BDEF3F437457E0C451C0BF0000000000000000182D4454FB210940000000000C00000010000000010000000C0000001700000000000000540000
310
0020000000020000001EA72DF9806A69402CE3B4E7B59D344000000000000000001EA72DF9806A69402CE3B4E7B59D3440000000000000000000000000000000000000000000000000000000000000F03F540000002000000002000000B296839B8D1A724001000000F06355400000000000000000B296839B8D1A72400100
310
0000F0635540000000000000000000000000000000000000000000000000000000000000F03F540000002000000002000000632D073753076140FFFFFFFF2F525A400000000000000000632D073753076140FFFFFFFF2F525A40000000000000000000000000000000000000000000000000000000000000F03F5400000020
310
000000020000000960E446A3456F405AF2DBF448AB604000000000000000000960E446A3456F405AF2DBF448AB6040000000000000000000000000000000000000000000000000000000000000F03F
100
AcDbDimension
280
     0
  2
*D1
 10
250.17618126492
 20
133.352655820449
 30
0.0
 11
219.164356790492
 21
143.811700471017
 31
0.0
 70
    40
 71
     5
 42
172.418346780865
 73
     0
 74
     0
 75
     0
  3
ISO-25
100
AcDbArcDimension
 13
289.65957213785
 23
85.5615234375
 33
0.0
 14
136.22890807535
 24
105.2841796875
 34
0.0
 15
203.328243817487
 25
20.616056901609
 35
0.0
 70
     0
 40
0.0
 41
0.0
 71
     0
 16
0.0
 26
0.0
 36
0.0
 17
0.0
 27
0.0
 37
0.0
"""

if __name__ == "__main__":
    pytest.main([__file__])