Mock Version: 2.15 Mock Version: 2.15 Mock Version: 2.15 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target riscv64 --nodeps /builddir/build/SPECS/python-ezdxf.spec'], chrootPath='/var/lib/mock/f40-build-799534-142438/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=604800uid=991gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target riscv64 --nodeps /builddir/build/SPECS/python-ezdxf.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: riscv64 Building for target riscv64 setting SOURCE_DATE_EPOCH=1709510400 Wrote: /builddir/build/SRPMS/python-ezdxf-1.2.0-21.fc40.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --target riscv64 --nodeps /builddir/build/SPECS/python-ezdxf.spec'], chrootPath='/var/lib/mock/f40-build-799534-142438/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=604800uid=991gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --target riscv64 --nodeps /builddir/build/SPECS/python-ezdxf.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False warning: The %{pyproject_build_lib} macro is deprecated. It only works with setuptools and is not build-backend-agnostic. The macro is not scheduled for removal, but there is a possibility of incompatibilities with future versions of setuptools. As a replacement for the macro for the setuptools backend on Fedora 37+, you can use $PWD/build/lib for pure Python packages, or $PWD/build/lib.%{python3_platform}-cpython-%{python3_version_nodots} for packages with extension modules. Other build backends and older distributions may need different paths. See https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/HMLOPAU3RZLXD4BOJHTIPKI3I4U6U7OE/ for details. Building target platforms: riscv64 Building for target riscv64 setting SOURCE_DATE_EPOCH=1709510400 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.qKVClp + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf ezdxf-1.2.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/ezdxf-1.2.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd ezdxf-1.2.0 + rm -rf /builddir/build/BUILD/ezdxf-1.2.0-SPECPARTS + /usr/bin/mkdir -p /builddir/build/BUILD/ezdxf-1.2.0-SPECPARTS + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/90aceafc1a1cbea1c6e6e30cab3b800c600f8e56.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + echo 'latex_engine = '\''xelatex'\''' + rm docs/graphics/dimtad-dimjust.pdf + dos2unix --keepdate examples/copydxf.py dos2unix: converting file examples/copydxf.py to Unix format... + sed -r -i '1{/^#!/d}' src/ezdxf/addons/drawing/qtviewer.py + '[' -z sP ']' + shebang_flags=-kasP + /usr/bin/python3 -B /usr/lib/rpm/redhat/pathfix.py -pni /usr/bin/python3 -kasP examples recursedown('examples') recursedown('examples/acistools') recursedown('examples/addons') recursedown('examples/addons/drawing') recursedown('examples/addons/optimize') recursedown('examples/blocks') recursedown('examples/entities') recursedown('examples/render') recursedown('examples/xref') examples/_template.py: no change examples/complex_line_type_example.py: no change examples/copydxf.py: no change examples/create_all_supported_dxf_versions.py: no change examples/custom_header_vars.py: no change examples/default_lineweights.py: no change examples/draw_glyph_table.py: no change examples/draw_text_frames.py: no change examples/encode_decode_dxf_as_base64.py: no change examples/extended_textstyle_features.py: no change examples/load_comments.py: no change examples/load_file_structure_index.py: no change examples/maurer_rose.py: no change examples/megagrid.py: no change examples/optimize_polyfaces.py: no change examples/paperspace_setup_R12.py: no change examples/paperspace_setup_R2000.py: no change examples/print_layout_properties.py: no change examples/proxy_graphic.py: no change examples/redraw_order.py: no change examples/rename_layer.py: no change examples/separate_layers.py: no change examples/simple_page_setup.py: no change examples/spline_interpolation_of_sine_wave.py: no change examples/text_layout_engine_usage.py: no change examples/tiled_window_setup.py: no change examples/transform_cube_by_ucs.py: no change examples/transform_entities_by_block.py: no change examples/transform_entities_by_ucs.py: no change examples/transform_modelspace.py: no change examples/user_data_stored_in_XDATA.py: no change examples/user_data_stored_in_XRECORD.py: no change examples/using_all_text_styles.py: no change examples/using_group.py: no change examples/using_groupby.py: no change examples/using_lineweight.py: no change examples/using_ocs_and_ucs.py: no change examples/using_true_color_and_transparency.py: no change examples/viewport_frozen_layers.py: no change examples/viewports_in_paperspace.py: no change examples/viewports_override_layer_attributes.py: no change examples/acistools/acis_cube_all_dxf_versions.py: no change examples/acistools/create_3dsolid_cube.py: no change examples/acistools/create_3dsolid_mengersponge.py: no change examples/acistools/create_3dsolid_uvsphere.py: no change examples/acistools/mesh_from_body.py: no change examples/addons/dont_use_dimline_addons.py: no change examples/addons/dxf2code.py: no change examples/addons/fit_text_path_into_box.py: no change examples/addons/hpgl2_viewer.py: no change examples/addons/iterdxf.py: no change examples/addons/iterdxf_add_to_new_drawing.py: no change examples/addons/iterdxf_profiling.py: no change examples/addons/menger_sponge.py: no change examples/addons/meshex_export.py: no change examples/addons/mtext_explode.py: no change examples/addons/mtext_r12_addon.py: no change examples/addons/odafc_read_dwg.py: no change examples/addons/odafc_write_dwg.py: no change examples/addons/openscad.py: no change examples/addons/openscad_make_walls.py: no change examples/addons/pycsg.py: no change examples/addons/pycsg_sphere.py: no change examples/addons/pycsg_sphere_vs_menger_sponge.py: no change examples/addons/r12writer.py: no change examples/addons/r12writer2.py: no change examples/addons/r12writer_big_files.py: no change examples/addons/sierpinski_pyramid.py: no change examples/addons/table_painter_addon.py: no change examples/addons/text_entity_to_path.py: no change examples/addons/text_entity_to_path_condensed.py: no change examples/addons/text_lff_to_path.py: no change examples/addons/text_shx_to_path.py: no change examples/addons/text_string_to_hatch.py: no change examples/addons/text_string_to_path.py: no change examples/addons/text_to_virtual_entities.py: no change examples/addons/trianglulate_text_to_solids.py: no change examples/addons/drawing/cad_viewer.py: updating examples/addons/drawing/draw_cad.py: updating examples/addons/drawing/element_picker.py: no change examples/addons/drawing/export_image_pixel_size.py: no change examples/addons/drawing/export_specific_area.py: no change examples/addons/drawing/export_with_cropping.py: no change examples/addons/drawing/hpgl2_export.py: no change examples/addons/drawing/pdf_export.py: no change examples/addons/drawing/pdf_export_page_alignment.py: no change examples/addons/drawing/pixmap_export.py: no change examples/addons/drawing/png_export_by_matplotlib.py: no change examples/addons/drawing/render_model_space_as_tiles.py: no change examples/addons/drawing/render_parts_via_recorder_backend.py: no change examples/addons/drawing/render_to_scale.py: no change examples/addons/drawing/svg_export.py: no change examples/addons/drawing/wcs_to_image_coodinates.py: no change examples/addons/optimize/bin_packing_forms.py: no change examples/addons/optimize/bin_packing_py3dbp.py: no change examples/addons/optimize/tsp.py: no change examples/blocks/auto_blockref.py: no change examples/blocks/block_references_with_attributes.py: no change examples/blocks/blocks_tutorial.py: no change examples/blocks/clipping_insert.py: no change examples/blocks/exploding_block_references.py: no change examples/blocks/exploding_with_attribs.py: no change examples/blocks/insert_with_mtext_attrib.py: no change examples/blocks/move_block_base_point.py: no change examples/blocks/multi_insert.py: no change examples/blocks/simple_block.py: no change examples/entities/arc_construction.py: no change examples/entities/arc_from_spline.py: no change examples/entities/circle_2d.py: no change examples/entities/circle_3d_from_3_points.py: no change examples/entities/elliptic_arc.py: no change examples/entities/geodata.py: no change examples/entities/geodata_setup_local_grid.py: no change examples/entities/hatch.py: no change examples/entities/hatch_pattern_modify_origin.py: no change examples/entities/helix.py: no change examples/entities/image.py: no change examples/entities/leader.py: no change examples/entities/lwpolyline.py: no change examples/entities/mesh_1.py: no change examples/entities/mesh_2.py: no change examples/entities/mesh_subdiv_and_creases.py: no change examples/entities/mpolygon.py: no change examples/entities/mtext.py: no change examples/entities/mtext_editor.py: no change examples/entities/mtext_in_yz_plane.py: no change examples/entities/multileader.py: no change examples/entities/read_acad_table.py: no change examples/entities/spline.py: no change examples/entities/spline_create_all_types.py: no change examples/entities/spline_from_arc.py: no change examples/entities/spline_from_ellipse.py: no change examples/entities/text_alignments.py: no change examples/entities/underlay.py: no change examples/entities/wipeout.py: no change examples/render/boolean_operations_for_2d_polygons.py: no change examples/render/chamfer_tools.py: no change examples/render/dimension_angular.py: no change examples/render/dimension_arc.py: no change examples/render/dimension_diameter.py: no change examples/render/dimension_linear.py: no change examples/render/dimension_ordinate.py: no change examples/render/dimension_ordinate_global_features.py: no change examples/render/dimension_ordinate_local_features.py: no change examples/render/dimension_radius.py: no change examples/render/explode_3d_dimension.py: no change examples/render/extrude_and_tessellate_concave_profile.py: no change examples/render/extrude_twist_scale_profile.py: no change examples/render/gear.py: no change examples/render/hatch_from_entities.py: no change examples/render/intersect_ellipse_and_spline.py: no change examples/render/mesh_transformer.py: no change examples/render/render_bezier.py: no change examples/render/render_euler_spiral.py: no change examples/render/render_mapbox_earcut_test_data.py: no change examples/render/render_meshes.py: no change examples/render/render_r12_ellipse.py: no change examples/render/render_r12_spline.py: no change examples/render/render_sphere.py: no change examples/render/render_spline.py: no change examples/render/render_torus.py: no change examples/render/shapefile_rendering.py: no change examples/render/show_all_arrows.py: no change examples/render/show_all_std_line_types.py: no change examples/render/sweep_helix.py: no change examples/render/sweep_profile.py: no change examples/render/triangulate_paths.py: no change examples/xref/attach_dxf_dwg_xref.py: no change examples/xref/detach_block_as_xref.py: no change examples/xref/embed_dxf_dwg_xref.py: no change examples/xref/load_table_resources.py: no change setuptools wheel pyparsing>=2.0.1 # typing_extensions>=4.6.0 numpy fonttools pytest cython matplotlib # pyside6 Pillow sphinx sphinx-rtd-theme sphinxcontrib-jquery Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.BNezPG + sed -r -e 's/^(typing_extensions|pyside6)\b/# \1/' -e 's/^(sphinx-rtd-theme)<.*$/\1/' requirements-dev.txt + tee requirements-dev-filtered.txt + RPM_EC=0 ++ jobs -p + exit 0 + umask 022 + cd /builddir/build/BUILD + cd ezdxf-1.2.0 + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir + echo -n + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + TMPDIR=/builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir + RPM_TOXENV=py312 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/ezdxf-1.2.0/pyproject-wheeldir --output /builddir/build/BUILD/python-ezdxf-1.2.0-21.fc40.riscv64-pyproject-buildrequires -x all5 requirements-dev-filtered.txt Handling setuptools from requirements file requirements-dev-filtered.txt Requirement satisfied: setuptools (installed: setuptools 69.0.3) Handling wheel from requirements file requirements-dev-filtered.txt Requirement not satisfied: wheel Handling pyparsing>=2.0.1 from requirements file requirements-dev-filtered.txt Requirement not satisfied: pyparsing>=2.0.1 Handling numpy from requirements file requirements-dev-filtered.txt Requirement not satisfied: numpy Handling fonttools from requirements file requirements-dev-filtered.txt Requirement not satisfied: fonttools Handling pytest from requirements file requirements-dev-filtered.txt Requirement not satisfied: pytest Handling cython from requirements file requirements-dev-filtered.txt Requirement not satisfied: cython Handling matplotlib from requirements file requirements-dev-filtered.txt Requirement not satisfied: matplotlib Handling Pillow from requirements file requirements-dev-filtered.txt Requirement not satisfied: Pillow Handling sphinx from requirements file requirements-dev-filtered.txt Requirement satisfied: sphinx (installed: sphinx 7.2.6) Handling sphinx-rtd-theme from requirements file requirements-dev-filtered.txt Requirement not satisfied: sphinx-rtd-theme Handling sphinxcontrib-jquery from requirements file requirements-dev-filtered.txt Requirement not satisfied: sphinxcontrib-jquery Exiting dependency generation pass: all requirements files + cat /builddir/build/BUILD/python-ezdxf-1.2.0-21.fc40.riscv64-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-ezdxf-1.2.0-21.fc40.buildreqs.nosrc.rpm RPM build warnings: The %{pyproject_build_lib} macro is deprecated. It only works with setuptools and is not build-backend-agnostic. The macro is not scheduled for removal, but there is a possibility of incompatibilities with future versions of setuptools. As a replacement for the macro for the setuptools backend on Fedora 37+, you can use $PWD/build/lib for pure Python packages, or $PWD/build/lib.%{python3_platform}-cpython-%{python3_version_nodots} for packages with extension modules. Other build backends and older distributions may need different paths. See https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/HMLOPAU3RZLXD4BOJHTIPKI3I4U6U7OE/ for details. Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --target riscv64 --nodeps /builddir/build/SPECS/python-ezdxf.spec'], chrootPath='/var/lib/mock/f40-build-799534-142438/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=604800uid=991gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --target riscv64 --nodeps /builddir/build/SPECS/python-ezdxf.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False warning: The %{pyproject_build_lib} macro is deprecated. It only works with setuptools and is not build-backend-agnostic. The macro is not scheduled for removal, but there is a possibility of incompatibilities with future versions of setuptools. As a replacement for the macro for the setuptools backend on Fedora 37+, you can use $PWD/build/lib for pure Python packages, or $PWD/build/lib.%{python3_platform}-cpython-%{python3_version_nodots} for packages with extension modules. Other build backends and older distributions may need different paths. See https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/HMLOPAU3RZLXD4BOJHTIPKI3I4U6U7OE/ for details. Building target platforms: riscv64 Building for target riscv64 setting SOURCE_DATE_EPOCH=1709510400 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.rKcmjv + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf ezdxf-1.2.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/ezdxf-1.2.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd ezdxf-1.2.0 + rm -rf /builddir/build/BUILD/ezdxf-1.2.0-SPECPARTS + /usr/bin/mkdir -p /builddir/build/BUILD/ezdxf-1.2.0-SPECPARTS + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/90aceafc1a1cbea1c6e6e30cab3b800c600f8e56.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + echo 'latex_engine = '\''xelatex'\''' + rm docs/graphics/dimtad-dimjust.pdf + dos2unix --keepdate examples/copydxf.py dos2unix: converting file examples/copydxf.py to Unix format... + sed -r -i '1{/^#!/d}' src/ezdxf/addons/drawing/qtviewer.py + '[' -z sP ']' + shebang_flags=-kasP + /usr/bin/python3 -B /usr/lib/rpm/redhat/pathfix.py -pni /usr/bin/python3 -kasP examples recursedown('examples') recursedown('examples/acistools') recursedown('examples/addons') recursedown('examples/addons/drawing') recursedown('examples/addons/optimize') recursedown('examples/blocks') recursedown('examples/entities') recursedown('examples/render') recursedown('examples/xref') examples/_template.py: no change examples/complex_line_type_example.py: no change examples/copydxf.py: no change examples/create_all_supported_dxf_versions.py: no change examples/custom_header_vars.py: no change examples/default_lineweights.py: no change examples/draw_glyph_table.py: no change examples/draw_text_frames.py: no change examples/encode_decode_dxf_as_base64.py: no change examples/extended_textstyle_features.py: no change examples/load_comments.py: no change examples/load_file_structure_index.py: no change examples/maurer_rose.py: no change examples/megagrid.py: no change examples/optimize_polyfaces.py: no change examples/paperspace_setup_R12.py: no change examples/paperspace_setup_R2000.py: no change examples/print_layout_properties.py: no change examples/proxy_graphic.py: no change examples/redraw_order.py: no change examples/rename_layer.py: no change examples/separate_layers.py: no change examples/simple_page_setup.py: no change examples/spline_interpolation_of_sine_wave.py: no change examples/text_layout_engine_usage.py: no change examples/tiled_window_setup.py: no change examples/transform_cube_by_ucs.py: no change examples/transform_entities_by_block.py: no change examples/transform_entities_by_ucs.py: no change examples/transform_modelspace.py: no change examples/user_data_stored_in_XDATA.py: no change examples/user_data_stored_in_XRECORD.py: no change examples/using_all_text_styles.py: no change examples/using_group.py: no change examples/using_groupby.py: no change examples/using_lineweight.py: no change examples/using_ocs_and_ucs.py: no change examples/using_true_color_and_transparency.py: no change examples/viewport_frozen_layers.py: no change examples/viewports_in_paperspace.py: no change examples/viewports_override_layer_attributes.py: no change examples/acistools/acis_cube_all_dxf_versions.py: no change examples/acistools/create_3dsolid_cube.py: no change examples/acistools/create_3dsolid_mengersponge.py: no change examples/acistools/create_3dsolid_uvsphere.py: no change examples/acistools/mesh_from_body.py: no change examples/addons/dont_use_dimline_addons.py: no change examples/addons/dxf2code.py: no change examples/addons/fit_text_path_into_box.py: no change examples/addons/hpgl2_viewer.py: no change examples/addons/iterdxf.py: no change examples/addons/iterdxf_add_to_new_drawing.py: no change examples/addons/iterdxf_profiling.py: no change examples/addons/menger_sponge.py: no change examples/addons/meshex_export.py: no change examples/addons/mtext_explode.py: no change examples/addons/mtext_r12_addon.py: no change examples/addons/odafc_read_dwg.py: no change examples/addons/odafc_write_dwg.py: no change examples/addons/openscad.py: no change examples/addons/openscad_make_walls.py: no change examples/addons/pycsg.py: no change examples/addons/pycsg_sphere.py: no change examples/addons/pycsg_sphere_vs_menger_sponge.py: no change examples/addons/r12writer.py: no change examples/addons/r12writer2.py: no change examples/addons/r12writer_big_files.py: no change examples/addons/sierpinski_pyramid.py: no change examples/addons/table_painter_addon.py: no change examples/addons/text_entity_to_path.py: no change examples/addons/text_entity_to_path_condensed.py: no change examples/addons/text_lff_to_path.py: no change examples/addons/text_shx_to_path.py: no change examples/addons/text_string_to_hatch.py: no change examples/addons/text_string_to_path.py: no change examples/addons/text_to_virtual_entities.py: no change examples/addons/trianglulate_text_to_solids.py: no change examples/addons/drawing/cad_viewer.py: updating examples/addons/drawing/draw_cad.py: updating examples/addons/drawing/element_picker.py: no change examples/addons/drawing/export_image_pixel_size.py: no change examples/addons/drawing/export_specific_area.py: no change examples/addons/drawing/export_with_cropping.py: no change examples/addons/drawing/hpgl2_export.py: no change examples/addons/drawing/pdf_export.py: no change examples/addons/drawing/pdf_export_page_alignment.py: no change examples/addons/drawing/pixmap_export.py: no change examples/addons/drawing/png_export_by_matplotlib.py: no change examples/addons/drawing/render_model_space_as_tiles.py: no change examples/addons/drawing/render_parts_via_recorder_backend.py: no change examples/addons/drawing/render_to_scale.py: no change examples/addons/drawing/svg_export.py: no change examples/addons/drawing/wcs_to_image_coodinates.py: no change examples/addons/optimize/bin_packing_forms.py: no change examples/addons/optimize/bin_packing_py3dbp.py: no change examples/addons/optimize/tsp.py: no change examples/blocks/auto_blockref.py: no change examples/blocks/block_references_with_attributes.py: no change examples/blocks/blocks_tutorial.py: no change examples/blocks/clipping_insert.py: no change examples/blocks/exploding_block_references.py: no change examples/blocks/exploding_with_attribs.py: no change examples/blocks/insert_with_mtext_attrib.py: no change examples/blocks/move_block_base_point.py: no change examples/blocks/multi_insert.py: no change examples/blocks/simple_block.py: no change examples/entities/arc_construction.py: no change examples/entities/arc_from_spline.py: no change examples/entities/circle_2d.py: no change examples/entities/circle_3d_from_3_points.py: no change examples/entities/elliptic_arc.py: no change examples/entities/geodata.py: no change examples/entities/geodata_setup_local_grid.py: no change examples/entities/hatch.py: no change examples/entities/hatch_pattern_modify_origin.py: no change examples/entities/helix.py: no change examples/entities/image.py: no change examples/entities/leader.py: no change examples/entities/lwpolyline.py: no change examples/entities/mesh_1.py: no change examples/entities/mesh_2.py: no change examples/entities/mesh_subdiv_and_creases.py: no change examples/entities/mpolygon.py: no change examples/entities/mtext.py: no change examples/entities/mtext_editor.py: no change examples/entities/mtext_in_yz_plane.py: no change examples/entities/multileader.py: no change examples/entities/read_acad_table.py: no change examples/entities/spline.py: no change examples/entities/spline_create_all_types.py: no change examples/entities/spline_from_arc.py: no change examples/entities/spline_from_ellipse.py: no change examples/entities/text_alignments.py: no change examples/entities/underlay.py: no change examples/entities/wipeout.py: no change examples/render/boolean_operations_for_2d_polygons.py: no change examples/render/chamfer_tools.py: no change examples/render/dimension_angular.py: no change examples/render/dimension_arc.py: no change examples/render/dimension_diameter.py: no change examples/render/dimension_linear.py: no change examples/render/dimension_ordinate.py: no change examples/render/dimension_ordinate_global_features.py: no change examples/render/dimension_ordinate_local_features.py: no change examples/render/dimension_radius.py: no change examples/render/explode_3d_dimension.py: no change examples/render/extrude_and_tessellate_concave_profile.py: no change examples/render/extrude_twist_scale_profile.py: no change examples/render/gear.py: no change examples/render/hatch_from_entities.py: no change examples/render/intersect_ellipse_and_spline.py: no change examples/render/mesh_transformer.py: no change examples/render/render_bezier.py: no change examples/render/render_euler_spiral.py: no change examples/render/render_mapbox_earcut_test_data.py: no change examples/render/render_meshes.py: no change examples/render/render_r12_ellipse.py: no change examples/render/render_r12_spline.py: no change examples/render/render_sphere.py: no change examples/render/render_spline.py: no change examples/render/render_torus.py: no change examples/render/shapefile_rendering.py: no change examples/render/show_all_arrows.py: no change examples/render/show_all_std_line_types.py: no change examples/render/sweep_helix.py: no change examples/render/sweep_profile.py: no change examples/render/triangulate_paths.py: no change examples/xref/attach_dxf_dwg_xref.py: no change examples/xref/detach_block_as_xref.py: no change examples/xref/embed_dxf_dwg_xref.py: no change examples/xref/load_table_resources.py: no change setuptools wheel pyparsing>=2.0.1 # typing_extensions>=4.6.0 numpy fonttools pytest cython matplotlib # pyside6 Pillow sphinx sphinx-rtd-theme sphinxcontrib-jquery Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.yyr3Zt + sed -r -e 's/^(typing_extensions|pyside6)\b/# \1/' -e 's/^(sphinx-rtd-theme)<.*$/\1/' requirements-dev.txt + tee requirements-dev-filtered.txt + RPM_EC=0 ++ jobs -p + exit 0 + umask 022 + cd /builddir/build/BUILD + cd ezdxf-1.2.0 + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir + echo -n + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + TMPDIR=/builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir + RPM_TOXENV=py312 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/ezdxf-1.2.0/pyproject-wheeldir --output /builddir/build/BUILD/python-ezdxf-1.2.0-21.fc40.riscv64-pyproject-buildrequires -x all5 requirements-dev-filtered.txt Handling setuptools from requirements file requirements-dev-filtered.txt Requirement satisfied: setuptools (installed: setuptools 69.0.3) Handling wheel from requirements file requirements-dev-filtered.txt Requirement satisfied: wheel (installed: wheel 0.41.2) Handling pyparsing>=2.0.1 from requirements file requirements-dev-filtered.txt Requirement satisfied: pyparsing>=2.0.1 (installed: pyparsing 3.1.1) Handling numpy from requirements file requirements-dev-filtered.txt Requirement satisfied: numpy (installed: numpy 1.26.0) Handling fonttools from requirements file requirements-dev-filtered.txt Requirement satisfied: fonttools (installed: fonttools 4.46.0) Handling pytest from requirements file requirements-dev-filtered.txt Requirement satisfied: pytest (installed: pytest 7.4.3) Handling cython from requirements file requirements-dev-filtered.txt Requirement satisfied: cython (installed: cython 3.0.5) Handling matplotlib from requirements file requirements-dev-filtered.txt Requirement satisfied: matplotlib (installed: matplotlib 3.8.2) Handling Pillow from requirements file requirements-dev-filtered.txt Requirement satisfied: Pillow (installed: Pillow 10.2.0) Handling sphinx from requirements file requirements-dev-filtered.txt Requirement satisfied: sphinx (installed: sphinx 7.2.6) Handling sphinx-rtd-theme from requirements file requirements-dev-filtered.txt Requirement satisfied: sphinx-rtd-theme (installed: sphinx-rtd-theme 2.0.0) Handling sphinxcontrib-jquery from requirements file requirements-dev-filtered.txt Requirement satisfied: sphinxcontrib-jquery (installed: sphinxcontrib-jquery 4.1) Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 69.0.3) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.41.2) Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.41.2) Handling setuptools from get_requires_for_build_wheel Requirement satisfied: setuptools (installed: setuptools 69.0.3) Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.41.2) running dist_info creating ezdxf.egg-info writing ezdxf.egg-info/PKG-INFO writing dependency_links to ezdxf.egg-info/dependency_links.txt writing entry points to ezdxf.egg-info/entry_points.txt writing requirements to ezdxf.egg-info/requires.txt writing top-level names to ezdxf.egg-info/top_level.txt writing manifest file 'ezdxf.egg-info/SOURCES.txt' reading manifest file 'ezdxf.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching '*.hpp' under directory 'src/ezdxf/acc' warning: no files found matching '*.cpp' under directory 'src/ezdxf/acc' warning: no files found matching '*.c' under directory 'src/ezdxf/acc' warning: no files found matching '*' under directory 'tests/data' adding license file 'LICENSE' writing manifest file 'ezdxf.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/ezdxf-1.2.0/ezdxf-1.2.0.dist-info' Handling pyparsing >=2.0.1 from hook generated metadata: Requires-Dist (ezdxf) Requirement satisfied: pyparsing >=2.0.1 (installed: pyparsing 3.1.1) Handling typing-extensions >=4.6.0 from hook generated metadata: Requires-Dist (ezdxf) Requirement not satisfied: typing-extensions >=4.6.0 Handling numpy from hook generated metadata: Requires-Dist (ezdxf) Requirement satisfied: numpy (installed: numpy 1.26.0) Handling fonttools from hook generated metadata: Requires-Dist (ezdxf) Requirement satisfied: fonttools (installed: fonttools 4.46.0) Handling matplotlib ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: matplotlib ; extra == 'dev' Handling PySide6 ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PySide6 ; extra == 'dev' Handling PyMuPDF >=1.20.0 ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyMuPDF >=1.20.0 ; extra == 'dev' Handling Pillow ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Pillow ; extra == 'dev' Handling pytest ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: pytest ; extra == 'dev' Handling setuptools ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: setuptools ; extra == 'dev' Handling wheel ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: wheel ; extra == 'dev' Handling Cython ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Cython ; extra == 'dev' Handling matplotlib ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: matplotlib ; extra == 'dev5' Handling PyQt5 ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyQt5 ; extra == 'dev5' Handling PyMuPDF >=1.20.0 ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyMuPDF >=1.20.0 ; extra == 'dev5' Handling Pillow ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Pillow ; extra == 'dev5' Handling pytest ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: pytest ; extra == 'dev5' Handling setuptools ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: setuptools ; extra == 'dev5' Handling wheel ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: wheel ; extra == 'dev5' Handling Cython ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Cython ; extra == 'dev5' Handling matplotlib ; extra == 'draw' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: matplotlib ; extra == 'draw' Handling PySide6 ; extra == 'draw' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PySide6 ; extra == 'draw' Handling PyMuPDF >=1.20.0 ; extra == 'draw' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyMuPDF >=1.20.0 ; extra == 'draw' Handling Pillow ; extra == 'draw' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Pillow ; extra == 'draw' Handling matplotlib ; extra == 'draw5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: matplotlib ; extra == 'draw5' Handling PyQt5 ; extra == 'draw5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyQt5 ; extra == 'draw5' Handling PyMuPDF >=1.20.0 ; extra == 'draw5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyMuPDF >=1.20.0 ; extra == 'draw5' Handling Pillow ; extra == 'draw5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Pillow ; extra == 'draw5' + cat /builddir/build/BUILD/python-ezdxf-1.2.0-21.fc40.riscv64-pyproject-buildrequires + rm -rfv ezdxf-1.2.0.dist-info/ removed 'ezdxf-1.2.0.dist-info/entry_points.txt' removed 'ezdxf-1.2.0.dist-info/METADATA' removed 'ezdxf-1.2.0.dist-info/LICENSE' removed 'ezdxf-1.2.0.dist-info/top_level.txt' removed directory 'ezdxf-1.2.0.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-ezdxf-1.2.0-21.fc40.buildreqs.nosrc.rpm RPM build warnings: The %{pyproject_build_lib} macro is deprecated. It only works with setuptools and is not build-backend-agnostic. The macro is not scheduled for removal, but there is a possibility of incompatibilities with future versions of setuptools. As a replacement for the macro for the setuptools backend on Fedora 37+, you can use $PWD/build/lib for pure Python packages, or $PWD/build/lib.%{python3_platform}-cpython-%{python3_version_nodots} for packages with extension modules. Other build backends and older distributions may need different paths. See https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/HMLOPAU3RZLXD4BOJHTIPKI3I4U6U7OE/ for details. Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --target riscv64 --nodeps /builddir/build/SPECS/python-ezdxf.spec'], chrootPath='/var/lib/mock/f40-build-799534-142438/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=604800uid=991gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --target riscv64 --nodeps /builddir/build/SPECS/python-ezdxf.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False warning: The %{pyproject_build_lib} macro is deprecated. It only works with setuptools and is not build-backend-agnostic. The macro is not scheduled for removal, but there is a possibility of incompatibilities with future versions of setuptools. As a replacement for the macro for the setuptools backend on Fedora 37+, you can use $PWD/build/lib for pure Python packages, or $PWD/build/lib.%{python3_platform}-cpython-%{python3_version_nodots} for packages with extension modules. Other build backends and older distributions may need different paths. See https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/HMLOPAU3RZLXD4BOJHTIPKI3I4U6U7OE/ for details. Building target platforms: riscv64 Building for target riscv64 setting SOURCE_DATE_EPOCH=1709510400 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.YIwXI3 + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf ezdxf-1.2.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/ezdxf-1.2.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd ezdxf-1.2.0 + rm -rf /builddir/build/BUILD/ezdxf-1.2.0-SPECPARTS + /usr/bin/mkdir -p /builddir/build/BUILD/ezdxf-1.2.0-SPECPARTS + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/90aceafc1a1cbea1c6e6e30cab3b800c600f8e56.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f + echo 'latex_engine = '\''xelatex'\''' + rm docs/graphics/dimtad-dimjust.pdf + dos2unix --keepdate examples/copydxf.py dos2unix: converting file examples/copydxf.py to Unix format... + sed -r -i '1{/^#!/d}' src/ezdxf/addons/drawing/qtviewer.py + '[' -z sP ']' + shebang_flags=-kasP + /usr/bin/python3 -B /usr/lib/rpm/redhat/pathfix.py -pni /usr/bin/python3 -kasP examples recursedown('examples') recursedown('examples/acistools') recursedown('examples/addons') recursedown('examples/addons/drawing') recursedown('examples/addons/optimize') recursedown('examples/blocks') recursedown('examples/entities') recursedown('examples/render') recursedown('examples/xref') examples/_template.py: no change examples/complex_line_type_example.py: no change examples/copydxf.py: no change examples/create_all_supported_dxf_versions.py: no change examples/custom_header_vars.py: no change examples/default_lineweights.py: no change examples/draw_glyph_table.py: no change examples/draw_text_frames.py: no change examples/encode_decode_dxf_as_base64.py: no change examples/extended_textstyle_features.py: no change examples/load_comments.py: no change examples/load_file_structure_index.py: no change examples/maurer_rose.py: no change examples/megagrid.py: no change examples/optimize_polyfaces.py: no change examples/paperspace_setup_R12.py: no change examples/paperspace_setup_R2000.py: no change examples/print_layout_properties.py: no change examples/proxy_graphic.py: no change examples/redraw_order.py: no change examples/rename_layer.py: no change examples/separate_layers.py: no change examples/simple_page_setup.py: no change examples/spline_interpolation_of_sine_wave.py: no change examples/text_layout_engine_usage.py: no change examples/tiled_window_setup.py: no change examples/transform_cube_by_ucs.py: no change examples/transform_entities_by_block.py: no change examples/transform_entities_by_ucs.py: no change examples/transform_modelspace.py: no change examples/user_data_stored_in_XDATA.py: no change examples/user_data_stored_in_XRECORD.py: no change examples/using_all_text_styles.py: no change examples/using_group.py: no change examples/using_groupby.py: no change examples/using_lineweight.py: no change examples/using_ocs_and_ucs.py: no change examples/using_true_color_and_transparency.py: no change examples/viewport_frozen_layers.py: no change examples/viewports_in_paperspace.py: no change examples/viewports_override_layer_attributes.py: no change examples/acistools/acis_cube_all_dxf_versions.py: no change examples/acistools/create_3dsolid_cube.py: no change examples/acistools/create_3dsolid_mengersponge.py: no change examples/acistools/create_3dsolid_uvsphere.py: no change examples/acistools/mesh_from_body.py: no change examples/addons/dont_use_dimline_addons.py: no change examples/addons/dxf2code.py: no change examples/addons/fit_text_path_into_box.py: no change examples/addons/hpgl2_viewer.py: no change examples/addons/iterdxf.py: no change examples/addons/iterdxf_add_to_new_drawing.py: no change examples/addons/iterdxf_profiling.py: no change examples/addons/menger_sponge.py: no change examples/addons/meshex_export.py: no change examples/addons/mtext_explode.py: no change examples/addons/mtext_r12_addon.py: no change examples/addons/odafc_read_dwg.py: no change examples/addons/odafc_write_dwg.py: no change examples/addons/openscad.py: no change examples/addons/openscad_make_walls.py: no change examples/addons/pycsg.py: no change examples/addons/pycsg_sphere.py: no change examples/addons/pycsg_sphere_vs_menger_sponge.py: no change examples/addons/r12writer.py: no change examples/addons/r12writer2.py: no change examples/addons/r12writer_big_files.py: no change examples/addons/sierpinski_pyramid.py: no change examples/addons/table_painter_addon.py: no change examples/addons/text_entity_to_path.py: no change examples/addons/text_entity_to_path_condensed.py: no change examples/addons/text_lff_to_path.py: no change examples/addons/text_shx_to_path.py: no change examples/addons/text_string_to_hatch.py: no change examples/addons/text_string_to_path.py: no change examples/addons/text_to_virtual_entities.py: no change examples/addons/trianglulate_text_to_solids.py: no change examples/addons/drawing/cad_viewer.py: updating examples/addons/drawing/draw_cad.py: updating examples/addons/drawing/element_picker.py: no change examples/addons/drawing/export_image_pixel_size.py: no change examples/addons/drawing/export_specific_area.py: no change examples/addons/drawing/export_with_cropping.py: no change examples/addons/drawing/hpgl2_export.py: no change examples/addons/drawing/pdf_export.py: no change examples/addons/drawing/pdf_export_page_alignment.py: no change examples/addons/drawing/pixmap_export.py: no change examples/addons/drawing/png_export_by_matplotlib.py: no change examples/addons/drawing/render_model_space_as_tiles.py: no change examples/addons/drawing/render_parts_via_recorder_backend.py: no change examples/addons/drawing/render_to_scale.py: no change examples/addons/drawing/svg_export.py: no change examples/addons/drawing/wcs_to_image_coodinates.py: no change examples/addons/optimize/bin_packing_forms.py: no change examples/addons/optimize/bin_packing_py3dbp.py: no change examples/addons/optimize/tsp.py: no change examples/blocks/auto_blockref.py: no change examples/blocks/block_references_with_attributes.py: no change examples/blocks/blocks_tutorial.py: no change examples/blocks/clipping_insert.py: no change examples/blocks/exploding_block_references.py: no change examples/blocks/exploding_with_attribs.py: no change examples/blocks/insert_with_mtext_attrib.py: no change examples/blocks/move_block_base_point.py: no change examples/blocks/multi_insert.py: no change examples/blocks/simple_block.py: no change examples/entities/arc_construction.py: no change examples/entities/arc_from_spline.py: no change examples/entities/circle_2d.py: no change examples/entities/circle_3d_from_3_points.py: no change examples/entities/elliptic_arc.py: no change examples/entities/geodata.py: no change examples/entities/geodata_setup_local_grid.py: no change examples/entities/hatch.py: no change examples/entities/hatch_pattern_modify_origin.py: no change examples/entities/helix.py: no change examples/entities/image.py: no change examples/entities/leader.py: no change examples/entities/lwpolyline.py: no change examples/entities/mesh_1.py: no change examples/entities/mesh_2.py: no change examples/entities/mesh_subdiv_and_creases.py: no change examples/entities/mpolygon.py: no change examples/entities/mtext.py: no change examples/entities/mtext_editor.py: no change examples/entities/mtext_in_yz_plane.py: no change examples/entities/multileader.py: no change examples/entities/read_acad_table.py: no change examples/entities/spline.py: no change examples/entities/spline_create_all_types.py: no change examples/entities/spline_from_arc.py: no change examples/entities/spline_from_ellipse.py: no change examples/entities/text_alignments.py: no change examples/entities/underlay.py: no change examples/entities/wipeout.py: no change examples/render/boolean_operations_for_2d_polygons.py: no change examples/render/chamfer_tools.py: no change examples/render/dimension_angular.py: no change examples/render/dimension_arc.py: no change examples/render/dimension_diameter.py: no change examples/render/dimension_linear.py: no change examples/render/dimension_ordinate.py: no change examples/render/dimension_ordinate_global_features.py: no change examples/render/dimension_ordinate_local_features.py: no change examples/render/dimension_radius.py: no change examples/render/explode_3d_dimension.py: no change examples/render/extrude_and_tessellate_concave_profile.py: no change examples/render/extrude_twist_scale_profile.py: no change examples/render/gear.py: no change examples/render/hatch_from_entities.py: no change examples/render/intersect_ellipse_and_spline.py: no change examples/render/mesh_transformer.py: no change examples/render/render_bezier.py: no change examples/render/render_euler_spiral.py: no change examples/render/render_mapbox_earcut_test_data.py: no change examples/render/render_meshes.py: no change examples/render/render_r12_ellipse.py: no change examples/render/render_r12_spline.py: no change examples/render/render_sphere.py: no change examples/render/render_spline.py: no change examples/render/render_torus.py: no change examples/render/shapefile_rendering.py: no change examples/render/show_all_arrows.py: no change examples/render/show_all_std_line_types.py: no change examples/render/sweep_helix.py: no change examples/render/sweep_profile.py: no change examples/render/triangulate_paths.py: no change examples/xref/attach_dxf_dwg_xref.py: no change examples/xref/detach_block_as_xref.py: no change examples/xref/embed_dxf_dwg_xref.py: no change examples/xref/load_table_resources.py: no change setuptools wheel pyparsing>=2.0.1 # typing_extensions>=4.6.0 numpy fonttools pytest cython matplotlib # pyside6 Pillow sphinx sphinx-rtd-theme sphinxcontrib-jquery Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.50v9sS + sed -r -e 's/^(typing_extensions|pyside6)\b/# \1/' -e 's/^(sphinx-rtd-theme)<.*$/\1/' requirements-dev.txt + tee requirements-dev-filtered.txt + RPM_EC=0 ++ jobs -p + exit 0 + umask 022 + cd /builddir/build/BUILD + cd ezdxf-1.2.0 + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir + echo -n + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + TMPDIR=/builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir + RPM_TOXENV=py312 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/ezdxf-1.2.0/pyproject-wheeldir --output /builddir/build/BUILD/python-ezdxf-1.2.0-21.fc40.riscv64-pyproject-buildrequires -x all5 requirements-dev-filtered.txt Handling setuptools from requirements file requirements-dev-filtered.txt Requirement satisfied: setuptools (installed: setuptools 69.0.3) Handling wheel from requirements file requirements-dev-filtered.txt Requirement satisfied: wheel (installed: wheel 0.41.2) Handling pyparsing>=2.0.1 from requirements file requirements-dev-filtered.txt Requirement satisfied: pyparsing>=2.0.1 (installed: pyparsing 3.1.1) Handling numpy from requirements file requirements-dev-filtered.txt Requirement satisfied: numpy (installed: numpy 1.26.0) Handling fonttools from requirements file requirements-dev-filtered.txt Requirement satisfied: fonttools (installed: fonttools 4.46.0) Handling pytest from requirements file requirements-dev-filtered.txt Requirement satisfied: pytest (installed: pytest 7.4.3) Handling cython from requirements file requirements-dev-filtered.txt Requirement satisfied: cython (installed: cython 3.0.5) Handling matplotlib from requirements file requirements-dev-filtered.txt Requirement satisfied: matplotlib (installed: matplotlib 3.8.2) Handling Pillow from requirements file requirements-dev-filtered.txt Requirement satisfied: Pillow (installed: Pillow 10.2.0) Handling sphinx from requirements file requirements-dev-filtered.txt Requirement satisfied: sphinx (installed: sphinx 7.2.6) Handling sphinx-rtd-theme from requirements file requirements-dev-filtered.txt Requirement satisfied: sphinx-rtd-theme (installed: sphinx-rtd-theme 2.0.0) Handling sphinxcontrib-jquery from requirements file requirements-dev-filtered.txt Requirement satisfied: sphinxcontrib-jquery (installed: sphinxcontrib-jquery 4.1) Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 69.0.3) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.41.2) Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.41.2) Handling setuptools from get_requires_for_build_wheel Requirement satisfied: setuptools (installed: setuptools 69.0.3) Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.41.2) running dist_info creating ezdxf.egg-info writing ezdxf.egg-info/PKG-INFO writing dependency_links to ezdxf.egg-info/dependency_links.txt writing entry points to ezdxf.egg-info/entry_points.txt writing requirements to ezdxf.egg-info/requires.txt writing top-level names to ezdxf.egg-info/top_level.txt writing manifest file 'ezdxf.egg-info/SOURCES.txt' reading manifest file 'ezdxf.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching '*.hpp' under directory 'src/ezdxf/acc' warning: no files found matching '*.cpp' under directory 'src/ezdxf/acc' warning: no files found matching '*.c' under directory 'src/ezdxf/acc' warning: no files found matching '*' under directory 'tests/data' adding license file 'LICENSE' writing manifest file 'ezdxf.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/ezdxf-1.2.0/ezdxf-1.2.0.dist-info' Handling pyparsing >=2.0.1 from hook generated metadata: Requires-Dist (ezdxf) Requirement satisfied: pyparsing >=2.0.1 (installed: pyparsing 3.1.1) Handling typing-extensions >=4.6.0 from hook generated metadata: Requires-Dist (ezdxf) Requirement satisfied: typing-extensions >=4.6.0 (installed: typing-extensions 4.9.0) Handling numpy from hook generated metadata: Requires-Dist (ezdxf) Requirement satisfied: numpy (installed: numpy 1.26.0) Handling fonttools from hook generated metadata: Requires-Dist (ezdxf) Requirement satisfied: fonttools (installed: fonttools 4.46.0) Handling matplotlib ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: matplotlib ; extra == 'dev' Handling PySide6 ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PySide6 ; extra == 'dev' Handling PyMuPDF >=1.20.0 ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyMuPDF >=1.20.0 ; extra == 'dev' Handling Pillow ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Pillow ; extra == 'dev' Handling pytest ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: pytest ; extra == 'dev' Handling setuptools ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: setuptools ; extra == 'dev' Handling wheel ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: wheel ; extra == 'dev' Handling Cython ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Cython ; extra == 'dev' Handling matplotlib ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: matplotlib ; extra == 'dev5' Handling PyQt5 ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyQt5 ; extra == 'dev5' Handling PyMuPDF >=1.20.0 ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyMuPDF >=1.20.0 ; extra == 'dev5' Handling Pillow ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Pillow ; extra == 'dev5' Handling pytest ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: pytest ; extra == 'dev5' Handling setuptools ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: setuptools ; extra == 'dev5' Handling wheel ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: wheel ; extra == 'dev5' Handling Cython ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Cython ; extra == 'dev5' Handling matplotlib ; extra == 'draw' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: matplotlib ; extra == 'draw' Handling PySide6 ; extra == 'draw' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PySide6 ; extra == 'draw' Handling PyMuPDF >=1.20.0 ; extra == 'draw' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyMuPDF >=1.20.0 ; extra == 'draw' Handling Pillow ; extra == 'draw' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Pillow ; extra == 'draw' Handling matplotlib ; extra == 'draw5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: matplotlib ; extra == 'draw5' Handling PyQt5 ; extra == 'draw5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyQt5 ; extra == 'draw5' Handling PyMuPDF >=1.20.0 ; extra == 'draw5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyMuPDF >=1.20.0 ; extra == 'draw5' Handling Pillow ; extra == 'draw5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Pillow ; extra == 'draw5' + cat /builddir/build/BUILD/python-ezdxf-1.2.0-21.fc40.riscv64-pyproject-buildrequires + rm -rfv ezdxf-1.2.0.dist-info/ removed 'ezdxf-1.2.0.dist-info/entry_points.txt' removed 'ezdxf-1.2.0.dist-info/METADATA' removed 'ezdxf-1.2.0.dist-info/LICENSE' removed 'ezdxf-1.2.0.dist-info/top_level.txt' removed directory 'ezdxf-1.2.0.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-ezdxf-1.2.0-21.fc40.buildreqs.nosrc.rpm RPM build warnings: The %{pyproject_build_lib} macro is deprecated. It only works with setuptools and is not build-backend-agnostic. The macro is not scheduled for removal, but there is a possibility of incompatibilities with future versions of setuptools. As a replacement for the macro for the setuptools backend on Fedora 37+, you can use $PWD/build/lib for pure Python packages, or $PWD/build/lib.%{python3_platform}-cpython-%{python3_version_nodots} for packages with extension modules. Other build backends and older distributions may need different paths. See https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/HMLOPAU3RZLXD4BOJHTIPKI3I4U6U7OE/ for details. Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --target riscv64 --nodeps /builddir/build/SPECS/python-ezdxf.spec'], chrootPath='/var/lib/mock/f40-build-799534-142438/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=604800uid=991gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --target riscv64 --nodeps /builddir/build/SPECS/python-ezdxf.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False warning: The %{pyproject_build_lib} macro is deprecated. It only works with setuptools and is not build-backend-agnostic. The macro is not scheduled for removal, but there is a possibility of incompatibilities with future versions of setuptools. As a replacement for the macro for the setuptools backend on Fedora 37+, you can use $PWD/build/lib for pure Python packages, or $PWD/build/lib.%{python3_platform}-cpython-%{python3_version_nodots} for packages with extension modules. Other build backends and older distributions may need different paths. See https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/HMLOPAU3RZLXD4BOJHTIPKI3I4U6U7OE/ for details. Building target platforms: riscv64 Building for target riscv64 setting SOURCE_DATE_EPOCH=1709510400 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.HC9RDm + umask 022 + cd /builddir/build/BUILD + cd ezdxf-1.2.0 + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir + echo -n + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + TMPDIR=/builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir + RPM_TOXENV=py312 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/ezdxf-1.2.0/pyproject-wheeldir --output /builddir/build/BUILD/python-ezdxf-1.2.0-21.fc40.riscv64-pyproject-buildrequires -x all5 requirements-dev-filtered.txt Handling setuptools from requirements file requirements-dev-filtered.txt Requirement satisfied: setuptools (installed: setuptools 69.0.3) Handling wheel from requirements file requirements-dev-filtered.txt Requirement satisfied: wheel (installed: wheel 0.41.2) Handling pyparsing>=2.0.1 from requirements file requirements-dev-filtered.txt Requirement satisfied: pyparsing>=2.0.1 (installed: pyparsing 3.1.1) Handling numpy from requirements file requirements-dev-filtered.txt Requirement satisfied: numpy (installed: numpy 1.26.0) Handling fonttools from requirements file requirements-dev-filtered.txt Requirement satisfied: fonttools (installed: fonttools 4.46.0) Handling pytest from requirements file requirements-dev-filtered.txt Requirement satisfied: pytest (installed: pytest 7.4.3) Handling cython from requirements file requirements-dev-filtered.txt Requirement satisfied: cython (installed: cython 3.0.5) Handling matplotlib from requirements file requirements-dev-filtered.txt Requirement satisfied: matplotlib (installed: matplotlib 3.8.2) Handling Pillow from requirements file requirements-dev-filtered.txt Requirement satisfied: Pillow (installed: Pillow 10.2.0) Handling sphinx from requirements file requirements-dev-filtered.txt Requirement satisfied: sphinx (installed: sphinx 7.2.6) Handling sphinx-rtd-theme from requirements file requirements-dev-filtered.txt Requirement satisfied: sphinx-rtd-theme (installed: sphinx-rtd-theme 2.0.0) Handling sphinxcontrib-jquery from requirements file requirements-dev-filtered.txt Requirement satisfied: sphinxcontrib-jquery (installed: sphinxcontrib-jquery 4.1) Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 69.0.3) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.41.2) Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.41.2) Handling setuptools from get_requires_for_build_wheel Requirement satisfied: setuptools (installed: setuptools 69.0.3) Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.41.2) running dist_info writing ezdxf.egg-info/PKG-INFO writing dependency_links to ezdxf.egg-info/dependency_links.txt writing entry points to ezdxf.egg-info/entry_points.txt writing requirements to ezdxf.egg-info/requires.txt writing top-level names to ezdxf.egg-info/top_level.txt reading manifest file 'ezdxf.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching '*.hpp' under directory 'src/ezdxf/acc' warning: no files found matching '*.cpp' under directory 'src/ezdxf/acc' warning: no files found matching '*.c' under directory 'src/ezdxf/acc' warning: no files found matching '*' under directory 'tests/data' adding license file 'LICENSE' writing manifest file 'ezdxf.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/ezdxf-1.2.0/ezdxf-1.2.0.dist-info' Handling pyparsing >=2.0.1 from hook generated metadata: Requires-Dist (ezdxf) Requirement satisfied: pyparsing >=2.0.1 (installed: pyparsing 3.1.1) Handling typing-extensions >=4.6.0 from hook generated metadata: Requires-Dist (ezdxf) Requirement satisfied: typing-extensions >=4.6.0 (installed: typing-extensions 4.9.0) Handling numpy from hook generated metadata: Requires-Dist (ezdxf) Requirement satisfied: numpy (installed: numpy 1.26.0) Handling fonttools from hook generated metadata: Requires-Dist (ezdxf) Requirement satisfied: fonttools (installed: fonttools 4.46.0) Handling matplotlib ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: matplotlib ; extra == 'dev' Handling PySide6 ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PySide6 ; extra == 'dev' Handling PyMuPDF >=1.20.0 ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyMuPDF >=1.20.0 ; extra == 'dev' Handling Pillow ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Pillow ; extra == 'dev' Handling pytest ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: pytest ; extra == 'dev' Handling setuptools ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: setuptools ; extra == 'dev' Handling wheel ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: wheel ; extra == 'dev' Handling Cython ; extra == 'dev' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Cython ; extra == 'dev' Handling matplotlib ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: matplotlib ; extra == 'dev5' Handling PyQt5 ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyQt5 ; extra == 'dev5' Handling PyMuPDF >=1.20.0 ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyMuPDF >=1.20.0 ; extra == 'dev5' Handling Pillow ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Pillow ; extra == 'dev5' Handling pytest ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: pytest ; extra == 'dev5' Handling setuptools ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: setuptools ; extra == 'dev5' Handling wheel ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: wheel ; extra == 'dev5' Handling Cython ; extra == 'dev5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Cython ; extra == 'dev5' Handling matplotlib ; extra == 'draw' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: matplotlib ; extra == 'draw' Handling PySide6 ; extra == 'draw' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PySide6 ; extra == 'draw' Handling PyMuPDF >=1.20.0 ; extra == 'draw' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyMuPDF >=1.20.0 ; extra == 'draw' Handling Pillow ; extra == 'draw' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Pillow ; extra == 'draw' Handling matplotlib ; extra == 'draw5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: matplotlib ; extra == 'draw5' Handling PyQt5 ; extra == 'draw5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyQt5 ; extra == 'draw5' Handling PyMuPDF >=1.20.0 ; extra == 'draw5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: PyMuPDF >=1.20.0 ; extra == 'draw5' Handling Pillow ; extra == 'draw5' from hook generated metadata: Requires-Dist (ezdxf) Ignoring alien requirement: Pillow ; extra == 'draw5' + cat /builddir/build/BUILD/python-ezdxf-1.2.0-21.fc40.riscv64-pyproject-buildrequires + rm -rfv ezdxf-1.2.0.dist-info/ removed 'ezdxf-1.2.0.dist-info/entry_points.txt' removed 'ezdxf-1.2.0.dist-info/METADATA' removed 'ezdxf-1.2.0.dist-info/LICENSE' removed 'ezdxf-1.2.0.dist-info/top_level.txt' removed directory 'ezdxf-1.2.0.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.Dxokf7 + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd ezdxf-1.2.0 + mkdir -p /builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + TMPDIR=/builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/ezdxf-1.2.0/pyproject-wheeldir Processing /builddir/build/BUILD/ezdxf-1.2.0 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) running dist_info creating /builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir/pip-modern-metadata-4lezasiz/ezdxf.egg-info writing /builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir/pip-modern-metadata-4lezasiz/ezdxf.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir/pip-modern-metadata-4lezasiz/ezdxf.egg-info/dependency_links.txt writing entry points to /builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir/pip-modern-metadata-4lezasiz/ezdxf.egg-info/entry_points.txt writing requirements to /builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir/pip-modern-metadata-4lezasiz/ezdxf.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir/pip-modern-metadata-4lezasiz/ezdxf.egg-info/top_level.txt writing manifest file '/builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir/pip-modern-metadata-4lezasiz/ezdxf.egg-info/SOURCES.txt' reading manifest file '/builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir/pip-modern-metadata-4lezasiz/ezdxf.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching '*.hpp' under directory 'src/ezdxf/acc' warning: no files found matching '*.cpp' under directory 'src/ezdxf/acc' warning: no files found matching '*.c' under directory 'src/ezdxf/acc' warning: no files found matching '*' under directory 'tests/data' adding license file 'LICENSE' writing manifest file '/builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir/pip-modern-metadata-4lezasiz/ezdxf.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir/pip-modern-metadata-4lezasiz/ezdxf-1.2.0.dist-info' Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: ezdxf Building wheel for ezdxf (pyproject.toml): started Running command Building wheel for ezdxf (pyproject.toml) running bdist_wheel running build running build_py creating build creating build/lib.linux-riscv64-cpython-312 creating build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/comments.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/version.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/dynblkhelper.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/__main__.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/groupby.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/transform.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/_options.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/proxygraphic.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/zoom.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/colors.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/commands.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/filemanagement.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/recover.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/query.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/enums.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/disassemble.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/graphicsfactory.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/units.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/explode.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/r12strict.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/blkrefs.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/dwginfo.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/npshapes.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/upright.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/eztypes.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/audit.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/appsettings.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/gfxattribs.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/reorder.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/entitydb.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/xref.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/xclip.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/urecord.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/queryparser.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/document.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/protocols.py -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/bbox.py -> build/lib.linux-riscv64-cpython-312/ezdxf creating build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/analyze.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/indexing.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/codepage.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/text.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/complex_ltype.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/text_size.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/text_layout.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/clipping_portal.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/crypt.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/difftags.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/zipmanager.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/standards.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/test.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/handle.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/debug.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/pattern.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/rawloader.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/juliandate.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/_iso_pattern.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/strip.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools copying src/ezdxf/tools/binarydata.py -> build/lib.linux-riscv64-cpython-312/ezdxf/tools creating build/lib.linux-riscv64-cpython-312/ezdxf/acis copying src/ezdxf/acis/const.py -> build/lib.linux-riscv64-cpython-312/ezdxf/acis copying src/ezdxf/acis/dxf.py -> build/lib.linux-riscv64-cpython-312/ezdxf/acis copying src/ezdxf/acis/sat.py -> build/lib.linux-riscv64-cpython-312/ezdxf/acis copying src/ezdxf/acis/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/acis copying src/ezdxf/acis/hdr.py -> build/lib.linux-riscv64-cpython-312/ezdxf/acis copying src/ezdxf/acis/api.py -> build/lib.linux-riscv64-cpython-312/ezdxf/acis copying src/ezdxf/acis/sab.py -> build/lib.linux-riscv64-cpython-312/ezdxf/acis copying src/ezdxf/acis/dbg.py -> build/lib.linux-riscv64-cpython-312/ezdxf/acis copying src/ezdxf/acis/entities.py -> build/lib.linux-riscv64-cpython-312/ezdxf/acis copying src/ezdxf/acis/mesh.py -> build/lib.linux-riscv64-cpython-312/ezdxf/acis copying src/ezdxf/acis/abstract.py -> build/lib.linux-riscv64-cpython-312/ezdxf/acis creating build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/ltype.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/dxfns.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/dxfclass.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/objectcollection.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/mtext_columns.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/xline.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/blockrecord.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/visualstyle.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/dxfentity.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/idbuffer.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/sun.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/circle.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/leader.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/polyline.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/xdata.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/boundary_paths.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/text.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/spline.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/gradient.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/dxfobj.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/appdata.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/acad_proxy_entity.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/ellipse.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/lwpolyline.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/polygon.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/subentity.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/helix.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/dimstyleoverride.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/viewport.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/geodata.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/layout.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/line.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/acad_xrec_roundtrip.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/material.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/vport.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/dictionary.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/mleader.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/mpolygon.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/mtext.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/insert.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/textstyle.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/image.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/tolerance.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/xdict.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/point.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/ucs.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/spatial_filter.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/solid.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/acad_table.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/light.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/layer.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/dxfgroups.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/attrib.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/arc.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/factory.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/appid.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/table.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/pattern.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/mline.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/hatch.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/dimension.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/mesh.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/copy.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/dimstyle.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/block.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/acis.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/oleframe.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/view.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/shape.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/underlay.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities copying src/ezdxf/entities/dxfgfx.py -> build/lib.linux-riscv64-cpython-312/ezdxf/entities creating build/lib.linux-riscv64-cpython-312/ezdxf/path copying src/ezdxf/path/path.py -> build/lib.linux-riscv64-cpython-312/ezdxf/path copying src/ezdxf/path/tools.py -> build/lib.linux-riscv64-cpython-312/ezdxf/path copying src/ezdxf/path/commands.py -> build/lib.linux-riscv64-cpython-312/ezdxf/path copying src/ezdxf/path/converter.py -> build/lib.linux-riscv64-cpython-312/ezdxf/path copying src/ezdxf/path/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/path copying src/ezdxf/path/shapes.py -> build/lib.linux-riscv64-cpython-312/ezdxf/path copying src/ezdxf/path/nesting.py -> build/lib.linux-riscv64-cpython-312/ezdxf/path creating build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/tagger.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/attributes.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/const.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/fileindex.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/loader.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/extendedtags.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/encoding.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/packedtags.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/types.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/validator.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/hdrvars.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/repair.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/tagwriter.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf copying src/ezdxf/lldxf/tags.py -> build/lib.linux-riscv64-cpython-312/ezdxf/lldxf creating build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/odafc.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/xplayer.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/openscad.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/gerber_D6673.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/acadctb.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/sierpinski_pyramid.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/dimlines.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/menger_sponge.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/r12export.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/meshex.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/text2path.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/iterdxf.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/mixins.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/r12writer.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/importer.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/geo.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/tablepainter.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/mtxpl.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/pycsg.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/binpacking.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/genetic_algorithm.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/dxf2code.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/mtextsurrogate.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons copying src/ezdxf/addons/xqt.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons creating build/lib.linux-riscv64-cpython-312/ezdxf/pp copying src/ezdxf/pp/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/pp copying src/ezdxf/pp/pprint.py -> build/lib.linux-riscv64-cpython-312/ezdxf/pp copying src/ezdxf/pp/reflinks.py -> build/lib.linux-riscv64-cpython-312/ezdxf/pp copying src/ezdxf/pp/dxfpp.py -> build/lib.linux-riscv64-cpython-312/ezdxf/pp copying src/ezdxf/pp/rawpp.py -> build/lib.linux-riscv64-cpython-312/ezdxf/pp creating build/lib.linux-riscv64-cpython-312/ezdxf/layouts copying src/ezdxf/layouts/layouts.py -> build/lib.linux-riscv64-cpython-312/ezdxf/layouts copying src/ezdxf/layouts/blocklayout.py -> build/lib.linux-riscv64-cpython-312/ezdxf/layouts copying src/ezdxf/layouts/base.py -> build/lib.linux-riscv64-cpython-312/ezdxf/layouts copying src/ezdxf/layouts/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/layouts copying src/ezdxf/layouts/layout.py -> build/lib.linux-riscv64-cpython-312/ezdxf/layouts creating build/lib.linux-riscv64-cpython-312/ezdxf/acc copying src/ezdxf/acc/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/acc creating build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/construct2d.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/bulge.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/transformtools.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/construct3d.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/circle.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/legacy.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/triangulation.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/polyline.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/linalg.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/bezier.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/ellipse.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/bezier_interpolation.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/_bezier4p.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/_matrix44.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/offset2d.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/rtree.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/line.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/bspline.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/_ctypes.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/_bspline.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/ucs.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/curvetools.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/clustering.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/_construct.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/clipping.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/box.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/arc.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/_mapbox_earcut.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/_bezier3p.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/perlin.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/parametrize.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/cspline.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/eulerspiral.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/_vector.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/shape.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math copying src/ezdxf/math/bbox.py -> build/lib.linux-riscv64-cpython-312/ezdxf/math creating build/lib.linux-riscv64-cpython-312/ezdxf/sections copying src/ezdxf/sections/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/sections copying src/ezdxf/sections/acdsdata.py -> build/lib.linux-riscv64-cpython-312/ezdxf/sections copying src/ezdxf/sections/objects.py -> build/lib.linux-riscv64-cpython-312/ezdxf/sections copying src/ezdxf/sections/headervars.py -> build/lib.linux-riscv64-cpython-312/ezdxf/sections copying src/ezdxf/sections/classes.py -> build/lib.linux-riscv64-cpython-312/ezdxf/sections copying src/ezdxf/sections/blocks.py -> build/lib.linux-riscv64-cpython-312/ezdxf/sections copying src/ezdxf/sections/header.py -> build/lib.linux-riscv64-cpython-312/ezdxf/sections copying src/ezdxf/sections/table.py -> build/lib.linux-riscv64-cpython-312/ezdxf/sections copying src/ezdxf/sections/entities.py -> build/lib.linux-riscv64-cpython-312/ezdxf/sections copying src/ezdxf/sections/tables.py -> build/lib.linux-riscv64-cpython-312/ezdxf/sections creating build/lib.linux-riscv64-cpython-312/ezdxf/fonts copying src/ezdxf/fonts/font_manager.py -> build/lib.linux-riscv64-cpython-312/ezdxf/fonts copying src/ezdxf/fonts/ttfonts.py -> build/lib.linux-riscv64-cpython-312/ezdxf/fonts copying src/ezdxf/fonts/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/fonts copying src/ezdxf/fonts/glyphs.py -> build/lib.linux-riscv64-cpython-312/ezdxf/fonts copying src/ezdxf/fonts/shapefile.py -> build/lib.linux-riscv64-cpython-312/ezdxf/fonts copying src/ezdxf/fonts/font_face.py -> build/lib.linux-riscv64-cpython-312/ezdxf/fonts copying src/ezdxf/fonts/lff.py -> build/lib.linux-riscv64-cpython-312/ezdxf/fonts copying src/ezdxf/fonts/font_measurements.py -> build/lib.linux-riscv64-cpython-312/ezdxf/fonts copying src/ezdxf/fonts/fonts.py -> build/lib.linux-riscv64-cpython-312/ezdxf/fonts copying src/ezdxf/fonts/font_synonyms.py -> build/lib.linux-riscv64-cpython-312/ezdxf/fonts creating build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/curves.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/hatching.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/leader.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/polyline.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/dim_radius.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/forms.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/r12spline.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/mleader.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/trace.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/abstract_mtext_renderer.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/point.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/arrows.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/dim_ordinate.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/_linetypes.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/dim_curved.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/mline.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/linetypes.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/dimension.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/mesh.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/dim_diameter.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/dim_linear.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render copying src/ezdxf/render/dim_base.py -> build/lib.linux-riscv64-cpython-312/ezdxf/render creating build/lib.linux-riscv64-cpython-312/ezdxf/addons/acisbrowser copying src/ezdxf/addons/acisbrowser/data.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/acisbrowser copying src/ezdxf/addons/acisbrowser/browser.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/acisbrowser copying src/ezdxf/addons/acisbrowser/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/acisbrowser creating build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser copying src/ezdxf/addons/browser/bookmarks.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser copying src/ezdxf/addons/browser/find_dialog.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser copying src/ezdxf/addons/browser/loader.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser copying src/ezdxf/addons/browser/data.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser copying src/ezdxf/addons/browser/browser.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser copying src/ezdxf/addons/browser/views.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser copying src/ezdxf/addons/browser/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser copying src/ezdxf/addons/browser/model.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser copying src/ezdxf/addons/browser/tags.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser creating build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2 copying src/ezdxf/addons/hpgl2/deps.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2 copying src/ezdxf/addons/hpgl2/plotter.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2 copying src/ezdxf/addons/hpgl2/tokenizer.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2 copying src/ezdxf/addons/hpgl2/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2 copying src/ezdxf/addons/hpgl2/properties.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2 copying src/ezdxf/addons/hpgl2/viewer.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2 copying src/ezdxf/addons/hpgl2/interpreter.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2 copying src/ezdxf/addons/hpgl2/backend.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2 copying src/ezdxf/addons/hpgl2/api.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2 copying src/ezdxf/addons/hpgl2/page.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2 copying src/ezdxf/addons/hpgl2/polygon_buffer.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2 creating build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/pymupdf.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/debug_backend.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/dxf.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/svg.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/frontend.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/text.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/pyqt.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/gfxproxy.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/recorder.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/text_renderer.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/layout.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/matplotlib.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/properties.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/config.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/type_hints.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/file_output.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/qtviewer.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/backend.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/mtext_complex.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/debug_utils.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/hpgl2.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/unified_text_renderer.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing copying src/ezdxf/addons/drawing/designer.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing creating build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg copying src/ezdxf/addons/dwg/const.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg copying src/ezdxf/addons/dwg/loader.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg copying src/ezdxf/addons/dwg/header_section.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg copying src/ezdxf/addons/dwg/fileheader.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg copying src/ezdxf/addons/dwg/__init__.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg copying src/ezdxf/addons/dwg/classes_section.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg copying src/ezdxf/addons/dwg/crc.py -> build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg copying src/ezdxf/py.typed -> build/lib.linux-riscv64-cpython-312/ezdxf copying src/ezdxf/pp/dxfpp.html -> build/lib.linux-riscv64-cpython-312/ezdxf/pp copying src/ezdxf/pp/rawpp.html -> build/lib.linux-riscv64-cpython-312/ezdxf/pp copying src/ezdxf/pp/dxfpp.js -> build/lib.linux-riscv64-cpython-312/ezdxf/pp copying src/ezdxf/pp/dxfpp.css -> build/lib.linux-riscv64-cpython-312/ezdxf/pp copying src/ezdxf/pp/rawpp.css -> build/lib.linux-riscv64-cpython-312/ezdxf/pp creating build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/icon-next-entity-64px.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/icon-right-arrow-64px.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/24x24.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/32x32.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/icon-left-arrow-64px.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/icon-store-bookmark-64px.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/64x64.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/256x256.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/icon-goto-bookmark-64px.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/icon-find-64px.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/icon-goto-handle-64px.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/icon-prev-entity-64px.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/16x16.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/icon-goto-line-64px.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/48x48.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/icon-show-in-tree-64px.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources copying src/ezdxf/resources/icon-copy-64px.png -> build/lib.linux-riscv64-cpython-312/ezdxf/resources running build_ext Compiling src/ezdxf/acc/vector.pyx because it changed. [1/1] Cythonizing src/ezdxf/acc/vector.pyx building 'ezdxf.acc.vector' extension creating build/temp.linux-riscv64-cpython-312 creating build/temp.linux-riscv64-cpython-312/src creating build/temp.linux-riscv64-cpython-312/src/ezdxf creating build/temp.linux-riscv64-cpython-312/src/ezdxf/acc gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -fexceptions -fexceptions -fexceptions -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -fPIC -I/usr/include/python3.12 -c src/ezdxf/acc/vector.c -o build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/vector.o gcc -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/vector.o -L/usr/lib64 -o build/lib.linux-riscv64-cpython-312/ezdxf/acc/vector.cpython-312-riscv64-linux-gnu.so Compiling src/ezdxf/acc/matrix44.pyx because it changed. [1/1] Cythonizing src/ezdxf/acc/matrix44.pyx building 'ezdxf.acc.matrix44' extension gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -fexceptions -fexceptions -fexceptions -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -fPIC -I/usr/include/python3.12 -c src/ezdxf/acc/matrix44.c -o build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/matrix44.o gcc -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/matrix44.o -L/usr/lib64 -o build/lib.linux-riscv64-cpython-312/ezdxf/acc/matrix44.cpython-312-riscv64-linux-gnu.so Compiling src/ezdxf/acc/bezier4p.pyx because it changed. [1/1] Cythonizing src/ezdxf/acc/bezier4p.pyx building 'ezdxf.acc.bezier4p' extension gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -fexceptions -fexceptions -fexceptions -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -fPIC -I/usr/include/python3.12 -c src/ezdxf/acc/bezier4p.c -o build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/bezier4p.o gcc -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/bezier4p.o -L/usr/lib64 -o build/lib.linux-riscv64-cpython-312/ezdxf/acc/bezier4p.cpython-312-riscv64-linux-gnu.so Compiling src/ezdxf/acc/bezier3p.pyx because it changed. [1/1] Cythonizing src/ezdxf/acc/bezier3p.pyx building 'ezdxf.acc.bezier3p' extension gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -fexceptions -fexceptions -fexceptions -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -fPIC -I/usr/include/python3.12 -c src/ezdxf/acc/bezier3p.c -o build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/bezier3p.o gcc -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/bezier3p.o -L/usr/lib64 -o build/lib.linux-riscv64-cpython-312/ezdxf/acc/bezier3p.cpython-312-riscv64-linux-gnu.so Compiling src/ezdxf/acc/bspline.pyx because it changed. [1/1] Cythonizing src/ezdxf/acc/bspline.pyx building 'ezdxf.acc.bspline' extension gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -fexceptions -fexceptions -fexceptions -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -fPIC -I/usr/include/python3.12 -c src/ezdxf/acc/bspline.c -o build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/bspline.o gcc -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/bspline.o -L/usr/lib64 -o build/lib.linux-riscv64-cpython-312/ezdxf/acc/bspline.cpython-312-riscv64-linux-gnu.so Compiling src/ezdxf/acc/construct.pyx because it changed. [1/1] Cythonizing src/ezdxf/acc/construct.pyx building 'ezdxf.acc.construct' extension gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -fexceptions -fexceptions -fexceptions -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -fPIC -I/usr/include/python3.12 -c src/ezdxf/acc/construct.c -o build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/construct.o gcc -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/construct.o -L/usr/lib64 -o build/lib.linux-riscv64-cpython-312/ezdxf/acc/construct.cpython-312-riscv64-linux-gnu.so Compiling src/ezdxf/acc/mapbox_earcut.pyx because it changed. [1/1] Cythonizing src/ezdxf/acc/mapbox_earcut.pyx building 'ezdxf.acc.mapbox_earcut' extension gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -fexceptions -fexceptions -fexceptions -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -fPIC -I/usr/include/python3.12 -c src/ezdxf/acc/mapbox_earcut.c -o build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/mapbox_earcut.o gcc -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/mapbox_earcut.o -L/usr/lib64 -o build/lib.linux-riscv64-cpython-312/ezdxf/acc/mapbox_earcut.cpython-312-riscv64-linux-gnu.so Compiling src/ezdxf/acc/linetypes.pyx because it changed. [1/1] Cythonizing src/ezdxf/acc/linetypes.pyx building 'ezdxf.acc.linetypes' extension gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -fexceptions -fexceptions -fexceptions -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -fPIC -I/usr/include/python3.12 -c src/ezdxf/acc/linetypes.c -o build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/linetypes.o gcc -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/linetypes.o -L/usr/lib64 -o build/lib.linux-riscv64-cpython-312/ezdxf/acc/linetypes.cpython-312-riscv64-linux-gnu.so Compiling src/ezdxf/acc/np_support.pyx because it changed. [1/1] Cythonizing src/ezdxf/acc/np_support.pyx building 'ezdxf.acc.np_support' extension gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -fexceptions -fexceptions -fexceptions -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -fPIC -I/usr/include/python3.12 -c src/ezdxf/acc/np_support.c -o build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/np_support.o gcc -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer build/temp.linux-riscv64-cpython-312/src/ezdxf/acc/np_support.o -L/usr/lib64 -o build/lib.linux-riscv64-cpython-312/ezdxf/acc/np_support.cpython-312-riscv64-linux-gnu.so installing to build/bdist.linux-riscv64/wheel running install running install_lib creating build/bdist.linux-riscv64 creating build/bdist.linux-riscv64/wheel creating build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/comments.py -> build/bdist.linux-riscv64/wheel/ezdxf creating build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/analyze.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/indexing.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/codepage.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/text.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/complex_ltype.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/text_size.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/text_layout.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/clipping_portal.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/crypt.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/difftags.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/zipmanager.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/standards.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/test.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/handle.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/debug.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/pattern.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/rawloader.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/juliandate.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/_iso_pattern.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/strip.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/tools/binarydata.py -> build/bdist.linux-riscv64/wheel/ezdxf/tools copying build/lib.linux-riscv64-cpython-312/ezdxf/version.py -> build/bdist.linux-riscv64/wheel/ezdxf creating build/bdist.linux-riscv64/wheel/ezdxf/acis copying build/lib.linux-riscv64-cpython-312/ezdxf/acis/const.py -> build/bdist.linux-riscv64/wheel/ezdxf/acis copying build/lib.linux-riscv64-cpython-312/ezdxf/acis/dxf.py -> build/bdist.linux-riscv64/wheel/ezdxf/acis copying build/lib.linux-riscv64-cpython-312/ezdxf/acis/sat.py -> build/bdist.linux-riscv64/wheel/ezdxf/acis copying build/lib.linux-riscv64-cpython-312/ezdxf/acis/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/acis copying build/lib.linux-riscv64-cpython-312/ezdxf/acis/hdr.py -> build/bdist.linux-riscv64/wheel/ezdxf/acis copying build/lib.linux-riscv64-cpython-312/ezdxf/acis/api.py -> build/bdist.linux-riscv64/wheel/ezdxf/acis copying build/lib.linux-riscv64-cpython-312/ezdxf/acis/sab.py -> build/bdist.linux-riscv64/wheel/ezdxf/acis copying build/lib.linux-riscv64-cpython-312/ezdxf/acis/dbg.py -> build/bdist.linux-riscv64/wheel/ezdxf/acis copying build/lib.linux-riscv64-cpython-312/ezdxf/acis/entities.py -> build/bdist.linux-riscv64/wheel/ezdxf/acis copying build/lib.linux-riscv64-cpython-312/ezdxf/acis/mesh.py -> build/bdist.linux-riscv64/wheel/ezdxf/acis copying build/lib.linux-riscv64-cpython-312/ezdxf/acis/abstract.py -> build/bdist.linux-riscv64/wheel/ezdxf/acis copying build/lib.linux-riscv64-cpython-312/ezdxf/dynblkhelper.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/__main__.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/groupby.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/transform.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/_options.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/proxygraphic.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/zoom.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/colors.py -> build/bdist.linux-riscv64/wheel/ezdxf creating build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/ltype.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/dxfns.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/dxfclass.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/objectcollection.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/mtext_columns.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/xline.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/blockrecord.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/visualstyle.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/dxfentity.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/idbuffer.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/sun.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/circle.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/leader.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/polyline.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/xdata.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/boundary_paths.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/text.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/spline.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/gradient.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/dxfobj.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/appdata.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/acad_proxy_entity.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/ellipse.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/lwpolyline.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/polygon.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/subentity.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/helix.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/dimstyleoverride.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/viewport.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/geodata.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/layout.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/line.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/acad_xrec_roundtrip.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/material.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/vport.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/dictionary.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/mleader.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/mpolygon.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/mtext.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/insert.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/textstyle.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/image.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/tolerance.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/xdict.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/point.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/ucs.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/spatial_filter.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/solid.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/acad_table.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/light.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/layer.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/dxfgroups.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/attrib.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/arc.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/factory.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/appid.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/table.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/pattern.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/mline.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/hatch.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/dimension.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/mesh.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/copy.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/dimstyle.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/block.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/acis.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/oleframe.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/view.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/shape.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/underlay.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/entities/dxfgfx.py -> build/bdist.linux-riscv64/wheel/ezdxf/entities copying build/lib.linux-riscv64-cpython-312/ezdxf/commands.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/filemanagement.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/recover.py -> build/bdist.linux-riscv64/wheel/ezdxf creating build/bdist.linux-riscv64/wheel/ezdxf/path copying build/lib.linux-riscv64-cpython-312/ezdxf/path/path.py -> build/bdist.linux-riscv64/wheel/ezdxf/path copying build/lib.linux-riscv64-cpython-312/ezdxf/path/tools.py -> build/bdist.linux-riscv64/wheel/ezdxf/path copying build/lib.linux-riscv64-cpython-312/ezdxf/path/commands.py -> build/bdist.linux-riscv64/wheel/ezdxf/path copying build/lib.linux-riscv64-cpython-312/ezdxf/path/converter.py -> build/bdist.linux-riscv64/wheel/ezdxf/path copying build/lib.linux-riscv64-cpython-312/ezdxf/path/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/path copying build/lib.linux-riscv64-cpython-312/ezdxf/path/shapes.py -> build/bdist.linux-riscv64/wheel/ezdxf/path copying build/lib.linux-riscv64-cpython-312/ezdxf/path/nesting.py -> build/bdist.linux-riscv64/wheel/ezdxf/path copying build/lib.linux-riscv64-cpython-312/ezdxf/query.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/py.typed -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/enums.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/disassemble.py -> build/bdist.linux-riscv64/wheel/ezdxf creating build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/tagger.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/attributes.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/const.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/fileindex.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/loader.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/extendedtags.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/encoding.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/packedtags.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/types.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/validator.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/hdrvars.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/repair.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/tagwriter.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/lldxf/tags.py -> build/bdist.linux-riscv64/wheel/ezdxf/lldxf copying build/lib.linux-riscv64-cpython-312/ezdxf/graphicsfactory.py -> build/bdist.linux-riscv64/wheel/ezdxf creating build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/odafc.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons creating build/bdist.linux-riscv64/wheel/ezdxf/addons/acisbrowser copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/acisbrowser/data.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/acisbrowser copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/acisbrowser/browser.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/acisbrowser copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/acisbrowser/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/acisbrowser copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/xplayer.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/openscad.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons creating build/bdist.linux-riscv64/wheel/ezdxf/addons/browser copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser/bookmarks.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/browser copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser/find_dialog.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/browser copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser/loader.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/browser copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser/data.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/browser copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser/browser.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/browser copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser/views.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/browser copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/browser copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser/model.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/browser copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/browser/tags.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/browser copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/gerber_D6673.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/acadctb.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/sierpinski_pyramid.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons creating build/bdist.linux-riscv64/wheel/ezdxf/addons/hpgl2 copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2/deps.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/hpgl2 copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2/plotter.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/hpgl2 copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2/tokenizer.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/hpgl2 copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/hpgl2 copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2/properties.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/hpgl2 copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2/viewer.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/hpgl2 copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2/interpreter.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/hpgl2 copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2/backend.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/hpgl2 copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2/api.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/hpgl2 copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2/page.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/hpgl2 copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/hpgl2/polygon_buffer.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/hpgl2 copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/dimlines.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/menger_sponge.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/r12export.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons creating build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/pymupdf.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/debug_backend.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/dxf.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/svg.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/frontend.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/text.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/pyqt.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/gfxproxy.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/recorder.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/text_renderer.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/layout.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/matplotlib.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/properties.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/config.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/type_hints.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/file_output.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/qtviewer.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/backend.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/mtext_complex.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/debug_utils.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/hpgl2.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/unified_text_renderer.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/drawing/designer.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/drawing copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/meshex.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/text2path.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/iterdxf.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/mixins.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons creating build/bdist.linux-riscv64/wheel/ezdxf/addons/dwg copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg/const.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/dwg copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg/loader.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/dwg copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg/header_section.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/dwg copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg/fileheader.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/dwg copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/dwg copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg/classes_section.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/dwg copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/dwg/crc.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons/dwg copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/r12writer.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/importer.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/geo.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/tablepainter.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/mtxpl.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/pycsg.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/binpacking.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/genetic_algorithm.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/dxf2code.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/mtextsurrogate.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/addons/xqt.py -> build/bdist.linux-riscv64/wheel/ezdxf/addons copying build/lib.linux-riscv64-cpython-312/ezdxf/units.py -> build/bdist.linux-riscv64/wheel/ezdxf creating build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/icon-next-entity-64px.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/icon-right-arrow-64px.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/24x24.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/32x32.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/icon-left-arrow-64px.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/icon-store-bookmark-64px.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/64x64.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/256x256.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/icon-goto-bookmark-64px.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/icon-find-64px.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/icon-goto-handle-64px.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/icon-prev-entity-64px.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/16x16.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/icon-goto-line-64px.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/48x48.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/icon-show-in-tree-64px.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/resources/icon-copy-64px.png -> build/bdist.linux-riscv64/wheel/ezdxf/resources copying build/lib.linux-riscv64-cpython-312/ezdxf/explode.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/r12strict.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/blkrefs.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/dwginfo.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/npshapes.py -> build/bdist.linux-riscv64/wheel/ezdxf creating build/bdist.linux-riscv64/wheel/ezdxf/pp copying build/lib.linux-riscv64-cpython-312/ezdxf/pp/dxfpp.html -> build/bdist.linux-riscv64/wheel/ezdxf/pp copying build/lib.linux-riscv64-cpython-312/ezdxf/pp/dxfpp.css -> build/bdist.linux-riscv64/wheel/ezdxf/pp copying build/lib.linux-riscv64-cpython-312/ezdxf/pp/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/pp copying build/lib.linux-riscv64-cpython-312/ezdxf/pp/pprint.py -> build/bdist.linux-riscv64/wheel/ezdxf/pp copying build/lib.linux-riscv64-cpython-312/ezdxf/pp/rawpp.html -> build/bdist.linux-riscv64/wheel/ezdxf/pp copying build/lib.linux-riscv64-cpython-312/ezdxf/pp/rawpp.css -> build/bdist.linux-riscv64/wheel/ezdxf/pp copying build/lib.linux-riscv64-cpython-312/ezdxf/pp/dxfpp.js -> build/bdist.linux-riscv64/wheel/ezdxf/pp copying build/lib.linux-riscv64-cpython-312/ezdxf/pp/reflinks.py -> build/bdist.linux-riscv64/wheel/ezdxf/pp copying build/lib.linux-riscv64-cpython-312/ezdxf/pp/dxfpp.py -> build/bdist.linux-riscv64/wheel/ezdxf/pp copying build/lib.linux-riscv64-cpython-312/ezdxf/pp/rawpp.py -> build/bdist.linux-riscv64/wheel/ezdxf/pp copying build/lib.linux-riscv64-cpython-312/ezdxf/upright.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/eztypes.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/audit.py -> build/bdist.linux-riscv64/wheel/ezdxf creating build/bdist.linux-riscv64/wheel/ezdxf/layouts copying build/lib.linux-riscv64-cpython-312/ezdxf/layouts/layouts.py -> build/bdist.linux-riscv64/wheel/ezdxf/layouts copying build/lib.linux-riscv64-cpython-312/ezdxf/layouts/blocklayout.py -> build/bdist.linux-riscv64/wheel/ezdxf/layouts copying build/lib.linux-riscv64-cpython-312/ezdxf/layouts/base.py -> build/bdist.linux-riscv64/wheel/ezdxf/layouts copying build/lib.linux-riscv64-cpython-312/ezdxf/layouts/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/layouts copying build/lib.linux-riscv64-cpython-312/ezdxf/layouts/layout.py -> build/bdist.linux-riscv64/wheel/ezdxf/layouts copying build/lib.linux-riscv64-cpython-312/ezdxf/appsettings.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/gfxattribs.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/reorder.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/entitydb.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/xref.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/xclip.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/urecord.py -> build/bdist.linux-riscv64/wheel/ezdxf creating build/bdist.linux-riscv64/wheel/ezdxf/acc copying build/lib.linux-riscv64-cpython-312/ezdxf/acc/bezier3p.cpython-312-riscv64-linux-gnu.so -> build/bdist.linux-riscv64/wheel/ezdxf/acc copying build/lib.linux-riscv64-cpython-312/ezdxf/acc/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/acc copying build/lib.linux-riscv64-cpython-312/ezdxf/acc/mapbox_earcut.cpython-312-riscv64-linux-gnu.so -> build/bdist.linux-riscv64/wheel/ezdxf/acc copying build/lib.linux-riscv64-cpython-312/ezdxf/acc/vector.cpython-312-riscv64-linux-gnu.so -> build/bdist.linux-riscv64/wheel/ezdxf/acc copying build/lib.linux-riscv64-cpython-312/ezdxf/acc/linetypes.cpython-312-riscv64-linux-gnu.so -> build/bdist.linux-riscv64/wheel/ezdxf/acc copying build/lib.linux-riscv64-cpython-312/ezdxf/acc/bezier4p.cpython-312-riscv64-linux-gnu.so -> build/bdist.linux-riscv64/wheel/ezdxf/acc copying build/lib.linux-riscv64-cpython-312/ezdxf/acc/np_support.cpython-312-riscv64-linux-gnu.so -> build/bdist.linux-riscv64/wheel/ezdxf/acc copying build/lib.linux-riscv64-cpython-312/ezdxf/acc/matrix44.cpython-312-riscv64-linux-gnu.so -> build/bdist.linux-riscv64/wheel/ezdxf/acc copying build/lib.linux-riscv64-cpython-312/ezdxf/acc/construct.cpython-312-riscv64-linux-gnu.so -> build/bdist.linux-riscv64/wheel/ezdxf/acc copying build/lib.linux-riscv64-cpython-312/ezdxf/acc/bspline.cpython-312-riscv64-linux-gnu.so -> build/bdist.linux-riscv64/wheel/ezdxf/acc creating build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/construct2d.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/bulge.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/transformtools.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/construct3d.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/circle.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/legacy.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/triangulation.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/polyline.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/linalg.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/bezier.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/ellipse.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/bezier_interpolation.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/_bezier4p.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/_matrix44.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/offset2d.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/rtree.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/line.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/bspline.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/_ctypes.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/_bspline.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/ucs.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/curvetools.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/clustering.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/_construct.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/clipping.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/box.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/arc.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/_mapbox_earcut.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/_bezier3p.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/perlin.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/parametrize.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/cspline.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/eulerspiral.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/_vector.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/shape.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/math/bbox.py -> build/bdist.linux-riscv64/wheel/ezdxf/math copying build/lib.linux-riscv64-cpython-312/ezdxf/queryparser.py -> build/bdist.linux-riscv64/wheel/ezdxf copying build/lib.linux-riscv64-cpython-312/ezdxf/document.py -> build/bdist.linux-riscv64/wheel/ezdxf creating build/bdist.linux-riscv64/wheel/ezdxf/sections copying build/lib.linux-riscv64-cpython-312/ezdxf/sections/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/sections copying build/lib.linux-riscv64-cpython-312/ezdxf/sections/acdsdata.py -> build/bdist.linux-riscv64/wheel/ezdxf/sections copying build/lib.linux-riscv64-cpython-312/ezdxf/sections/objects.py -> build/bdist.linux-riscv64/wheel/ezdxf/sections copying build/lib.linux-riscv64-cpython-312/ezdxf/sections/headervars.py -> build/bdist.linux-riscv64/wheel/ezdxf/sections copying build/lib.linux-riscv64-cpython-312/ezdxf/sections/classes.py -> build/bdist.linux-riscv64/wheel/ezdxf/sections copying build/lib.linux-riscv64-cpython-312/ezdxf/sections/blocks.py -> build/bdist.linux-riscv64/wheel/ezdxf/sections copying build/lib.linux-riscv64-cpython-312/ezdxf/sections/header.py -> build/bdist.linux-riscv64/wheel/ezdxf/sections copying build/lib.linux-riscv64-cpython-312/ezdxf/sections/table.py -> build/bdist.linux-riscv64/wheel/ezdxf/sections copying build/lib.linux-riscv64-cpython-312/ezdxf/sections/entities.py -> build/bdist.linux-riscv64/wheel/ezdxf/sections copying build/lib.linux-riscv64-cpython-312/ezdxf/sections/tables.py -> build/bdist.linux-riscv64/wheel/ezdxf/sections copying build/lib.linux-riscv64-cpython-312/ezdxf/protocols.py -> build/bdist.linux-riscv64/wheel/ezdxf creating build/bdist.linux-riscv64/wheel/ezdxf/fonts copying build/lib.linux-riscv64-cpython-312/ezdxf/fonts/font_manager.py -> build/bdist.linux-riscv64/wheel/ezdxf/fonts copying build/lib.linux-riscv64-cpython-312/ezdxf/fonts/ttfonts.py -> build/bdist.linux-riscv64/wheel/ezdxf/fonts copying build/lib.linux-riscv64-cpython-312/ezdxf/fonts/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/fonts copying build/lib.linux-riscv64-cpython-312/ezdxf/fonts/glyphs.py -> build/bdist.linux-riscv64/wheel/ezdxf/fonts copying build/lib.linux-riscv64-cpython-312/ezdxf/fonts/shapefile.py -> build/bdist.linux-riscv64/wheel/ezdxf/fonts copying build/lib.linux-riscv64-cpython-312/ezdxf/fonts/font_face.py -> build/bdist.linux-riscv64/wheel/ezdxf/fonts copying build/lib.linux-riscv64-cpython-312/ezdxf/fonts/lff.py -> build/bdist.linux-riscv64/wheel/ezdxf/fonts copying build/lib.linux-riscv64-cpython-312/ezdxf/fonts/font_measurements.py -> build/bdist.linux-riscv64/wheel/ezdxf/fonts copying build/lib.linux-riscv64-cpython-312/ezdxf/fonts/fonts.py -> build/bdist.linux-riscv64/wheel/ezdxf/fonts copying build/lib.linux-riscv64-cpython-312/ezdxf/fonts/font_synonyms.py -> build/bdist.linux-riscv64/wheel/ezdxf/fonts creating build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/curves.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/hatching.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/leader.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/polyline.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/dim_radius.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/__init__.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/forms.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/r12spline.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/mleader.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/trace.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/abstract_mtext_renderer.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/point.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/arrows.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/dim_ordinate.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/_linetypes.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/dim_curved.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/mline.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/linetypes.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/dimension.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/mesh.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/dim_diameter.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/dim_linear.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/render/dim_base.py -> build/bdist.linux-riscv64/wheel/ezdxf/render copying build/lib.linux-riscv64-cpython-312/ezdxf/bbox.py -> build/bdist.linux-riscv64/wheel/ezdxf running install_egg_info running egg_info creating src/ezdxf.egg-info writing src/ezdxf.egg-info/PKG-INFO writing dependency_links to src/ezdxf.egg-info/dependency_links.txt writing entry points to src/ezdxf.egg-info/entry_points.txt writing requirements to src/ezdxf.egg-info/requires.txt writing top-level names to src/ezdxf.egg-info/top_level.txt writing manifest file 'src/ezdxf.egg-info/SOURCES.txt' reading manifest file 'src/ezdxf.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching '*.hpp' under directory 'src/ezdxf/acc' warning: no files found matching '*.cpp' under directory 'src/ezdxf/acc' warning: no files found matching '*' under directory 'tests/data' adding license file 'LICENSE' writing manifest file 'src/ezdxf.egg-info/SOURCES.txt' Copying src/ezdxf.egg-info to build/bdist.linux-riscv64/wheel/ezdxf-1.2.0-py3.12.egg-info running install_scripts creating build/bdist.linux-riscv64/wheel/ezdxf-1.2.0.dist-info/WHEEL creating '/builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir/pip-wheel-kjco4co3/.tmp-vvgxv95f/ezdxf-1.2.0-cp312-cp312-linux_riscv64.whl' and adding 'build/bdist.linux-riscv64/wheel' to it adding 'ezdxf/__init__.py' adding 'ezdxf/__main__.py' adding 'ezdxf/_options.py' adding 'ezdxf/appsettings.py' adding 'ezdxf/audit.py' adding 'ezdxf/bbox.py' adding 'ezdxf/blkrefs.py' adding 'ezdxf/colors.py' adding 'ezdxf/commands.py' adding 'ezdxf/comments.py' adding 'ezdxf/disassemble.py' adding 'ezdxf/document.py' adding 'ezdxf/dwginfo.py' adding 'ezdxf/dynblkhelper.py' adding 'ezdxf/entitydb.py' adding 'ezdxf/enums.py' adding 'ezdxf/explode.py' adding 'ezdxf/eztypes.py' adding 'ezdxf/filemanagement.py' adding 'ezdxf/gfxattribs.py' adding 'ezdxf/graphicsfactory.py' adding 'ezdxf/groupby.py' adding 'ezdxf/npshapes.py' adding 'ezdxf/protocols.py' adding 'ezdxf/proxygraphic.py' adding 'ezdxf/py.typed' adding 'ezdxf/query.py' adding 'ezdxf/queryparser.py' adding 'ezdxf/r12strict.py' adding 'ezdxf/recover.py' adding 'ezdxf/reorder.py' adding 'ezdxf/transform.py' adding 'ezdxf/units.py' adding 'ezdxf/upright.py' adding 'ezdxf/urecord.py' adding 'ezdxf/version.py' adding 'ezdxf/xclip.py' adding 'ezdxf/xref.py' adding 'ezdxf/zoom.py' adding 'ezdxf/acc/__init__.py' adding 'ezdxf/acc/bezier3p.cpython-312-riscv64-linux-gnu.so' adding 'ezdxf/acc/bezier4p.cpython-312-riscv64-linux-gnu.so' adding 'ezdxf/acc/bspline.cpython-312-riscv64-linux-gnu.so' adding 'ezdxf/acc/construct.cpython-312-riscv64-linux-gnu.so' adding 'ezdxf/acc/linetypes.cpython-312-riscv64-linux-gnu.so' adding 'ezdxf/acc/mapbox_earcut.cpython-312-riscv64-linux-gnu.so' adding 'ezdxf/acc/matrix44.cpython-312-riscv64-linux-gnu.so' adding 'ezdxf/acc/np_support.cpython-312-riscv64-linux-gnu.so' adding 'ezdxf/acc/vector.cpython-312-riscv64-linux-gnu.so' adding 'ezdxf/acis/__init__.py' adding 'ezdxf/acis/abstract.py' adding 'ezdxf/acis/api.py' adding 'ezdxf/acis/const.py' adding 'ezdxf/acis/dbg.py' adding 'ezdxf/acis/dxf.py' adding 'ezdxf/acis/entities.py' adding 'ezdxf/acis/hdr.py' adding 'ezdxf/acis/mesh.py' adding 'ezdxf/acis/sab.py' adding 'ezdxf/acis/sat.py' adding 'ezdxf/addons/__init__.py' adding 'ezdxf/addons/acadctb.py' adding 'ezdxf/addons/binpacking.py' adding 'ezdxf/addons/dimlines.py' adding 'ezdxf/addons/dxf2code.py' adding 'ezdxf/addons/genetic_algorithm.py' adding 'ezdxf/addons/geo.py' adding 'ezdxf/addons/gerber_D6673.py' adding 'ezdxf/addons/importer.py' adding 'ezdxf/addons/iterdxf.py' adding 'ezdxf/addons/menger_sponge.py' adding 'ezdxf/addons/meshex.py' adding 'ezdxf/addons/mixins.py' adding 'ezdxf/addons/mtextsurrogate.py' adding 'ezdxf/addons/mtxpl.py' adding 'ezdxf/addons/odafc.py' adding 'ezdxf/addons/openscad.py' adding 'ezdxf/addons/pycsg.py' adding 'ezdxf/addons/r12export.py' adding 'ezdxf/addons/r12writer.py' adding 'ezdxf/addons/sierpinski_pyramid.py' adding 'ezdxf/addons/tablepainter.py' adding 'ezdxf/addons/text2path.py' adding 'ezdxf/addons/xplayer.py' adding 'ezdxf/addons/xqt.py' adding 'ezdxf/addons/acisbrowser/__init__.py' adding 'ezdxf/addons/acisbrowser/browser.py' adding 'ezdxf/addons/acisbrowser/data.py' adding 'ezdxf/addons/browser/__init__.py' adding 'ezdxf/addons/browser/bookmarks.py' adding 'ezdxf/addons/browser/browser.py' adding 'ezdxf/addons/browser/data.py' adding 'ezdxf/addons/browser/find_dialog.py' adding 'ezdxf/addons/browser/loader.py' adding 'ezdxf/addons/browser/model.py' adding 'ezdxf/addons/browser/tags.py' adding 'ezdxf/addons/browser/views.py' adding 'ezdxf/addons/drawing/__init__.py' adding 'ezdxf/addons/drawing/backend.py' adding 'ezdxf/addons/drawing/config.py' adding 'ezdxf/addons/drawing/debug_backend.py' adding 'ezdxf/addons/drawing/debug_utils.py' adding 'ezdxf/addons/drawing/designer.py' adding 'ezdxf/addons/drawing/dxf.py' adding 'ezdxf/addons/drawing/file_output.py' adding 'ezdxf/addons/drawing/frontend.py' adding 'ezdxf/addons/drawing/gfxproxy.py' adding 'ezdxf/addons/drawing/hpgl2.py' adding 'ezdxf/addons/drawing/layout.py' adding 'ezdxf/addons/drawing/matplotlib.py' adding 'ezdxf/addons/drawing/mtext_complex.py' adding 'ezdxf/addons/drawing/properties.py' adding 'ezdxf/addons/drawing/pymupdf.py' adding 'ezdxf/addons/drawing/pyqt.py' adding 'ezdxf/addons/drawing/qtviewer.py' adding 'ezdxf/addons/drawing/recorder.py' adding 'ezdxf/addons/drawing/svg.py' adding 'ezdxf/addons/drawing/text.py' adding 'ezdxf/addons/drawing/text_renderer.py' adding 'ezdxf/addons/drawing/type_hints.py' adding 'ezdxf/addons/drawing/unified_text_renderer.py' adding 'ezdxf/addons/dwg/__init__.py' adding 'ezdxf/addons/dwg/classes_section.py' adding 'ezdxf/addons/dwg/const.py' adding 'ezdxf/addons/dwg/crc.py' adding 'ezdxf/addons/dwg/fileheader.py' adding 'ezdxf/addons/dwg/header_section.py' adding 'ezdxf/addons/dwg/loader.py' adding 'ezdxf/addons/hpgl2/__init__.py' adding 'ezdxf/addons/hpgl2/api.py' adding 'ezdxf/addons/hpgl2/backend.py' adding 'ezdxf/addons/hpgl2/deps.py' adding 'ezdxf/addons/hpgl2/interpreter.py' adding 'ezdxf/addons/hpgl2/page.py' adding 'ezdxf/addons/hpgl2/plotter.py' adding 'ezdxf/addons/hpgl2/polygon_buffer.py' adding 'ezdxf/addons/hpgl2/properties.py' adding 'ezdxf/addons/hpgl2/tokenizer.py' adding 'ezdxf/addons/hpgl2/viewer.py' adding 'ezdxf/entities/__init__.py' adding 'ezdxf/entities/acad_proxy_entity.py' adding 'ezdxf/entities/acad_table.py' adding 'ezdxf/entities/acad_xrec_roundtrip.py' adding 'ezdxf/entities/acis.py' adding 'ezdxf/entities/appdata.py' adding 'ezdxf/entities/appid.py' adding 'ezdxf/entities/arc.py' adding 'ezdxf/entities/attrib.py' adding 'ezdxf/entities/block.py' adding 'ezdxf/entities/blockrecord.py' adding 'ezdxf/entities/boundary_paths.py' adding 'ezdxf/entities/circle.py' adding 'ezdxf/entities/copy.py' adding 'ezdxf/entities/dictionary.py' adding 'ezdxf/entities/dimension.py' adding 'ezdxf/entities/dimstyle.py' adding 'ezdxf/entities/dimstyleoverride.py' adding 'ezdxf/entities/dxfclass.py' adding 'ezdxf/entities/dxfentity.py' adding 'ezdxf/entities/dxfgfx.py' adding 'ezdxf/entities/dxfgroups.py' adding 'ezdxf/entities/dxfns.py' adding 'ezdxf/entities/dxfobj.py' adding 'ezdxf/entities/ellipse.py' adding 'ezdxf/entities/factory.py' adding 'ezdxf/entities/geodata.py' adding 'ezdxf/entities/gradient.py' adding 'ezdxf/entities/hatch.py' adding 'ezdxf/entities/helix.py' adding 'ezdxf/entities/idbuffer.py' adding 'ezdxf/entities/image.py' adding 'ezdxf/entities/insert.py' adding 'ezdxf/entities/layer.py' adding 'ezdxf/entities/layout.py' adding 'ezdxf/entities/leader.py' adding 'ezdxf/entities/light.py' adding 'ezdxf/entities/line.py' adding 'ezdxf/entities/ltype.py' adding 'ezdxf/entities/lwpolyline.py' adding 'ezdxf/entities/material.py' adding 'ezdxf/entities/mesh.py' adding 'ezdxf/entities/mleader.py' adding 'ezdxf/entities/mline.py' adding 'ezdxf/entities/mpolygon.py' adding 'ezdxf/entities/mtext.py' adding 'ezdxf/entities/mtext_columns.py' adding 'ezdxf/entities/objectcollection.py' adding 'ezdxf/entities/oleframe.py' adding 'ezdxf/entities/pattern.py' adding 'ezdxf/entities/point.py' adding 'ezdxf/entities/polygon.py' adding 'ezdxf/entities/polyline.py' adding 'ezdxf/entities/shape.py' adding 'ezdxf/entities/solid.py' adding 'ezdxf/entities/spatial_filter.py' adding 'ezdxf/entities/spline.py' adding 'ezdxf/entities/subentity.py' adding 'ezdxf/entities/sun.py' adding 'ezdxf/entities/table.py' adding 'ezdxf/entities/text.py' adding 'ezdxf/entities/textstyle.py' adding 'ezdxf/entities/tolerance.py' adding 'ezdxf/entities/ucs.py' adding 'ezdxf/entities/underlay.py' adding 'ezdxf/entities/view.py' adding 'ezdxf/entities/viewport.py' adding 'ezdxf/entities/visualstyle.py' adding 'ezdxf/entities/vport.py' adding 'ezdxf/entities/xdata.py' adding 'ezdxf/entities/xdict.py' adding 'ezdxf/entities/xline.py' adding 'ezdxf/fonts/__init__.py' adding 'ezdxf/fonts/font_face.py' adding 'ezdxf/fonts/font_manager.py' adding 'ezdxf/fonts/font_measurements.py' adding 'ezdxf/fonts/font_synonyms.py' adding 'ezdxf/fonts/fonts.py' adding 'ezdxf/fonts/glyphs.py' adding 'ezdxf/fonts/lff.py' adding 'ezdxf/fonts/shapefile.py' adding 'ezdxf/fonts/ttfonts.py' adding 'ezdxf/layouts/__init__.py' adding 'ezdxf/layouts/base.py' adding 'ezdxf/layouts/blocklayout.py' adding 'ezdxf/layouts/layout.py' adding 'ezdxf/layouts/layouts.py' adding 'ezdxf/lldxf/__init__.py' adding 'ezdxf/lldxf/attributes.py' adding 'ezdxf/lldxf/const.py' adding 'ezdxf/lldxf/encoding.py' adding 'ezdxf/lldxf/extendedtags.py' adding 'ezdxf/lldxf/fileindex.py' adding 'ezdxf/lldxf/hdrvars.py' adding 'ezdxf/lldxf/loader.py' adding 'ezdxf/lldxf/packedtags.py' adding 'ezdxf/lldxf/repair.py' adding 'ezdxf/lldxf/tagger.py' adding 'ezdxf/lldxf/tags.py' adding 'ezdxf/lldxf/tagwriter.py' adding 'ezdxf/lldxf/types.py' adding 'ezdxf/lldxf/validator.py' adding 'ezdxf/math/__init__.py' adding 'ezdxf/math/_bezier3p.py' adding 'ezdxf/math/_bezier4p.py' adding 'ezdxf/math/_bspline.py' adding 'ezdxf/math/_construct.py' adding 'ezdxf/math/_ctypes.py' adding 'ezdxf/math/_mapbox_earcut.py' adding 'ezdxf/math/_matrix44.py' adding 'ezdxf/math/_vector.py' adding 'ezdxf/math/arc.py' adding 'ezdxf/math/bbox.py' adding 'ezdxf/math/bezier.py' adding 'ezdxf/math/bezier_interpolation.py' adding 'ezdxf/math/box.py' adding 'ezdxf/math/bspline.py' adding 'ezdxf/math/bulge.py' adding 'ezdxf/math/circle.py' adding 'ezdxf/math/clipping.py' adding 'ezdxf/math/clustering.py' adding 'ezdxf/math/construct2d.py' adding 'ezdxf/math/construct3d.py' adding 'ezdxf/math/cspline.py' adding 'ezdxf/math/curvetools.py' adding 'ezdxf/math/ellipse.py' adding 'ezdxf/math/eulerspiral.py' adding 'ezdxf/math/legacy.py' adding 'ezdxf/math/linalg.py' adding 'ezdxf/math/line.py' adding 'ezdxf/math/offset2d.py' adding 'ezdxf/math/parametrize.py' adding 'ezdxf/math/perlin.py' adding 'ezdxf/math/polyline.py' adding 'ezdxf/math/rtree.py' adding 'ezdxf/math/shape.py' adding 'ezdxf/math/transformtools.py' adding 'ezdxf/math/triangulation.py' adding 'ezdxf/math/ucs.py' adding 'ezdxf/path/__init__.py' adding 'ezdxf/path/commands.py' adding 'ezdxf/path/converter.py' adding 'ezdxf/path/nesting.py' adding 'ezdxf/path/path.py' adding 'ezdxf/path/shapes.py' adding 'ezdxf/path/tools.py' adding 'ezdxf/pp/__init__.py' adding 'ezdxf/pp/dxfpp.css' adding 'ezdxf/pp/dxfpp.html' adding 'ezdxf/pp/dxfpp.js' adding 'ezdxf/pp/dxfpp.py' adding 'ezdxf/pp/pprint.py' adding 'ezdxf/pp/rawpp.css' adding 'ezdxf/pp/rawpp.html' adding 'ezdxf/pp/rawpp.py' adding 'ezdxf/pp/reflinks.py' adding 'ezdxf/render/__init__.py' adding 'ezdxf/render/_linetypes.py' adding 'ezdxf/render/abstract_mtext_renderer.py' adding 'ezdxf/render/arrows.py' adding 'ezdxf/render/curves.py' adding 'ezdxf/render/dim_base.py' adding 'ezdxf/render/dim_curved.py' adding 'ezdxf/render/dim_diameter.py' adding 'ezdxf/render/dim_linear.py' adding 'ezdxf/render/dim_ordinate.py' adding 'ezdxf/render/dim_radius.py' adding 'ezdxf/render/dimension.py' adding 'ezdxf/render/forms.py' adding 'ezdxf/render/hatching.py' adding 'ezdxf/render/leader.py' adding 'ezdxf/render/linetypes.py' adding 'ezdxf/render/mesh.py' adding 'ezdxf/render/mleader.py' adding 'ezdxf/render/mline.py' adding 'ezdxf/render/point.py' adding 'ezdxf/render/polyline.py' adding 'ezdxf/render/r12spline.py' adding 'ezdxf/render/trace.py' adding 'ezdxf/resources/16x16.png' adding 'ezdxf/resources/24x24.png' adding 'ezdxf/resources/256x256.png' adding 'ezdxf/resources/32x32.png' adding 'ezdxf/resources/48x48.png' adding 'ezdxf/resources/64x64.png' adding 'ezdxf/resources/icon-copy-64px.png' adding 'ezdxf/resources/icon-find-64px.png' adding 'ezdxf/resources/icon-goto-bookmark-64px.png' adding 'ezdxf/resources/icon-goto-handle-64px.png' adding 'ezdxf/resources/icon-goto-line-64px.png' adding 'ezdxf/resources/icon-left-arrow-64px.png' adding 'ezdxf/resources/icon-next-entity-64px.png' adding 'ezdxf/resources/icon-prev-entity-64px.png' adding 'ezdxf/resources/icon-right-arrow-64px.png' adding 'ezdxf/resources/icon-show-in-tree-64px.png' adding 'ezdxf/resources/icon-store-bookmark-64px.png' adding 'ezdxf/sections/__init__.py' adding 'ezdxf/sections/acdsdata.py' adding 'ezdxf/sections/blocks.py' adding 'ezdxf/sections/classes.py' adding 'ezdxf/sections/entities.py' adding 'ezdxf/sections/header.py' adding 'ezdxf/sections/headervars.py' adding 'ezdxf/sections/objects.py' adding 'ezdxf/sections/table.py' adding 'ezdxf/sections/tables.py' adding 'ezdxf/tools/__init__.py' adding 'ezdxf/tools/_iso_pattern.py' adding 'ezdxf/tools/analyze.py' adding 'ezdxf/tools/binarydata.py' adding 'ezdxf/tools/clipping_portal.py' adding 'ezdxf/tools/codepage.py' adding 'ezdxf/tools/complex_ltype.py' adding 'ezdxf/tools/crypt.py' adding 'ezdxf/tools/debug.py' adding 'ezdxf/tools/difftags.py' adding 'ezdxf/tools/handle.py' adding 'ezdxf/tools/indexing.py' adding 'ezdxf/tools/juliandate.py' adding 'ezdxf/tools/pattern.py' adding 'ezdxf/tools/rawloader.py' adding 'ezdxf/tools/standards.py' adding 'ezdxf/tools/strip.py' adding 'ezdxf/tools/test.py' adding 'ezdxf/tools/text.py' adding 'ezdxf/tools/text_layout.py' adding 'ezdxf/tools/text_size.py' adding 'ezdxf/tools/zipmanager.py' adding 'ezdxf-1.2.0.dist-info/LICENSE' adding 'ezdxf-1.2.0.dist-info/METADATA' adding 'ezdxf-1.2.0.dist-info/WHEEL' adding 'ezdxf-1.2.0.dist-info/entry_points.txt' adding 'ezdxf-1.2.0.dist-info/top_level.txt' adding 'ezdxf-1.2.0.dist-info/RECORD' removing build/bdist.linux-riscv64/wheel Building wheel for ezdxf (pyproject.toml): finished with status 'done' Created wheel for ezdxf: filename=ezdxf-1.2.0-cp312-cp312-linux_riscv64.whl size=4056028 sha256=f76bcfb3114d85af2ddc86333aefe9b38dbccc23a0b18a8dc0686a6b320285b5 Stored in directory: /builddir/.cache/pip/wheels/42/65/62/d8953bda1f4c5d6426ee03dd47378da38ad7d82b5341240f22 Successfully built ezdxf + find docs -type f -name '*.svg' + read -r fn ++ dirname docs/source/dxfinternals/entities/gfx/dimension_defpoints.svg ++ basename docs/source/dxfinternals/entities/gfx/dimension_defpoints.svg .svg + rsvg-convert --format=pdf docs/source/dxfinternals/entities/gfx/dimension_defpoints.svg --output=docs/source/dxfinternals/entities/gfx/dimension_defpoints.pdf + read -r fn ++ dirname docs/source/dxfinternals/tables/gfx/dimtad-dimjust.svg ++ basename docs/source/dxfinternals/tables/gfx/dimtad-dimjust.svg .svg + rsvg-convert --format=pdf docs/source/dxfinternals/tables/gfx/dimtad-dimjust.svg --output=docs/source/dxfinternals/tables/gfx/dimtad-dimjust.pdf + read -r fn ++ dirname docs/source/dxfinternals/tables/gfx/dimvars2.svg ++ basename docs/source/dxfinternals/tables/gfx/dimvars2.svg .svg + rsvg-convert --format=pdf docs/source/dxfinternals/tables/gfx/dimvars2.svg --output=docs/source/dxfinternals/tables/gfx/dimvars2.pdf + read -r fn ++ dirname docs/source/dxfinternals/tables/gfx/dimvars1.svg ++ basename docs/source/dxfinternals/tables/gfx/dimvars1.svg .svg + rsvg-convert --format=pdf docs/source/dxfinternals/tables/gfx/dimvars1.svg --output=docs/source/dxfinternals/tables/gfx/dimvars1.pdf + read -r fn ++ dirname docs/source/gfx/gear.svg ++ basename docs/source/gfx/gear.svg .svg + rsvg-convert --format=pdf docs/source/gfx/gear.svg --output=docs/source/gfx/gear.pdf + read -r fn ++ dirname docs/source/gfx/ezdxf-logo-light-bg.svg ++ basename docs/source/gfx/ezdxf-logo-light-bg.svg .svg + rsvg-convert --format=pdf docs/source/gfx/ezdxf-logo-light-bg.svg --output=docs/source/gfx/ezdxf-logo-light-bg.pdf + read -r fn ++ dirname docs/graphics/ezdxf-logo-dark-bg.svg ++ basename docs/graphics/ezdxf-logo-dark-bg.svg .svg + rsvg-convert --format=pdf docs/graphics/ezdxf-logo-dark-bg.svg --output=docs/graphics/ezdxf-logo-dark-bg.pdf + read -r fn ++ dirname docs/graphics/ezdxf-logo-light-bg.svg ++ basename docs/graphics/ezdxf-logo-light-bg.svg .svg + rsvg-convert --format=pdf docs/graphics/ezdxf-logo-light-bg.svg --output=docs/graphics/ezdxf-logo-light-bg.pdf + read -r fn + find docs/source -type f -exec gawk '/\.svg/ { print FILENAME; nextfile }' '{}' + + xargs -r -t sed -r -i 's/\.svg/\.pdf/g' sed -r -i 's/\.svg/\.pdf/g' docs/source/dxfinternals/entities/dimension_entity.rst docs/source/dxfinternals/tables/dimstyle_table.rst docs/source/tables/dimstyle_table_entry.rst docs/source/addons/drawing.rst docs/source/launcher.rst docs/source/index.rst docs/source/tutorials/image_export.rst docs/source/tutorials/src/export/.gitignore docs/source/tutorials/src/export/change_bg_color.py docs/source/tutorials/src/export/page_auto_detect.py docs/source/tutorials/src/export/basic_svg.py + BLIB=/builddir/build/BUILD/ezdxf-1.2.0/build/lib.linux-riscv64-cpython-312 + PYTHONPATH=/builddir/build/BUILD/ezdxf-1.2.0/build/lib.linux-riscv64-cpython-312 + /usr/bin/make -O -j4 V=1 VERBOSE=1 -C docs -f Makefile.linux latex SPHINXOPTS=-j4 make: Entering directory '/builddir/build/BUILD/ezdxf-1.2.0/docs' sphinx-build -b latex -d build/doctrees -j4 source build/latex Running Sphinx v7.2.6 making output directory... done [autosummary] generating autosummary for: addons/acadctb.rst, addons/binpacking.rst, addons/drawing.rst, addons/dxf2code.rst, addons/forms.rst, addons/geo.rst, addons/gerber_D6673.rst, addons/hpgl2.rst, addons/importer.rst, addons/index.rst, ..., tutorials/ucs_transform.rst, tutorials/underlay.rst, tutorials/xref_module.rst, upright.rst, usage_for_beginners.rst, user_record.rst, user_xdata.rst, xdata.rst, xdict.rst, xref.rst building [mo]: targets for 0 po files that are out of date writing output... building [latex]: all documents updating environment: [new config] 256 added, 0 changed, 0 removed reading sources... [ 9%] addons/acadctb .. blocks/attdef reading sources... [ 18%] blocks/attrib .. develop/doc_formatting_guide reading sources... [ 27%] develop/dxftag_collections .. dxfentities/image reading sources... [ 36%] dxfentities/index .. dxfinternals/datamodel reading sources... [ 45%] dxfinternals/dxftags .. dxfinternals/tables/layer_table reading sources... [ 55%] dxfinternals/tables/linetype_table .. howto/content Python module PyMuPDF (AGPL!) is required: https://pypi.org/project/PyMuPDF/ reading sources... [ 64%] howto/document .. query reading sources... [ 73%] r12strict .. tables/index reading sources... [ 82%] tables/layer_table_entry .. tutorials/geo reading sources... [ 91%] tutorials/getting_data .. upright reading sources... [100%] usage_for_beginners .. xref looking for now-outdated files... none found pickling environment... done checking consistency... done copying TeX support files... copying TeX support files... done processing ezdxf.tex... index introduction setup usage_for_beginners concepts/index concepts/dxf concepts/entities concepts/aci concepts/true_color concepts/transparency concepts/layers concepts/linetypes concepts/lineweights concepts/coordinates concepts/ocs concepts/units concepts/modelspace concepts/paperspace concepts/blocks concepts/extents_limits concepts/fonts tutorials/index tutorials/getting_data tutorials/simple_drawings tutorials/common_graphical_attributes tutorials/layers tutorials/linetypes tutorials/dxf_primitives tutorials/blocks tutorials/lwpolyline tutorials/text tutorials/mtext tutorials/spline tutorials/polyface tutorials/mesh tutorials/hatch tutorials/hatch_pattern tutorials/image tutorials/underlay tutorials/mleader tutorials/psp_viewports tutorials/ocs_usage tutorials/ucs_transform tutorials/linear_dimension tutorials/radius_dimension tutorials/diameter_dimension tutorials/angular_dimension tutorials/arc_dimension tutorials/ordinate_dimension tutorials/geo tutorials/custom_data tutorials/xref_module tutorials/image_export xref howto/index howto/document howto/viewer howto/content howto/fonts howto/drawing-addon faq reference drawing/management drawing/drawing drawing/recover r12strict sections/index sections/header sections/classes sections/tables sections/blocks sections/entities sections/objects tables/index tables/tables tables/layer_table_entry tables/style_table_entry tables/linetype_table_entry tables/dimstyle_table_entry tables/vport_table_entry tables/view_table_entry tables/appid_table_entry tables/ucs_table_entry tables/blockrecord_table_entry blocks/index blocks/block blocks/insert blocks/attrib blocks/attdef layouts/index layouts/layout_manager layouts/layouts groups dxfentities/index dxfentities/dxfentity dxfentities/dxfgfx dxfentities/3dface dxfentities/3dsolid dxfentities/acad_proxy_entity dxfentities/arc dxfentities/body dxfentities/circle dxfentities/dimension dxfentities/arcdim dxfentities/ellipse dxfentities/hatch dxfentities/helix dxfentities/image dxfentities/leader dxfentities/line dxfentities/lwpolyline dxfentities/mline dxfentities/mesh dxfentities/mpolygon dxfentities/mtext dxfentities/mleader dxfentities/point dxfentities/polyline dxfentities/ray dxfentities/region dxfentities/shape dxfentities/solid dxfentities/spline dxfentities/surface dxfentities/text dxfentities/trace dxfentities/underlay dxfentities/viewport dxfentities/wipeout dxfentities/xline dxfobjects/index dxfobjects/dictionary dxfobjects/dxflayout dxfobjects/dxfobject dxfobjects/geodata dxfobjects/imagedef dxfobjects/mleaderstyle dxfobjects/placeholder dxfobjects/plotsettings dxfobjects/spatial_filter dxfobjects/sun dxfobjects/underlaydef dxfobjects/xrecord xdata appdata xdict reactors blkrefs const entity_creation enums colors query groupby math/core math/clipping math/clustering math/linalg math/rtree math/triangulation bbox disassemble math_construction_tools path reorder transform upright user_xdata user_record tools/fonts tools/acis tools/appsettings tools/comments tools/gfxattribs tools/text tools/text_size tools/xclip tools/zoom options low_level_tools/functions low_level_tools/dxf_unicode_decoder low_level_tools/sat_crypt launcher render/index render/curves render/forms render/mesh render/trace render/point render/mleader render/arrows render/hatching addons/index addons/drawing addons/geo addons/importer addons/dxf2code addons/iterdxf addons/odafc addons/r12export addons/r12writer addons/text2path addons/mtxpl addons/hpgl2 addons/pycsg addons/acadctb addons/forms addons/binpacking addons/meshex addons/openscad addons/tablepainter addons/mtextsurrogate addons/gerber_D6673 dxfinternals/index dxfinternals/fileencoding dxfinternals/dxftags dxfinternals/handles dxfinternals/filestructure dxfinternals/datamodel dxfinternals/sections/index dxfinternals/sections/header_section dxfinternals/sections/classes_section dxfinternals/sections/tables_section dxfinternals/tables/appid_table dxfinternals/tables/block_record_table dxfinternals/tables/dimstyle_table dxfinternals/tables/layer_table dxfinternals/tables/linetype_table dxfinternals/tables/style_table dxfinternals/tables/ucs_table dxfinternals/tables/view_table dxfinternals/tables/vport_table dxfinternals/sections/blocks_section dxfinternals/sections/entities_section dxfinternals/sections/objects_section dxfinternals/tables/index dxfinternals/entities/index dxfinternals/entities/dimension_entity dxfinternals/entities/mesh dxfinternals/entities/mleader dxfinternals/entities/mtext dxfinternals/objects/index dxfinternals/block_management dxfinternals/layout_management dxfinternals/rendering_of_dxf_content develop/index develop/pkg-design develop/entitydb develop/dxftags develop/dxftag_collections develop/xdata develop/appdata develop/reactors develop/doc_formatting_guide glossary knowledgegraph resolving references... done writing... done copying images... [ 0%] gfx/ezdxf-logo-light-bg.pdf copying images... [ 1%] gfx/ACI-Color-Wheel.png copying images... [ 1%] gfx/True-Color-Wheel.png copying images... [ 2%] concepts/all_std_line_types.png copying images... [ 2%] gfx/valid_lineweights.png copying images... [ 2%] gfx/zoom_overview_800px.png copying images... [ 3%] gfx/zoom_extents_800px.png copying images... [ 3%] gfx/zoom_all_800px.png copying images... [ 4%] tutorials/gfx/ltype_simple.jpg copying images... [ 4%] tutorials/gfx/ltype_text.jpg copying images... [ 4%] tutorials/gfx/ltype_shape.jpg copying images... [ 5%] tutorials/gfx/LWPolyline5.PNG copying images... [ 5%] tutorials/gfx/bulge.png copying images... [ 6%] tutorials/gfx/fonts.png copying images... [ 6%] tutorials/gfx/mtext_without_width.png copying images... [ 6%] tutorials/gfx/mtext_width_60.png copying images... [ 7%] tutorials/gfx/mtext_rgb.png copying images... [ 7%] tutorials/gfx/mtext_stacked.png copying images... [ 8%] tutorials/gfx/mtext_bg_color.png copying images... [ 8%] tutorials/gfx/mtext_editor_colors.png copying images... [ 8%] tutorials/gfx/mtext_editor_text_height.png copying images... [ 9%] tutorials/gfx/mtext_editor_fonts.png copying images... [ 9%] tutorials/gfx/mtext_editor_indent_first.png copying images... [ 10%] tutorials/gfx/mtext_editor_indent_left.png copying images... [ 10%] tutorials/gfx/mtext_editor_bullet_list.png copying images... [ 10%] tutorials/gfx/mtext_editor_numbered_list.png copying images... [ 11%] tutorials/gfx/mtext_editor_stacking.png copying images... [ 11%] tutorials/gfx/spline1.png copying images... [ 12%] tutorials/gfx/spline2.png copying images... [ 12%] tutorials/gfx/spline3.png copying images... [ 12%] tutorials/gfx/spline4.png copying images... [ 13%] tutorials/gfx/spline6.png copying images... [ 13%] tutorials/gfx/spline7.png copying images... [ 14%] tutorials/gfx/spline8.png copying images... [ 14%] tutorials/gfx/spline9.png copying images... [ 14%] tutorials/gfx/mesh_cubes.png copying images... [ 15%] tutorials/gfx/gear_along_helix.png copying images... [ 15%] tutorials/gfx/hatch-island-01.png copying images... [ 16%] tutorials/gfx/hatch-island-02.png copying images... [ 16%] tutorials/gfx/hatch-island-03.png copying images... [ 16%] tutorials/gfx/hatch-island-04.png copying images... [ 17%] tutorials/gfx/hatch-edge-path.png copying images... [ 17%] tutorials/gfx/hatch-predefined-pattern.png copying images... [ 18%] tutorials/gfx/hatch_pattern_1.png copying images... [ 18%] tutorials/gfx/hatch_pattern_2.png copying images... [ 18%] tutorials/gfx/hatch_pattern_3.png copying images... [ 19%] tutorials/gfx/hatch_pattern_4.png copying images... [ 19%] tutorials/gfx/mleader_mtext_quick_leader_0.png copying images... [ 20%] tutorials/gfx/mleader_mtext_quick_leader_1.png copying images... [ 20%] tutorials/gfx/mleader_mtext_quick_leader_2.png copying images... [ 20%] tutorials/gfx/mleader_mtext_left.png copying images... [ 21%] tutorials/gfx/mleader_mtext_right.png copying images... [ 21%] tutorials/gfx/mleader_mtext_left_right_1.png copying images... [ 22%] tutorials/gfx/mleader_mtext_left_right_2.png copying images... [ 22%] tutorials/gfx/mleader_mtext_left_right_3.png copying images... [ 22%] tutorials/gfx/mleader_mtext_horiz_connection_types.png copying images... [ 23%] tutorials/gfx/mleader_block_horiz_1.png copying images... [ 23%] tutorials/gfx/mleader_block_vertical_1.png copying images... [ 24%] tutorials/gfx/mleader_block_horiz_2.png copying images... [ 24%] tutorials/gfx/mleader_block_horiz_3.png copying images... [ 24%] tutorials/gfx/mleader_block_rotated.png copying images... [ 25%] tutorials/gfx/mleader_landing_props.png copying images... [ 25%] tutorials/gfx/mleader_polyline_leader.png copying images... [ 25%] tutorials/gfx/mleader_spline_leader.png copying images... [ 26%] tutorials/gfx/mleader_line_properties.png copying images... [ 26%] tutorials/gfx/mleader_arrow.png copying images... [ 27%] tutorials/gfx/vp-tut-msp-content.png copying images... [ 27%] tutorials/gfx/vp-tut-psp-content.png copying images... [ 27%] tutorials/gfx/ocs-circle-side-view.png copying images... [ 28%] tutorials/gfx/ocs-circle-front-view.png copying images... [ 28%] tutorials/gfx/ocs-lwpolyline-left.png copying images... [ 29%] tutorials/gfx/ocs-lwpolyline-front.png copying images... [ 29%] tutorials/gfx/ucs-polyline3d.png copying images... [ 29%] tutorials/gfx/ocs-text-top.png copying images... [ 30%] tutorials/gfx/ocs-text-front.png copying images... [ 30%] tutorials/gfx/ocs-arc-top.png copying images... [ 31%] tutorials/gfx/ocs-arc-front.png copying images... [ 31%] tutorials/gfx/insert_1.png copying images... [ 31%] tutorials/gfx/insert_2.png copying images... [ 32%] tutorials/gfx/insert_3.png copying images... [ 32%] tutorials/gfx/insert_4.png copying images... [ 33%] tutorials/gfx/insert_5.png copying images... [ 33%] tutorials/gfx/insert_6.png copying images... [ 33%] tutorials/gfx/insert_7.png copying images... [ 34%] tutorials/gfx/insert_8.png copying images... [ 34%] tutorials/gfx/ucs-circle-side-view.png copying images... [ 35%] tutorials/gfx/ucs-circle-front-view.png copying images... [ 35%] tutorials/gfx/ucs-lwpolyline-side-view.png copying images... [ 35%] tutorials/gfx/ucs-lwpolyline-front-view.png copying images... [ 36%] tutorials/gfx/ucs-polyline3d-bricscad.png copying images... [ 36%] tutorials/gfx/ucs-text-top-bricscad.png copying images... [ 37%] tutorials/gfx/ucs-text-front-bricscad.png copying images... [ 37%] tutorials/gfx/ucs-arc-top.png copying images... [ 37%] tutorials/gfx/ucs-arc-front.png copying images... [ 38%] tutorials/gfx/ucs-insert-01-iso.png copying images... [ 38%] tutorials/gfx/ucs-insert-01-side.png copying images... [ 39%] tutorials/gfx/ucs-insert-02-iso.png copying images... [ 39%] tutorials/gfx/ucs-insert-02-side.png copying images... [ 39%] tutorials/gfx/ucs-insert-03-iso.png copying images... [ 40%] tutorials/gfx/ucs-insert-03-side.png copying images... [ 40%] tutorials/gfx/ucs-insert-04-iso.png copying images... [ 41%] tutorials/gfx/ucs-insert-04-side.png copying images... [ 41%] tutorials/gfx/dim_linear_horiz.png copying images... [ 41%] tutorials/gfx/dim_linear_rotated.png copying images... [ 42%] tutorials/gfx/dim_linear_aligned.png copying images... [ 42%] tutorials/gfx/dim_linear_dimjust.png copying images... [ 43%] tutorials/gfx/dim_linear_dimtad.png copying images... [ 43%] tutorials/gfx/dim_linear_user_location_absolute.png copying images... [ 43%] tutorials/gfx/dim_linear_user_location_relative.png copying images... [ 44%] tutorials/gfx/dim_linear_user_location_shift.png copying images... [ 44%] tutorials/gfx/dim_linear_text.png copying images... [ 45%] tutorials/gfx/dim_linear_bg_filling.png copying images... [ 45%] tutorials/gfx/dim_linear_text_override.png copying images... [ 45%] tutorials/gfx/dim_linear_dimline_properties.png copying images... [ 46%] tutorials/gfx/dim_linear_extline_properties.png copying images... [ 46%] tutorials/gfx/dim_linear_extline_dimfxl.png copying images... [ 47%] tutorials/gfx/dim_linear_extline_suppress.png copying images... [ 47%] tutorials/gfx/all_arrows.png copying images... [ 47%] tutorials/gfx/dim_linear_tol.png copying images... [ 48%] tutorials/gfx/dim_linear_tol_upr_lwr.png copying images... [ 48%] tutorials/gfx/dim_linear_limits.png copying images... [ 49%] tutorials/gfx/dim_radial_outside.png copying images... [ 49%] tutorials/gfx/dim_radial_outside_horiz.png copying images... [ 49%] tutorials/gfx/dim_radial_inside_0.png copying images... [ 50%] tutorials/gfx/dim_radial_inside_1.png copying images... [ 50%] tutorials/gfx/dim_radial_inside_horiz.png copying images... [ 51%] tutorials/gfx/dim_radial_user_outside.png copying images... [ 51%] tutorials/gfx/dim_radial_user_outside_horiz.png copying images... [ 51%] tutorials/gfx/dim_radial_user_inside_0.png copying images... [ 52%] tutorials/gfx/dim_radial_user_inside_2.png copying images... [ 52%] tutorials/gfx/dim_radial_user_inside_horiz.png copying images... [ 53%] tutorials/gfx/dim_center_mark.png copying images... [ 53%] tutorials/gfx/dim_diameter_outside.png copying images... [ 53%] tutorials/gfx/dim_diameter_outside_horiz.png copying images... [ 54%] tutorials/gfx/dim_diameter_inside.png copying images... [ 54%] tutorials/gfx/dim_diameter_inside_horiz.png copying images... [ 55%] tutorials/gfx/dim_diameter_user_outside.png copying images... [ 55%] tutorials/gfx/dim_diameter_user_outside_horiz.png copying images... [ 55%] tutorials/gfx/dim_diameter_user_inside.png copying images... [ 56%] tutorials/gfx/dim_diameter_user_inside_horiz.png copying images... [ 56%] tutorials/gfx/dim_angular_cra.png copying images... [ 57%] tutorials/gfx/dim_angular_2l.png copying images... [ 57%] tutorials/gfx/dim_angular_3p.png copying images... [ 57%] tutorials/gfx/dim_angular_from_arc.png copying images... [ 58%] tutorials/gfx/dim_angular_dimtad.png copying images... [ 58%] tutorials/gfx/dim_angular_outside.png copying images... [ 59%] tutorials/gfx/dim_angular_shift_text.png copying images... [ 59%] tutorials/gfx/dim_angular_user_location_1.png copying images... [ 59%] tutorials/gfx/dim_angular_user_location_2.png copying images... [ 60%] tutorials/gfx/dim_angular_user_location_3.png copying images... [ 60%] tutorials/gfx/dim_angular_user_location_4.png copying images... [ 61%] tutorials/gfx/dim_angular_user_location_5.png copying images... [ 61%] tutorials/gfx/dim_angular_dimaunit.png copying images... [ 61%] tutorials/gfx/dim_angular_dms.png copying images... [ 62%] tutorials/gfx/dim_arc_cra.png copying images... [ 62%] tutorials/gfx/dim_arc_3p.png copying images... [ 63%] tutorials/gfx/dim_ord_global.png copying images... [ 63%] tutorials/gfx/dim_ord_local.png copying images... [ 63%] tutorials/gfx/gpx_tracks.png copying images... [ 64%] tutorials/gfx/custom_header_property.png copying images... [ 64%] tutorials/gfx/xref_doc.png copying images... [ 65%] tutorials/gfx/xref_attached_dxf.png copying images... [ 65%] tutorials/gfx/xref_attached_dwg.png copying images... [ 65%] tutorials/gfx/xref_merged.png copying images... [ 66%] tutorials/gfx/image_export_01.png copying images... [ 66%] tutorials/gfx/image_export_02.png copying images... [ 67%] tutorials/gfx/image_export_03.png copying images... [ 67%] tutorials/gfx/image_export_04.png copying images... [ 67%] tutorials/gfx/image_export_pdf_01.png copying images... [ 68%] tutorials/gfx/image_export_pdf_02.png copying images... [ 68%] tutorials/gfx/image_export_plt_01.png copying images... [ 69%] howto/gfx/trueview_2020_zoom_to_extends.png copying images... [ 69%] howto/gfx/autodesk_online_viewer_zoom_to_extends.png copying images... [ 69%] howto/gfx/bg0.png copying images... [ 70%] howto/gfx/bg1.png copying images... [ 70%] howto/gfx/bg2.png copying images... [ 71%] howto/gfx/bg3.png copying images... [ 71%] howto/gfx/lineweight_table.png copying images... [ 71%] gfx/font_properties.png copying images... [ 72%] dxfinternals/tables/gfx/dimvars1.pdf copying images... [ 72%] dxfinternals/tables/gfx/dimvars2.pdf copying images... [ 73%] dxfentities/gfx/3dface.png copying images... [ 73%] gfx/pdmode.png copying images... [ 73%] dxfentities/gfx/solid0.png copying images... [ 74%] dxfentities/gfx/solid1.png copying images... [ 74%] math/gfx/offset_vertices_2d_1.png copying images... [ 75%] math/gfx/offset_vertices_2d_2.png copying images... [ 75%] gfx/upright_arc_0.png copying images... [ 75%] gfx/upright_arc_1.png copying images... [ 76%] tools/gfx/solids-acis.png copying images... [ 76%] tools/gfx/solids-mesh.png copying images... [ 76%] tools/gfx/cropped-block-reference.png copying images... [ 77%] gfx/gear-pp.png copying images... [ 77%] gfx/gear.pdf copying images... [ 78%] gfx/gear-qt-backend.png copying images... [ 78%] gfx/gear-browse.png copying images... [ 78%] gfx/browse-acis-3dsolid.png copying images... [ 79%] render/gfx/_ARCHTICK.png copying images... [ 79%] render/gfx/_CLOSEDFILLED.png copying images... [ 80%] render/gfx/_DOT.png copying images... [ 80%] render/gfx/_DOTSMALL.png copying images... [ 80%] render/gfx/_DOTBLANK.png copying images... [ 81%] render/gfx/_ORIGIN.png copying images... [ 81%] render/gfx/_ORIGIN2.png copying images... [ 82%] render/gfx/_OPEN.png copying images... [ 82%] render/gfx/_OPEN90.png copying images... [ 82%] render/gfx/_OPEN30.png copying images... [ 83%] render/gfx/_CLOSED.png copying images... [ 83%] render/gfx/_SMALL.png copying images... [ 84%] render/gfx/_NONE.png copying images... [ 84%] render/gfx/_OBLIQUE.png copying images... [ 84%] render/gfx/_BOXFILLED.png copying images... [ 85%] render/gfx/_BOXBLANK.png copying images... [ 85%] render/gfx/_CLOSEDBLANK.png copying images... [ 86%] render/gfx/_DATUMFILLED.png copying images... [ 86%] render/gfx/_DATUMBLANK.png copying images... [ 86%] render/gfx/_INTEGRAL.png copying images... [ 87%] render/gfx/EZ_ARROW.png copying images... [ 87%] render/gfx/EZ_ARROW_BLANK.png copying images... [ 88%] render/gfx/EZ_ARROW_FILLED.png copying images... [ 88%] addons/gfx/pycsg01.png copying images... [ 88%] addons/gfx/pycsg02.png copying images... [ 89%] addons/gfx/menger_sponge_vs_sphere_level_3.png copying images... [ 89%] addons/gfx/ctb_line_end_style.png copying images... [ 90%] addons/gfx/ctb_line_join_style.png copying images... [ 90%] addons/gfx/ctb_line_fill_style.png copying images... [ 90%] addons/gfx/ctb_linetypes_1.png copying images... [ 91%] addons/gfx/ctb_linetypes_2.png copying images... [ 91%] addons/gfx/menger_sponge_0.png copying images... [ 92%] addons/gfx/menger_sponge_1.png copying images... [ 92%] addons/gfx/menger_sponge_2.png copying images... [ 92%] addons/gfx/jerusalem_cube.png copying images... [ 93%] addons/gfx/sierpinski_pyramid_3.png copying images... [ 93%] addons/gfx/sierpinski_pyramid_4.png copying images... [ 94%] addons/gfx/binpacking-example.png copying images... [ 94%] addons/gfx/openscad_menger_minus_sphere.png copying images... [ 94%] addons/gfx/table_painter_addon.png copying images... [ 95%] dxfinternals/tables/gfx/dimtad-dimjust.pdf copying images... [ 95%] dxfinternals/tables/gfx/tiled_view.png copying images... [ 96%] dxfinternals/entities/gfx/dimension_defpoints.pdf copying images... [ 96%] dxfinternals/entities/gfx/mesh_cube_0.png copying images... [ 96%] dxfinternals/entities/gfx/mesh_cube_3.png copying images... [ 97%] dxfinternals/entities/gfx/mesh_cube_3_front.png copying images... [ 97%] dxfinternals/entities/gfx/mesh_cube_2.png copying images... [ 98%] dxfinternals/entities/gfx/mesh_cube_1.png copying images... [ 98%] dxfinternals/entities/gfx/mtext_bg_color_red.png copying images... [ 98%] dxfinternals/entities/gfx/mtext_cols_bg.png copying images... [ 99%] dxfinternals/entities/gfx/mtext_cols_static.png copying images... [ 99%] dxfinternals/entities/gfx/mtext_cols_dynamic_manual.png copying images... [100%] dxfinternals/gfx/block_definition.png copying images... [100%] dxfinternals/gfx/main_viewport.jpg build succeeded, 2 warnings. The LaTeX files are in build/latex. Run 'make' in that directory to run these through (pdf)latex (use `make latexpdf' here to do that automatically). Build finished; the LaTeX files are in build/latex. Run `make' in that directory to run these through (pdf)latex (use `make latexpdf' here to do that automatically). make: Leaving directory '/builddir/build/BUILD/ezdxf-1.2.0/docs' Matplotlib is building the font cache; this may take a moment. WARNING: autodoc: failed to import class 'pyqt.PyQtBackend' from module 'ezdxf.addons.drawing'; the following exception was raised: no Qt binding found, tried PySide6 and PyQt5 WARNING: autodoc: failed to import class 'pdf.SVGBackend' from module 'ezdxf.addons.drawing'; the following exception was raised: No module named 'ezdxf.addons.drawing.pdf' + /usr/bin/make -O -j4 V=1 VERBOSE=1 -C docs/build/latex LATEXMKOPTS=-quiet make: Entering directory '/builddir/build/BUILD/ezdxf-1.2.0/docs/build/latex' latexmk -pdf -dvi- -ps- -quiet 'ezdxf.tex' Rc files read: /etc/latexmkrc latexmkrc Latexmk: Run number 1 of rule 'pdflatex' This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex) restricted \write18 enabled. entering extended mode Latexmk: Getting log file 'ezdxf.log' Latexmk: Run number 1 of rule 'makeindex ezdxf.idx' Latexmk: Run number 2 of rule 'pdflatex' This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex) restricted \write18 enabled. entering extended mode Latexmk: Getting log file 'ezdxf.log' Latexmk: Run number 3 of rule 'pdflatex' This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex) restricted \write18 enabled. entering extended mode Latexmk: Getting log file 'ezdxf.log' Latexmk: Run number 4 of rule 'pdflatex' This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex) restricted \write18 enabled. entering extended mode Latexmk: Getting log file 'ezdxf.log' Latexmk: Summary of warnings from last run of *latex: =====Latex reported missing or unavailable character(s). =====See log file for details. make: Leaving directory '/builddir/build/BUILD/ezdxf-1.2.0/docs/build/latex' Latexmk: ====Undefined refs and citations with line #s in .tex file: Missing character: There is no 你 (U+4F60) in font [FreeMono.otf]/OT:script=latn Missing character: There is no 你 (U+4F60) in font [FreeMono.otf]/OT:script=latn;language=dflt;! Missing character: There is no 好 (U+597D) in font [FreeMono.otf]/OT:script=latn Missing character: There is no 好 (U+597D) in font [FreeMono.otf]/OT:script=latn;language=dflt;! Missing character: There is no , (U+FF0C) in font [FreeMono.otf]/OT:script=latn Missing character: There is no , (U+FF0C) in font [FreeMono.otf]/OT:script=latn;language=dflt;! Missing character: There is no 世 (U+4E16) in font [FreeMono.otf]/OT:script=latn And 3 more --- see log file 'ezdxf.log' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.teQirn + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64 ++ dirname /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64 + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd ezdxf-1.2.0 ++ ls /builddir/build/BUILD/ezdxf-1.2.0/pyproject-wheeldir/ezdxf-1.2.0-cp312-cp312-linux_riscv64.whl ++ xargs basename --multiple ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=ezdxf==1.2.0 + '[' -z ezdxf==1.2.0 ']' + TMPDIR=/builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64 --prefix /usr --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links /builddir/build/BUILD/ezdxf-1.2.0/pyproject-wheeldir ezdxf==1.2.0 Using pip 23.3.2 from /usr/lib/python3.12/site-packages/pip (python 3.12) Looking in links: /builddir/build/BUILD/ezdxf-1.2.0/pyproject-wheeldir Processing ./pyproject-wheeldir/ezdxf-1.2.0-cp312-cp312-linux_riscv64.whl Installing collected packages: ezdxf Creating /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/bin changing mode of /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/bin/ezdxf to 755 Successfully installed ezdxf-1.2.0 + '[' -d /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/bin ']' + '[' -z sP ']' + shebang_flags=-kasP + /usr/bin/python3 -B /usr/lib/rpm/redhat/pathfix.py -pni /usr/bin/python3 -kasP /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/bin/ezdxf /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/bin/ezdxf: updating + rm -rfv /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/bin/__pycache__ + rm -f /builddir/build/BUILD/python-ezdxf-1.2.0-21.fc40.riscv64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib/python3.12/site-packages ']' + '[' /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib64/python3.12/site-packages '!=' /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib/python3.12/site-packages ']' + '[' -d /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib64/python3.12/site-packages ']' + site_dirs+=("/usr/lib64/python3.12/site-packages") + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64$site_dir/*.dist-info + echo '%ghost /usr/lib64/python3.12/site-packages/ezdxf-1.2.0.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib64/python3.12/site-packages/ezdxf-1.2.0.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/redhat + /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64 --record /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib64/python3.12/site-packages/ezdxf-1.2.0.dist-info/RECORD --output /builddir/build/BUILD/python-ezdxf-1.2.0-21.fc40.riscv64-pyproject-record + rm -fv /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib64/python3.12/site-packages/ezdxf-1.2.0.dist-info/RECORD removed '/builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib64/python3.12/site-packages/ezdxf-1.2.0.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib64/python3.12/site-packages/ezdxf-1.2.0.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib64/python3.12/site-packages/ezdxf-1.2.0.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/python-ezdxf-1.2.0-21.fc40.riscv64-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + RPM_PERCENTAGES_COUNT=2 + /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /builddir/build/BUILD/python-ezdxf-1.2.0-21.fc40.riscv64-pyproject-files --output-modules /builddir/build/BUILD/python-ezdxf-1.2.0-21.fc40.riscv64-pyproject-modules --buildroot /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64 --sitelib /usr/lib/python3.12/site-packages --sitearch /usr/lib64/python3.12/site-packages --python-version 3.12 --pyproject-record /builddir/build/BUILD/python-ezdxf-1.2.0-21.fc40.riscv64-pyproject-record --prefix /usr -l ezdxf + install -t /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/man/man1 -D -p -m 0644 /builddir/build/SOURCES/ezdxf.1 /builddir/build/SOURCES/ezdxf-audit.1 /builddir/build/SOURCES/ezdxf-browse.1 /builddir/build/SOURCES/ezdxf-browse-acis.1 /builddir/build/SOURCES/ezdxf-config.1 /builddir/build/SOURCES/ezdxf-draw.1 /builddir/build/SOURCES/ezdxf-hpgl.1 /builddir/build/SOURCES/ezdxf-info.1 /builddir/build/SOURCES/ezdxf-pp.1 /builddir/build/SOURCES/ezdxf-strip.1 /builddir/build/SOURCES/ezdxf-view.1 + /usr/bin/find-debuginfo -j4 --strict-build-id -m -i --build-id-seed 1.2.0-21.fc40 --unique-debug-suffix -1.2.0-21.fc40.riscv64 --unique-debug-src-base python-ezdxf-1.2.0-21.fc40.riscv64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 -S debugsourcefiles.list /builddir/build/BUILD/ezdxf-1.2.0 find-debuginfo: starting Extracting debug info from 9 files DWARF-compressing 9 files sepdebugcrcfix: Updated 9 CRC32s, 0 CRC32s did match. Creating .debug symlinks for symlinks to ELF files Copying sources found by 'debugedit -l' to /usr/src/debug/python-ezdxf-1.2.0-21.fc40.riscv64 15141 blocks find-debuginfo: done + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j4 Bytecompiling .py files below /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib64/python3.12 using python3.12 Bytecompiling .py files below /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib/debug/usr/lib64/python3.12 using python3.12 + /usr/lib/rpm/redhat/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.yLbsUD + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd ezdxf-1.2.0 + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + PATH=/builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib64/python3.12/site-packages:/builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib/python3.12/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir' + PYTEST_XDIST_AUTO_NUM_WORKERS=4 + /usr/bin/pytest -k '' tests integration_tests -v ============================= test session starts ============================== platform linux -- Python 3.12.2, pytest-7.4.3, pluggy-1.3.0 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /builddir/build/BUILD/ezdxf-1.2.0 configfile: pytest.ini collecting ... collected 7852 items / 3 skipped tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_init PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_immutability PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_equality PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_index_able PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_unpack PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_iterable PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_public_attributes PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_dxf_str PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_xcode_for PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_is_valid_handle PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_002_dxf_vertex.py::test_init PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_002_dxf_vertex.py::test_clone PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_002_dxf_vertex.py::test_dxf_tags PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_002_dxf_vertex.py::test_dxf_string PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_002_dxf_vertex.py::test_xdata_string PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::test_init PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::test_index_able PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::test_dxf_str PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::test_long_string PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::test_hexstr_to_bytes PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::TestBinaryDataToDXFTags::test_for_preceding_length_tag PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::TestBinaryDataToDXFTags::test_if_data_tag_values_are_bytes PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::TestBinaryDataToDXFTags::test_if_empty_data_creates_a_length_tag PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::TestBinaryDataToDXFTags::test_if_tag_value_size_is_limited_to_chunk_size PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::TestBinaryDataToDXFTags::test_if_merged_tag_values_matches_source_data PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test_single_value_code PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test_single_value_value PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test_single_value_str PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test_not_ispoint PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test_ispoint PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test__point_2coords PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test_point_3coords PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test_point_str PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_tag_array_init PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_tag_array_clone PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_inherited_array PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertex_array_basics PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertex_array_advanced PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertex_array_delete PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertex_array_delete_slices PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertex_array_insert PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertex_array_to_dxf_tags PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertext_array_transform_by_ucs PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertext_transform PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_010_binary_data.py::test_hexstr_to_bytes PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_010_binary_data.py::test_hexstr_data_to_bytes_1 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_010_binary_data.py::test_hexstr_data_to_bytes_2 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_010_binary_data.py::test_bytes_to_hexstr PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_011_codepage.py::test_ansi_1250 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_011_codepage.py::test_default PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_011_codepage.py::test_tocodepage_1252 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_011_codepage.py::test_tocodepage_936 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_012_crypt.py::test_decode PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_012_crypt.py::test_encode PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_013_juliandate.py::TestJulianDate::test_1582_10_15 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_013_juliandate.py::TestJulianDate::test_1990_01_01 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_013_juliandate.py::TestJulianDate::test_2000_01_01 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_013_juliandate.py::TestJulianDate::test_2011_03_21 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_013_juliandate.py::TestJulianDate::test_1999_12_31 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_013_juliandate.py::TestCalendarDate::test_1999_12_31 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_013_juliandate.py::TestCalendarDate::test_2011_03_21 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_014_multi_tags_text.py::test_text_to_multi_tags PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_valid_tags PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_invalid_app_data_without_closing_tag PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_invalid_app_data_without_opening_tag PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_invalid_app_data_structure_tag PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_xrecord_with_group_code_102 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_xrecord_with_long_closing_tag PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_invalid_xdata PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_unbalanced_xdata_list_1 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_unbalanced_xdata_list_2 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_invalid_xdata_list_nesting PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_extended_group_code_before_XDATA PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_embedded_object_follows_XDATA PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_016_encoding.py::test_ascii_encoding PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_016_encoding.py::test_surrogate_escape_support_in_dxf_replace_encoder[300\n\udcb7\udc9e\udcff\n-300\n\xb7\x9e\xff\n] PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_016_encoding.py::test_surrogate_escape_support_in_dxf_replace_encoder[123\u6539-123\U+6539] PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_016_encoding.py::test_XRECORD_handling_of_dxf_replace_encoder[0] PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_016_encoding.py::test_XRECORD_handling_of_dxf_replace_encoder[1] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_016_encoding.py::test_XRECORD_handling_of_dxf_replace_encoder[2] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_next PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_next_function PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_seed PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_returns_not_zero PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_returns_not_negative PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_reset PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_init_and_reset_rejects_invalid_ints PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_copy_handle_generator PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_copied_handle_generators_are_independent PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_line_type_tokenizer_just_numbers PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_line_type_tokenizer_strings PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_line_type_tokenizer_string_with_comma PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_line_type_tokenizer_shapes PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_line_type_parser_just_numbers PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_line_type_parser_strings PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_line_type_parser_shape PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_lin_compiler_floats PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_lin_compiler_strings PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_lin_compiler_shape PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_tags_from_complex_text PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_tags_from_complex_shape PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_new_table_entry_has_text_style_handle PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_invalid_layer_name PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_the_asterisk_in_layer_names PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_allow_dxf_unicode_encoding_in_layer_names PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_allow_dxf_mplus_encoding_in_layer_names PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_strange_but_valid_layer_name PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_adsk_special_layer PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_lineweight PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_lineweight_fixer PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_aci_color PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_in_integer_range PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fit_into_integer_range PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_in_float_range PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fit_into_float_range PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_null_vector PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_positive_value PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_integer_bool PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fix_integer_bool PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_one_line_text[test\ntext\r] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_one_line_text[test\r\ntext] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_one_line_text[testtext^] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_one_line_text[test\ntext^] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_one_line_text[test\ntext^\r] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fix_invalid_one_line_text[test\ntext\r] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fix_invalid_one_line_text[test\r\ntext] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fix_invalid_one_line_text[testtext^] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fix_invalid_one_line_text[test\ntext^] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fix_invalid_one_line_text[test\ntext^\r] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_negative PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_zero PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_one_of PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_greater_or_equal_zero PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_bitmask PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fix_bitmask PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_layer_color[2550] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_layer_color[-7] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_layer_color[-1] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_layer_color[1] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_layer_color[7] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_layer_color[2551] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_layer_color[2560] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_layer_color[0] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_layer_color[2561] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_a_handle[0] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_a_handle[100] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_a_handle[FEFE] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_a_handle[None] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_a_handle[0] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_a_handle[2097152] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_a_handle[xyz] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_transparency[33554432] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_transparency[33554559] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_transparency[33554687] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_transparency[16777216] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_transparency[None] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_transparency[0] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_transparency[127] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_transparency[255] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_transparency[16777217] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_rgb[rgb0] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_rgb[rgb1] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_rgb[rgb2] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_rgb[rgb3] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[None] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[10] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[1.0] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[11] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[rgb4] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[rgb5] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[rgb6] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[rgb7] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[rgb8] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[rgb9] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[rgb10] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py::test_low_level_tagger PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py::test_fix_line_coordinate_order PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py::test_fix_2d_coordinates PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py::test_dont_fix_invalid_coordinates PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py::test_fix_3d_coordinates PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py::test_fix_two_lines_coordinate_order PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_022_set_flag_state.py::test_set_flag_state PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_023_fix_invalid_located_group_codes.py::test_fix_invalid_located_acdb_entity_group_codes PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_string_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_int_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_float_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_handle_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_reference_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_ctrl_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_point_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_binary_data_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_raise_index_error_for_invalid_column_index PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_from_text PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_write PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_update PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_update_error PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_set_first PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_find_first PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_find_first_default PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_find_first_error PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_get_handle_5 PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_get_handle_105 PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_get_handle_create_new PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_find_all PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_tag_index PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_find_first_value_error PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_clone_is_equal PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_clone_is_independent PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_deepcopy PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_replace_handle_5 PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_replace_handle_105 PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_replace_no_handle_without_error PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_remove_tags PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_strip_tags PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_has_tag PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_has_not_tag PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_pop_tags PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_get_handle PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_get_soft_pointers PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_get_soft_owners PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_get_hard_pointers PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_get_hard_owners PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_get_translatable_pointers PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_is_translatable_pointer PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_has_translatable_pointer PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTagsCollect::test_with_start_param PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTagsCollect::test_with_end_param PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTagsCollect::test_with_start_and_end_param PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTagsCollect::test_none_existing_codes PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTagsCollect::test_all_codes PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTagsCollect::test_emtpy_tags PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_041_group_tags.py::test_init PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_041_group_tags.py::test_first_group PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_041_group_tags.py::test_second_group PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_041_group_tags.py::test_last_group PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_strtag_int PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_strtag_float PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_strtag_str PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_strtag2_vector PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_int_not_skip_comments PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_int_3d_coords PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_int_2d_coords PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_int_multiple_2d_coords PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_int_no_line_break_at_eof PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_int_float_to_int PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_int_no_eof PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_low_level_tagger_skip_comments PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_low_level_tagger_not_skip_comments PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_ext_next PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_ext_to_list PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_ext_one_point_reader PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_xdata_coords PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_ext_read_2D_points PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_ext_error_tag PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_ext_float_to_int PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_ext_coord_error_tag PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_polyline_with_xdata PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_invalid_y_coord_after_xyz PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_invalid_y_coord_after_xy PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_z_axis_after_valid_point PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_misplaced_z_axis PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_correct_xy_axis PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_invalid_single_x_axis PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_preserve_leading_0_tag PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_preserve_elevation_group_code_38 PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_init_appdata PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_init_with_tags PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_init_xdata PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_init_one_tag PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_getitem PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_appdata_content_count PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_appdata_content PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_tags_skips_appdata_content PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_xdata_content_count PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_tags_skips_xdata_content PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_copy PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_getitem_layer PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_getitem_xdict PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_getitem_parent PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_get_last_item PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_tagscount PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_subclass_AcDbSymbolTableRecord PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_subclass_AcDbLayerTableRecord PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_clone_is_equal PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_replace_handle PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_xdata_count PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_tags_count PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_xdata3_tags PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_new_data PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_set_new_data PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_append_xdata PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_read_tags PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_read_tags_2 PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_read_tags_3 PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_key_error PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_skip_empty_subclass PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_get_not_existing_reactor PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_new_reactors PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_append_not_existing_reactors PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_append_to_existing_reactors PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_legacy_mode PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_group_code_1000_outside_XDATA PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_xrecord_with_group_code_102 PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_xrecord_with_long_closing_tag PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_loader PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_error_section PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_valid_structure PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_eof_without_lineending PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_missing_eof PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_missing_endsec PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_missing_endsec_and_eof PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_missing_section PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::test_write_tag2 PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::test_write_tag PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::test_write_point_tag PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::test_write_str PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::test_write_anything PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::TestTagCollector::test_write_tag2 PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::TestTagCollector::test_write_tag PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::TestTagCollector::test_write_point_tag PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::TestTagCollector::test_write_str PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py::test_parse_embedded_object PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py::test_embedded_object_structure PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py::test_mtext_structure PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py::test_mtext_set_text PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py::test_two_embedded_objects PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py::test_iter_tags PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_054_dxfattr.py::test_return_default PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_bytes_loader[bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_bytes_loader[synced_bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_encoding_detector[bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_encoding_detector[synced_bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_windows_line_endings_CR_LF[bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_windows_line_endings_CR_LF[synced_bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_linux_and_macos_x_line_endings_LF[bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_linux_and_macos_x_line_endings_LF[synced_bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_line_endings_only_CR PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_malformed_group_codes[bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_malformed_group_codes[synced_bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestByteTagCompiler::test_malformed_value_tags PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestByteTagCompiler::test_malformed_integer_tags PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestByteTagCompiler::test_underlines_in_numbers_are_handled_by_python PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestByteTagCompiler::test_ignore_whitespace_in_floats[50\n1.000 e20\n] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestByteTagCompiler::test_ignore_whitespace_in_floats[50\n1.000 E20\n] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestByteTagCompiler::test_ignore_whitespace_in_floats[50\n1.000\te20\n] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestByteTagCompiler::test_ignore_whitespace_in_floats[50\n1.000\tE20\n] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::test_out_of_sync_tags PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_missing_dxf_version_is_r12 PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_r12 PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1004] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1006] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1009] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1012] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1014] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1015] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1018] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1021] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1024] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1027] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1032] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_any_well_formed_version PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_malformed_version_is_r12[AC10x9] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_malformed_version_is_r12[XC1009] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_malformed_version_is_r12[0000] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_malformed_version_is_r12[AC10240] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_malformed_version_is_r12[0] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_malformed_version_is_r12[None] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_strip_whitespace_from_version_string[ AC1015] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_strip_whitespace_from_version_string[AC1015 ] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_strip_whitespace_from_version_string[ AC1015 ] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_valid_zero_int[0] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_valid_zero_int[00] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_valid_zero_int[+0] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_valid_zero_int[-0] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_valid_int[+1] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_valid_int[1] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_valid_int[01] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_in_front_of_int[ 1] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_in_front_of_int[\t1] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_in_front_of_int[\r1] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_in_front_of_int[ \r1] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_behind_int[1 ] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_behind_int[1\t] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_behind_int[1\r] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_behind_int[1 \r] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[1.] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[1,] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[1a] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[1-] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[1+] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[1$] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[1 1] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[+1 x fd fgg] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[\t\r+1_ ] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_if_works_with_bytes[1.] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_if_works_with_bytes[1,] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_if_works_with_bytes[1a] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_if_works_with_bytes[1-] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_if_works_with_bytes[\t\r+1_ ] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_zero[0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_zero[0.0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_zero[+0.] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_zero[-0.] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[+1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1.] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1.0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1e0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1.e0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1.0e0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1E0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1e+0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1e-0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_negative_floats[-1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_negative_floats[-1.] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_negative_floats[-1.0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_negative_floats[-1e0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_negative_floats[-1.e0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_negative_floats[-1.0e0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_negative_exponent PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_in_front_of_float[ 1.0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_in_front_of_float[\t1.0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_in_front_of_float[\r1.0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_in_front_of_float[ \r1.0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_behind_float[1.0 ] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_behind_float[1.\t] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_behind_float[1.\r] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_behind_float[1. \r] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_behind_float[1e0 \t] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1,] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1a] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1-] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1+] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1$] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1 1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[+1 x fd fgg] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[\t\r+1_ ] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1.,] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1.a] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1.-] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1.+] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1.$] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1. 1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[+1. x fd fgg] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[\t\r+1._ ] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1e0,] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1e0a] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1e0-] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1e0+] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1e0$] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1e0 1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[+1e0 x fd fgg] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[\t\r+1e0_ ] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[ 1e+0xx] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[ 1e-0xx] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[ 1E+0xx] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[ 1E-0xx] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[1,] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[1a] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[1-] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[1+] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[1$] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[1 1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[+1 x fd fgg] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[\t\r+1_ ] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_has_dxf_unicode_encoding PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_has_not_dxf_unicode_encoding PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_decode_empty_string PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_decode_regular_escape_sequences PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_decode_regular_string_without_encoding PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_successive_chars PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_extra_backslash PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_extra_digits PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestMIFEncoding::test_has_mif_encoding PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestMIFEncoding::test_has_not_mif_encoding PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestMIFEncoding::test_decode_mif_encoding PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestMIFEncoding::test_decode_empty_string PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestMIFEncoding::test_decode_regular_escape_sequences PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestMIFEncoding::test_decode_regular_string_without_mif_encoding PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_057_group_code_mapping.py::test_unique_group_codes PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_057_group_code_mapping.py::test_ignored_group_codes PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_057_group_code_mapping.py::test_duplicate_group_codes PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_057_group_code_mapping.py::test_if_callbacks_are_marked PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_058_json_tags.py::test_export_json_tags PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_058_json_tags.py::test_load_json_tags PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_058_json_tags.py::test_load_dxf_document_from_json_tags PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_handle_and_owner PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_default_values PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_get_value_with_default PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_set_values PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_value_types PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_delete_attribs PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_is_supported PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_dxftype PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_cloning PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_deepcopy_usage PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_dxf_export_one_attribute PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_dxf_export_two_attribute PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_regular_usage PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_protect_entity_back_link_from_update PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_protect_handle_and_owner_from_update_by_default PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_can_exclude_attributes_from_update PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_can_update_handle_and_owner_on_demand PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_raises_attribute_error_for_invalid_attribute PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_raises_value_error_for_invalid_attribute_value PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_update_can_ignore_errors_on_demand PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_if_fast_load_handles_duplicate_group_codes PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_if_fast_load_handles_callback_group_codes PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_if_fast_load_handles_unprocessed_duplicate_group_codes PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_detect_implementation_version_returns_stored_version PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_detect_implementation_version_returns_default PASSED [ 6%] tests/test_01_dxf_entities/test_102_appdata.py::test_app_data_get PASSED [ 6%] tests/test_01_dxf_entities/test_102_appdata.py::test_app_data_add PASSED [ 6%] tests/test_01_dxf_entities/test_102_appdata.py::test_app_data_add_data PASSED [ 6%] tests/test_01_dxf_entities/test_102_appdata.py::test_app_data_delete PASSED [ 6%] tests/test_01_dxf_entities/test_102_appdata.py::test_app_data_dxf_export PASSED [ 6%] tests/test_01_dxf_entities/test_102_appdata.py::test_clone PASSED [ 6%] tests/test_01_dxf_entities/test_103_reactors.py::test_reactors_new PASSED [ 6%] tests/test_01_dxf_entities/test_103_reactors.py::test_copy_reactors PASSED [ 6%] tests/test_01_dxf_entities/test_103_reactors.py::test_reactors_add PASSED [ 6%] tests/test_01_dxf_entities/test_103_reactors.py::test_reactors_set PASSED [ 6%] tests/test_01_dxf_entities/test_103_reactors.py::test_reactors_discard PASSED [ 6%] tests/test_01_dxf_entities/test_103_reactors.py::test_export_dxf PASSED [ 6%] tests/test_01_dxf_entities/test_103_reactors.py::test_from_tags PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_new_extension_dict PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_direct_interface PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_get_returns_none_for_non_existing_entries PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_supports_handle_property PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_line_new_extension_dict PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_del_entity_with_ext_dict PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_discard_existing_extension_dict PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_discard_non_existing_extension_dict_without_exception PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_discard_empty_extension PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_do_not_discard_non_empty_extension PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_multiple_destroy_calls PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_link_dxf_object_to_extension_dict PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_add_new_dictionary_to_xdict PASSED [ 6%] tests/test_01_dxf_entities/test_105_xdata.py::test_empty_xdata PASSED [ 6%] tests/test_01_dxf_entities/test_105_xdata.py::test_add_data PASSED [ 6%] tests/test_01_dxf_entities/test_105_xdata.py::test_safe_init PASSED [ 6%] tests/test_01_dxf_entities/test_105_xdata.py::test_prevent_adding_invalid_data[1] PASSED [ 6%] tests/test_01_dxf_entities/test_105_xdata.py::test_prevent_adding_invalid_data[0] PASSED [ 6%] tests/test_01_dxf_entities/test_105_xdata.py::test_prevent_adding_invalid_data[1007] PASSED [ 6%] tests/test_01_dxf_entities/test_105_xdata.py::test_get_data PASSED [ 6%] tests/test_01_dxf_entities/test_105_xdata.py::test_replace_xdata PASSED [ 6%] tests/test_01_dxf_entities/test_105_xdata.py::test_discard_xdata PASSED [ 6%] tests/test_01_dxf_entities/test_105_xdata.py::test_cloning PASSED [ 6%] tests/test_01_dxf_entities/test_105_xdata.py::test_dxf_export PASSED [ 6%] tests/test_01_dxf_entities/test_105_xdata.py::test_has_xdata_list PASSED [ 6%] tests/test_01_dxf_entities/test_105_xdata.py::test_get_xlist_exception PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_set_xdata_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_discard_xdata_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_replace_xdata_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_poyline_with_xdata PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_remove_all_none_xdata_group_codes PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestEncodedXDATATags::test_find_begin_and_end_of_column_info PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestEncodedXDATATags::test_raise_exception_if_not_found PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestEncodedXDATATags::test_raise_exception_without_end_tag PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestEncodedXDATATags::test_raise_exception_without_begin_tag PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_load_not_existing_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_load_existing_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_load_user_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_list_like_getitem_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_list_like_setitem_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_list_like_insert_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_list_like_delitem_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_commit_creates_valid_XDATA PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_commit_replaces_existing_XDATA PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_modify_existing_XDATA PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_modify_existing_user_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_context_manager_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_invalid_line_break_characters_raise_exception[\n] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_invalid_line_break_characters_raise_exception[\r] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_too_long_string_raise_exception PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_load_not_existing_dict PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_load_existing_dict PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_load_user_dict PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_dict_like_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_dict_like_setitem_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_setitem_accepts_only_strings[0] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_setitem_accepts_only_strings[3.14] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_setitem_accepts_only_strings[data2] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_setitem_accepts_only_strings[data3] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_dict_like_del_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_discard_non_existing_key PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_commit_creates_valid_XDATA PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_context_manager_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_update_from_dict PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_update_supports_only_string_keys PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataTransformation::test_move PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataTransformation::test_scale PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataTransformation::test_mirror_x PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataTransformation::test_scale_and_mirror_y PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataTransformation::test_rotate PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_dxfentity_is_set_compatible PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_is_not_graphic_entity PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_default_constructor PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_init_with_tags PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_invalid_dxf_attrib PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_get_all_dxf_attribs PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_get_dxf_attribs_and_discard_some PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_write_r12_dxf PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_write_latest_dxf PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_is_alive PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_calling_destroy_multiple_times PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_dont_write_handles_for_R12 PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_uuid PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_source_of_copy_is_none_for_a_new_entity PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_set_source_of_copy PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_delete_missing_source_of_copy_without_exception PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_source_block_reference_is_none_for_a_new_entity PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_set_source_block_reference PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_setting_source_block_reference_twice_without_exception PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_setting_source_block_reference_a_second_time_has_no_effect PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_do_not_copy_source_block_reference PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_delete_missing_source_block_reference_without_exception PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_str PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_get_dxf_defaul PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_ocs PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestAppData::test_new_app_data PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestAppData::test_get_app_data PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestAppData::test_set_app_data PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestAppData::test_not_existing_appid PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_new_app_data PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_get_xdata PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_set_xdata PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_not_existing_appid PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_get_xdata_list_exception PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_has_xdata_list PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_set_xdata_list PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_discard_xdata_list PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_replace_xdata_list PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestReactors::test_has_no_reactors PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestReactors::test_set_reactors PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestReactors::test_append_handle PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestReactors::test_discard_handle PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestGetLayout::test_get_layout_model_space PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestGetLayout::test_get_layout_paper_space PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestGetLayout::test_get_layout_block PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestGetLayout::test_get_layout_without_layout PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_default_attribs PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_wrapped_mtext_is_a_graphic_entity PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_wrapped_mtext_is_not_a_dxf_object PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_wrapped_mtext_returns_dxfattribs_dict PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_dxf_tag_storage_is_a_non_graphical_entity_by_default PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_dxf_tag_storage_returns_empty_dxfattribs_dict_for_non_graphical_objetcs PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_dxf_export PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_virtual_entities PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_supports_virtual_entities_protocol PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_is_graphic_entity PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_init_from_tags PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_true_color PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_color_name PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_transparency PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_default_attributes PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_aci_color_index_fixer PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_lineweight_fixer PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_is_linetype_validator_active PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_is_layer_name_validator_active PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_clone_graphical_entity PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_basic_transformation_interfaces PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_unlink_from_layout PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_unlink_from_layout_without_doc PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_unlink_destroyed_entity_from_layout PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_recover_acdb_entity_tags PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_recover_acdb_entity_tags_does_not_replace_existing_attribs PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_recover_acdb_entity_tags_ignores_unknown_tags PASSED [ 8%] tests/test_01_dxf_entities/test_112b_dxfobj.py::test_is_dxf_object PASSED [ 8%] tests/test_01_dxf_entities/test_112b_dxfobj.py::test_wrapped_xrecord_is_a_dxf_object PASSED [ 8%] tests/test_01_dxf_entities/test_112b_dxfobj.py::test_wrapped_xrecord_is_not_a_graphic_entity PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_registered PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_default_init PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_default_new PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_load_from_text PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_write_dxf_2000 PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_write_dxf_2004 PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_write_dxf_r12 PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_entity_type PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_registered_structural_entities PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_registered_table_entries PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_new PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_factory_load PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_bind_entity_to_doc PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_bind_entity_with_existing_handle_to_doc PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_bind_dead_entity_to_doc PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_is_bound_true PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_is_bound_false PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_if_destroyed_entity_is_bound PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_create_db_entry PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_unbind_bound_entity PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_unbind_unbound_entity PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_unbind_destroyed_entity PASSED [ 8%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_create_new_empty_drawing PASSED [ 8%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_section PASSED [ 8%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_viewports PASSED [ 8%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_layers PASSED [ 8%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_linetypes PASSED [ 8%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_text_styles PASSED [ 8%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_dim_styles PASSED [ 8%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_views PASSED [ 8%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_appids PASSED [ 8%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_ucs PASSED [ 8%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_get_modelspace PASSED [ 8%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_get_paperspace PASSED [ 8%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_getitem PASSED [ 8%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_len PASSED [ 8%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_getitem_with_keyerror PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_owner PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_handle PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_get PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_get_entity PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_get_without_keyerror PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_contains PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_not_contains PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_delete_existing_key PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_delete_not_existing_key PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_remove_existing_key PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_remove_not_existing_key PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_discard_existing_key PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_discard_not_existing_key PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_clear PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_keys PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_items PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_find_key PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestEmptyDXFDict::test_len PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestEmptyDXFDict::test_add_first_item PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestEmptyDXFDict::test_add_first_item_2 PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestEmptyDXFDict::test_add_and_replace_first_item PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestEmptyDXFDict::test_clear PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_do_not_recover_owner_tag_at_loading_stage PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_dictionary_loads_owner_tag PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_get_entity_invalid_handle PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_add_sub_dict PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestDictionaryVar::test_add_dict_var PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestDictionaryVar::test_value_property PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_add_xrecord PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_cannot_add_graphical_entities_to_dict PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_audit_fix_invalid_root_dict_owner PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_audit_ok PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_audit_invalid_pointer PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_audit_fix_invalid_pointer PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_link_dxf_object_to_dictionary PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestDXFDictWithDefault::test_get_existing_value PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestDXFDictWithDefault::test_get_not_existing_value PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestDXFDictWithDefault::test_get_default_value PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestDXFDictWithDefault::test_set_default_value PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestDXFDictWithDefault::test_create_place_holder_for_invalid_default_vaue PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_keys_are_copied PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_objects_exist PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_objects_are_copied PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_copied_objects_are_not_bound_to_document PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_fully_manual_dictionary_copy PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_copied_data_is_bound[DICTVAR] PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_copied_data_is_bound[XRECORD] PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_copied_xrecord PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_copied_objects_are_owned_by_copy PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_copy_sub_dictionary PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyNotHardOwnerDictionary::test_is_not_hard_owner PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyNotHardOwnerDictionary::test_keys_are_copied PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyNotHardOwnerDictionary::test_objects_exist PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyNotHardOwnerDictionary::test_objects_are_not_copied PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyNotHardOwnerDictionary::test_objects_are_not_owned_by_copy PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyNotHardOwnerDictionary::test_copied_dictionary_is_bound PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_handle PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_name PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_flags PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_color PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_linetype PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_set_name PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_set_color PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_set_color_2 PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_set_color_for_off_layer PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_color_as_property PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_is_locked PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_is_not_locked PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_is_on PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_is_off PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_is_frozen PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_freeze PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_thaw PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_invald_layer_name PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_set_true_color_as_rgb PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_true_color_as_rgb PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_default_description PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_default_description_at_existing_xdata PASSED [ 9%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_description_for_unusual_xdata_structure PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_set_description PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_replace_description PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_default_transparency PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_fully_transparent_layer PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_half_transparent_layer PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_opaque_layer PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_invalid_transparency_returns_opaque PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_transparency_byblock_returns_opaque PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_set_transparency PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_replace_transparency PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_malformed_layer PASSED [ 10%] tests/test_01_dxf_entities/test_118_appid_table_entry.py::test_name PASSED [ 10%] tests/test_01_dxf_entities/test_119_ucs_table_entry.py::test_name PASSED [ 10%] tests/test_01_dxf_entities/test_119_ucs_table_entry.py::test_origin PASSED [ 10%] tests/test_01_dxf_entities/test_119_ucs_table_entry.py::test_xaxis PASSED [ 10%] tests/test_01_dxf_entities/test_119_ucs_table_entry.py::test_yaxis PASSED [ 10%] tests/test_01_dxf_entities/test_119_ucs_table_entry.py::test_ucs PASSED [ 10%] tests/test_01_dxf_entities/test_119_ucs_table_entry.py::test_default_vales PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_name PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_font PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_width PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_height PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_oblique PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_bigfont PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_is_backward PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_set_backward PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_is_upside_down PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_set_is_upside_down PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_set_is_vertical_stacked PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_not_existing_extended_font_data PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_extended_font_data PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_discard_extended_font_data PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_set_extended_font_data PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_dxf_details_for_extended_font_data PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_malformed_layer PASSED [ 10%] tests/test_01_dxf_entities/test_121_ltype_table_entry.py::test_name PASSED [ 10%] tests/test_01_dxf_entities/test_121_ltype_table_entry.py::test_description PASSED [ 10%] tests/test_01_dxf_entities/test_121_ltype_table_entry.py::test_pattern_items_count PASSED [ 10%] tests/test_01_dxf_entities/test_121_ltype_table_entry.py::test_pattern_tags_details PASSED [ 10%] tests/test_01_dxf_entities/test_121_ltype_table_entry.py::test_complex_linetype_name PASSED [ 10%] tests/test_01_dxf_entities/test_121_ltype_table_entry.py::test_compile_pattern PASSED [ 10%] tests/test_01_dxf_entities/test_121_ltype_table_entry.py::test_get_simplified_line_pattern PASSED [ 10%] tests/test_01_dxf_entities/test_122_vport_table_entry.py::test_name PASSED [ 10%] tests/test_01_dxf_entities/test_123_view_table_entry.py::test_view_attribute_access PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_name PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_blk1_and_blk2_arrows PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_both_arrows PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_tick PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_text_align PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_text_format PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_handle_export PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_resource_handles_export_R2000 PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_text_stream_for_resource_handles_R2000 PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dont_write_handles_for_R12 PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_name PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_blk1_and_blk2_ticks PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_both_ticks PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_virtual_dimtxsty_attribute PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_virtual_dimldrblk_attribute PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_virtual_linetypes_attributes PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_group_codes PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_set_align PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_text_format_2 PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_dimline_format PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_extline_format PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_extline1 PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_extline2 PASSED [ 10%] tests/test_01_dxf_entities/test_125_image_def.py::test_registered PASSED [ 10%] tests/test_01_dxf_entities/test_125_image_def.py::test_default_init PASSED [ 10%] tests/test_01_dxf_entities/test_125_image_def.py::test_default_new PASSED [ 10%] tests/test_01_dxf_entities/test_125_image_def.py::test_load_from_text PASSED [ 10%] tests/test_01_dxf_entities/test_125_image_def.py::test_write_dxf PASSED [ 10%] tests/test_01_dxf_entities/test_126_image_def_reactor.py::test_registered PASSED [ 10%] tests/test_01_dxf_entities/test_126_image_def_reactor.py::test_default_init PASSED [ 10%] tests/test_01_dxf_entities/test_126_image_def_reactor.py::test_default_new PASSED [ 10%] tests/test_01_dxf_entities/test_126_image_def_reactor.py::test_load_from_text PASSED [ 10%] tests/test_01_dxf_entities/test_126_image_def_reactor.py::test_write_dxf PASSED [ 10%] tests/test_01_dxf_entities/test_127_raster_variables.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_127_raster_variables.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_127_raster_variables.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_127_raster_variables.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_127_raster_variables.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_128_pdf_definition.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_128_pdf_definition.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_128_pdf_definition.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_128_pdf_definition.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_128_pdf_definition.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_128_pdf_definition.py::test_dwf_definition PASSED [ 11%] tests/test_01_dxf_entities/test_128_pdf_definition.py::test_dgn_definition PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_handle PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_parent_handle PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_cloning_parameter PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_get_data PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_last_data PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_iter_data PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_len PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_set_data PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_append_data PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_extend PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_clear PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_reset PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_generic_id_buffer PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_set_get_id_buffer PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_dxf_tags PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_clone PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_generic_field_list PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_set_get_field_list PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_dxf_tags PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_clone PASSED [ 11%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_generic_field_list PASSED [ 11%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_set_get_field_list PASSED [ 11%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_dxf_tags PASSED [ 11%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_clone PASSED [ 11%] tests/test_01_dxf_entities/test_133_sun.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_133_sun.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_133_sun.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_133_sun.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_133_sun.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_133_sun.py::test_sun PASSED [ 11%] tests/test_01_dxf_entities/test_134_material.py::test_material_manager PASSED [ 11%] tests/test_01_dxf_entities/test_134_material.py::test_export_matrix PASSED [ 11%] tests/test_01_dxf_entities/test_135_geo_data.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_135_geo_data.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_135_geo_data.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_135_geo_data.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_135_geo_data.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_135_geo_data.py::test_geodata_dxf_attributes PASSED [ 11%] tests/test_01_dxf_entities/test_135_geo_data.py::test_geodata_get_mesh_data PASSED [ 11%] tests/test_01_dxf_entities/test_135_geo_data.py::test_geodata_delete_and_extend_mesh_data PASSED [ 11%] tests/test_01_dxf_entities/test_135_geo_data.py::test_geodata_set_mesh_data PASSED [ 11%] tests/test_01_dxf_entities/test_135_geo_data.py::test_geodata_coordinate_system_definition PASSED [ 11%] tests/test_01_dxf_entities/test_135_geo_data.py::test_create_new_geo_data_for_model_space PASSED [ 11%] tests/test_01_dxf_entities/test_135_geo_data.py::test_interpreting_geodata PASSED [ 11%] tests/test_01_dxf_entities/test_135_geo_data.py::test_setup_local_grid_epsg_3395 PASSED [ 11%] tests/test_01_dxf_entities/test_136_vba_project.py::test_vba_project PASSED [ 11%] tests/test_01_dxf_entities/test_136_vba_project.py::test_load_vba_project PASSED [ 11%] tests/test_01_dxf_entities/test_137_sortentstable.py::test_sort_entities_table PASSED [ 12%] tests/test_01_dxf_entities/test_137_sortentstable.py::test_sort_entities_table_as_list PASSED [ 12%] tests/test_01_dxf_entities/test_137_sortentstable.py::test_sort_entities_table_to_dict PASSED [ 12%] tests/test_01_dxf_entities/test_137_sortentstable.py::test_remove_invalid_handles PASSED [ 12%] tests/test_01_dxf_entities/test_137_sortentstable.py::test_remove_handle PASSED [ 12%] tests/test_01_dxf_entities/test_137_sortentstable.py::test_load_table PASSED [ 12%] tests/test_01_dxf_entities/test_138_setup_visual_styles.py::test_visualstyle PASSED [ 12%] tests/test_01_dxf_entities/test_138_setup_visual_styles.py::test_setup_standard_visual_styles PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestFlatRecord::test_parse_all PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestFlatRecord::test_parse_str PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestFlatRecord::test_parse_float PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestFlatRecord::test_parse_int PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestFlatRecord::test_parse_vec3 PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_top_level_list PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_nested_list_inside_list PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_top_level_dict PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_nested_dict_as_dict_value PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_nested_list_as_dict_value PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_nested_dict_inside_list PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_missing_open_tag_raises_dxf_structure_error PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_missing_close_tag_raises_dxf_structure_error PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_invalid_group_code_raises_value_error PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_invalid_line_break_characters_raise_exception[\n] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_invalid_line_break_characters_raise_exception[\r] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_too_long_string_raise_exception PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_empty_data PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_simple_types[str] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_simple_types[int] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_simple_types[float] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_simple_types[Vec3] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_complex_structures[flat list] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_complex_structures[flat dict] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_complex_structures[nested list] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_complex_structures[nested dict] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_complex_structures[list as dict value] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_complex_structures[dict inside a list] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestUserRecord::test_required_final_commit_to_store_data_in_xrecord PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestUserRecord::test_works_as_context_manager PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestUserRecord::test_str PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_parse_binary_data PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestBinaryRecord::test_required_final_commit_to_store_data_in_xrecord PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestBinaryRecord::test_works_as_context_manager PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestBinaryRecord::test_stores_line_endings PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestBinaryRecord::test_str PASSED [ 12%] tests/test_01_dxf_entities/test_140_block_record.py::test_duplicate_handle_loading_error PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::test_doc_setup PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::test_get_new_vp_override_object PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::test_if_a_layer_has_any_overrides PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::test_if_a_layer_has_overrides_for_specific_viewport PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::test_get_default_layer_values_for_missing_overrides PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_set_color_override PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_invalid_color_raises_value_error[300] PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_invalid_color_raises_value_error[256] PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_invalid_color_raises_value_error[0] PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_set_rgb_override PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_remove_rgb_by_override PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_set_transparency_override PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_set_linetype_override PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_linetype_without_table_entry_raises_value_error PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_set_lineweight_override PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_invalid_lineweight_raises_value_error[300] PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_invalid_lineweight_raises_value_error[-1] PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_invalid_lineweight_raises_value_error[-2] PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_discard_specific_overrides PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_discard_all_overrides PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_discard_ignores_none_existing_vp_handles PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestCommitChanges::test_commit_creates_proper_xdict_structure PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestCommitChanges::test_load_overrides_for_one_vp PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestCommitChanges::test_load_overrides_for_two_vp PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestCommitChanges::test_commit_no_overrides_creates_no_xdict PASSED [ 12%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestCommitChanges::test_resetting_overrides_to_default_removes_xdict_entry PASSED [ 12%] tests/test_01_dxf_entities/test_142_copy_strategy.py::test_basic_copy PASSED [ 12%] tests/test_01_dxf_entities/test_142_copy_strategy.py::test_ignore_errors_in_linked_entities PASSED [ 12%] tests/test_01_dxf_entities/test_142_copy_strategy.py::test_raise_copy_not_supported_exception PASSED [ 12%] tests/test_01_dxf_entities/test_143_spatial_filter.py::test_setup_from_tags PASSED [ 12%] tests/test_01_dxf_entities/test_143_spatial_filter.py::test_loaded_transform_matrix PASSED [ 12%] tests/test_01_dxf_entities/test_143_spatial_filter.py::test_loaded_inverse_insert_matrix PASSED [ 12%] tests/test_01_dxf_entities/test_143_spatial_filter.py::test_dxf_export PASSED [ 12%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_init PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_has_section PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_add_new_section PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_replace_existing_section PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_get_section PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_discard_existing_section PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_discard_non_existing_section PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_locate_section PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_registered PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_default_init PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_default_new PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_load_from_text[0\nLINE\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n11\n1.0\n21\n1.0\n31\n1.0\n] PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_load_from_text[0\nLINE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbLine\n10\n0.0\n20\n0.0\n30\n0.0\n11\n1.0\n21\n1.0\n31\n1.0\n] PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_write_dxf[0\nLINE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbLine\n10\n0.0\n20\n0.0\n30\n0.0\n11\n1.0\n21\n1.0\n31\n1.0\n-AC1015] PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_write_dxf[0\nLINE\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n11\n1.0\n21\n1.0\n31\n1.0\n-AC1009] PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_get_pass_through_ocs PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_transform PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_translation PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_rotation PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_scaling PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_copy_entity_transparency PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_setting_invalid_transparency_value_raises_exception PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_load_entity_with_invalid_transparency PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_recover_acdb_entity_tags PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_malformed_line PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_registered PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_default_init PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_default_new PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_load_from_text[0\nPOINT\n5\n0\n8\n0\n10\n1.0\n20\n2.0\n30\n3.0\n] PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_load_from_text[0\nPOINT\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbPoint\n10\n1.0\n20\n2.0\n30\n3.0\n] PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_load_malformed_entity PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_write_dxf[0\nPOINT\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbPoint\n10\n1.0\n20\n2.0\n30\n3.0\n-AC1015] PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_write_dxf[0\nPOINT\n5\n0\n8\n0\n10\n1.0\n20\n2.0\n30\n3.0\n-AC1009] PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_transform PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_fast_translation PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_do_not_explode_point_entity PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_virtual_sub_entities PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_registered PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_default_init PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_negative_radius PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_zero_radius PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_extrusion_can_not_be_a_null_vector PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_default_new PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_load_from_text[0\nCIRCLE\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n] PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_load_from_text[0\nCIRCLE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbCircle\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n] PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_get_point_2d_circle PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_get_point_with_ocs PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_write_dxf[0\nCIRCLE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbCircle\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n-AC1015] PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_write_dxf[0\nCIRCLE\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n-AC1009] PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_default_ocs PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_fast_translation PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_non_uniform_scaling PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_user_ocs PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_flattening[1-0.35-5] PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_flattening[1-0.1-8] PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_flattening[0-0.35-0] PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_flattening[0-0.1-0] PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_flattening[-1-0.35-5] PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_flattening[-1-0.1-8] PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_load_malformed_circle PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_registered PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_default_init PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_default_new PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_get_start_and_end_vertices_with_ocs PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_load_from_text[0\nARC\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n50\n0\n51\n360\n] PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_load_from_text[0\nARC\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbCircle\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n100\nAcDbArc\n50\n0\n51\n360\n] PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_write_dxf[0\nARC\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbCircle\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n100\nAcDbArc\n50\n0\n51\n360\n-AC1015] PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_write_dxf[0\nARC\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n50\n0\n51\n360\n-AC1009] PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_angles PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_default_ocs PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_flattening[1-0-180-0.1-5] PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_flattening[0-0-360-0.1-0] PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_flattening[-1-0-180-0.35-3] PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_flattening[1-270-90-0.1-5] PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_3d_flattening_parallel_to_xy_plane PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_3d_flattening PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_flattening_returns_Vec3 PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_360_deg_arc_transformation PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[x-30] PASSED [ 13%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[x-180] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[x-360] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[y-30] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[y-180] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[y-360] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[z-30] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[z-180] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[z-360] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_load_malformed_circle PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_registered PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_default_init PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_default_new PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_load_from_text[0\nSHAPE\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n2\nNAME\n50\n0.0\n41\n1.0\n51\n0.0\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_load_from_text[0\nSHAPE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbShape\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n2\nNAME\n50\n0.0\n41\n1.0\n51\n0.0\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_write_dxf[0\nSHAPE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbShape\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n2\nNAME\n50\n0.0\n41\n1.0\n51\n0.0\n-AC1015] PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_write_dxf[0\nSHAPE\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n2\nNAME\n50\n0.0\n41\n1.0\n51\n0.0\n-AC1009] PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_load_malformed_shape PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_registered PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_default_init PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_default_new PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_load_from_text[0\nSOLID\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n12\n0.0\n22\n0.0\n32\n0.0\n13\n0.0\n23\n0.0\n33\n0.0\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_load_from_text[0\nSOLID\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbTrace\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n12\n0.0\n22\n0.0\n32\n0.0\n13\n0.0\n23\n0.0\n33\n0.0\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_write_dxf[0\nSOLID\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbTrace\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n12\n0.0\n22\n0.0\n32\n0.0\n13\n0.0\n23\n0.0\n33\n0.0\n-AC1015] PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_write_dxf[0\nSOLID\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n12\n0.0\n22\n0.0\n32\n0.0\n13\n0.0\n23\n0.0\n33\n0.0\n-AC1009] PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_trace PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_3dface PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_solid_translate PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_trace_translate PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_solid_reorder_quad_ocs_vertices PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_solid_triangle_ocs_vertices PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_solid_close_triangle_ocs_vertices PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_solid_close_quad_ocs_vertices PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_solid_wcs_vertices PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_3dface_quad_vertices PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_3dface_triangle_vertices PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_elevation_group_code_support PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_do_not_write_elevation_group_code PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_load_malformed_solid[SOLID] PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_load_malformed_solid[TRACE] PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_load_malformed_solid[3DFACE] PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_registered PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_default_init PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_default_new PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_load_from_text[0\nTEXT\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nTEXTCONTENT\n50\n0.0\n51\n0.0\n7\nStandard\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n73\n0\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_load_from_text[0\nTEXT\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbText\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nTEXTCONTENT\n50\n0.0\n51\n0.0\n7\nStandard\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n100\nAcDbText\n73\n0\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_write_dxf[0\nTEXT\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbText\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nTEXTCONTENT\n50\n0.0\n51\n0.0\n7\nStandard\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n100\nAcDbText\n73\n0\n-AC1015] PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_write_dxf[0\nTEXT\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nTEXTCONTENT\n50\n0.0\n51\n0.0\n7\nStandard\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n73\n0\n-AC1009] PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_removing_invalid_chars_at_setting_content[test\ntext\r] PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_removing_invalid_chars_at_setting_content[test\r\ntext] PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_removing_invalid_chars_at_setting_content[testtext^] PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_removing_invalid_chars_at_setting_content[test\ntext^] PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_removing_invalid_chars_at_setting_content[test\ntext^\r] PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_set_alignment PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_set_fit_alignment PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_reset_fit_alignment PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_resetting_location_raises_value_error_for_missing_point PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_get_align_enum PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_get_pos_enum_TOP_CENTER PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_get_pos_LEFT PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_transform_interface PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_fit_length PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_default_font_name PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_scale_and_reflexion[1-1] PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_scale_and_reflexion[-1-1] PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_scale_and_reflexion[-1--1] PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_scale_and_reflexion[1--1] PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_non_uniform_scaling PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_is_backward PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_set_backward PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_is_upside_down PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_set_is_upside_down PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_get_pos_handles_missing_align_point PASSED [ 14%] tests/test_02_dxf_graphics/test_206_text.py::test_malformed_text PASSED [ 14%] tests/test_02_dxf_graphics/test_207_attdef.py::test_registered PASSED [ 14%] tests/test_02_dxf_graphics/test_207_attdef.py::test_default_init PASSED [ 14%] tests/test_02_dxf_graphics/test_207_attdef.py::test_default_new PASSED [ 14%] tests/test_02_dxf_graphics/test_207_attdef.py::test_load_from_text[0\nATTDEF\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n3\nPROMPTTEXT\n2\nTAG\n70\n0\n74\n0\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_207_attdef.py::test_load_from_text[0\nATTDEF\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbText\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n100\nAcDbAttributeDefinition\n3\nPROMPTTEXT\n2\nTAG\n70\n0\n73\n0\n74\n0\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_207_attdef.py::test_write_dxf[0\nATTDEF\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbText\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n100\nAcDbAttributeDefinition\n3\nPROMPTTEXT\n2\nTAG\n70\n0\n73\n0\n74\n0\n-AC1015] PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::test_write_dxf[0\nATTDEF\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n3\nPROMPTTEXT\n2\nTAG\n70\n0\n74\n0\n-AC1009] PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::TestEmbeddedMTextSupport::test_has_embedded_mtext PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::TestEmbeddedMTextSupport::test_get_plain_mtext PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::TestEmbeddedMTextSupport::test_get_virtual_mtext_entity PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::TestEmbeddedMTextSupport::test_attdef_graphic_attributes PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::TestEmbeddedMTextSupport::test_mtext_graphic_attdefutes_inherited_from_host PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::TestEmbeddedMTextSupport::test_mtext_entity_attributes PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::TestEmbeddedMTextSupport::test_dxf_export_matches_test_data PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::test_lock_position_and_ignore_version_tag PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::test_lock_position_without_version_tag PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::test_version_without_lock_position PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_registered PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_default_init PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_default_new PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_load_from_text[0\nATTRIB\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n71\n0\n2\nTAG\n70\n0\n74\n0\n] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_load_from_text[0\nATTRIB\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbText\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n71\n0\n100\nAcDbAttribute\n2\nTAG\n70\n0\n73\n0\n74\n0\n] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_write_dxf[0\nATTRIB\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbText\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n71\n0\n100\nAcDbAttribute\n2\nTAG\n70\n0\n73\n0\n74\n0\n-AC1015] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_write_dxf[0\nATTRIB\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n71\n0\n2\nTAG\n70\n0\n74\n0\n-AC1009] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_removing_invalid_chars_at_setting_content[test\ntext\r] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_removing_invalid_chars_at_setting_content[test\r\ntext] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_removing_invalid_chars_at_setting_content[testtext^] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_removing_invalid_chars_at_setting_content[test\ntext^] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_removing_invalid_chars_at_setting_content[test\ntext^\r] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_has_embedded_mtext PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_get_plain_mtext PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_get_virtual_mtext_entity PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_attrib_graphic_attributes PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_mtext_graphic_attributes_inherited_from_host PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_mtext_entity_attributes PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_dxf_export_matches_test_data PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_set_mtext PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_transformation_of_embedded_mtext PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMText::test_special_namespace PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMText::test_setup PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMText::test_set_mtext_attribute PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMText::test_set_invalid_mtext_attribute PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_lock_position_and_ignore_version_tag PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_lock_position_without_version_tag PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_version_without_lock_position PASSED [ 15%] tests/test_02_dxf_graphics/test_209_vertex.py::test_registered PASSED [ 15%] tests/test_02_dxf_graphics/test_209_vertex.py::test_default_init PASSED [ 15%] tests/test_02_dxf_graphics/test_209_vertex.py::test_default_new PASSED [ 15%] tests/test_02_dxf_graphics/test_209_vertex.py::test_load_from_text[0\nVERTEX\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n] PASSED [ 15%] tests/test_02_dxf_graphics/test_209_vertex.py::test_load_from_text[0\nVERTEX\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbVertex\n100\nAcDb2dVertex\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n] PASSED [ 15%] tests/test_02_dxf_graphics/test_209_vertex.py::test_write_dxf[0\nVERTEX\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbVertex\n100\nAcDb2dVertex\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n-AC1015] PASSED [ 15%] tests/test_02_dxf_graphics/test_209_vertex.py::test_write_dxf[0\nVERTEX\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n-AC1009] PASSED [ 15%] tests/test_02_dxf_graphics/test_209_vertex.py::test_load_malformed_vertex PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_registered PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_default_constructor PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_default_new PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_load_from_text[0\nPOLYLINE\n5\n0\n8\n0\n66\n1\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n] PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_load_from_text[0\nPOLYLINE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDb2dPolyline\n66\n1\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n] PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_polyline_3d PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_poly_face_mesh PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_polygon_mesh PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_copy_polyline PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_write_dxf[0\nPOLYLINE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDb2dPolyline\n66\n1\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n-AC1015] PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_write_dxf[0\nPOLYLINE\n5\n0\n8\n0\n66\n1\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n-AC1009] PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_polyline2d_transform_interface PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_polyline3d_transform_interface PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_2d_polyline_has_default_width PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_2d_polyline_has_any_start_width PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_2d_polyline_has_any_end_width PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_2d_polyline_has_any_arc PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_malformed_polyline PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_create_polyline2D PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_create_polyline3D PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_add_new_sub_entities_to_entity_database PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_export_sub_entities_to_dxf PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_vertex_layer PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_change_polyline_layer PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_set_vertex PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_points PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_point_slicing PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_append_vertices PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_insert_vertices PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_delete_one_vertex PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_delete_two_vertices PASSED [ 15%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polymesh_correct_casting PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polymesh_set_vertex PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polymesh_error_n_index PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polymesh_error_m_index PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polymesh_mesh_cache PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polyface_correct_casting PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polyface_create_face PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polyface_add_face PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polyface_face_indices PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polyface_add_two_face_indices PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polyface_faces PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polyface_optimized_cube PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_export_polyline2d PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_export_polyline3d PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_internals_polymesh PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_internals_polyface PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_new_style_polyface_face_count PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_add_virtual_polyline_to_layout PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyline2d_virtual_entities PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_virtual_sub_entities_source_tracking PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyline2d_elevation PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyline2d_closed PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyline2d_explode PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyline3d_virtual_entities PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyline3d_closed PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyline3d_explode PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polymesh_virtual_entities PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_closed_polymesh PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyface_virtual_entities PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py::test_vertext_attribs_xy PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py::test_vertext_attribs_xyb PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py::test_vertext_attribs_xyseb PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py::test_vertext_attribs_vseb PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py::test_append_formatted_vertices PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py::test_vertex_format PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_registered PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_default_init PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_default_new PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_load_from_text[0\nVIEWPORT\n5\n0\n8\nVIEWPORTS\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n41\n1.0\n68\n1\n1001\nACAD\n1000\nMVIEW\n1002\n{\n1070\n16\n1010\n0.0\n1020\n0.0\n1030\n0.0\n1010\n0.0\n1020\n0.0\n1030\n0.0\n1040\n0.0\n1040\n1.0\n1040\n0.0\n1040\n0.0\n1040\n50.0\n1040\n0.0\n1040\n0.0\n1070\n0\n1070\n100\n1070\n1\n1070\n3\n1070\n0\n1070\n0\n1070\n0\n1070\n0\n1040\n0.0\n1040\n0.0\n1040\n0.0\n1040\n0.1\n1040\n0.1\n1040\n0.1\n1040\n0.1\n1070\n0\n1002\n{\n1002\n}\n1002\n}\n] PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_load_from_text[0\nVIEWPORT\n5\n0\n330\n0\n100\nAcDbEntity\n67\n1\n8\nVIEWPORTS\n100\nAcDbViewport\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n41\n1.0\n68\n2\n69\n2\n12\n0.0\n22\n0.0\n13\n0.0\n23\n0.0\n14\n0.1\n24\n0.1\n15\n0.1\n25\n0.1\n16\n0.0\n26\n0.0\n36\n0.0\n17\n0.0\n27\n0.0\n37\n0.0\n42\n50.0\n43\n0.0\n44\n0.0\n45\n1.0\n50\n0.0\n51\n0.0\n72\n100\n90\n32864\n1\n\n281\n0\n71\n0\n74\n0\n110\n0.0\n120\n0.0\n130\n0.0\n111\n1.0\n121\n0.0\n131\n0.0\n112\n0.0\n122\n1.0\n132\n0.0\n79\n0\n146\n0.0\n] PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_write_dxf_r2000 PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_write_dxf_r12 PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_post_load_hook_resolves_frozen_layer_handles_into_names PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::TestFrozenLayers::test_set_and_get__frozen_layer_names PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::TestFrozenLayers::test_freeze_a_specific_layer PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::TestFrozenLayers::test_freezing_a_layer_twice_does_not_duplicate_entry PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::TestFrozenLayers::test_is_a_specific_layer_frozen PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::TestFrozenLayers::test_thaw_a_specific_layer PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::TestFrozenLayers::test_ignore_thawing_non_frozen_layers_silently PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_is_top_view PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_get_scale PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_get_transformation_matrix PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_has_clipping_path PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_clipping_path_corners PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_clipping_rect PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_aspect_ratio PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_invalid_aspect_ratio PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_modelspace_limits PASSED [ 16%] tests/test_02_dxf_graphics/test_211_viewport.py::test_modelspace_limits_rotated PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_registered PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_default_constructor PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_new_constructor PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_has_scaling PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_load_from_text[0\nINSERT\n5\n0\n8\n0\n2\nBLOCKNAME\n10\n0.0\n20\n0.0\n30\n0.0\n41\n1.0\n42\n1.0\n43\n1.0\n50\n0.0\n] PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_load_from_text[0\nINSERT\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbBlockReference\n2\nBLOCKNAME\n10\n0.0\n20\n0.0\n30\n0.0\n41\n1.0\n42\n1.0\n43\n1.0\n50\n0.0\n] PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_write_dxf[0\nINSERT\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbBlockReference\n2\nBLOCKNAME\n10\n0.0\n20\n0.0\n30\n0.0\n41\n1.0\n42\n1.0\n43\n1.0\n50\n0.0\n-AC1015] PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_write_dxf[0\nINSERT\n5\n0\n8\n0\n2\nBLOCKNAME\n10\n0.0\n20\n0.0\n30\n0.0\n41\n1.0\n42\n1.0\n43\n1.0\n50\n0.0\n-AC1009] PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_add_attribs PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_get_block PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_clone_with_insert PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_export_without_sub_entities_to_dxf PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_export_with_sub_entities_to_dxf PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_copy_with_insert PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_matrix44_no_transform PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_matrix44_insert PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_matrix44_insert_and_base_point PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_matrix44_rotation PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_matrix44_scaled PASSED [ 16%] tests/test_02_dxf_graphics/test_212_insert.py::test_matrix44_direction PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_insert_transform_interface PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_insert_scaling PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_add_virtual_insert_with_attribs_to_layout PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::TestSupportsVirtualEntitiesProtocol::test_supports_virtual_entities_protocol PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::TestSupportsVirtualEntitiesProtocol::test_query_virtual_entities PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_load_malformed_insert PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::test_mcount_property PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestSimpleBlock::test_minsert_normal_spacing PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestSimpleBlock::test_discard_minsert_attribs_from_virtual_insert PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestSimpleBlock::test_minsert_zero_column_spacing PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestSimpleBlock::test_minsert_zero_row_spacing PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestSimpleBlock::test_explode PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestInsertAttributes::test_attribs_transformation PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestInsertAttributes::test_explode PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestRotatedInsert::test_minsert_transformation PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestRotatedInsert::test_attribs_transformation PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_registered PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_default_init PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_default_new PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_load_from_text[0\nBLOCK\n5\n0\n8\n0\n2\nBLOCKNAME\n70\n0\n10\n0.0\n20\n0.0\n30\n0.0\n3\nBLOCKNAME\n1\n\n] PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_load_from_text[0\nBLOCK\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbBlockBegin\n2\nBLOCKNAME\n70\n0\n10\n0.0\n20\n0.0\n30\n0.0\n3\nBLOCKNAME\n1\n\n] PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_write_block_dxf[0\nBLOCK\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbBlockBegin\n2\nBLOCKNAME\n70\n0\n10\n0.0\n20\n0.0\n30\n0.0\n3\nBLOCKNAME\n1\n\n-AC1015] PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_write_block_dxf[0\nBLOCK\n5\n0\n8\n0\n2\nBLOCKNAME\n70\n0\n10\n0.0\n20\n0.0\n30\n0.0\n3\nBLOCKNAME\n1\n\n-AC1009] PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_write_endblk_dxf[0\nENDBLK\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbBlockEnd\n-AC1015] PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_write_endblk_dxf[ 0\nENDBLK\n 5\n0\n 8\n0\n-AC1009] PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_load_malformed_block PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_load_malformed_endblk PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_registered PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_default_init PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_default_new PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_load_from_text[0\nDIMENSION\n5\n0\n8\n0\n2\n*D0\n3\nStandard\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n12\n0.0\n22\n0.0\n32\n0.0\n70\n0\n1\n\n13\n0.0\n23\n0.0\n33\n0.0\n14\n0.0\n24\n0.0\n34\n0.0\n15\n0.0\n25\n0.0\n35\n0.0\n16\n0.0\n26\n0.0\n36\n0.0\n40\n1.0\n50\n0.0\n] PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_load_from_text[ 0\nDIMENSION\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbDimension\n2\n*D0\n3\nStandard\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n70\n32\n71\n5\n42\n0.0\n100\nAcDbAlignedDimension\n 13\n0.0\n 23\n0.0\n 33\n0.0\n 14\n0.0\n 24\n0.0\n 34\n0.0\n50\n0\n100\nAcDbRotatedDimension\n] PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_write_dxf[ 0\nDIMENSION\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbDimension\n2\n*D0\n3\nStandard\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n70\n32\n71\n5\n42\n0.0\n100\nAcDbAlignedDimension\n 13\n0.0\n 23\n0.0\n 33\n0.0\n 14\n0.0\n 24\n0.0\n 34\n0.0\n50\n0\n100\nAcDbRotatedDimension\n-AC1015] PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_write_dxf[0\nDIMENSION\n5\n0\n8\n0\n2\n*D0\n3\nStandard\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n12\n0.0\n22\n0.0\n32\n0.0\n70\n0\n1\n\n13\n0.0\n23\n0.0\n33\n0.0\n14\n0.0\n24\n0.0\n34\n0.0\n15\n0.0\n25\n0.0\n35\n0.0\n16\n0.0\n26\n0.0\n36\n0.0\n40\n1.0\n50\n0.0\n-AC1009] PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_missing_block_geometry_name PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_format_text PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_apply_dimpost PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_apply_dimpost_raises_exception_for_invalid_text_format PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_linear_measurement_without_ocs PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_dimension_transform_interface PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_audit_invalid_dimstyle PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_audit_invalid_geometry_block PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_audit_fake_dimensional_constraints PASSED [ 17%] tests/test_02_dxf_graphics/test_216_dimlines_R12.py::test_dimstyle_standard_exist PASSED [ 17%] tests/test_02_dxf_graphics/test_216_dimlines_R12.py::test_dimstyle_override PASSED [ 17%] tests/test_02_dxf_graphics/test_216_dimlines_R12.py::test_dimstyle_override_arrows PASSED [ 17%] tests/test_02_dxf_graphics/test_216_dimlines_R12.py::test_dimstyle_override_linetypes PASSED [ 17%] tests/test_02_dxf_graphics/test_216_dimlines_R12.py::test_horizontal_dimline PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_dimstyle_standard_exist PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_rotated_dimline PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_aligned_dimline PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_angular_dimline PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_angular_3p_dimline PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_radius_dimline PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_diameter_dimline PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_ordinate_dimline PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_add_horizontal_dimline PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_virtual_entities_and_explode PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_transformation_of_associated_anonymous_geometry_block PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_copy_dimension_with_geometry_block PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_destroy_virtual_dimension_copy PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_transform_virtual_geometry_block PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_add_virtual_dimension_copy_to_layout PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_supports_virtual_entities_protocol PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_dimstyle_override PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_linetype_override_R2000 PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_linetype_override_R2007 PASSED [ 17%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_dimstyle_override_arrows PASSED [ 17%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_create_polyline2D PASSED [ 17%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_create_polyline3D PASSED [ 17%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline3d_vertex_layer PASSED [ 17%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline3d_change_polyline_layer PASSED [ 17%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline2d_set_vertex PASSED [ 17%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline2d_points PASSED [ 17%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline2d_point_slicing PASSED [ 17%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_poyline2d_append_vertices PASSED [ 17%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline2d_insert_vertices PASSED [ 17%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline2d_delete_one_vertex PASSED [ 17%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline2d_delete_two_vertices PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polymesh_create_mesh PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polymesh_set_vertex PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polymesh_error_nindex PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polymesh_error_mindex PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polymesh_mesh_cache PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyface_create_face PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyface_add_face PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyface_face_indices PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyface_add_two_face_indices PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyface_faces PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyface_optimized_cube PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_default_settings PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_ac1018_default_settings PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_ac1018_true_color PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_ac1018_color_name PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_ac1018_transparency PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_ac1021_default_settings PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_line PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_circle PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_arc PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_trace PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_solid PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_3dface PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_text PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_text_set_alignment PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_text_set_fit_alignment PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_text_get_alignment PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_text_get_pos_TOP_CENTER PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_text_get_pos_LEFT PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_shape PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_ray PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_xline_ray PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_registered PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_default_init PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_default_new PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_load_from_text PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_write_dxf PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_has_const_width PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_has_any_start_width PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_has_any_end_width PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_has_arc PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_raises_dxf_structure_error_for_missing_AcDbPolyline_subclass PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_new_line PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_get_point PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_slicing PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_set_point PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_get_point_error PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_insert_point PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_del_points PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_append_points PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_context_manager PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_clear PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_delete_const_width PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_vertices PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_format_point PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_point_to_array PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_packed_points_basics PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_packed_points_advanced PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_packed_points_to_dxf_tags PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_packed_points_to_dxf_tags_with_bulge PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_lwpolyline_transform_interface PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_3.py::test_lwpolyline_to_path PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_explode.py::test_virtual_entities PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_explode.py::test_virtual_sub_entities_source_tracking PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_explode.py::test_virtual_entities_elevation PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_explode.py::test_closed_polyline PASSED [ 18%] tests/test_02_dxf_graphics/test_220_lwpolyline_explode.py::test_explode_entities PASSED [ 18%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_registered PASSED [ 18%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_default_init PASSED [ 18%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_default_new PASSED [ 18%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_extrusion_can_not_be_a_null_vector PASSED [ 18%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_major_axis_can_not_be_a_null_vector PASSED [ 18%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_is_always_valid[-2] PASSED [ 18%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_is_always_valid[-1] PASSED [ 18%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_is_always_valid[0] PASSED [ 18%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_is_always_valid[1] PASSED [ 18%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_is_always_valid[2] PASSED [ 18%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_can_be_negative[-1] PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_can_be_negative[-0.5] PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_can_be_negative[-1e-09] PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_load_from_text PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_get_start_and_end_vertex PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_write_dxf PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_from_arc PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::TestEllipseParameters::test_adding_ellipse_with_too_big_ratio PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::TestEllipseParameters::test_adding_ellipse_with_too_small_ratio PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::TestEllipseParameters::test_adding_ellipse_with_invalid_major_axis PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::TestEllipseParameters::test_audit_max_ratio PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::TestEllipseParameters::test_audit_min_ratio PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::TestEllipseParameters::test_audit_invalid_major_axis PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_malformed_ellipse PASSED [ 19%] tests/test_02_dxf_graphics/test_222_xline.py::test_registered PASSED [ 19%] tests/test_02_dxf_graphics/test_222_xline.py::test_default_init PASSED [ 19%] tests/test_02_dxf_graphics/test_222_xline.py::test_default_new PASSED [ 19%] tests/test_02_dxf_graphics/test_222_xline.py::test_load_from_text PASSED [ 19%] tests/test_02_dxf_graphics/test_222_xline.py::test_write_dxf PASSED [ 19%] tests/test_02_dxf_graphics/test_222_xline.py::test_xline_transform PASSED [ 19%] tests/test_02_dxf_graphics/test_222_xline.py::test_xline_fast_translation PASSED [ 19%] tests/test_02_dxf_graphics/test_223_ray.py::test_registered PASSED [ 19%] tests/test_02_dxf_graphics/test_223_ray.py::test_default_init PASSED [ 19%] tests/test_02_dxf_graphics/test_223_ray.py::test_default_new PASSED [ 19%] tests/test_02_dxf_graphics/test_223_ray.py::test_load_from_text PASSED [ 19%] tests/test_02_dxf_graphics/test_223_ray.py::test_write_dxf PASSED [ 19%] tests/test_02_dxf_graphics/test_224_group.py::test_group_table_is_empty PASSED [ 19%] tests/test_02_dxf_graphics/test_224_group.py::test_create_new_group PASSED [ 19%] tests/test_02_dxf_graphics/test_224_group.py::test_create_unnamed_group PASSED [ 19%] tests/test_02_dxf_graphics/test_224_group.py::test_delete_group_by_entity PASSED [ 19%] tests/test_02_dxf_graphics/test_224_group.py::test_delete_group_by_name PASSED [ 19%] tests/test_02_dxf_graphics/test_224_group.py::test_add_entities PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_registered PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_default_init PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_virtual_text_attribute PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_setup_by_virtual_text_attribute PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_hasattr_for_virtual_text_attribute_is_always_false PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_default_new PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_load_from_text PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_write_dxf PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_expected_python_backslash_decoding PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_required_escaping_of_line_endings_at_dxf_export[test\ntext] PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_required_escaping_of_line_endings_at_dxf_export[test\r\ntext] PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_required_escaping_of_line_endings_at_dxf_export[test\ntext\rtext] PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_new_long_mtext[a new mtext] PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_new_long_mtext[0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789a new mtext] PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_new_long_mtext[0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij] PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_default_text_chunk_size_of_250_chars PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_text_direction_wins_over_rotation PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_set_rotation_replaces_text_direction PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_append_text PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_set_location PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_set_bg_color PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_set_bg_true_color PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_delete_bg_color PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_set_bg_canvas_color PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_set_text_frame_only PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_transform_interface PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_bg_fill_flags PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_get_text_direction_from_text_direction PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_get_text_direction_from_rotation PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_convert_rotation_to_text_direction PASSED [ 19%] tests/test_02_dxf_graphics/test_225_mtext.py::test_get_ucs PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_registered PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_default_init PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_default_new PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_load_from_text PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_write_dxf PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_tangent[start] PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_tangent[end] PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_users_cant_set_invalid_tangents[start] PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_users_cant_set_invalid_tangents[end] PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_ignore_invalid_tangent_values_at_loading_stage PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_knot_values PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_weights PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_control_points PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_fit_points PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_open_uniform PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_uniform PASSED [ 19%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_closed PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_open_rational PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_uniform_rational PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_closed_rational PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_open_spline PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_open_rational_spline PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_spline_transform_interface PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_from_circle PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_from_arc PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_from_ellipse PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_from_line_with_type_error PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline_with_linear_segments.py::test_flatten_spline PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline_with_linear_segments.py::test_make_path PASSED [ 20%] tests/test_02_dxf_graphics/test_227_mesh_packed_data.py::test_mesh_geometric_data PASSED [ 20%] tests/test_02_dxf_graphics/test_227_mesh_packed_data.py::test_create_vertex_array PASSED [ 20%] tests/test_02_dxf_graphics/test_227_mesh_packed_data.py::test_create_face_list PASSED [ 20%] tests/test_02_dxf_graphics/test_227_mesh_packed_data.py::test_create_edge_array PASSED [ 20%] tests/test_02_dxf_graphics/test_227_mesh_packed_data.py::test_create_crease_array PASSED [ 20%] tests/test_02_dxf_graphics/test_227_mesh_packed_data.py::test_face_indices_as_array PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_registered PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_default_init PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_default_new PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_load_from_text PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_write_dxf PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_mesh_properties PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_mesh_dxf_attribs PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_mesh_geometric_data PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_create_empty_mesh PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_add_faces PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_add_edge_crease PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_dxf_export_adds_required_crease_values PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_dxf_export_removes_crease_not_required PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_auditor_fixes_invalid_crease_count PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_vertex_format PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_optimize PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_mesh_transform_interface PASSED [ 20%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_if_registered PASSED [ 20%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_default_init PASSED [ 20%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_default_new PASSED [ 20%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_load_from_text PASSED [ 20%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_seeds PASSED [ 20%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_write_dxf PASSED [ 20%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_write_correct_polyline_path_tag_order PASSED [ 20%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_hatch_boundary_state PASSED [ 20%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_hatch_boundary_default_state PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_default_settings PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_default_hatch_settings PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_get_seed_points PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_set_seed_points PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_remove_all_paths PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_polyline_path_attribs PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_polyline_path_vertices PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_edge_path_count PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_edge_path_type PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_edge_path_edges PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_spline_edge_hatch_get_params PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_create_spline_edge PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_create_required_tangents_for_spline_edge_if_fit_points_present PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_no_fit_points_export PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_is_pattern_hatch PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_edit_pattern PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_create_new_pattern_hatch PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_pattern_scale PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_pattern_scale_x_times PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_pattern_rotation PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_pattern_rotation_add_angle PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_create_gradient PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_create_gradient_low_level_dxf_tags PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_remove_gradient_data PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_remove_gradient_low_level_dxf_tags PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_bgcolor_not_exists PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_set_new_bgcolor PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_change_bgcolor PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_delete_bgcolor PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_delete_not_existing_bgcolor PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_associate_valid_entity PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_if_hatch_is_alive_before_association PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_can_not_associate_entity_from_different_document PASSED [ 20%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_can_not_associate_entity_with_different_owner PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_can_not_associate_destroyed_entity PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_triangulate_hatch PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_triangulate_with_elevation PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_render_pattern_lines PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_render_pattern_lines_with_elevation PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_polyline_path_transform_interface PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_edge_path_transform_interface PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_full_circle_ellipse_edge_rotation[arc] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_full_circle_ellipse_edge_rotation[ellipse] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_full_circle_edge_scaling PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_ocs_mirror_transformations_of_clockwise_oriented_curves[arc-mirror-x] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_ocs_mirror_transformations_of_clockwise_oriented_curves[arc-mirror-y] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_ocs_mirror_transformations_of_clockwise_oriented_curves[arc-mirror-xy] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_ocs_mirror_transformations_of_clockwise_oriented_curves[ellipse-mirror-x] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_ocs_mirror_transformations_of_clockwise_oriented_curves[ellipse-mirror-y] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_ocs_mirror_transformations_of_clockwise_oriented_curves[ellipse-mirror-xy] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_of_clockwise_oriented_curves[arc-mirror-x] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_of_clockwise_oriented_curves[arc-mirror-y] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_of_clockwise_oriented_curves[arc-mirror-xy] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_of_clockwise_oriented_curves[ellipse-mirror-x] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_of_clockwise_oriented_curves[ellipse-mirror-y] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_of_clockwise_oriented_curves[ellipse-mirror-xy] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_for_all_edge_types[mirror-x] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_for_all_edge_types[mirror-y] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_for_all_edge_types[mirror-xy] PASSED [ 21%] tests/test_02_dxf_graphics/test_230a_image_as_virtual_entity.py::test_registered PASSED [ 21%] tests/test_02_dxf_graphics/test_230a_image_as_virtual_entity.py::test_default_init PASSED [ 21%] tests/test_02_dxf_graphics/test_230a_image_as_virtual_entity.py::test_default_new PASSED [ 21%] tests/test_02_dxf_graphics/test_230a_image_as_virtual_entity.py::test_load_from_text PASSED [ 21%] tests/test_02_dxf_graphics/test_230a_image_as_virtual_entity.py::test_image_write_dxf PASSED [ 21%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_set_raster_variables PASSED [ 21%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_imagedef_attribs PASSED [ 21%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_image_dxf_attribs PASSED [ 21%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_boundary_path PASSED [ 21%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_reset_boundary_path PASSED [ 21%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_set_boundary_path PASSED [ 21%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_post_load_hook_creates_image_def_reactor PASSED [ 21%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_exception_while_fixing_image_def_reactor PASSED [ 21%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_post_load_hook_destroys_image_without_valid_image_def PASSED [ 21%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_new_image_def PASSED [ 21%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_create_and_delete_image PASSED [ 21%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_create_and_copy_image PASSED [ 21%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_moving_to_another_layout PASSED [ 21%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_copying_to_another_layout PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay.py::test_registered PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay.py::test_default_init PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay.py::test_default_new PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay.py::test_load_from_text PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay.py::test_write_dxf PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay.py::test_dwf_underlay PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay.py::test_dgn_underlay PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_pdf_def_properties PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_pdf_def_dxf_attribs PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_pdf_properties PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_pdf_dxf_attribs PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_get_boundary_path PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_reset_boundary_path PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_set_boundary_path PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_set_scale PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_new_pdf_underlay_def PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_new_pdf PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay_2.py::TestCopyAndTransformUnderlay::test_copied_underlay_has_same_underlay_definition PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay_2.py::TestCopyAndTransformUnderlay::test_underlay_definition_has_reactor_handles_to_copies PASSED [ 21%] tests/test_02_dxf_graphics/test_231_underlay_2.py::TestCopyAndTransformUnderlay::test_transform_underlay PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis.py::test_body_default_settings PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis.py::test_body_getting_acis_data PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis.py::test_region_default_settings PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis.py::test_region_getting_acis_data PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis.py::test_3dsolid_default_settings PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis.py::test_3dsolid_getting_acis_data PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis.py::test_tag2lines PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis.py::test_lines2tags PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_registered PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_default_init PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_default_new PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_load_from_text PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_body_write_dxf PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_region_write_dxf PASSED [ 21%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_3dsolid_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_surface_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_extruded_surface_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_lofted_surface_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_revolved_surface_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_swept_surface_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_232_surface.py::test_surface PASSED [ 22%] tests/test_02_dxf_graphics/test_232_surface.py::test_extruded_surface PASSED [ 22%] tests/test_02_dxf_graphics/test_232_surface.py::test_lofted_surface PASSED [ 22%] tests/test_02_dxf_graphics/test_232_surface.py::test_swept_surface PASSED [ 22%] tests/test_02_dxf_graphics/test_232_surface.py::test_revolved_surface PASSED [ 22%] tests/test_02_dxf_graphics/test_233_helix.py::test_registered PASSED [ 22%] tests/test_02_dxf_graphics/test_233_helix.py::test_default_init PASSED [ 22%] tests/test_02_dxf_graphics/test_233_helix.py::test_default_new PASSED [ 22%] tests/test_02_dxf_graphics/test_233_helix.py::test_load_from_text PASSED [ 22%] tests/test_02_dxf_graphics/test_233_helix.py::test_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_233_helix.py::test_generic_helix PASSED [ 22%] tests/test_02_dxf_graphics/test_234_light.py::test_registered PASSED [ 22%] tests/test_02_dxf_graphics/test_234_light.py::test_default_init PASSED [ 22%] tests/test_02_dxf_graphics/test_234_light.py::test_default_new PASSED [ 22%] tests/test_02_dxf_graphics/test_234_light.py::test_load_from_text PASSED [ 22%] tests/test_02_dxf_graphics/test_234_light.py::test_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_234_light.py::test_add_light PASSED [ 22%] tests/test_02_dxf_graphics/test_235_leader.py::test_registered PASSED [ 22%] tests/test_02_dxf_graphics/test_235_leader.py::test_default_init PASSED [ 22%] tests/test_02_dxf_graphics/test_235_leader.py::test_default_new PASSED [ 22%] tests/test_02_dxf_graphics/test_235_leader.py::test_load_from_text PASSED [ 22%] tests/test_02_dxf_graphics/test_235_leader.py::test_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_235_leader.py::test_add_leader PASSED [ 22%] tests/test_02_dxf_graphics/test_235_leader.py::test_supports_virtual_entities_protocol PASSED [ 22%] tests/test_02_dxf_graphics/test_235_leader.py::test_virtual_sub_entities_source_tracking PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::test_new_multileader PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::test_synonym_mleader PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMLeaderStyle::test_standard_mleader_style PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMLeaderStyle::test_audit_fixes_invalid_text_style_handle PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMLeaderStyle::test_audit_fixes_invalid_arrow_head_handle PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMLeaderStyle::test_audit_fixes_invalid_block_record_handle PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestLeaderLine::test_parse PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestLeaderLine::test_export_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestLeaderLine::test_transform PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestLeader::test_parse PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestLeader::test_export_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestLeader::test_transform PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestLeader::test_scaling PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_context_attribs_definition PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_mleader_export_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_mtext_data_attribs_definition PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_load_mtext_context PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_mtext_data PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_transform_context PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_transform_context_reversed_extrusion PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_transform_mtext_data PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_transform_mtext_extrusion PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_context_attribs_definition PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_mleader_export_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_block_data_attribs_definition PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_load_block_context PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_block_data PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_get_transformation_matrix PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_set_transformation_matrix PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_transform_block_data PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_transform_block_data_x_reflection PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_transform_block_data_y_reflection PASSED [ 22%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_transform_block_data_xy_reflection PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_unbounded_mline PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_generic_mline PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_set_justification PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_set_scale_factor PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_close_state PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_point_count_management PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_add_first_vertex PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_add_two_vertices PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_x_rotation PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_translate PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_uniform_scale PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_non_uniform_scale PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_support_virtual_entities_protocol PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_virtual_sub_entities_source_tracking PASSED [ 22%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineStyle::test_standard_mline_style PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineStyle::test_set_defined_style PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineStyle::test_set_undefined_style PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineStyle::test_ordered_indices PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineStyle::test_invalid_element_count PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineVertex::test_load_tags PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineVertex::test_new PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineVertex::test_export_dxf PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineAudit::test_valid_mline PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineAudit::test_fix_invalid_style_name PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineAudit::test_fix_invalid_style_handle PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineAudit::test_fix_invalid_style_handle_by_name PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineAudit::test_fix_invalid_line_direction PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineAudit::test_fix_invalid_miter_direction PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineAudit::test_fix_invalid_line_parameters PASSED [ 23%] tests/test_02_dxf_graphics/test_238_tolerance.py::test_registered PASSED [ 23%] tests/test_02_dxf_graphics/test_238_tolerance.py::test_default_init PASSED [ 23%] tests/test_02_dxf_graphics/test_238_tolerance.py::test_default_new PASSED [ 23%] tests/test_02_dxf_graphics/test_238_tolerance.py::test_load_from_text PASSED [ 23%] tests/test_02_dxf_graphics/test_238_tolerance.py::test_write_dxf PASSED [ 23%] tests/test_02_dxf_graphics/test_238_tolerance.py::test_add_tolerance PASSED [ 23%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::test_load_proxy_graphic PASSED [ 23%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::test_export_proxy_graphic PASSED [ 23%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_info PASSED [ 23%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_supports_virtual_entities_protocol PASSED [ 23%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_multi_leader_entities PASSED [ 23%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_image_entities PASSED [ 23%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_circular_arc_entities PASSED [ 23%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_can_parse_R2000_lwpolyline PASSED [ 23%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_can_parse_R2018_lwpolyline PASSED [ 23%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_polygon_creation PASSED [ 23%] tests/test_02_dxf_graphics/test_240_arc_dimension.py::test_load_arc_dimension PASSED [ 23%] tests/test_02_dxf_graphics/test_240_arc_dimension.py::test_dimtype_is_8_for_R2018 PASSED [ 23%] tests/test_02_dxf_graphics/test_240_arc_dimension.py::test_export_proxy_graphic_R2010 PASSED [ 23%] tests/test_02_dxf_graphics/test_240_arc_dimension.py::test_export_proxy_graphic_R2013 PASSED [ 23%] tests/test_02_dxf_graphics/test_240_arc_dimension.py::test_export_dimtype_R2013 PASSED [ 23%] tests/test_02_dxf_graphics/test_240_arc_dimension.py::test_export_dimtype_R2018 PASSED [ 23%] tests/test_02_dxf_graphics/test_241_hyperlink.py::test_set_hyperlink PASSED [ 23%] tests/test_02_dxf_graphics/test_241_hyperlink.py::test_set_description PASSED [ 23%] tests/test_02_dxf_graphics/test_241_hyperlink.py::test_set_location PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[2-2-2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[-1-1-1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[1--1-1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[1-1--1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[-2--2-2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[2--2--2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[-2-2--2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[-3--3--3] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[2-2-2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[-1-1-1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[1--1-1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[1-1--1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[-2--2-2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[2--2--2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[-2-2--2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[-3--3--3] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793-2-2-2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--1-1-1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793-1--1-1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793-1-1--1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--2--2-2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793-2--2--2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--2-2--2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--3--3--3] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--1-2-3] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793-1--2-3] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793-1-2--3] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--3--2-1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793-3--2--1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--3-2--1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--3--2--1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-2-2-2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--1-1-1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1--1-1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1-1--1] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--2--2-2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-2--2--2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--2-2--2] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3--3--3] PASSED [ 23%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--1-2-3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1--2-3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1-2--3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3--2-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-3--2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3-2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3--2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-2-2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--1-1-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1--1-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1-1--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--2--2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-2--2--2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--2-2--2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3--3--3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--1-2-3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1--2-3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1-2--3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3--2-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-3--2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3-2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3--2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[2-2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-1-1-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[1--1-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[1-1--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-2--2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[2--2--2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-2-2--2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-3--3--3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-1-2-3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[1--2-3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[1-2--3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-3--2-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[3--2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-3-2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-3--2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[1.1-1.1-1.1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[-1.1--1.1--1.1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[-1.1-1.1-1.1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[1.1--1.1-1.1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[1.1-1.1--1.1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[-1.1--1.1-1.1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[1.1--1.1--1.1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[-1.1-1.1--1.1] PASSED [ 24%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_add_entity PASSED [ 24%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_replace_entity PASSED [ 24%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_replace_entity_without_layout PASSED [ 24%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_convert_circle_to_ellipse PASSED [ 24%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_replace_circle_by_ellipse PASSED [ 24%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_convert_circle_to_spline PASSED [ 24%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_replace_circle_by_spline PASSED [ 24%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_convert_ellipse_to_spline PASSED [ 24%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_replace_ellipse_by_spline PASSED [ 24%] tests/test_02_dxf_graphics/test_244_large_radial_dimension.py::test_load_dimension PASSED [ 24%] tests/test_02_dxf_graphics/test_244_large_radial_dimension.py::test_export_dimension PASSED [ 24%] tests/test_02_dxf_graphics/test_245_wipeout.py::test_wipeout_default_new PASSED [ 24%] tests/test_02_dxf_graphics/test_245_wipeout.py::test_wipeout_write_dxf PASSED [ 24%] tests/test_02_dxf_graphics/test_245_wipeout.py::test_wipeout_creator_interface PASSED [ 24%] tests/test_02_dxf_graphics/test_245_wipeout.py::test_copy_wipeout PASSED [ 24%] tests/test_02_dxf_graphics/test_245_wipeout.py::test_wipeout_vars PASSED [ 24%] tests/test_02_dxf_graphics/test_245_wipeout.py::test_boundary_path_wcs PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_without_given_end_tangents[0-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_without_given_end_tangents[1-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_without_given_end_tangents[2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_without_given_end_tangents[3-3] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_without_given_end_tangents[4-4] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_without_given_end_tangents[5-5] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_with_given_end_tangents[0-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_with_given_end_tangents[1-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_with_given_end_tangents[2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_with_given_end_tangents[3-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_with_given_end_tangents[4-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_with_given_end_tangents[5-3] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_control_points_calculation[0-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_control_points_calculation[1-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_control_points_calculation[2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_control_points_calculation[3-3] PASSED [ 24%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_control_points_calculation[4-4] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_any_points_present PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_degree_of_spline PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestFitPoints::test_if_fit_point_count_is_valid[1] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestFitPoints::test_if_fit_point_count_is_valid[2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestFitPoints::test_if_fit_point_count_is_valid[3] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestFitPoints::test_if_fit_point_count_is_valid[4] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestFitPoints::test_remove_unused_knot_values PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestFitPoints::test_remove_unused_weights PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_control_point_count[1] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_control_point_count[2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_control_point_count[3] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_control_point_count[4] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_knot_value_count[1] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_knot_value_count[2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_knot_value_count[3] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_knot_value_count[4] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_weight_count[1] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_weight_count[2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_weight_count[3] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_weight_count[4] PASSED [ 25%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_load_mtext_attribs_from_embedded_object[DYN_MANUAL] PASSED [ 25%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_load_mtext_attribs_from_embedded_object[DYN_AUTO] PASSED [ 25%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_load_mtext_attribs_from_embedded_object[STATIC] PASSED [ 25%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_load_dynamic_cols_manual_height PASSED [ 25%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_load_dynamic_cols_with_auto_height PASSED [ 25%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_load_static_cols PASSED [ 25%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_export_static_columns_as_embedded_object PASSED [ 25%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_export_dynamic_columns_auto_height_as_embedded_object PASSED [ 25%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_export_dynamic_columns_manual_height_as_embedded_object PASSED [ 25%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_create_new_mtext_with_columns PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_if_registered PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_default_init PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_default_new PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_fill_properties_without_solid_filling PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_fill_properties_with_solid_filling PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_load_from_text PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_write_dxf_no_fill PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_write_dxf_r2004_no_fill_requires_basic_gradient_data PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_write_dxf_with_fill PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_write_dxf_R2004_with_fill PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_write_correct_polyline_path_tag_order PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_write_dxf_with_pattern_fill PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_do_not_export_mpolygon_with_edge_paths PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_load_dynamic_cols_manual_height PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_load_dynamic_cols_with_auto_height PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_load_static_cols PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_mtext_without_column_info PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_set_columns_xdata[STATIC] PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_set_columns_xdata[DYNAMIC_AUTO] PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_set_columns_xdata[DYNAMIC_MANUAL] PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_create_new_mtext_with_linked_columns PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_destroy_mtext_with_linked_columns PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_add_mtext_with_linked_columns_to_entitydb PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_add_mtext_with_linked_columns_to_msp PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_delete_mtext_with_linked_columns_from_entitydb PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_discard_mtext_with_linked_columns_from_entitydb PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_destroy_mtext_with_linked_columns_from_entitydb PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_copy_mtext_with_linked_columns PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_transform_mtext_with_linked_columns PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_scale_mtext_with_linked_columns PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_sync_common_attribs_of_linked_columns PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_remove_dependencies_from_mtext_and_linked_columns PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::TestPreprocessDXFExport::test_successful_preprocessing PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::TestPreprocessDXFExport::test_accept_invalid_column_count PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::TestPreprocessDXFExport::test_fail_for_destroyed_columns PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::TestGetColumnContent::test_get_raw_content_of_all_columns PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::TestGetColumnContent::test_get_plain_text_of_all_columns_as_string PASSED [ 25%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::TestGetColumnContent::test_get_plain_text_of_all_columns_as_list_of_strings PASSED [ 25%] tests/test_02_dxf_graphics/test_249_boundary_paths.py::test_add_polyline_path PASSED [ 25%] tests/test_02_dxf_graphics/test_249_boundary_paths.py::test_add_edge_path PASSED [ 25%] tests/test_02_dxf_graphics/test_249_boundary_paths.py::test_polyline_path_with_arcs_to_edge_path PASSED [ 25%] tests/test_02_dxf_graphics/test_249_boundary_paths.py::test_arc_to_ellipse_edges PASSED [ 25%] tests/test_02_dxf_graphics/test_249_boundary_paths.py::test_ellipse_edges_to_spline_edges PASSED [ 25%] tests/test_02_dxf_graphics/test_249_boundary_paths.py::test_edge_to_polyline_paths PASSED [ 25%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_returns_one_path PASSED [ 25%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_path_has_six_entities PASSED [ 25%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_expected_entity_types PASSED [ 25%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_arc_0_parameters PASSED [ 25%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_ellipse_1_parameters PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_line_parameters PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_ellipse_3_parameters PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_arc_4_parameters PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_spline_parameters PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_spline_control_points PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_spline_knots PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestSpatialTransformation::test_wcs_line PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestSpatialTransformation::test_wcs_spline PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestSpatialTransformation::test_ocs_clockwise_arc PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestSpatialTransformation::test_ocs_counter_clockwise_arc PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestSpatialTransformation::test_wcs_clockwise_ellipse PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestSpatialTransformation::test_wcs_counter_clockwise_ellipse PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[0.0] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[30.0] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[60.0] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[90.0] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[180.0] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[270.0] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[-30.0] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[-60.0] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[-90.0] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[-180.0] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[-270.0] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_safety_checks PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_circle_dxf_attributes PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_circle_geometry PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_arc_dxf_attributes PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_arc_geometry PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_quadrilaterals[Solid] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_quadrilaterals[Trace] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_ellipse PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_polyline[lwpolyline] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_polyline[polyline2d] PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_hatch_with_polyline_path PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_hatch_with_edge_path PASSED [ 26%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_insert PASSED [ 26%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_load_acad_proxy_entity PASSED [ 26%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_export_exact_original_data PASSED [ 26%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_virtual_entities_support PASSED [ 26%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_virtual_sub_entities_source_tracking PASSED [ 26%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_virtual_entities_if_no_proxy_graphic_exists PASSED [ 26%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_supports_virtual_entities_protocol PASSED [ 26%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_proxy_entity_is_not_transformable PASSED [ 26%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_proxy_graphic_is_not_copyable PASSED [ 26%] tests/test_02_dxf_graphics/test_253_ole2frame.py::test_sublass_is_loaded PASSED [ 26%] tests/test_02_dxf_graphics/test_253_ole2frame.py::test_dxf_type PASSED [ 26%] tests/test_02_dxf_graphics/test_253_ole2frame.py::test_bounding_box PASSED [ 26%] tests/test_02_dxf_graphics/test_253_ole2frame.py::test_export_exact_original_data PASSED [ 26%] tests/test_02_dxf_graphics/test_253_ole2frame.py::test_binary_data PASSED [ 26%] tests/test_02_dxf_graphics/test_254_get_font_name.py::test_get_font_name_for_entity_without_font_support PASSED [ 26%] tests/test_02_dxf_graphics/test_254_get_font_name.py::test_get_font_name_for_text PASSED [ 26%] tests/test_02_dxf_graphics/test_254_get_font_name.py::test_undefined_text_style PASSED [ 26%] tests/test_02_dxf_graphics/test_254_get_font_name.py::test_get_font_name_for_mtext PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::test_default_properties PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::test_set_units PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::test_delete_entity PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::test_delete_all_entities PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::test_paper_space PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::test_iter_layout PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::test_query_entities PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::test_model_space_get_layout_for_entity PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::test_paper_space_get_layout_for_entity PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::test_default_entity_settings PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::test_clone_dxfattribs PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::test_invalid_layer_name PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::test_create_layout PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::TestAcquireLayouts::test_get_modelspace PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::TestAcquireLayouts::test_layout_returns_first_layout_in_tab_order PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::TestAcquireLayouts::test_paperspace_returns_active_paperspace_by_default PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::TestAcquireLayouts::test_paperspace_returns_paperspace_by_name PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::TestAcquireLayouts::test_paperspace_raises_key_error_if_not_exists PASSED [ 26%] tests/test_03_dxf_layouts/test_300_layout.py::TestAcquireLayouts::test_paperspace_raises_key_error_for_modelspace PASSED [ 26%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_delete_polyline3d PASSED [ 26%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_unlink_unsupported_graphic_entity PASSED [ 26%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_delete_unsupported_graphic_entity PASSED [ 26%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_cannot_add_invalid_dxf_objects PASSED [ 26%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_line PASSED [ 26%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_point PASSED [ 26%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_circle PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_arc PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_trace PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_solid PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_3dface PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_text PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_shape PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_post_bind_hook_call PASSED [ 27%] tests/test_03_dxf_layouts/test_302_block_references.py::test_create_blockref PASSED [ 27%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_attrib_get_flags PASSED [ 27%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_attrib_set_flags PASSED [ 27%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_add_new_attribs PASSED [ 27%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_add_to_attribs PASSED [ 27%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_place PASSED [ 27%] tests/test_03_dxf_layouts/test_302_block_references.py::test_lockref_grid PASSED [ 27%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_attribs_follow_abuse PASSED [ 27%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_delete_not_existing_attrib PASSED [ 27%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_delete_not_existing_attrib_without_exception PASSED [ 27%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_delete_last_attrib PASSED [ 27%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_delete_one_of_many_attribs PASSED [ 27%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_delete_first_of_many_attribs PASSED [ 27%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_delete_all_attribs PASSED [ 27%] tests/test_03_dxf_layouts/test_303_auto_block_references.py::test_auto_blockref PASSED [ 27%] tests/test_03_dxf_layouts/test_303_auto_block_references.py::test_blockref_with_attribs PASSED [ 27%] tests/test_03_dxf_layouts/test_303_auto_block_references.py::test_has_attdef PASSED [ 27%] tests/test_03_dxf_layouts/test_303_auto_block_references.py::test_get_attdef PASSED [ 27%] tests/test_03_dxf_layouts/test_303_auto_block_references.py::test_get_attdef_text PASSED [ 27%] tests/test_03_dxf_layouts/test_303_auto_block_references.py::test_attdef_getter_properties PASSED [ 27%] tests/test_03_dxf_layouts/test_303_auto_block_references.py::test_attdef_setter_properties PASSED [ 27%] tests/test_03_dxf_layouts/test_304_new_entity_space.py::test_init PASSED [ 27%] tests/test_03_dxf_layouts/test_304_new_entity_space.py::test_existence PASSED [ 27%] tests/test_03_dxf_layouts/test_304_new_entity_space.py::test_remove PASSED [ 27%] tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py::test_copy_simple_entity PASSED [ 27%] tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py::test_copy_polyline_entity PASSED [ 27%] tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py::test_move_simple_entity PASSED [ 27%] tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py::test_move_polyline_to_paperspace PASSED [ 27%] tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py::test_move_polyline_to_block PASSED [ 27%] tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py::test_move_from_block_to_block PASSED [ 27%] tests/test_03_dxf_layouts/test_306_copy_linked_entities.py::test_duplicate_simple_entity PASSED [ 27%] tests/test_03_dxf_layouts/test_306_copy_linked_entities.py::test_duplicate_polyline_entity PASSED [ 27%] tests/test_03_dxf_layouts/test_306_copy_linked_entities.py::test_duplicate_insert_with_attribs_entity PASSED [ 27%] tests/test_03_dxf_layouts/test_307_groupby.py::test_groupby_dxfattrib PASSED [ 27%] tests/test_03_dxf_layouts/test_307_groupby.py::test_groupby_not_existing_dxfattrib PASSED [ 27%] tests/test_03_dxf_layouts/test_307_groupby.py::test_groupby_key PASSED [ 27%] tests/test_03_dxf_layouts/test_307_groupby.py::test_groupby_result PASSED [ 27%] tests/test_03_dxf_layouts/test_307_groupby.py::test_calling_convention PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::TestNameQuery::test_all_names PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::TestNameQuery::test_some_names PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::TestNameQuery::test_exclude_some_names PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_remove_supports_virtual_entities PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_empty_init PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_select_all PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_first PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_last PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_new_query_select_all PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_new_empty_query PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_select_line PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_select_layer_1 PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_select_unicode_layer_name PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_select_layer_1_exclude_line PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_match_regex PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_match_regex_not_text PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_match_whole_string PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_not_supported_attribute PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_bool_select PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_bool_select_2 PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_bool_select_3 PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_bool_select_4 PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_ignore_case PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_ignore_case_for_num_values PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_ignore_case_match_regex PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_extend_query PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_all_names PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_match_one_string PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_match_full_string PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_match_default_values PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_iter_does_not_remove_destroyed_entities PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::test_purge_does_remove_destroyed_entities PASSED [ 27%] tests/test_03_dxf_layouts/test_308_query.py::TestGetSetDelItemInterface::test_select_entities_with_supported_attribute PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestGetSetDelItemInterface::test_set_item_accepts_only_strings_as_key PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestGetSetDelItemInterface::test_set_item_set_supported_dxf_attributes PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestGetSetDelItemInterface::test_set_item_ignores_unsupported_attributes PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestGetSetDelItemInterface::test_set_item_does_not_ignore_invalid_attribute_values PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestGetSetDelItemInterface::test_del_item_ignores_unsupported_attributes PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestVirtualAttributes::test_get_virtual_attributes PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestVirtualAttributes::test_set_virtual_attributes PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestVirtualAttributes::test_cannot_delete_virtual_attributes PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_no_selected_dxf_attribute_raises_type_error PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_is_equal_operator PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_is_not_equal_operator PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_query_is_case_insensitive_by_default PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_less_than_operator PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_less_than_raises_type_error_for_vector_attributes PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_greater_than_operator PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_greater_than_raises_type_error_for_vector_attributes PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_less_equal_operator PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_less_equal_raises_type_error_for_vector_attributes PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_greater_equal_operator PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_greater_equal_raises_type_error_for_vector_attributes PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_filter_operator PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestRegexMatch::test_match_nothing PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestRegexMatch::test_match_is_case_insensitive PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestRegexMatch::test_match_case_insensitive PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestRegexMatch::test_match_invalid_attributes_raise_type_error PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestSetOperations::test_union PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestSetOperations::test_union_unique_entities PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestSetOperations::test_difference PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestSetOperations::test_intersection PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestSetOperations::test_symmetric_difference PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestSetOperations::test_operator_combination PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_select_layers PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_set_layer_attribute PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_delete_layer_attribute PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_color_descriptor_exists PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_linetype_descriptor_exists PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_lineweight_descriptor_exists PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_ltscale_descriptor_exists PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_invisible_descriptor_exists PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_true_color_descriptor_exists PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_transparency_descriptor_exists PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithoutAttributes::test_without_wildcards PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithoutAttributes::test_two_entity_names PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithoutAttributes::test_star_wildcard PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithoutAttributes::test_wrong_star_wildcard PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithoutAttributes::test_star_wildcard_2 PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithoutAttributes::test_star_wildcard_3 PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithoutAttributes::test_star_wildcard_4 PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_empty_attribute_list_not_allowed PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_one_attribute PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_double_quoted_attributes PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_single_quoted_attributes PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_attribute_name_with_underscore PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_star_with_one_attribute PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_relation_lt PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_relation_le PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_relation_eq PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_relation_ne PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_relation_ge PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_relation_gt PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_regex_match PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_not_regex_match PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_appended_ignore_case_option PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestInfixBoolQuery::test_not_operation PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestInfixBoolQuery::test_and_operation PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestInfixBoolQuery::test_or_operation PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestInfixBoolQuery::test_not_operation_with_brackets PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestInfixBoolQuery::test_operation_with_brackets PASSED [ 28%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestInfixBoolQuery::test_operation_with_nested_brackets PASSED [ 28%] tests/test_03_dxf_layouts/test_311_add_foreign_entity.py::test_01_copy_foreign_entities_reset_resources PASSED [ 28%] tests/test_03_dxf_layouts/test_311_add_foreign_entity.py::test_02_copy_foreign_entities_with_resources PASSED [ 28%] tests/test_03_dxf_layouts/test_311_add_foreign_entity.py::test_03_move_foreign_entities PASSED [ 28%] tests/test_03_dxf_layouts/test_311_add_foreign_entity.py::test_04_move_foreign_entities_with_resources PASSED [ 28%] tests/test_03_dxf_layouts/test_311_add_foreign_entity.py::test_05_copy_polyline_reset_resources PASSED [ 28%] tests/test_03_dxf_layouts/test_311_add_foreign_entity.py::test_06_move_polyline PASSED [ 28%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_add_simple_entities PASSED [ 28%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_entities_have_no_handle PASSED [ 28%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_removing_entiy_does_not_destroy_entity PASSED [ 28%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_purge_destroyed_entities PASSED [ 29%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_can_add_entity_to_a_real_layout PASSED [ 29%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_copy_all_entities_to_a_real_layout PASSED [ 29%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_move_all_entities_to_a_real_layout PASSED [ 29%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_copy_all_sub_entities_to_a_real_layout PASSED [ 29%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_move_all_sub_entities_to_a_real_layout PASSED [ 29%] tests/test_03_dxf_layouts/test_313_redraw_order.py::test_set_redraw_order PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_new_drawing PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_valid_header PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_invalid_header_structure PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_invalid_header_var_name PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_get_acadver PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_get_insbase PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_getitem_keyerror PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_get PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_set_existing_var PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_set_existing_point PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_set_unknown_var PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_create_var PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_create_var_wrong_args_2d PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_create_var_wrong_args_3d PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_contains PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_not_contains PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_remove_headervar PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_str_point PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_new_dxf12 PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_custom_properties_exists PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_order_of_occurrence PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_get_custom_property PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_get_custom_property_2 PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_add_custom_property PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_remove_custom_property PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_remove_not_existing_property PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_replace_custom_property PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_replace_not_existing_property PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_version_specific_header_vars[$ACADMAINTVER-AC1032-90] PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_version_specific_header_vars[$ACADMAINTVER-AC1027-70] PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_version_specific_header_vars[$XCLIPFRAME-AC1021-290] PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_version_specific_header_vars[$XCLIPFRAME-AC1024-280] PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_version_specific_group_code_raises_key_error_for_unknown_names PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_402_classessection.py::test_write PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_402_classessection.py::test_empty_section PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_402_classessection.py::test_count_class_instances PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_get_value PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_set_value PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_del_value PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_delete_entity PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_delete_dead_entity_entity PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_keys PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_values PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_items PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_get PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_add_tags PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_len PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_restore_integrity_purge PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_restore_integrity_recover PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_restore_integrity_remove_invalid_None PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_restore_integrity_remove_invalid_handle PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_add_entity_multiple_times PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_discard_contained_entity PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_discard_entity_with_none_handle PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_discard_entity_with_handle_not_in_database PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_trashcan_context_manager PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_reset_entity_handle PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_can_not_reset_entity_handle PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_query_method_exist PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_constructor PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_getattr_upper_case PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_error_getattr PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_get_entry_by_handle PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_get_non_existing_entry_by_handle PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_get_handle_of_entry PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_get_handle_of_non_existing_entry PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_get_entry_by_handle_is_type_safe PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestLayerTableEntry::test_add_layer PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestLayerTableEntry::test_check_invalid_aci_color PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestLayerTableEntry::test_check_invalid_line_weight PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestLayerTableEntry::test_add_new_line_type PASSED [ 29%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_add_new_ttf_font_text_style PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_add_new_shape_file PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_add_multiple_shape_files PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_get_shape_file PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_find_shape_file PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_if_shape_file_entry_exist PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_discard_shape_files PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_discard_not_existing_shape_file PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_export_multiple_shape_file_entries PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestLineTypeTable::test_add_new_line_type PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_len PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_iter PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_is_unique_name PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_contains PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_contains_is_case_insensitive PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_getitem PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_getitem_is_case_insensitive PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_get PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_get_is_case_insensitive PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestCreateNewEntry::test_new_entry_is_an_object PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestCreateNewEntry::test_new_entry_is_added_to_collection PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestCreateNewEntry::test_cannot_use_existing_name PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestCreateNewEntry::test_invalid_char_in_name_raises_exception PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDeleteEntry::test_delete_entry_remove_entry PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDeleteEntry::test_delete_non_existing_entry_does_not_raise_exception PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDuplicateEntry::test_duplicate_existing_entry PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDuplicateEntry::test_duplicate_non_existing_entry_raises_exception PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDuplicateEntry::test_new_entry_replaces_existing_entry PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDuplicateEntry::test_duplicated_entries_have_same_content PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDuplicateEntry::test_duplicated_entry_is_stored_in_objects_section PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDuplicateEntry::test_invalid_char_in_new_name_raises_exception PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::test_clear PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_405_classes.py::test_init PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_405_classes.py::test_add_known_class PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_405_classes.py::test_add_required_classes PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_405_classes.py::test_double_keys PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_405_classes.py::test_export_dxf PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_405_classes.py::test_load_section PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_empty_section PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_key PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_is_layout_block PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_overwrite_existing_block PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_not_in_blocks_section PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_getitem PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_new_block_layout PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_case_insensitivity PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_iter_blocks PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_block_content_entity_drawing_attribute PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_delete_block PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_safe_delete_block PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_do_not_delete_layouts_and_special_arrow_blocks PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_rename_block PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_dxf2000_dxf_block_structure PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_dxf2000_delete_block PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_dxf2000_delete_all_blocks PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_dxf2000_rename_block PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_update_block_flags PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_407_entity_section.py::test_iterate_entities_section PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_408_objects_section.py::test_load_section PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_408_objects_section.py::TestAuditObjectSection::test_auditor_removes_invalid_entities PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_408_objects_section.py::TestAuditObjectSection::test_audit_restores_deleted_owner_tag PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_408_objects_section.py::TestAuditObjectSection::test_validate_known_dictionaries PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_408_objects_section.py::TestAuditObjectSection::test_remove_orphaned_dictionary_and_owned_entries PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_408_objects_section.py::TestAuditObjectSection::test_remove_orphaned_dictionary_but_preserve_shared_entries PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_409_create_objects.py::test_setup_rootdict PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_409_create_objects.py::test_add_new_sub_dict PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_409_create_objects.py::test_required_tables_exists PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_409_create_objects.py::test_new_plot_style_name_table PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_table_entry_dxf_type PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_ac1009_load_table PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_load_table_with_invalid_table_entry PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_ac1009_write PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_ac1024_load_table PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_ac1024_write PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_get_table_entry PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_entry_names_are_case_insensitive PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_duplicate_entry PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_create_vport_table PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_loader PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_default_section_does_not_have_records PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_loaded_section_does_not_have_records PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_acds_record PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_write_dxf PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_empty_acds_section_will_not_be_exported PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_get_acis_data PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_del_acis_data PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_reset_acis_data PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_set_new_acis_data PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_create_explicit_a_new_acis_data PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_write_dxf_for_new_created_acis_record PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_412_rename_layer.py::test_rename_layer PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_412_rename_layer.py::test_rename_layer_errors PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py::test_new_group PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py::test_unique_groups PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py::test_modify_group PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py::test_can_not_add_invalid_block_entities PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py::test_can_not_add_invalid_table_entry PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py::test_audit_filters_invalid_entities PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_virtual_entities_owner_and_handle PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_virtual_entities_source_block_reference PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_copying_entities_from_block_reference_removes_source_context PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_virtual_entities_transformation PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_explode_blockrefs PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_explode_polyline_bulge PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_explode_blockref_with_attrib PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_examine_uniform_scaled_ellipse PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_skipped_entities_callback PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_curves[1-False] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_curves[0.5-False] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_curves[1-True] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_curves[0.5-True] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_curves[-1-False] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_curves[-1-True] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_and_stretched_curves[0.5-False] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_and_stretched_curves[0.5-True] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_explode_xref PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::TestSourceBlockReferenceFromNestedBlockReferences::test_virtual_entities_from_block_ref_0 PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::TestSourceBlockReferenceFromNestedBlockReferences::test_virtual_entities_from_block_ref_1 PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::TestSourceBlockReferenceFromNestedBlockReferences::test_virtual_entities_from_block_ref_2 PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::TestEntitiesInRedrawOrder::test_ascending_redraw_order PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::TestEntitiesInRedrawOrder::test_descending_redraw_order PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_layout_dict_is_not_hard_owner PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_create_new_layout PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_reserved_model_space_name[Model] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_reserved_model_space_name[MODEL] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_reserved_model_space_name[model] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_case_insensitive_layout_names PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_create_and_delete_new_layout PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_set_active_layout PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_rename_layout PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_rename_not_existing_layout PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_do_nothing PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_convert_unsupported_entity_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_multiple_unsupported_entities_to_vertices PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_point_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_line_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_lwpolyline_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_circle_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_arc_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_ellipse_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_spline_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_mesh_entity_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_from_quadrilateral_with_3_points[SOLID] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_from_quadrilateral_with_3_points[TRACE] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_from_quadrilateral_with_3_points[3DFACE] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_from_quadrilateral_with_4_points[SOLID] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_from_quadrilateral_with_4_points[TRACE] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_from_quadrilateral_with_4_points[3DFACE] PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_poly_face_mesh_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_poly_mesh_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_2d_3d_polyline_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_2d_polyline_including_width_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_text_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_mtext_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_mtext_columns_to_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_hatch_returns_multiple_primitives PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_image_primitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_to_vertices PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_to_control_vertices PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_level_0 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_0[normal] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_0[reflect-x] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_0[reflect-y] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_0[reflect-z] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_level_1 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_1[normal] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_1[reflect-x] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_1[reflect-y] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_1[reflect-z] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_minsert_level_1 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::TestSourceBlockReferences::test_count_of_expected_virtual_entities PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::TestSourceBlockReferences::test_same_source_block_references_blk0 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::TestSourceBlockReferences::test_same_source_block_references_blk1 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::TestSourceBlockReferences::test_same_source_block_references_blk2 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::TestSourceBlockReferences::test_link_structure_of_virtual_block_references PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_extend PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_line PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_empty_cache PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_multi_boxes[multi_flat-entities] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_multi_boxes[multi_flat-blockrefs] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_multi_boxes[multi_recursive-entities] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_multi_boxes[multi_recursive-blockrefs] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_without_handles PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_with_uuids PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_for_flat_multi_boxes[multi_flat] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_for_flat_multi_boxes[extents] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_for_recreation_on_the_fly PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_for_reused_virtual_entities[multi_flat] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_for_reused_virtual_entities[extents] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_for_reused_virtual_entities[multi_recursive] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_with_uuids_for_reused_virtual_entities[multi_flat] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_with_uuids_for_reused_virtual_entities[extents] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_with_uuids_for_reused_virtual_entities[multi_recursive] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_fast_bounding_box_calculation PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_precise_bounding_box_calculation PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_418_copy_entities.py::test_copy_entity_with_extension_dict PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_418_copy_entities.py::test_virtual_copy_with_extension_dict PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_418_copy_entities.py::test_source_of_copy_for_bound_entity PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_418_copy_entities.py::test_is_copy_state PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_418_copy_entities.py::test_origin_of_copy_for_copy_chains PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_418_copy_entities.py::test_source_of_copy_for_virtual_entity PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_420_load_dxf_file.py::test_load_dxf[R12] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_420_load_dxf_file.py::test_load_dxf[R2000] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_new_AC1009 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_new_AC1015 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_new_AC1018 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_new_AC1021 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_new_AC1024 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_new_AC1027 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_new_AC1032 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_invalid_dxf_version PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_dxfversion_1 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_dxfversion_2 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_acad_release PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_get_layer PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_error_getting_not_existing_layer PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_create_layer PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_error_adding_existing_layer PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_has_layer PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_has_not_layer PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_removing_layer PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_error_removing_not_existing_layer PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_r2000_dxfversion PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_r2000_acad_release PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_min_r12_header_section PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_min_r12_layers_table PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_min_r12_styles_table PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_min_r12_linetypes_table PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_min_r12_blocks_section PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_min_r12_entity_section PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_chain_layout_and_block PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_base64_encoding_r12 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_base64_encoding_r2000 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_set_drawing_units PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_423_read_proe_r2004.py::test_open_proe_ac1018 SKIPPED [ 32%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_color_index PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_lineweight_too_small PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_lineweight_too_big PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_invalid_lineweight PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_for_valid_layer_name PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_if_layer_linetype_exist PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_for_existing_owner PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_for_existing_text_style[TEXT] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_for_existing_text_style[MTEXT] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_for_existing_text_style[ATTRIB] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_for_existing_text_style[ATTDEF] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_block_cycle_detector_setup PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_block_cycle_detector PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_broken_block_cycle_detector PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_fix_invalid_leader PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_fix_invalid_insert PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_fix_insert_scale PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_remove_invalid_entities_from_blocks PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_remove_standalone_attrib_entities_from_blocks PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_fix_invalid_transparency PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_new_doc_extents[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_new_doc_limits[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_modelspace_extents[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_modelspace_limits[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_layout1_extents[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_layout1_limits[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_reset_modelspace_extents[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_reset_modelspace_limits[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_active_msp_vport_config[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_active_layout1_viewport[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_reset_layout1_active_viewport[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_new_doc_extents[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_new_doc_limits[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_modelspace_extents[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_modelspace_limits[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_layout1_extents[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_layout1_limits[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_reset_modelspace_extents[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_reset_modelspace_limits[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_active_msp_vport_config[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_active_layout1_viewport[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_reset_layout1_active_viewport[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_created_by_ezdxf_metadata[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_created_by_ezdxf_metadata[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_written_by_ezdxf_metadata[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_written_by_ezdxf_metadata[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_add_custom_metadata[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_add_custom_metadata[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_non_existing_key_raises_key_error[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_non_existing_key_raises_key_error[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_modify_metadata[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_modify_metadata[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_delete_metadata[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_delete_metadata[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_delete_non_existing_metadata_raises_KeyError[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_delete_non_existing_metadata_raises_KeyError[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_discard_non_existing_metadata_without_exception[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_discard_non_existing_metadata_without_exception[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_write_and_read_metadata[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_write_and_read_metadata[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_key_and_data_is_limited_to_255_chars[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_key_and_data_is_limited_to_255_chars[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_escape_line_endings_in_key_and_data[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_escape_line_endings_in_key_and_data[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_set_current_layer PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_invalid_layer_raises_exception PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_set_current_aci_color PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_invalid_aci_color_raises_exception PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_set_current_linetype PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_invalid_linetype_raises_exception PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_set_current_lineweight PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_invalid_lineweight_raises_exception PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_set_current_linetype_scale PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_invalid_linetype_scale_raises_exception PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_set_current_textstyle PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_invalid_textstyle_raises_exception PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_set_current_dimstyle PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_invalid_dimstyle_raises_exception PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_empty_string PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_uppercase_letters PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_lowercase_letters PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_digits PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_special_chars PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_asterix_is_allowed_as_first_letter PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_punctuation PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translation_spaces PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_invalid_chars_to_underscores PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_get_same_translations_for_same_names PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_unique_names_for_same_r12_translations PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_names_case_insensitive PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_limit_length_of_long_names PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_long_names PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_new_clipping_path_dxf_structure PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_new_clipping_path_geometry PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_invalid_clipping_path_raises_exception[vertices0] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_invalid_clipping_path_raises_exception[vertices1] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_rectangular_clipping_path_geometry PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_new_spatial_filter_parmeters PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_enable_clipping_without_path_set PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_toggle_clipping_state PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_discard_clipping_path PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_cleanup_base_entity PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_get_wcs_clipping_path PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_set_wcs_clipping_path PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_invert_clip_without_clipping_path PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_cannot_invert_clipping_path_twice PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_invert_clipping_path_properties PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_invert_clipping_path_dxf_structure PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_msp_1_m PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_msp_easy_usage PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_msp_2_m PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_msp_1_ft PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_msp_2_ft PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_msp_1_in PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_paper_space_scale_1_1 PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_paper_space_scale_1_100 PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_paper_space_default PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_paper_space_to_model_space_metric PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_paper_space_to_model_space_us PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_conversion_factor[6-4-1000] PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_conversion_factor[4-6-0.001] PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_conversion_factor[6-5-100] PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_conversion_factor[5-6-0.01] PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_conversion_factor[5-4-10] PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_conversion_factor[4-5-0.1] PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_conversion_type_error[0-6] PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_conversion_type_error[6-0] PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_conversion_type_error[0-0] PASSED [ 34%] tests/test_05_tools/test_500_units.py::test_conversion_invalid_units PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::test_rgb PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::test_from_rgb PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::test_from_aci PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::test_0 PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::test_256 PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::test_luminance PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::TestRGB::test_from_hex_ PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::TestRGB::test_from_hex_with_alpha PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::TestRGB::test_from_floats PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::TestRGB::test_to_floats PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::TestRGB::test_to_hex PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::TestRGB::test_luminance PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::TestRGBA::test_from_hex PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::TestRGBA::test_to_hex PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::TestRGBA::test_from_floats PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::TestRGBA::test_to_floats PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::TestRGBA::test_luminance PASSED [ 34%] tests/test_05_tools/test_501_truecolor.py::TestRGBA::test_default_alpha_channel_is_opaque PASSED [ 34%] tests/test_05_tools/test_502_raw_color.py::test_decode_by_block PASSED [ 34%] tests/test_05_tools/test_502_raw_color.py::test_encode_by_block PASSED [ 34%] tests/test_05_tools/test_502_raw_color.py::test_decode_by_layer PASSED [ 34%] tests/test_05_tools/test_502_raw_color.py::test_encode_by_layer PASSED [ 34%] tests/test_05_tools/test_502_raw_color.py::test_decode_aci PASSED [ 34%] tests/test_05_tools/test_502_raw_color.py::test_encode_aci PASSED [ 34%] tests/test_05_tools/test_502_raw_color.py::test_decode_rgb PASSED [ 34%] tests/test_05_tools/test_502_raw_color.py::test_encode_rgb PASSED [ 34%] tests/test_05_tools/test_503_indexing.py::test_item_index PASSED [ 34%] tests/test_05_tools/test_503_indexing.py::test_slicing_ascending_order PASSED [ 34%] tests/test_05_tools/test_503_indexing.py::test_errors PASSED [ 34%] tests/test_05_tools/test_503_indexing.py::test_slicing_descending_order PASSED [ 35%] tests/test_05_tools/test_504_suppress_zeros.py::test_leading_zeros PASSED [ 35%] tests/test_05_tools/test_504_suppress_zeros.py::test_trim_trailing_zeros_for_integers PASSED [ 35%] tests/test_05_tools/test_506_version.py::test_version PASSED [ 35%] tests/test_05_tools/test_507_dxf_pretty_printer.py::test_dxf_drawing_to_html PASSED [ 35%] tests/test_05_tools/test_508_read_zip.py::test_read_ac1009 PASSED [ 35%] tests/test_05_tools/test_509_comments.py::test_load_only_comments PASSED [ 35%] tests/test_05_tools/test_509_comments.py::test_load_handles_and_comments PASSED [ 35%] tests/test_05_tools/test_509_comments.py::test_load_structure_and_comments PASSED [ 35%] tests/test_05_tools/test_510_byte_stream.py::test_init PASSED [ 35%] tests/test_05_tools/test_510_byte_stream.py::test_read_ps PASSED [ 35%] tests/test_05_tools/test_510_byte_stream.py::test_read_ps_align PASSED [ 35%] tests/test_05_tools/test_510_byte_stream.py::test_read_pus PASSED [ 35%] tests/test_05_tools/test_510_byte_stream.py::test_read_doubles PASSED [ 35%] tests/test_05_tools/test_511_bit_stream.py::test_read_bit PASSED [ 35%] tests/test_05_tools/test_511_bit_stream.py::test_read_bits PASSED [ 35%] tests/test_05_tools/test_511_bit_stream.py::test_read_unsigned_byte PASSED [ 35%] tests/test_05_tools/test_511_bit_stream.py::test_read_signed_byte PASSED [ 35%] tests/test_05_tools/test_511_bit_stream.py::test_read_unsigned_short PASSED [ 35%] tests/test_05_tools/test_511_bit_stream.py::test_read_aligned_unsigned_short PASSED [ 35%] tests/test_05_tools/test_511_bit_stream.py::test_read_unsigned_long PASSED [ 35%] tests/test_05_tools/test_511_bit_stream.py::test_read_aligned_unsigned_long PASSED [ 35%] tests/test_05_tools/test_511_bit_stream.py::test_read_bitshort PASSED [ 35%] tests/test_05_tools/test_511_bit_stream.py::test_read_signed_modular_chars PASSED [ 35%] tests/test_05_tools/test_511_bit_stream.py::test_read_unsigned_modular_chars PASSED [ 35%] tests/test_05_tools/test_511_bit_stream.py::test_read_modular_shorts PASSED [ 35%] tests/test_05_tools/test_511_bit_stream.py::test_read_object_type PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_load_iso_pattern PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_load_scaled_iso_pattern PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_load_imperial_pattern PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_scale_pattern PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_scale_all_pattern PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_parse_pattern_file PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_horizontal_lines[ISO02W100] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_horizontal_lines[DASH] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_horizontal_lines[CLAY] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_horizontal_lines[FLEXIBLE] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_vertical_lines[GOST_WOOD] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_vertical_lines[V_ZINC] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_45_deg_lines[ANSI31] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_45_deg_lines[BRICK_INSULATING] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_45_deg_lines[BUTTERFLY] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_45_deg_lines[CROSSES] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_135_deg_lines[BUTTERFLY] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_135_deg_lines[CROSSES] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_60_deg_lines[DIAMONDS] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_60_deg_lines[ESCHER] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_all_45_deg_lines[ANSI31] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_all_45_deg_lines[BRICK_EXISTING] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_all_solid_lines[ANSI31] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_all_solid_lines[BRICK_EXISTING] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_analyse_ansi31 PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_analyse_checker PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_rotated_checker PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_analyse_crosses PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[0-0] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[45-450] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[90-90] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[135-135] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[22-15] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[23-30] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[45-451] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[180-0] PASSED [ 35%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[270-90] PASSED [ 35%] tests/test_05_tools/test_513_reorder_entities.py::test_ascending_sort_order PASSED [ 35%] tests/test_05_tools/test_513_reorder_entities.py::test_mapped_ascending_sort_order PASSED [ 35%] tests/test_05_tools/test_513_reorder_entities.py::test_mapping_to_0_ascending_sort_order PASSED [ 35%] tests/test_05_tools/test_513_reorder_entities.py::test_full_mapped_ascending_sort_order PASSED [ 35%] tests/test_05_tools/test_513_reorder_entities.py::test_descending_sort_order PASSED [ 35%] tests/test_05_tools/test_513_reorder_entities.py::test_mapping_to_0_descending_sort_order PASSED [ 35%] tests/test_05_tools/test_513_reorder_entities.py::test_full_mapped_descending_sort_order PASSED [ 35%] tests/test_05_tools/test_514_text.py::TestTextLine::test_text_width_and_height PASSED [ 35%] tests/test_05_tools/test_514_text.py::TestTextLine::test_shrink_to_fit PASSED [ 35%] tests/test_05_tools/test_514_text.py::TestTextLine::test_stretch_to_aligned PASSED [ 35%] tests/test_05_tools/test_514_text.py::TestTextLine::test_baseline_vertices_left_aligned PASSED [ 35%] tests/test_05_tools/test_514_text.py::TestTextLine::test_baseline_vertices_center_aligned PASSED [ 35%] tests/test_05_tools/test_514_text.py::TestTextLine::test_baseline_vertices_right_aligned PASSED [ 35%] tests/test_05_tools/test_514_text.py::TestTextLine::test_corner_vertices_baseline_aligned PASSED [ 35%] tests/test_05_tools/test_514_text.py::TestTextLine::test_corner_vertices_top_aligned PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLine::test_corner_vertices_bottom_aligned PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLine::test_corner_vertices_middle_aligned PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_empty_input PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_translation[location0] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_translation[location1] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_translation[location2] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_translation[location3] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_translation[location4] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_rotate[0] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_rotate[1.5707963267948966] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_rotate[0.7853981633974483] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_rotate[-1.5707963267948966] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_rotate[-0.7853981633974483] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_x[0-2-0] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_x[1-2-2] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_x[2-2-4] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_x[2--1--2] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_x[2--2--4] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_y[0-2-0] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_y[1-2-2] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_y[2-2-4] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_y[2--1--2] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_y[2--2--4] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_oblique PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_plain_text PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_caret_decode PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_dxf_escape_line_endings PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_replace_non_printable PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_plain_mtext_removes_formatting PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_plain_mtext2_removes_formatting PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_remove_commands_without_terminating_semicolon PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_plain_mtext_decoding_special_chars[fast_plain_mtext] PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_plain_mtext_decoding_special_chars[plain_mtext] PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestSplitMText::test_do_not_split_at_caret PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestSplitMText::test_split_empty_string PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestSplitMText::test_split_short_string PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestSplitMText::test_split_long_string PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestSplitMText::test_split_longer_string PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_text_wrapping PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestIsTextVerticalStacked::test_virtual_text_entity PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestIsTextVerticalStacked::test_standard_text_entity PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestIsTextVerticalStacked::test_stacked_text_entity PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestIsTextVerticalStacked::test_stacked_mtext_entity PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestIsTextVerticalStacked::test_raise_type_error_for_unsupported_types PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestMTextContentHasInlineFormattingCodes::test_line_breaks_is_not_an_inline_code PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestMTextContentHasInlineFormattingCodes::test_non_breaking_space_is_not_an_inline_code PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestMTextContentHasInlineFormattingCodes::test_inline_formatting_code PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestMTextContentHasInlineFormattingCodes::test_line_break_and_inline_formatting_code PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_is_upside_down_text_angle[95] PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_is_upside_down_text_angle[180] PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_is_upside_down_text_angle[265] PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_is_upside_down_text_angle[-95] PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_is_upside_down_text_angle[-180] PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_is_upside_down_text_angle[-265] PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_is_not_upside_down_text_angle[0] PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_is_not_upside_down_text_angle[90] PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_is_not_upside_down_text_angle[270] PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_is_not_upside_down_text_angle[-90] PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_is_not_upside_down_text_angle[-270] PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_flipping_tolerance PASSED [ 36%] tests/test_05_tools/test_514_text.py::test_upright_text_angle PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestEstimateMTextContentExtents::test_empty_text PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestEstimateMTextContentExtents::test_more_empty_text PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestEstimateMTextContentExtents::test_single_line PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestEstimateMTextContentExtents::test_many_lines_no_line_wrapping PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestEstimateMTextContentExtents::test_many_lines_with_line_wrapping PASSED [ 36%] tests/test_05_tools/test_514_text.py::TestEstimateMTextContentExtents::test_estimation_safety_factor PASSED [ 36%] tests/test_05_tools/test_515a_fonts_truetype.py::test_sut_font_cache_was_loaded PASSED [ 36%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[LiberationSans-Regular.ttf-Liberation Sans] PASSED [ 36%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[LiberationSerif-Regular.ttf-Liberation Serif] PASSED [ 36%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[LiberationMono-Regular.ttf-Liberation Mono] PASSED [ 36%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[LiberationSansNarrow-Regular.ttf-Liberation Sans Narrow] PASSED [ 36%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[DejaVuSans.ttf-DejaVu Sans] PASSED [ 36%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[DejaVuSerif.ttf-DejaVu Serif] PASSED [ 36%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[DejaVuSansMono.ttf-DejaVu Sans Mono] PASSED [ 36%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[OpenSans-Regular.ttf-Open Sans] PASSED [ 36%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[OpenSansCondensed-Light.ttf-Open Sans Condensed] PASSED [ 36%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[NotoSansSC-Regular.otf-Noto Sans SC] PASSED [ 36%] tests/test_05_tools/test_515a_fonts_truetype.py::test_find_font_face_without_definition PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::test_find_font_face PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::test_get_font_without_definition PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::test_get_font_face_with_definition PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::test_map_shx_to_ttf PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::test_map_ttf_to_shx PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::test_get_font_measurement PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::test_get_font_measurement_for_shx_fonts PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontFace::test_same_font_faces_have_equal_hash_values PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontFace::test_font_face_is_italic PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontFace::test_font_face_is_oblique PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontFace::test_font_face_is_bold PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontFace::test_weight_str PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontFace::test_width_str PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontMeasurements::test_total_height PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontMeasurements::test_scale PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontMeasurements::test_shift PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontMeasurements::test_scale_from_baseline PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontMeasurements::test_cap_top PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontMeasurements::test_x_top PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontMeasurements::test_bottom PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestMonospaceFont::test_space_width PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestMonospaceFont::test_text_width PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestMonospaceFont::test_text_width_ex PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestMonospaceFont::test_text_path PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestMonospaceFont::test_text_path_ex PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestTrueTypeFont::test_space_width PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestTrueTypeFont::test_text_width PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestTrueTypeFont::test_text_width_ex PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestTrueTypeFont::test_text_path PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::TestTrueTypeFont::test_text_path_ex PASSED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::test_find_font_file_by_best_match SKIPPED [ 37%] tests/test_05_tools/test_515a_fonts_truetype.py::test_find_generic_font_family SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::test_get_font_family_for_shx_files SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::test_get_font_family_for_shp_files SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::test_get_font_style_for_shx_files SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::test_best_match_for_shape_files SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::test_width_value_influences_the_best_match_for_shape_files SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestShapeFileFont::test_space_width SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestShapeFileFont::test_text_width SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestShapeFileFont::test_text_width_ex SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestShapeFileFont::test_text_path SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestShapeFileFont::test_text_path_ex SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestGlyphCache::test_get_glyphs SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestGlyphCache::test_get_advance_width SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestGlyphCache::test_get_space_width SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestGlyphCache::test_get_font_measurements SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestGlyphCache::test_path_for_unsupported_glyphs SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestGlyphCache::test_spaces_are_measured SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestGlyphCache::test_spaces_are_not_rendered SKIPPED [ 37%] tests/test_05_tools/test_515b_fonts_shapefiles.py::test_resolve_shx_font_name SKIPPED [ 37%] tests/test_05_tools/test_515c_fonts_lff.py::test_get_font_family_for_lff_files SKIPPED [ 37%] tests/test_05_tools/test_515c_fonts_lff.py::TestLibreCadFont::test_is_a_lff_font SKIPPED [ 37%] tests/test_05_tools/test_515c_fonts_lff.py::TestLibreCadFont::test_space_width SKIPPED [ 37%] tests/test_05_tools/test_515c_fonts_lff.py::TestLibreCadFont::test_text_width SKIPPED [ 37%] tests/test_05_tools/test_515c_fonts_lff.py::TestLibreCadFont::test_text_width_ex SKIPPED [ 37%] tests/test_05_tools/test_515c_fonts_lff.py::TestLibreCadFont::test_text_path SKIPPED [ 37%] tests/test_05_tools/test_515c_fonts_lff.py::TestLibreCadFont::test_text_path_ex SKIPPED [ 37%] tests/test_05_tools/test_515c_fonts_lff.py::test_low_level_glyph_cache_measures_spaces SKIPPED [ 37%] tests/test_05_tools/test_515c_fonts_lff.py::test_map_shx_to_lff SKIPPED [ 37%] tests/test_05_tools/test_516_zoom.py::TestModelSpace::test_zoom_center PASSED [ 37%] tests/test_05_tools/test_516_zoom.py::TestModelSpace::test_zoom_extents PASSED [ 37%] tests/test_05_tools/test_516_zoom.py::TestModelSpace::test_zoom_extents_factor_2 PASSED [ 37%] tests/test_05_tools/test_516_zoom.py::TestModelSpace::test_zoom_window PASSED [ 37%] tests/test_05_tools/test_516_zoom.py::TestModelSpace::test_zoom_objects PASSED [ 37%] tests/test_05_tools/test_516_zoom.py::TestModelSpace::test_zoom_objects_of_empty_set PASSED [ 37%] tests/test_05_tools/test_516_zoom.py::TestPaperSpace::test_bbox_of_main_viewport PASSED [ 37%] tests/test_05_tools/test_516_zoom.py::TestPaperSpace::test_zoom_center PASSED [ 37%] tests/test_05_tools/test_516_zoom.py::TestPaperSpace::test_zoom_extents PASSED [ 37%] tests/test_05_tools/test_516_zoom.py::TestPaperSpace::test_zoom_extents_factor_2 PASSED [ 37%] tests/test_05_tools/test_516_zoom.py::TestPaperSpace::test_zoom_window PASSED [ 37%] tests/test_05_tools/test_516_zoom.py::TestPaperSpace::test_zoom_objects_of_empty_set PASSED [ 37%] tests/test_05_tools/test_517_text_layout.py::test_resolve_margins[None-expected0] PASSED [ 37%] tests/test_05_tools/test_517_text_layout.py::test_resolve_margins[margins1-expected1] PASSED [ 37%] tests/test_05_tools/test_517_text_layout.py::test_resolve_margins[margins2-expected2] PASSED [ 37%] tests/test_05_tools/test_517_text_layout.py::test_resolve_margins[margins3-expected3] PASSED [ 37%] tests/test_05_tools/test_517_text_layout.py::test_resolve_margins[margins4-expected4] PASSED [ 37%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[1-expected0] PASSED [ 37%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[2-expected1] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[3-expected2] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[4-expected3] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[5-expected4] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[6-expected5] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[7-expected6] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[8-expected7] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[9-expected8] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_create_empty_layout_top_left PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_create_empty_layout_middle_center PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_add_one_column_by_reference_width PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_add_two_equal_columns PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_bounding_box_for_not_placed_layout PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_bounding_box_for_placed_layout PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_next_existing_column PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_next_column_creates_a_new_column PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestColumn::test_size_calculation PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestColumn::test_render PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::test_paragraph_available_line_content_space PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithUnrestrictedHeight::test_empty_paragraph_dimensions PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithUnrestrictedHeight::test_render_empty_paragraph PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithUnrestrictedHeight::test_distribute_invalid_content PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithUnrestrictedHeight::test_distribute_common_case_without_nbsp PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithUnrestrictedHeight::test_distribute_with_nbsp PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithUnrestrictedHeight::test_distribute_too_long_lines PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithUnrestrictedHeight::test_distribute_too_long_lines_including_nbsp PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithRestrictedHeight::test_distribute_with_exact_height_match PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithRestrictedHeight::test_distribute_with_one_line_left_over PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithRestrictedHeight::test_distribute_with_all_lines_left_over PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphLeftAlignment::test_without_indentation PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphLeftAlignment::test_left_indentation PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphLeftAlignment::test_move_tab_to_next_line_if_following_content_does_not_fit PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphLeftAlignment::test_tab_and_text_do_not_fit_into_line PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphAlignment::test_without_indentation PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphAlignment::test_right_indentation PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphCenterAlignment::test_without_indentation PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphCenterAlignment::test_left_indentation PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphCenterAlignment::test_right_indentation PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphJustifiedAlignment::test_without_indentation PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestParagraphJustifiedAlignment::test_with_indentation PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestVerticalCellAlignment::test_line_properties PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestVerticalCellAlignment::test_bottom_alignment PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestVerticalCellAlignment::test_center_alignment PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestVerticalCellAlignment::test_top_alignment PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestVerticalCellAlignment::test_mixed_alignment PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestTextStrokeRendering::test_simple_stroke[1-STROKE(UNDERLINE, 3.0)] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestTextStrokeRendering::test_simple_stroke[4-STROKE(OVERLINE, 3.0)] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestTextStrokeRendering::test_simple_stroke[2-STROKE(STRIKE_THROUGH, 3.0)] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestTextContinueStroke::test_continue_stroke_across_one_space PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestTextContinueStroke::test_continue_stroke_across_multiple_spaces PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestTextContinueStroke::test_do_not_continue_stroke_automatically PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestFractionCell::test_a_over_b PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestFractionCell::test_a_over_line_b PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestFractionCell::test_a_slanted_b PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::test_cell_converter PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_no_glue_between_content_raises_value_error[tt] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_no_glue_between_content_raises_value_error[tf] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_no_glue_between_content_raises_value_error[ft] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_no_glue_between_content_raises_value_error[ff] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_ignore_non_breaking_space_between_text_and_fraction[t~f] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_ignore_non_breaking_space_between_text_and_fraction[f~f] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_ignore_non_breaking_space_between_text_and_fraction[f~t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_ignore_pending_non_breaking_space PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_multiple_nbsp[t~t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_multiple_nbsp[t~~t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_multiple_nbsp[t~~~t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[t~ t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[t ~t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[t~~ t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[t ~~t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[~t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[~~t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[t#~t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[t~#t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[t~#~t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_multiple_spaces[t t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_multiple_spaces[t t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_multiple_spaces[t t] PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_remove_pending_glue PASSED [ 38%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_prepending_space[ t] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_prepending_space[ t] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_prepending_space[ t] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_shrink_space PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_default_min_width PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_expand_restricted_space PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_expand_unrestricted_space PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_total_height_is_zero PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_non_breaking_space_to_space PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_can_shrink PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_can_grow PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestRigidConnection::test_rigid_connection PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestRigidConnection::test_create_one_connection[t~t] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestRigidConnection::test_create_one_connection[t~t~t] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestRigidConnection::test_create_two_connections[t~t t~t] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestRigidConnection::test_create_two_connections[t~t~t t~t~t] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestRigidConnection::test_ignore_pending_non_breaking_space PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_setup PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_line_height_is_defined_by_max_content_height PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_line_total_width_is_defined_by_content PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_fill_until_line_is_full PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_left_tab PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_left_tab_without_tab_stops PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_center_tab PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_right_tab PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_shift_tab_stop_left_in_range PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_shift_tab_stops_beyond_left_border PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_shift_tab_stops_beyond_right_border PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_empty_paragraph PASSED [ 39%] tests/test_05_tools/test_518_header_guid.py::test_guid_string_matches_autocad_pattern PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_append_text PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_iadd_text PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_stacked_text_limits_style PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_stacked_text_with_horizontal_divider_line PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_stacked_text_with_slanted_divider_line PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_invalid_divider_char_raises_value_error PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_change_color_name PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_change_aci_color PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_aci_color_raises_value_error[-1] PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_aci_color_raises_value_error[257] PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_change_to_red_by_rgb PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_change_to_green_by_rgb PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_change_to_blue_by_rgb PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_change_font PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_scale_height_factor PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_absolute_text_height PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_change_width_factor PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_change_char_tracking_factor PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_change_oblique_angle PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_fluent_interface PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_grouping PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_underline_text PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_overline_text PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_strike_through_text PASSED [ 39%] tests/test_05_tools/test_519_mtext_editor.py::test_bullet_lists PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::test_underline PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::test_strike PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::test_overstrike PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::test_copy PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::test_equality PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::test_set_aci PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_default_properties PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_indent_first_line PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_indent_paragraph_left PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_indent_paragraph_right PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_center_alignment_without_indentation PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_center_alignment_with_indentation PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_one_tab_stop PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_multiple_tab_stops PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_different_kinds_of_tab_stops PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_indentation_and_multiple_tab_stops PASSED [ 39%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_justified_alignment_and_multiple_tab_stops PASSED [ 39%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_parse_plain_text PASSED [ 39%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_three_adjacent_spaces PASSED [ 39%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_non_breaking_space PASSED [ 39%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_space_and_adjacent_non_breaking_space PASSED [ 39%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_tabulator_caret_I PASSED [ 39%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_new_paragraph_caret_J PASSED [ 39%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_replace_caret_chars_by_space PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_escaped_letters_building_words PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_invalid_escaped_letters_printed_verbatim PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_single_new_paragraph_token PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_new_paragraph_token_in_usual_context PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_single_new_column_token PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_grouping_chars_do_not_yield_tokens PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_parser_does_not_check_valid_grouping PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_wrap_at_dimline PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_decode_special_encodings PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_unknown_special_encodings PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_percent_sign_usage PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_simple_horizontal_fraction PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_simple_diagonal_fraction PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_simple_limit_style_fraction PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_without_terminator_parsing_until_end_of_string PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_replace_all_caret_encoded_chars_by_space[A] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_replace_all_caret_encoded_chars_by_space[I] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_replace_all_caret_encoded_chars_by_space[J] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_replace_all_caret_encoded_chars_by_space[M] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_replace_all_caret_encoded_chars_by_space[Z] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_escape_terminator_char PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_escape_backslash_char PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_escape_stacking_type_char PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_escape_caret_char PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_escape_caret_new_line PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_remove_backslash_escape_char PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_preserve_second_stacking_type_char PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_preserve_second_caret_char PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_parse_without_stacking_type_char PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_next_word_after_stacking PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_next_semi_colon_after_stacking PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_extraction_of_expression[word\\p______;word] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_extraction_of_expression[word\\f______;word] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_extraction_of_expression[word\\F______;word] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_underline_on PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_underline_on_off_for_multiple_words PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_consecutive_tokens_get_the_same_context_objects_if_unchanged PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_underline_on_off_creates_different_context_objects PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_overline_on_off PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_strike_through_on_off PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_stroke_on_off_multiple_times[\\L-\\l-underline] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_stroke_on_off_multiple_times[\\K-\\k-strike_through] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_stroke_on_off_multiple_times[\\O-\\o-overline] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_context_stack_for_grouping PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_bottom_alignment_with_terminator PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_middle_alignment_without_terminator PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_top_alignment_without_terminator PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_alignment_default_value_for_invalid_argument PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_font_b0_i0 PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_font_b1_i0 PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_font_b0_i1 PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_font_b1_i1 PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_font_uppercase_command PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_empty_font_command_does_not_change_font_properties PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_empty_font_family_name_does_not_change_font_properties PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H3] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H3;] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H+3] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H+3;] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H-3] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H-3;] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H0.3e1] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H0.3e1;] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H30e-1] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H30e-1;] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W3x] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W3x;] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W+3x] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W+3x;] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W-3x] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W-3x;] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W0.3e1x] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W0.3e1x;] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W30e-1x] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W30e-1x;] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H;] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\Hx] PASSED [ 40%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\Hx;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H1-2;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H.3] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H.3;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H.3x] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H.3x;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H.] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H.;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W3] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W3;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W+3] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W+3;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W-3] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W-3;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W0.3e1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W0.3e1;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W30e-1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W30e-1;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T3] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T3;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T+3] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T+3;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T-3] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T-3;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T0.3e1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T0.3e1;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T30e-1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T30e-1;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T3x] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T3x;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T+3x] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T+3x;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T-3x] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T-3x;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T0.3e1x] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T0.3e1x;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T30e-1x] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T30e-1x;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q3] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q3;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q+3] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q+3;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q0.3e1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q0.3e1;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q30e-1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q30e-1;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_negative_oblique_command[\\Q-3] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_negative_oblique_command[\\Q-3;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_negative_oblique_command[\\Q-0.3e1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_negative_oblique_command[\\Q-0.3e1;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_negative_oblique_command[\\Q-30e-1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_negative_oblique_command[\\Q-30e-1;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_aci_color[\\C3] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_aci_color[\\C3;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_aci_color[\\C03] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_aci_color[\\C03;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_aci_color_is_limited_to_256[\\C1000] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_aci_color_is_limited_to_256[\\C1000;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_rgb_color[\\c255] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_rgb_color[\\c255;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_rgb_color[\\c0255] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_rgb_color[\\c0255;] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_rgb_color_overflow PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_first_line[i0;-0] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_first_line[i+1;-1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_first_line[i1.1;-1.1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_first_line[i-1;--1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_first_line[i-1.1;--1.1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_left[l0;-0] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_left[l+1;-1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_left[l1.1;-1.1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_left[l-1;--1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_left[l-1.1;--1.1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_right[r0;-0] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_right[r+1;-1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_right[r1.1;-1.1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_right[r-1;--1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_right[r-1.1;--1.1] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_paragraph_alignment[ql;-1] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_paragraph_alignment[qr;-2] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_paragraph_alignment[qc;-3] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_paragraph_alignment[qj;-4] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_paragraph_alignment[qd;-5] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_paragraph_alignment[q?;-0] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_tab_stops PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_combinations[i1,l2,r3,qc,t1,2,3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_combinations[qc,l2,r3,i1,t1,2,3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_combinations[xqc,xl2,xr3,xi1,xt1,2,3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_combinations[xqcl2xr3xi1xt1,2,3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_reset_arguments PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_invalid_tab_stops PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_unknown_escape_sequence PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParserYieldsPropertyChangeCommands::test_change_height PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParserYieldsPropertyChangeCommands::test_change_height_without_semicolon PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParserYieldsPropertyChangeCommands::test_change_char_tracking PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParserYieldsPropertyChangeCommands::test_change_paragraph PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParserYieldsPropertyChangeCommands::test_one_char_commands PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParserYieldsPropertyChangeCommands::test_unknown_escape_sequence PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_scan_empty_text PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_non_empty_string_is_not_empty PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_peeking_next_letter PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_peeking_more_letters_ahead PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_peeking_beyond_word_boundaries_returns_empty_string PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_getting_next_letter_forwards_scan_position PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_consume_one_letter PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_consume_two_letter PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_getting_all_letters_empties_scanner PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_can_not_consume_zero_chars PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_can_not_consume_negative_chars PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_can_not_peek_in_reverse_direction PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_find_next_char PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_find_ignores_escaped_chars PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_find_next_backslash PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_not_find_next PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_substr_at_the_begin PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_substr_from_consumed_string PASSED [ 42%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_substr_index_error PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_text_size_of_an_empty_string PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_text_width_of_a_single_char PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_text_width_of_a_string[ABC] PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_text_width_of_a_string[.,!] PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_text_width_of_a_string[ ] PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_text_width_of_a_string_for_width_factor_2[ABC] PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_text_width_of_a_string_for_width_factor_2[.,!] PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_text_width_of_a_string_for_width_factor_2[ ] PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_measurement_of_plain_text[ABC\n] PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_measurement_of_plain_text[ABC\r] PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_measurement_of_plain_text[AB^I] PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_measurement_of_plain_text[AB%%d] PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_support_for_text_size PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_mtext_size_of_an_empty_string PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_mtext_size_of_a_single_char PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_mtext_size_of_a_string PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_estimate_mtext_extents PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_mtext_size_of_2_lines[2.0-6.703281982585398] PASSED [ 42%] tests/test_05_tools/test_523_text_size.py::test_mtext_size_of_2_lines[3.0-10.054922973878098] PASSED [ 42%] tests/test_05_tools/test_524_block_reference_manager.py::test_non_exiting_handles_return_0 PASSED [ 42%] tests/test_05_tools/test_524_block_reference_manager.py::test_access_interface PASSED [ 42%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_simple_references PASSED [ 42%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_nested_block_references PASSED [ 42%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_used_in_xdata PASSED [ 42%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_used_in_app_data PASSED [ 42%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_used_in_xrecord PASSED [ 42%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_in_header_section PASSED [ 42%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_in_dimstyle PASSED [ 42%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_in_leader PASSED [ 42%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_for_anonymous_dimension_block PASSED [ 42%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_in_mleader_style PASSED [ 42%] tests/test_05_tools/test_525_transparency.py::test_transparency_to_float[33554432-1.0] PASSED [ 42%] tests/test_05_tools/test_525_transparency.py::test_transparency_to_float[33554559-0.5] PASSED [ 42%] tests/test_05_tools/test_525_transparency.py::test_transparency_to_float[33554687-0.0] PASSED [ 42%] tests/test_05_tools/test_525_transparency.py::test_transparency_to_float[0-1.0] PASSED [ 42%] tests/test_05_tools/test_525_transparency.py::test_transparency_to_float[127-0.5] PASSED [ 42%] tests/test_05_tools/test_525_transparency.py::test_transparency_to_float[255-0.0] PASSED [ 42%] tests/test_05_tools/test_525_transparency.py::test_float_to_transparency[33554432-1.0] PASSED [ 42%] tests/test_05_tools/test_525_transparency.py::test_float_to_transparency[33554559-0.5] PASSED [ 42%] tests/test_05_tools/test_525_transparency.py::test_float_to_transparency[33554687-0.0] PASSED [ 42%] tests/test_05_tools/test_526_explode.py::test_virtual_entities_from_insert PASSED [ 43%] tests/test_05_tools/test_526_explode.py::test_transparency_of_virtual_entities_from_insert PASSED [ 43%] tests/test_05_tools/test_526_explode.py::test_complex_target_coordinate_system PASSED [ 43%] tests/test_05_tools/test_526_explode.py::test_explode_scaled_block_ref_containing_a_hatch PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestDefaultGfxAttribs::test_default_init PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestDefaultGfxAttribs::test_str PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestDefaultGfxAttribs::test_repr PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestDefaultGfxAttribs::test_as_dict PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestDefaultGfxAttribs::test_as_dict_default_values PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribsFromDict::test_set_aci_color PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribsFromDict::test_set_transparency_as_float PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribsFromDict::test_set_transparency_by_block PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribsFromDict::test_set_transparency_as_raw_dxf_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribsFromDict::test_validation_errors PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLayer::test_init_by_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLayer::test_init_by_invalid_value_raises_exception PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLayer::test_set_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLayer::test_set_invalid_value_raises_exception PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLayer::test_str PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLayer::test_repr PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribColor::test_init_by_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribColor::test_init_by_invalid_value_raises_exception PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribColor::test_set_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribColor::test_set_invalid_value_raises_exception PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribColor::test_str PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribColor::test_repr PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTrueColor::test_init_by_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTrueColor::test_init_by_invalid_value_raises_exception PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTrueColor::test_set_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTrueColor::test_reset_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTrueColor::test_set_invalid_value_raises_exception PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTrueColor::test_str PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTrueColor::test_repr PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetype::test_init_by_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetype::test_init_by_invalid_value_raises_exception PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetype::test_set_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetype::test_set_invalid_value_raises_exception PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetype::test_str PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetype::test_repr PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLineweight::test_init_by_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLineweight::test_init_by_invalid_value_raises_exception PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLineweight::test_set_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLineweight::test_set_invalid_value_raises_exception PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLineweight::test_str PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLineweight::test_repr PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_init_by_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_init_by_invalid_value_raises_exception PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_set_value[0.0] PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_set_value[0.5] PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_set_value[1.0] PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_set_by_block_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_reset_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_set_invalid_value_raises_exception PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_str PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_by_block_str PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_repr PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_init_by_value PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_init_by_invalid_value_raises_exception PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_set_value[0.5] PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_set_value[1.0] PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_set_value[2.0] PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_set_value[1] PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_set_invalid_value_raises_exception[-1.0] PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_set_invalid_value_raises_exception[0.0] PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_set_invalid_value_raises_exception[-1] PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_str PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_repr PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::test_gfx_attribs_as_dict PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::test_transparency_by_block_as_dict PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::test_gfx_attribs_string PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::test_gfx_attribs_repr PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::test_load_header_defaults PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::test_write_back_header_defaults PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::test_from_entity PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::test_update_dxf_attributes_from_gfx_attribs PASSED [ 43%] tests/test_05_tools/test_527_gfxattribs.py::test_update_transparency_by_block_from_gfx_attribs PASSED [ 43%] tests/test_05_tools/test_528_difftags.py::test_equal_string_tags PASSED [ 43%] tests/test_05_tools/test_528_difftags.py::test_round_tags PASSED [ 43%] tests/test_05_tools/test_528_difftags.py::test_equal_rounded_float_tags PASSED [ 44%] tests/test_05_tools/test_528_difftags.py::test_equal_vertex_tags PASSED [ 44%] tests/test_05_tools/test_528_difftags.py::test_prepend_tag PASSED [ 44%] tests/test_05_tools/test_528_difftags.py::test_insert_tag PASSED [ 44%] tests/test_05_tools/test_528_difftags.py::test_append_tag PASSED [ 44%] tests/test_05_tools/test_528_difftags.py::test_replace_last_tag PASSED [ 44%] tests/test_05_tools/test_528_difftags.py::test_replace_inner_tag PASSED [ 44%] tests/test_05_tools/test_528_difftags.py::test_delete_last_tag PASSED [ 44%] tests/test_05_tools/test_528_difftags.py::test_delete_inner_tag PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::test_default_header PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::test_dump_header_string[400-400 0 1 0 \n25 ezdxf v1.2.0 ACIS Builder 12 ACIS 4.00 NT 24 Sat Jan 1 10:00:00 2022 \n1 9.9999999999999995e-007 1e-010 ] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::test_dump_header_string[700-700 0 1 0 \n@25 ezdxf v1.2.0 ACIS Builder @12 ACIS 32.0 NT @24 Sat Jan 1 10:00:00 2022 \n1 9.9999999999999995e-007 1e-010 ] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::test_dump_header_string[21800-21800 0 1 0 \n@25 ezdxf v1.2.0 ACIS Builder @14 ACIS 218.00 NT @24 Sat Jan 1 10:00:00 2022 \n1 9.9999999999999995e-007 1e-010 ] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::test_parse_header_str[18 ezdxf ACIS Builder 14 ACIS 208.00 NT 24 Sat Jan 1 10:00:00 2022 ] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::test_parse_header_str[@18 ezdxf ACIS Builder @14 ACIS 208.00 NT @24 Sat Jan 1 10:00:00 2022 ] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::test_parse_sat_header[400 0 1 0 \n25 ezdxf v1.2.0 ACIS Builder 12 ACIS 4.00 NT 24 Sat Jan 1 10:00:00 2022 \n1 9.9999999999999995e-007 1e-010 -400] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::test_parse_sat_header[21800 0 1 0 \n@25 ezdxf v1.2.0 ACIS Builder @14 ACIS 218.00 NT @24 Sat Jan 1 10:00:00 2022 \n1 9.9999999999999995e-007 1e-010 -21800] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestMergeRecordStrings::test_end_of_records_detection[data0] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestMergeRecordStrings::test_end_of_records_detection[data1] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestMergeRecordStrings::test_merge_records[data0] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestMergeRecordStrings::test_merge_records[data1] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestMergeRecordStrings::test_merge_records[data2] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestMergeRecordStrings::test_weird_placement_of_record_terminator PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestParseRecords::test_simple_case PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestParseRecords::test_sequence_numbers PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestParseRecords::test_non_continuous_sequence_numbers_raises_exception PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestParseRecords::test_merged_records[data0] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestParseRecords::test_merged_records[data1] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestParseRecords::test_merged_records[data2] PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::test_build_entities PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestAcisBuilder::test_parsing_result PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestAcisBuilder::test_body_entity PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestAcisBuilder::test_ptr_resolving PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestAcisBuilder::test_attr_ptr_is_reset PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::TestAcisBuilder::test_dump_sat_recreates_the_source_structure PASSED [ 44%] tests/test_05_tools/test_529_acis_sat.py::test_build_str_records PASSED [ 44%] tests/test_05_tools/test_530_acis_sab.py::test_decode_header PASSED [ 44%] tests/test_05_tools/test_530_acis_sab.py::test_encode_header PASSED [ 44%] tests/test_05_tools/test_530_acis_sab.py::test_decode_first_record PASSED [ 44%] tests/test_05_tools/test_530_acis_sab.py::test_decode_all_records PASSED [ 44%] tests/test_05_tools/test_530_acis_sab.py::test_parse_sab PASSED [ 44%] tests/test_05_tools/test_530_acis_sab.py::TestSabEntity::test_get_pointer_at_index PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::test_load_any_format[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_type_type[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_transform_attribute[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_transform_attribute_was_loaded[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_wire_attribute[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_get_all_lumps_as_a_list[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_lump_type[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_back_pointer_to_body[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_no_next_lump[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_attribute_to_first_shell[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_get_all_shells_as_a_list[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_shell_type[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_back_pointer_to_lump[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_has_no_next_shell[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_get_all_faces_as_a_list[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_type[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_back_pointer_to_shell[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_has_attribute_surface[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_features[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_traverse_all_six_cube_faces[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_type[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_location[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_normal[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_u_dir[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_has_infinite_bounds[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_type[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_cube_face_has_only_one_loop[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_references_the_parent_face[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_type[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_forward_linked_list[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_reverse_linked_list[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_partner_co_edge_count_is_two[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_have_partner_co_edges_other_faces[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_sense_of_co_edge_is_forward[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_references_the_parent_loop[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_type[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_a_start_vertex[SAT_400] PASSED [ 44%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_an_end_vertex[SAT_400] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_sense_of_edge_is_forward[SAT_400] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_underlying_curve_of_edge[SAT_400] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_is_referenced_by_two_parent_co_edges[SAT_400] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_type[SAT_400] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_references_parent_edge[SAT_400] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_type[SAT_400] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_location[SAT_400] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_get_all_points[SAT_400] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::test_load_any_format[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_type_type[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_transform_attribute[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_transform_attribute_was_loaded[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_wire_attribute[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_get_all_lumps_as_a_list[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_lump_type[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_back_pointer_to_body[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_no_next_lump[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_attribute_to_first_shell[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_get_all_shells_as_a_list[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_shell_type[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_back_pointer_to_lump[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_has_no_next_shell[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_get_all_faces_as_a_list[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_type[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_back_pointer_to_shell[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_has_attribute_surface[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_features[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_traverse_all_six_cube_faces[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_type[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_location[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_normal[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_u_dir[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_has_infinite_bounds[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_type[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_cube_face_has_only_one_loop[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_references_the_parent_face[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_type[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_forward_linked_list[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_reverse_linked_list[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_partner_co_edge_count_is_two[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_have_partner_co_edges_other_faces[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_sense_of_co_edge_is_forward[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_references_the_parent_loop[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_type[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_a_start_vertex[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_an_end_vertex[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_sense_of_edge_is_forward[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_underlying_curve_of_edge[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_is_referenced_by_two_parent_co_edges[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_type[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_references_parent_edge[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_type[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_location[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_get_all_points[SAT_700] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::test_load_any_format[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_type_type[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_transform_attribute[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_transform_attribute_was_loaded[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_wire_attribute[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_get_all_lumps_as_a_list[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_lump_type[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_back_pointer_to_body[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_no_next_lump[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_attribute_to_first_shell[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_get_all_shells_as_a_list[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_shell_type[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_back_pointer_to_lump[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_has_no_next_shell[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_get_all_faces_as_a_list[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_type[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_back_pointer_to_shell[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_has_attribute_surface[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_features[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_traverse_all_six_cube_faces[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_type[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_location[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_normal[SAB_R2013] PASSED [ 45%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_u_dir[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_has_infinite_bounds[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_type[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_cube_face_has_only_one_loop[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_references_the_parent_face[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_type[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_forward_linked_list[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_reverse_linked_list[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_partner_co_edge_count_is_two[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_have_partner_co_edges_other_faces[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_sense_of_co_edge_is_forward[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_references_the_parent_loop[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_type[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_a_start_vertex[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_an_end_vertex[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_sense_of_edge_is_forward[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_underlying_curve_of_edge[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_is_referenced_by_two_parent_co_edges[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_type[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_references_parent_edge[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_type[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_location[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_get_all_points[SAB_R2013] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::test_load_any_format[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_type_type[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_transform_attribute[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_transform_attribute_was_loaded[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_wire_attribute[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_get_all_lumps_as_a_list[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_lump_type[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_back_pointer_to_body[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_no_next_lump[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_attribute_to_first_shell[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_get_all_shells_as_a_list[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_shell_type[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_back_pointer_to_lump[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_has_no_next_shell[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_get_all_faces_as_a_list[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_type[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_back_pointer_to_shell[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_has_attribute_surface[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_features[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_traverse_all_six_cube_faces[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_type[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_location[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_normal[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_u_dir[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_has_infinite_bounds[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_type[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_cube_face_has_only_one_loop[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_references_the_parent_face[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_type[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_forward_linked_list[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_reverse_linked_list[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_partner_co_edge_count_is_two[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_have_partner_co_edges_other_faces[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_sense_of_co_edge_is_forward[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_references_the_parent_loop[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_type[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_a_start_vertex[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_an_end_vertex[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_sense_of_edge_is_forward[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_underlying_curve_of_edge[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_is_referenced_by_two_parent_co_edges[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_type[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_references_parent_edge[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_type[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_location[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_get_all_points[SAB_R2018] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_append_lumps PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_append_shells PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_append_faces PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPolyhedronFaceBuilder::test_creates_six_faces PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPolyhedronFaceBuilder::test_each_face_defines_a_plane_surface PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_set_closed_coedges PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_set_open_coedges PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::test_default_partner_co_edge_count_is_two PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestExportSat::test_export_rejects_unsupported_acis_versions PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestExportSat::test_export_acis_700 PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestExportSab21800::test_export_rejects_unsupported_acis_versions PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestExportSab21800::test_reload_records_from_acis_export PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::test_load_mesh_from_exported_sat_data PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::test_load_mesh_from_exported_sab_data PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestExportTransform::test_export_sat_identity_matrix PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestExportTransform::test_export_sab_identity_matrix PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPrismToMesh::test_mesh_has_10_faces PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPrismToMesh::test_mesh_has_8_unique_vertices PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPrismToMesh::test_all_faces_have_at_least_3_vertices PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPrismToMesh::test_any_face_has_at_least_4_vertices PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_six_faces_will_be_created PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_each_face_gets_it_own_plane PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_each_face_has_a_single_loop PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_for_24_unique_coedges PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_coedge_references_parent_loop PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_for_partner_coedges PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_for_12_unique_edges PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_edges_have_a_parent_coedge PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_each_edges_has_a_unique_straight_line PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_for_8_unique_vertices PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_for_8_unique_points PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_build_multiple_times_independent_faces PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::test_rebuild_mesh_from_acis_body PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestTransformCenterOfMeshToOriginAtConversionToAcisBody::test_transformation_matrix_for_translation PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::TestTransformCenterOfMeshToOriginAtConversionToAcisBody::test_if_acis_points_are_centered_around_the_origin PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::test_non_manifold_detection PASSED [ 47%] tests/test_05_tools/test_532_acis_mesh.py::test_body_from_menger_sponge_is_manifold PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::test_filter_noise PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::test_merge_wrapped_spec_line PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::test_do_not_merge_spec_without_name PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::test_big_font_not_supported PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_shape_file_name PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_cap_height PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_descender PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_mode PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_encoding PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_embed PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_is_font PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_shape_count PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_shape_by_number PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_find_shape_by_name PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_find_undefined_shape PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestShapeFile::test_is_a_shape_file PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestShapeFile::test_shape_by_number PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestShapeFile::test_shape_by_name PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_render_only_lines PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_render_bulges PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_render_full_circle_by_octant_arc PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_render_ccw_fractional_arcs_number_nine PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_render_ccw_fractional_arcs_ampersand PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_render_clockwise_fractional_arcs_letter_c PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_unsupported_non_printable_shape_number_returns_empty_path PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_unsupported_printable_shape_number_returns_empty_box PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_empty_box_has_advance_width_like_glyph_A PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestLoadShxShapeFile::test_shape_count PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestLoadShxShapeFile::test_shape_file_has_no_name PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestLoadShxShapeFile::test_shape_data PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestLoadShxFontFile::test_shape_count PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestLoadShxFontFile::test_some_shape_data PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestLoadUnifontFile::test_shape_count PASSED [ 47%] tests/test_05_tools/test_533_shapefiles.py::TestLoadUnifontFile::test_one_shape_data PASSED [ 47%] tests/test_05_tools/test_534_dwg_info.py::test_detect[R12] PASSED [ 47%] tests/test_05_tools/test_534_dwg_info.py::test_detect[R2000] PASSED [ 47%] tests/test_05_tools/test_534_dwg_info.py::test_detect[R2018] PASSED [ 47%] tests/test_05_tools/test_534_dwg_info.py::test_detect[unknown] PASSED [ 47%] tests/test_05_tools/test_534_dwg_info.py::test_detect_invalid[invalid] PASSED [ 47%] tests/test_05_tools/test_534_dwg_info.py::test_detect_invalid[empty] PASSED [ 47%] tests/test_05_tools/test_535_xref_basic.py::TestLoadResourcesWithoutNamingConflicts::test_loading_a_simple_layer PASSED [ 47%] tests/test_05_tools/test_535_xref_basic.py::TestLoadResourcesWithoutNamingConflicts::test_loading_a_shape_linetype PASSED [ 47%] tests/test_05_tools/test_535_xref_basic.py::TestLoadResourcesWithoutNamingConflicts::test_loading_a_text_linetype PASSED [ 47%] tests/test_05_tools/test_535_xref_basic.py::TestLoadResourcesWithoutNamingConflicts::test_loading_layer_with_complex_linetype PASSED [ 47%] tests/test_05_tools/test_535_xref_basic.py::TestLoadResourcesWithoutNamingConflicts::test_loading_a_text_style_with_extended_font_data PASSED [ 47%] tests/test_05_tools/test_535_xref_basic.py::TestLoadResourcesWithoutNamingConflicts::test_loading_dimstyle PASSED [ 47%] tests/test_05_tools/test_535_xref_basic.py::TestLoadResourcesWithoutNamingConflicts::test_loading_layer_with_custom_default_material PASSED [ 47%] tests/test_05_tools/test_535_xref_basic.py::TestLoadEntities::test_load_plain_entity PASSED [ 47%] tests/test_05_tools/test_535_xref_basic.py::TestLoadEntities::test_load_entity_layer_without_layer_table_entry PASSED [ 47%] tests/test_05_tools/test_535_xref_basic.py::TestLoadEntities::test_load_entity_with_xdata PASSED [ 47%] tests/test_05_tools/test_535_xref_basic.py::TestLoadEntities::test_load_entity_with_reactors PASSED [ 47%] tests/test_05_tools/test_535_xref_basic.py::TestLoadEntities::test_load_entity_with_extension_dict PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadTextEntities::test_load_text_entity PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadTextEntities::test_load_mtext_entity PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadTextEntities::test_attdef_with_embedded_mtext_entity PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::test_load_mtext_with_columns PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadLinkedEntities::test_load_polyline PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadLinkedEntities::test_load_polyface PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestBlocks::test_load_block_layout PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestBlocks::test_load_block_layout_does_type_checking PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestBlocks::test_load_block_reference PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestBlocks::test_load_block_reference_attributes PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestAnonymousBlocks::test_load_anonymous_block PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::test_loaded_external_reference PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::test_load_hard_owned_XRecord_within_appdata_section PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::test_load_hard_owned_XRecord_by_extension_dict PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestDimension::test_load_dimension_style_exist PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestDimension::test_loaded_geometry_block_exist PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestDimensionDimStyleOverride::test_load_dimension_style_exist PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestDimensionDimStyleOverride::test_dot_blocks_in_source_doc PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestDimensionDimStyleOverride::test_loaded_geometry_block_has_two_block_refs_of_dot PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestDimensionDimStyleOverride::test_loaded_xdata_override_has_handle_to_existing_block PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLeader::test_loaded_leader_is_linked_to_loaded_text PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLeader::test_loaded_xdata_override_has_handle_to_existing_block PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::test_tolerance_entity_register_dimstyle PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::test_associative_hatch_has_updated_source_boundary_handles PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadImage::test_loaded_infrastructure PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadImage::test_loaded_images_share_image_definition PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadImage::test_loaded_image_def_reactors PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadWipeout::test_loaded_infrastructure PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadWipeout::test_loaded_wipeout_has_same_boundary_path PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadMLine::test_loaded_infrastructure PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadMLine::test_loaded_mline_has_correct_style_attributes PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadMLine::test_loaded_mline_has_same_vertices PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestMultiLeaderMText::test_loaded_infrastructure PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestMultiLeaderMText::test_loaded_mleader_mtext_style PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestMultiLeaderMText::test_loader_multileader_attributes PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestMultiLeaderBlock::test_loaded_mleader_block_style PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestMultiLeaderBlock::test_loaded_mleader_attributes PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestMultiLeaderBlock::test_loaded_block_attributes PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestUnderlay::test_loaded_infrastructure PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestUnderlay::test_loaded_attributes PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadPaperspaceLayout::test_loaded_infrastructure PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadPaperspaceLayout::test_loaded_paperspace_without_name_conflict PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadPaperspaceLayout::test_loaded_paperspace_content PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadPaperspaceLayout::test_paperspace_name_conflict PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadPaperspaceViewport::test_loaded_viewport_attributes PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadPaperspaceViewport::test_loaded_clipping_entity PASSED [ 48%] tests/test_05_tools/test_535_xref_basic.py::TestLoadPaperspaceViewport::test_loaded_sun PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLayers::test_conflict_policy_keep PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLayers::test_xref_rename_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLayers::test_xref_rename_policy_load_2_times PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLayers::test_numbered_rename_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLayers::test_numbered_rename_policy_load_2_times PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLinetypes::test_conflict_policy_keep PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLinetypes::test_xref_rename_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLinetypes::test_numbered_rename_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadTextStyles::test_conflict_policy_keep PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadTextStyles::test_xref_rename_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadTextStyles::test_numbered_rename_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadDimStyles::test_conflict_policy_keep PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadDimStyles::test_xref_rename_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadDimStyles::test_numbered_rename_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMaterials::test_conflict_policy_keep PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMaterials::test_xref_rename_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMaterials::test_numbered_rename_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMLineStyles::test_conflict_policy_keep PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMLineStyles::test_xref_rename_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMLineStyles::test_numbered_rename_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMLeaderStyles::test_conflict_policy_keep PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMLeaderStyles::test_xref_rename_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMLeaderStyles::test_numbered_rename_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadTextWithExistingTextstyle::test_keep_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadTextWithExistingTextstyle::test_xref_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLineWithExistingLinetype::test_keep_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLineWithExistingLinetype::test_xref_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLineWithExistingComplexLinetype::test_xref_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadEntityWithExistingMaterial::test_keep_policy PASSED [ 48%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadEntityWithExistingMaterial::test_xref_policy PASSED [ 48%] tests/test_05_tools/test_537_transform.py::TestInplaceMethod::test_transformation_by_matrix_without_errors[doc] PASSED [ 48%] tests/test_05_tools/test_537_transform.py::TestInplaceMethod::test_transformation_by_matrix_without_errors[virtual] PASSED [ 49%] tests/test_05_tools/test_537_transform.py::TestInplaceMethod::test_non_uniform_transformation[doc] PASSED [ 49%] tests/test_05_tools/test_537_transform.py::TestInplaceMethod::test_entities_without_transformation_support PASSED [ 49%] tests/test_05_tools/test_537_transform.py::TestInplaceMethod::test_acis_entities PASSED [ 49%] tests/test_05_tools/test_537_transform.py::TestConvenientFunctions::test_translate PASSED [ 49%] tests/test_05_tools/test_537_transform.py::TestConvenientFunctions::test_scale_uniform PASSED [ 49%] tests/test_05_tools/test_537_transform.py::TestConvenientFunctions::test_scale PASSED [ 49%] tests/test_05_tools/test_537_transform.py::TestConvenientFunctions::test_z_rotate PASSED [ 49%] tests/test_05_tools/test_537_transform.py::TestConvenientFunctions::test_y_rotate PASSED [ 49%] tests/test_05_tools/test_537_transform.py::TestConvenientFunctions::test_x_rotate PASSED [ 49%] tests/test_05_tools/test_537_transform.py::test_circle_non_uniform_scaling PASSED [ 49%] tests/test_05_tools/test_537_transform.py::test_polyline_non_uniform_scaling PASSED [ 49%] tests/test_05_tools/test_537_transform.py::test_virtual_entities_do_not_support_non_uniform_scaling PASSED [ 49%] tests/test_05_tools/test_537_transform.py::TestVirtualCopies::test_just_copy PASSED [ 49%] tests/test_05_tools/test_537_transform.py::TestVirtualCopies::test_scale_virtual_circular_arcs_non_uniform PASSED [ 49%] tests/test_05_tools/test_537_transform.py::TestVirtualCopies::test_scale_virtual_polyline_with_bulge_non_uniform PASSED [ 49%] tests/test_05_tools/test_537_transform.py::TestMLeaderNonUniformScaling::test_transformation_will_not_be_applied_inplace PASSED [ 49%] tests/test_05_tools/test_537_transform.py::TestMLeaderNonUniformScaling::test_mleader_will_not_copied PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[word \\H100; word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[word \\H100 word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[\\H100; word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[\\H100 word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[word \\H100;] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[word \\H100] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[\\H100;] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[\\H100] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[\\H100.000] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[word \\H100; word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[word \\H100 word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[\\H100; word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[\\H100 word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[word \\H100;] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[word \\H100] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[\\H100;] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[\\H100] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[word \\H100x; word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[word \\H100x word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[\\H100x; word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[\\H100x word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[word \\H100x;] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[word \\H100x] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[\\H100x;] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[\\H100x] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[\\H100.000x] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H; word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H0 word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H0; word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[\\H; word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[\\H word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[\\H0 word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[\\H0; word] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H;] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H0] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H0;] PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_negative_factor PASSED [ 49%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_empty_content PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints2d::test_conversion PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints2d::test_extents PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints2d::test_transform_inplace PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints2d::test_to_tuples PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints2d::test_to_list PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints3d::test_conversion PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints3d::test_extents PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints3d::test_transform_inplace PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_clone PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_start_point PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_end_point PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_has_subpaths PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_has_no_subpaths PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_to_path_2d PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_extents PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_transform PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_start_point_only_path PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_from_empty_path PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_create_empty_path_from_none PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_extend_empty_path PASSED [ 49%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_extend_by_empty_path PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_extend_by_empty_2d_path PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_extend_by_empty_list PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_concatenate_adjacent_paths PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_concatenate_separated_paths PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_concatenate_all_paths PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_concatenate_curves PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_concatenate_empty_list_returns_empty_path PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestSubPaths::test_empty_path PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestSubPaths::test_single_path PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestSubPaths::test_multipath_of_two PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestSubPaths::test_multipath_with_curve3 PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestSubPaths::test_multipath_with_curve4 PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestSubPaths::test_sub_paths_are_reversible PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::test_path_conversion_methods PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::test_flatten_path PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_empty_path PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_one_line PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_one_curve3 PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_one_curve4 PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_path_ctrl_vertices PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_flattened_path PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_multi_path PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_multi_path_with_a_move_to_cmd_at_the_end PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_has_clockwise_orientation PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_has_counter_clockwise_orientation PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_cw_and_ccw_orientation PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::test_clockwise_orientation_of_implicit_closed_path PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::test_clockwise_orientation_of_explicit_closed_path PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::test_counter_clockwise_orientation_of_implicit_closed_path PASSED [ 50%] tests/test_05_tools/test_539_npshapes.py::test_counter_clockwise_orientation_of_explicit_closed_path PASSED [ 50%] tests/test_05_tools/test_540_lff_parser.py::test_load_font PASSED [ 50%] tests/test_05_tools/test_540_lff_parser.py::test_glyph_A PASSED [ 50%] tests/test_05_tools/test_540_lff_parser.py::test_glyph_dollar PASSED [ 50%] tests/test_05_tools/test_540_lff_parser.py::test_composite_glyph PASSED [ 50%] tests/test_05_tools/test_540_lff_parser.py::test_render_glyphs PASSED [ 50%] tests/test_05_tools/test_540_lff_parser.py::test_scan_int_ex PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestClippingRect::test_clipping_points PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestClippingRect::test_clipping_lines PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestClippingRect::test_clip_polyline PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_extents PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_remove_empty_clipping_shapes PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_inside[point0] PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_inside[point1] PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_inside[point2] PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_inside[point3] PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_inside[point4] PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_inside[point5] PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_outside[point0] PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_outside[point1] PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_outside[point2] PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_clip_line_1 PASSED [ 50%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_clip_line_2 PASSED [ 50%] tests/test_05_tools/test_542_itertools.py::TestTake2::test_empty_list PASSED [ 50%] tests/test_05_tools/test_542_itertools.py::TestTake2::test_1_item PASSED [ 50%] tests/test_05_tools/test_542_itertools.py::TestTake2::test_2_items PASSED [ 50%] tests/test_05_tools/test_542_itertools.py::TestTake2::test_3_items PASSED [ 50%] tests/test_05_tools/test_542_itertools.py::TestTake2::test_4_items PASSED [ 50%] tests/test_05_tools/test_542_itertools.py::TestPairwiseOpen::test_empty_list PASSED [ 50%] tests/test_05_tools/test_542_itertools.py::TestPairwiseOpen::test_1_item PASSED [ 50%] tests/test_05_tools/test_542_itertools.py::TestPairwiseOpen::test_2_items PASSED [ 50%] tests/test_05_tools/test_542_itertools.py::TestPairwiseOpen::test_3_items PASSED [ 50%] tests/test_05_tools/test_542_itertools.py::TestPairwiseClose::test_empty_list PASSED [ 50%] tests/test_05_tools/test_542_itertools.py::TestPairwiseClose::test_1_item PASSED [ 50%] tests/test_05_tools/test_542_itertools.py::TestPairwiseClose::test_2_items PASSED [ 50%] tests/test_05_tools/test_542_itertools.py::TestPairwiseClose::test_3_items PASSED [ 50%] tests/test_06_math/test_600_base.py::test_left_of_line PASSED [ 50%] tests/test_06_math/test_600_base.py::test_point_to_line_relation_left PASSED [ 50%] tests/test_06_math/test_600_base.py::test_left_of_line_or_on_the_line PASSED [ 50%] tests/test_06_math/test_600_base.py::test_point_ot_line_relation_on_line PASSED [ 50%] tests/test_06_math/test_600_base.py::test_xround PASSED [ 50%] tests/test_06_math/test_600_base.py::test_enclosing_angles PASSED [ 50%] tests/test_06_math/test_600_base.py::test_no_points PASSED [ 50%] tests/test_06_math/test_600_base.py::test_one_points PASSED [ 50%] tests/test_06_math/test_600_base.py::test_two_points PASSED [ 50%] tests/test_06_math/test_600_base.py::test_more_points PASSED [ 50%] tests/test_06_math/test_600_base.py::test_decdeg2dms PASSED [ 50%] tests/test_06_math/test_600_base.py::test_linspace PASSED [ 50%] tests/test_06_math/test_600_base.py::test_area PASSED [ 50%] tests/test_06_math/test_601_bulge.py::test_bulge_radius PASSED [ 51%] tests/test_06_math/test_601_bulge.py::test_bulge_center PASSED [ 51%] tests/test_06_math/test_601_bulge.py::test_arc_to_bulge PASSED [ 51%] tests/test_06_math/test_601_bulge.py::test_bulge_3_points PASSED [ 51%] tests/test_06_math/test_601_bulge.py::test_bulge_to_arc PASSED [ 51%] tests/test_06_math/test_601_bulge.py::TestBulgeFromRadiusAndChord::test_semi_circle_bulge PASSED [ 51%] tests/test_06_math/test_601_bulge.py::TestBulgeFromRadiusAndChord::test_half_bulge PASSED [ 51%] tests/test_06_math/test_601_bulge.py::TestBulgeFromRadiusAndChord::test_radius_of_zero PASSED [ 51%] tests/test_06_math/test_601_bulge.py::TestBulgeFromRadiusAndChord::test_too_small_radius_for_chord PASSED [ 51%] tests/test_06_math/test_601_bulge.py::test_bulge_from_arc_angle[180-1.0] PASSED [ 51%] tests/test_06_math/test_601_bulge.py::test_bulge_from_arc_angle[-180--1.0] PASSED [ 51%] tests/test_06_math/test_601_bulge.py::test_bulge_from_arc_angle[106.26020471-0.5] PASSED [ 51%] tests/test_06_math/test_601_bulge.py::test_bulge_from_arc_angle[-106.26020471--0.5] PASSED [ 51%] tests/test_06_math/test_601_bulge.py::test_bulge_from_arc_angle[56.14497387-0.25] PASSED [ 51%] tests/test_06_math/test_601_bulge.py::test_bulge_from_arc_angle[-56.14497387--0.25] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_default_constructor[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_default_constructor[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_init_one_param[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_init_one_param[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_invalid_one_param_init[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_invalid_one_param_init[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_invalid_param_count[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_invalid_param_count[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_init_two_params[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_init_two_params[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_init_three_params[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_init_three_params[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_immutable_attributes[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_immutable_attributes[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_from_angle[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_from_angle[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_usage_as_tuple[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_usage_as_tuple[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_get_item_positive_index[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_get_item_positive_index[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_get_item_negative_index[Vec30--1] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_get_item_negative_index[Vec30--2] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_get_item_negative_index[Vec30--3] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_get_item_negative_index[Vec31--1] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_get_item_negative_index[Vec31--2] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_get_item_negative_index[Vec31--3] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_get_item_does_not_support_slicing[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_get_item_does_not_support_slicing[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_vec2[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_vec2[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_round[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_round[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_iter[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_iter[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_deep_copy[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_deep_copy[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_get_angle[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_get_angle[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_spatial_angle[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_spatial_angle[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_compare_vectors[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_compare_vectors[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_xy[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_xy[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_is_null[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_is_null[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_is_not_null_default_abs_tol[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_is_not_null_default_abs_tol[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_is_null_default_abs_tol[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_is_null_default_abs_tol[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_bool[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_bool[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_magnitude[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_magnitude[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_magnitude_square[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_magnitude_square[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_normalize[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_normalize[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_normalize_to_length[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_normalize_to_length[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_normalize_error[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_normalize_error[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_orthogonal_ccw[Vec30] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_orthogonal_ccw[Vec31] PASSED [ 51%] tests/test_06_math/test_602_vec3.py::test_orthogonal_cw[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_orthogonal_cw[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_negative[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_negative[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_add_vector[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_add_vector[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_iadd_vector[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_iadd_vector[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_radd_vector[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_radd_vector[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_add_scalar_type_error[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_add_scalar_type_error[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_radd_scalar_type_error[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_radd_scalar_type_error[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_iadd_scalar_type_error[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_iadd_scalar_type_error[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_sub_vector[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_sub_vector[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_isub_vector[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_isub_vector[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_rsub_vector[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_rsub_vector[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_sub_scalar_type_error[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_sub_scalar_type_error[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_rsub_scalar_vector_type_error[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_rsub_scalar_vector_type_error[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_isub_scalar_type_error[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_isub_scalar_type_error[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_mul_scalar[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_mul_scalar[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_mul_tuple_type_error[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_mul_tuple_type_error[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_imul_scalar[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_imul_scalar[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_imul_tuple_type_error[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_imul_tuple_type_error[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_rmul_scalar[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_rmul_scalar[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_rmul_tuple_type_error[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_rmul_tuple_type_error[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_div_scalar[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_div_scalar[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_idiv_scalar[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_idiv_scalar[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_div_tuple_type_error[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_div_tuple_type_error[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_rdiv_scalar_type_error[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_rdiv_scalar_type_error[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_rdiv_tuple_type_error[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_rdiv_tuple_type_error[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_inplace_operations_do_not_mutate_vec3_inplace PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_dot_product[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_dot_product[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_angle_deg[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_angle_deg[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_angle_between[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_angle_between[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_angle_between_null_vector[Vec30-v10-v20] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_angle_between_null_vector[Vec30-v11-v21] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_angle_between_null_vector[Vec30-v12-v22] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_angle_between_null_vector[Vec31-v10-v20] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_angle_between_null_vector[Vec31-v11-v21] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_angle_between_null_vector[Vec31-v12-v22] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_angle_about[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_angle_about[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_cross_product[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_cross_product[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_rot_z[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_rot_z[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_lerp[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_lerp[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_replace[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_replace[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_project[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_project[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_vec3_sum[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_vec3_sum[Vec31] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_picklable[Vec30] PASSED [ 52%] tests/test_06_math/test_602_vec3.py::test_picklable[Vec31] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_equal[Vec30] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_equal[Vec31] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_equal[Vec30] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_equal[Vec31] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec30-1.000001-1.0000019-1e-06] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec30-10.000001-10.0000019-1e-07] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec30-100.000001-100.0000019-1e-08] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec30-1000.000001-1000.0000019-1e-09] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec30-10000.000001-10000.0000019-1e-10] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec30-100000.000001-100000.0000019-1e-11] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec30-1000000.000001-1000000.0000019-1e-12] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec31-1.000001-1.0000019-1e-06] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec31-10.000001-10.0000019-1e-07] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec31-100.000001-100.0000019-1e-08] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec31-1000.000001-1000.0000019-1e-09] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec31-10000.000001-10000.0000019-1e-10] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec31-100000.000001-100000.0000019-1e-11] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec31-1000000.000001-1000000.0000019-1e-12] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec30-1.000001-1.0000019-1e-07] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec30-10.000001-10.0000019-1e-08] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec30-100.000001-100.0000019-1e-09] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec30-1000.000001-1000.0000019-1e-10] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec30-10000.000001-10000.0000019-1e-11] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec30-100000.000001-100000.0000019-1e-12] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec30-1000000.000001-1000000.0000019-1e-13] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec31-1.000001-1.0000019-1e-07] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec31-10.000001-10.0000019-1e-08] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec31-100.000001-100.0000019-1e-09] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec31-1000.000001-1000.0000019-1e-10] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec31-10000.000001-10000.0000019-1e-11] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec31-100000.000001-100000.0000019-1e-12] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec31-1000000.000001-1000000.0000019-1e-13] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec30-10.00000001-10.000000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec30-100.0000001-100.00000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec30-1000.000001-1000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec30-10000.00001-10000.000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec30-100000.0001-100000.00019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec31-10.00000001-10.000000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec31-100.0000001-100.00000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec31-1000.000001-1000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec31-10000.00001-10000.000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec31-100000.0001-100000.00019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec30-10.000001-10.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec30-100.000001-100.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec30-1000.000001-1000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec30-10000.000001-10000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec30-100000.000001-100000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec30-1000000.000001-1000000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec31-10.000001-10.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec31-100.000001-100.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec31-1000.000001-1000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec31-10000.000001-10000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec31-100000.000001-100000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec31-1000000.000001-1000000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec30-10.000001-10.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec30-100.000001-100.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec30-1000.000001-1000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec30-10000.000001-10000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec30-100000.000001-100000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec30-1000000.000001-1000000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec31-10.000001-10.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec31-100.000001-100.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec31-1000.000001-1000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec31-10000.000001-10000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec31-100000.000001-100000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec31-1000000.000001-1000000.0000019] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_loosing_floating_point_precision_for_big_values PASSED [ 53%] tests/test_06_math/test_603_vec2.py::test_init_tuple[Vec20] PASSED [ 53%] tests/test_06_math/test_603_vec2.py::test_init_tuple[Vec3] PASSED [ 53%] tests/test_06_math/test_603_vec2.py::test_init_tuple[Vec21] PASSED [ 53%] tests/test_06_math/test_603_vec2.py::test_empty_init[Vec20] PASSED [ 53%] tests/test_06_math/test_603_vec2.py::test_empty_init[Vec3] PASSED [ 53%] tests/test_06_math/test_603_vec2.py::test_empty_init[Vec21] PASSED [ 53%] tests/test_06_math/test_603_vec2.py::test_init_vec2[Vec20] PASSED [ 53%] tests/test_06_math/test_603_vec2.py::test_init_vec2[Vec3] PASSED [ 53%] tests/test_06_math/test_603_vec2.py::test_init_vec2[Vec21] PASSED [ 53%] tests/test_06_math/test_603_vec2.py::test_compatible_to_vector PASSED [ 53%] tests/test_06_math/test_603_vec2.py::test_vec3[Vec20] PASSED [ 53%] tests/test_06_math/test_603_vec2.py::test_vec3[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_round[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_round[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_from_angle[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_from_angle[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_from_angle[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_vec2_as_tuple[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_vec2_as_tuple[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_iter[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_iter[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_iter[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_deep_copy PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_get_angle[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_get_angle[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_get_angle[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_compare_vectors[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_compare_vectors[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_compare_vectors[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_close[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_close[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_close[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_null[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_null[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_null[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_not_null_default_abs_tol[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_not_null_default_abs_tol[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_not_null_default_abs_tol[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_null_default_abs_tol[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_null_default_abs_tol[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_null_default_abs_tol[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_bool[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_bool[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_bool[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_magnitude[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_magnitude[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_magnitude[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_normalize[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_normalize[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_normalize[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_normalize_to_length[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_normalize_to_length[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_normalize_to_length[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_orthogonal_ccw[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_orthogonal_ccw[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_orthogonal_ccw[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_orthogonal_cw[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_orthogonal_cw[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_orthogonal_cw[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_negative[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_negative[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_negative[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_add_vector[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_add_vector[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_add_vector[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_add_vec3[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_add_vec3[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_iadd_vector[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_iadd_vector[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_inplace_operations_do_not_mutate_vec2_inplace PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_add_scalar_type_erorr[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_add_scalar_type_erorr[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_add_scalar_type_erorr[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_iadd_scalar_type_error[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_iadd_scalar_type_error[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_iadd_scalar_type_error[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_radd_scalar_type_error[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_radd_scalar_type_error[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_radd_scalar_type_error[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_radd_tuple_type_error[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_radd_tuple_type_error[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_sub_vector[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_sub_vector[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_sub_vector[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_isub_vector[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_isub_vector[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_sub_vec3[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_sub_vec3[Vec21] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_sub_scalar_type_error[Vec20] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_sub_scalar_type_error[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_sub_scalar_type_error[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_isub_scalar_type_erorr[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_isub_scalar_type_erorr[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_isub_scalar_type_erorr[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rsub_tuple[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rsub_tuple[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rsub_scalar_type_error[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rsub_scalar_type_error[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rsub_scalar_type_error[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_mul_scalar[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_mul_scalar[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_mul_scalar[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_imul_scalar[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_imul_scalar[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_imul_scalar[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rmul_scalar[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rmul_scalar[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rmul_scalar[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_mul_tuple_type_error[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_mul_tuple_type_error[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_mul_tuple_type_error[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rmul_tuple_type_error[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rmul_tuple_type_error[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rmul_tuple_type_error[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_imul_tuple_type_error[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_imul_tuple_type_error[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_imul_tuple_type_error[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_div_scalar[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_div_scalar[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_div_scalar[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_idiv_scalar[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_idiv_scalar[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_idiv_scalar[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_dot_product[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_dot_product[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_dot_product[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_deg[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_deg[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_deg[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec20-v10-v20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec20-v11-v21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec20-v12-v22] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec3-v10-v20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec3-v11-v21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec3-v12-v22] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec21-v10-v20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec21-v11-v21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec21-v12-v22] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_outside_domain PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rotate[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rotate[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rotate[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_lerp[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_lerp[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_lerp[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_project[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_project[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_project[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_det[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_det[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_sum[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_sum[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_sum[Vec21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_picklable[Vec20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_picklable[Vec21] PASSED [ 55%] tests/test_06_math/test_604_banded_matrix.py::test_detect_banded_matrix PASSED [ 55%] tests/test_06_math/test_604_banded_matrix.py::test_compact_banded_matrix PASSED [ 55%] tests/test_06_math/test_604_banded_matrix.py::test_solve_banded_matrix_vector PASSED [ 55%] tests/test_06_math/test_604_banded_matrix.py::test_solve_banded_matrix_matrix PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_matrix_getter PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_matrix_setter PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_row PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_set_row PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_set_row_error PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_col PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_set_col PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_set_col_error PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_freeze_matrix PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_mul PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_imul PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_transpose PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_add PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_iadd PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_sub PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_build_matrix_by_rows PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_build_matrix_by_cols PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_diag PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_set_diag_float PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_set_diag_above PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_set_diag_below PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_set_diag_iterable PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_identity PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_gauss_vector_solver PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_gauss_matrix_solver PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_gauss_jordan_vector_solver PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_gauss_jordan_matrix_solver PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_gauss_jordan_inverse PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_LU_decomposition_solve_vector PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_LU_decomposition_solve_matrix PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_LU_decomposition_inverse PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_determinant PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_tridiagonal_vector_solver PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_tridiagonal_matrix_solver PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_default_constructor[Matrix440-0] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_default_constructor[Matrix440-1] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_default_constructor[Matrix440-2] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_default_constructor[Matrix440-3] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_default_constructor[Matrix441-0] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_default_constructor[Matrix441-1] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_default_constructor[Matrix441-2] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_default_constructor[Matrix441-3] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_numbers_constructor[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_numbers_constructor[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_row_constructor[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_row_constructor[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_invalid_row_constructor[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_invalid_row_constructor[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_invalid_number_constructor[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_invalid_number_constructor[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_item_does_not_support_slicing[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_item_does_not_support_slicing[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_item_index_error[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_item_index_error[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_item_does_not_support_slicing[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_item_does_not_support_slicing[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_item_index_error[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_item_index_error[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_iter[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_iter[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_copy[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_copy[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_row_index_error[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_row_index_error[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_row[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_row[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_row_index_error[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_row_index_error[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_col[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_col[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_col_index_error[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_col_index_error[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_col[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_col[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_col_index_error[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_col_index_error[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_is_orthogonal[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_is_orthogonal[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_is_cartesian[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_is_cartesian[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_translate[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_translate[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_scale[Matrix440] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_scale[Matrix441] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_x_rotate[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_x_rotate[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_y_rotate[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_y_rotate[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_z_rotate[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_z_rotate[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_chain[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_chain[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_chain2[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_chain2[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_transform[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_transform[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_multiply[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_multiply[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_transpose[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_transpose[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_inverse_error[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_inverse_error[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_determinant[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_determinant[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_axis_rotate_for_axis_normalization[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_axis_rotate_for_axis_normalization[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_assign_after_initialized[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_assign_after_initialized[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_picklable[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_picklable[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_shear_xy[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_shear_xy[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_from_2d_transformation[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_from_2d_transformation[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_from_2d_transformation_checks_component_count[Matrix440-components0] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_from_2d_transformation_checks_component_count[Matrix440-components1] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_from_2d_transformation_checks_component_count[Matrix440-components2] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_from_2d_transformation_checks_component_count[Matrix441-components0] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_from_2d_transformation_checks_component_count[Matrix441-components1] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_from_2d_transformation_checks_component_count[Matrix441-components2] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::test_has_matrix_2d_stretching PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::test_has_matrix_3d_stretching PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestFast2dTransform::test_fast_translate[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestFast2dTransform::test_fast_translate[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestFast2dTransform::test_fast_z_rotate[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestFast2dTransform::test_fast_z_rotate[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestFast2dTransform::test_fast_scale[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestFast2dTransform::test_fast_scale[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestFast2dTransform::test_fast_scale_rotate_translate[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestFast2dTransform::test_fast_scale_rotate_translate[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestTransformArrayInplace::test_ndim_2[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestTransformArrayInplace::test_ndim_2[Matrix441] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestTransformArrayInplace::test_ndim_3[Matrix440] PASSED [ 57%] tests/test_06_math/test_605_matrix44.py::TestTransformArrayInplace::test_ndim_3[Matrix441] PASSED [ 57%] tests/test_06_math/test_606_convexhull.py::test_convex_hull_raises PASSED [ 57%] tests/test_06_math/test_606_convexhull.py::test_convex_hull_set1 PASSED [ 57%] tests/test_06_math/test_606_convexhull.py::test_convex_hull_set2 PASSED [ 57%] tests/test_06_math/test_606_convexhull.py::test_convex_hull_set3 PASSED [ 57%] tests/test_06_math/test_607_perlin_noise.py::test_simplex_2d_range PASSED [ 57%] tests/test_06_math/test_607_perlin_noise.py::test_simplex_2d_octaves_range PASSED [ 57%] tests/test_06_math/test_607_perlin_noise.py::test_simplex_3d_range PASSED [ 57%] tests/test_06_math/test_607_perlin_noise.py::test_simplex_3d_octaves_range PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_virtual PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_with_vertical PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_with_horizontal PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_with_vertical_and_horizontal PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_parallel_vertical PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_parallel_horizontal PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_normal_vertical PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersection_by_line_end_points PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_real PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_real_colinear PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_coincident_lines[horiz] PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_coincident_lines[vert] PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_coincident_lines[diag] PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_issue_128 PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_issue_664 PASSED [ 57%] tests/test_06_math/test_609_point_on_line.py::test_distance_point_horiz_line PASSED [ 57%] tests/test_06_math/test_609_point_on_line.py::test_distance_point_vertical_line PASSED [ 57%] tests/test_06_math/test_609_point_on_line.py::test_is_point_on_horiz_line PASSED [ 57%] tests/test_06_math/test_609_point_on_line.py::test_is_point_on_vertical_line PASSED [ 57%] tests/test_06_math/test_609_point_on_line.py::test_is_point_on_diag_line PASSED [ 57%] tests/test_06_math/test_610_ocs.py::test_wcs_to_ocs PASSED [ 57%] tests/test_06_math/test_610_ocs.py::test_ocs_to_wcs PASSED [ 58%] tests/test_06_math/test_610_ocs.py::test_matrix44_to_ocs PASSED [ 58%] tests/test_06_math/test_610_ocs.py::test_matrix44_to_wcs PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_ucs_init PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_ucs_init_ux_uy PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_ucs_init_ux_uz PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_ucs_init_uy_uz PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_translation PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_rotation PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_matrix44_rotation PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_transformation PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_none_cartesian PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_arbitrary_ucs PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_ucs_direction_to_ocs_direction PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_to_ocs PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_points_to_ocs PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_to_ocs_angle_deg PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_constructor_functions PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_rotate_x_axis PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_rotate_y_axis PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_rotate_z_axis PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_rotate_local_x PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_rotate_local_y PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_rotate_local_z PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_shift_ucs PASSED [ 58%] tests/test_06_math/test_611_ucs.py::test_moveto PASSED [ 58%] tests/test_06_math/test_612_ucs_pass_trough.py::test_u_vectors PASSED [ 58%] tests/test_06_math/test_612_ucs_pass_trough.py::test_to_wcs PASSED [ 58%] tests/test_06_math/test_612_ucs_pass_trough.py::test_points_to_wcs PASSED [ 58%] tests/test_06_math/test_612_ucs_pass_trough.py::test_to_ocs PASSED [ 58%] tests/test_06_math/test_612_ucs_pass_trough.py::test_points_to_ocs PASSED [ 58%] tests/test_06_math/test_612_ucs_pass_trough.py::test_from_wcs PASSED [ 58%] tests/test_06_math/test_612_ucs_pass_trough.py::test_points_from_wcs PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_inside_horizontal_box PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_outside_horizontal_box PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_colinear_outside_horizontal_box PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_corners_horizontal_box PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_inside_slanted_box PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_outside_slanted_box PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_corners_slanted_box PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_borders_slanted_box_stable PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_shape_c_is_not_convex PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point0] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point1] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point2] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point3] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point4] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point5] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point6] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point7] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point8] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point0] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point1] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point2] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point3] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point4] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point5] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point6] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point7] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point0] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point1] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point2] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point3] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point4] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point5] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point6] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point7] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point8] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point9] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point10] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point11] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point12] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point13] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point14] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point0] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point1] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point2] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point3] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point4] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point5] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point6] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point7] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point8] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point0] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point1] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point2] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point3] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point4] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point5] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point6] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point7] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point0] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point1] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point2] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point3] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point4] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point5] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point6] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point7] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point8] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point9] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point10] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point11] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point12] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point13] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point14] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point0] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point1] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point2] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point3] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point4] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point5] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point6] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point7] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point8] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point0] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point1] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point2] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point3] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point4] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point5] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point6] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point7] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point0] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point1] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point2] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point3] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point4] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point5] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point6] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point7] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point8] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point9] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point10] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point11] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point12] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point13] PASSED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point14] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_face_count PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_regular_face PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_irregular_face PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_only_colinear_edges PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_regular_face_with_colinear_edge PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_does_not_detect_wrong_order PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_subdivide_square_in_quads PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_subdivide_square_in_triangles PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_subdivide_triangle PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_subdivide_ngons PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_subdivide_vec2_square_in_quads PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectionRayRay3d::test_parallel_rays_return_empty_tuple PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectionRayRay3d::test_intersecting_rays_return_one_tuple PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectionRayRay3d::test_not_intersecting_and_not_parallel_rays_return_two_tuple PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectionRayRay3d::test_intersecting_rays PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectionRayRay3d::test_random_intersecting_rays PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectingLines3d::test_real_intersecting_lines PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectingLines3d::test_virtual_intersecting_lines PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectingLines3d::test_not_intersecting_lines PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectingLines3d::test_touching_lines_do_intersect PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestIntersectingLines3d::test_coincident_lines_do_not_intersect[horiz] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestIntersectingLines3d::test_coincident_lines_do_not_intersect[vert] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestIntersectingLines3d::test_coincident_lines_do_not_intersect[diag] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_normal_vector_for_3_points[a0-b0-c0-r0] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_normal_vector_for_3_points[a1-b1-c1-r1] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_normal_vector_for_3_points[a2-b2-c2-r2] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_normal_vector_for_3_points[a3-b3-c3-r3] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_normal_vector_for_3_points[a4-b4-c4-r4] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_normal_vector_for_3_points[a5-b5-c5-r5] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_safe_normal_vector_regular PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_safe_normal_vector_for_coincident_vertices PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_safe_normal_vector_for_colinear_vertices PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_safe_normal_vector_raises_exception_for_undefined_normal_vector PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d[points0-3] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d[points1-0] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d[points2-4] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d[points3-5] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d[points4-0.8164965809277259] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d_no_line[1e-99] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d_no_line[1e-09] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d_no_line[0] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d_no_line[1000000000.0] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d_no_line[1e+99] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_if_returns_right_handed_normals[a0-b0-c0-r0] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_if_returns_right_handed_normals[a1-b1-c1-r1] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_if_returns_right_handed_normals[a2-b2-c2-r2] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_if_returns_right_handed_normals[a3-b3-c3-r3] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_if_returns_right_handed_normals[a4-b4-c4-r4] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_if_returns_right_handed_normals[a5-b5-c5-r5] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_transformed_counter_clockwise_vertices_ccw PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_transformed_clockwise_vertices PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_basic_coords PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_center_of_mass_property PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_point_outside_triangle[p0] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_point_outside_triangle[p1] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_point_outside_triangle[p2] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_point_inside_triangle[p0] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_point_inside_triangle[p1] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_point_inside_triangle[p2] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_returns_always_two_or_more_vertices[-1] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_returns_always_two_or_more_vertices[0] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_returns_always_two_or_more_vertices[1] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_returns_always_two_or_more_vertices[2] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_returns_always_two_or_more_vertices[3] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_works_if_start_is_equal_to_end PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q1[2] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q1[3] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q1[4] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q1[5] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q3[2] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q3[3] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q3[4] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q3[5] PASSED [ 60%] tests/test_06_math/test_615_rytz_axis.py::test_exception PASSED [ 60%] tests/test_06_math/test_615_rytz_axis.py::test_simple_case PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_init PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_init_form_3_colinear_points PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_init_form_3p PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_equal PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_init_form_vector PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_signed_distance_to PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_distance_to PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_is_coplanar PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_is_coplanar_plane PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestSplitConvexPolygon::test_spit_horizontal_square PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestSplitConvexPolygon::test_ignore_coplanar_square PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestSplitConvexPolygon::test_return_coplanar_square_front PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestSplitConvexPolygon::test_return_coplanar_square_back PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_intersection_line PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_line_above_plane PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_line_below_plane PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_colinear_start_point_intersection PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_ignore_coplanar_start_point_intersection PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_colinear_end_point_intersection PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_ignore_coplanar_end_point_intersection PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_coplanar_line_has_no_intersection PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectRay::test_intersection_line PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectRay::test_coplanar_ray_has_no_intersection PASSED [ 61%] tests/test_06_math/test_616_plane.py::TestIntersectRay::test_plane_parallel_to_yz PASSED [ 61%] tests/test_06_math/test_617_clockwise_orientation.py::test_has_clockwise_orientation[vertices0] PASSED [ 61%] tests/test_06_math/test_617_clockwise_orientation.py::test_has_clockwise_orientation[vertices1] PASSED [ 61%] tests/test_06_math/test_617_clockwise_orientation.py::test_has_counter_clockwise_orientation[vertices0] PASSED [ 61%] tests/test_06_math/test_617_clockwise_orientation.py::test_has_counter_clockwise_orientation[vertices1] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_no_clipping[polygon] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_regular_clip_inside_outside[polygon] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_regular_clip_outside_inside[polygon] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_horizontal_left_to_right[polygon] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_horizontal_right_to_left[polygon] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_vertical[polygon] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_diagonal[polygon] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_diagonal_edge_to_edge[polygon] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_horizontal_edge[polygon-bottom] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_horizontal_edge[polygon-top] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_vertical_edge[polygon-left] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_vertical_edge[polygon-right] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_no_clipping[rect] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_regular_clip_inside_outside[rect] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_regular_clip_outside_inside[rect] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_horizontal_left_to_right[rect] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_horizontal_right_to_left[rect] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_vertical[rect] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_diagonal[rect] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_diagonal_edge_to_edge[rect] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_horizontal_edge[rect-bottom] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_horizontal_edge[rect-top] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_vertical_edge[rect-left] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_vertical_edge[rect-right] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolylineAtConvexBoundary::test_crossing_zigzag[polygon] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolylineAtConvexBoundary::test_crossing_zigzag[rect] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolylineAtConvexBoundary::test_closed_rectangle PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_subject_do_overlap_clipping_rect[polygon] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_subject_is_inside_rect[polygon] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_subject_is_outside_rect[polygon] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_circle_outside_rect[polygon] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_circle_inside_rect[polygon] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_subject_do_overlap_clipping_rect[rect] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_subject_is_inside_rect[rect] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_subject_is_outside_rect[rect] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_circle_outside_rect[rect] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_circle_inside_rect[rect] PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_clockwise_oriented_clipping_rect PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_rect_outside_circle PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_rect_inside_circle PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_start_point_is_not_an_intersection_point PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_end_point_is_not_an_intersection_point PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_corner_point_is_not_an_intersection_point PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_vertical_line_does_intersect_skewed_line PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_horizontal_line_does_intersect_skewed_line PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_orthogonal_lines_do_intersect PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_parallel_vertical_lines_do_not_intersect PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_parallel_horizontal_lines_do_not_intersect PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_collinear_lines_do_not_intersect PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_coincident_lines_do_not_intersect[horiz] PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_coincident_lines_do_not_intersect[vert] PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_coincident_lines_do_not_intersect[diag] PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_virtual_intersection_is_not_an_intersection PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_issue_128 PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_issue_664 PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanUnion::test_overlapping_polygons_are_united PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanUnion::test_vertex_order_is_not_important PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanUnion::test_a_polygon_inside_another_polygon_is_ignored PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanUnion::test_a_failed_union_returns_an_empty_list PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanUnion::test_disconnected_polygons_cannot_be_united PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanUnion::test_overlapping_but_collinear_edges_cannot_be_united PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanUnion::test_polygons_with_a_shared_edge_cannot_be_united PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanDifference::test_difference_of_overlapping_polygons PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanDifference::test_polygon_inside_polygon PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanDifference::test_polygon_inside_polygon_reverse_difference PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanDifference::test_polygon_outside_polygon PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanIntersection::test_intersection_of_overlapping_polygons PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanIntersection::test_polygon_inside_polygon PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanIntersection::test_polygon_outside_polygon PASSED [ 61%] tests/test_06_math/test_620_knot.py::test_open_uniform_knot_order_2 PASSED [ 61%] tests/test_06_math/test_620_knot.py::test_open_uniform_knot_order_3 PASSED [ 61%] tests/test_06_math/test_620_knot.py::test_open_uniform_knot_order_4 PASSED [ 61%] tests/test_06_math/test_620_knot.py::test_uniform_knot_order_2 PASSED [ 61%] tests/test_06_math/test_620_knot.py::test_uniform_knot_order_3 PASSED [ 62%] tests/test_06_math/test_620_knot.py::test_uniform_knot_order_4 PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_is_clamped PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_is_a_clamped_bspline[knots0] PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_is_a_clamped_bspline[knots1] PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_is_not_a_clamped_bspline[no repetitive knot values] PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_is_not_a_clamped_bspline[2 repetitive knot values] PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_is_not_a_clamped_bspline[3 repetitive knot values] PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_is_not_a_clamped_bspline[inaccuracy at the end] PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_is_not_a_clamped_bspline[inaccuracy at the start] PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_normalize_knots PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_normalize_knots_if_needed PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_bspline_insert_knot PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_transform_interface PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_bezier_decomposition PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_cubic_bezier_approximation PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_subdivide_params PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_weired_closed_spline PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_bezier_decomposition_issue PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_flattening PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_bspline_point_calculation_to_pre_calculated_results[degree=1] PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_bspline_point_calculation_to_pre_calculated_results[degree=2] PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_bspline_point_calculation_to_pre_calculated_results[degree=3] PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_bspline_derivative_calculation_to_pre_calculated_results PASSED [ 62%] tests/test_06_math/test_621_bspline.py::test_bspline_point_calculation_against_derivative_calculation PASSED [ 62%] tests/test_06_math/test_622_bsplineu.py::test_bsplineu_points PASSED [ 62%] tests/test_06_math/test_622_bsplineu.py::test_dbsplineu_points PASSED [ 62%] tests/test_06_math/test_622_bsplineu.py::test_dbsplineu_derivative_1 PASSED [ 62%] tests/test_06_math/test_622_bsplineu.py::test_dbsplineu_derivative_2 PASSED [ 62%] tests/test_06_math/test_623_rbspline.py::test_rbspline PASSED [ 62%] tests/test_06_math/test_623_rbspline.py::test_rbsplineu PASSED [ 62%] tests/test_06_math/test_623_rbspline.py::test_rational_spline_from_circular_arc_has_expected_parameters PASSED [ 62%] tests/test_06_math/test_623_rbspline.py::test_rational_spline_from_circular_arc_has_same_end_points PASSED [ 62%] tests/test_06_math/test_623_rbspline.py::test_rational_spline_from_elliptic_arc_has_expected_parameters PASSED [ 62%] tests/test_06_math/test_623_rbspline.py::test_rational_spline_from_elliptic_arc_has_same_end_points PASSED [ 62%] tests/test_06_math/test_623_rbspline.py::test_nurbs_arc_parameter_quarter_arc_1_segment PASSED [ 62%] tests/test_06_math/test_623_rbspline.py::test_nurbs_arc_parameter_quarter_arc_4_segments PASSED [ 62%] tests/test_06_math/test_623_rbspline.py::test_nurbs_arc_parameter_full_circle PASSED [ 62%] tests/test_06_math/test_623_rbspline.py::test_flattening_issue PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_uniform_t_array[fit_points0] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_uniform_t_array[fit_points1] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_chord_length_t_array[fit_points0] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_chord_length_t_array[fit_points1] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_centripetal_length_t_array[fit_points0] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_centripetal_length_t_array[fit_points1] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_arc_distances PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_arc_length_t_array[fit_points0] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_arc_length_t_array[fit_points1] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_invalid_order_count_combination PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_knot_generation[average-2] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_knot_generation[average-3] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_knot_generation[average-4] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_knot_generation[natural-2] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_knot_generation[natural-3] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_knot_generation[natural-4] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_averaged_knots[2] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_averaged_knots[3] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_averaged_knots[4] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_averaged_knots[5] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_averaged_knots[2] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_averaged_knots[3] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_averaged_knots[4] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_averaged_knots[5] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_natural_knots[2] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_natural_knots[3] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_natural_knots[4] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_natural_knots[5] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_natural_knots[2] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_natural_knots[3] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_natural_knots[4] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_natural_knots[5] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_double_knots[2] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_double_knots[3] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_double_knots[4] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_double_knots[5] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_bspline_interpolation[fit_points0] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_bspline_interpolation[fit_points1] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_create_t_vectors_for_identical_points[distance] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_create_t_vectors_for_identical_points[centripetal] PASSED [ 63%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_create_t_vectors_for_identical_points[arc] PASSED [ 63%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_bspline_interpolation_first_derivatives[fit_points0] PASSED [ 63%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_bspline_interpolation_first_derivatives[fit_points1] PASSED [ 63%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_check_values PASSED [ 63%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_cad_fit_point_interpolation_for_2_points PASSED [ 63%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_cad_fit_point_interpolation_for_5_points PASSED [ 63%] tests/test_06_math/test_626_local_bspline_interpolation.py::test_estimate_tangents_3p PASSED [ 63%] tests/test_06_math/test_626_local_bspline_interpolation.py::test_estimate_tangents_5p PASSED [ 63%] tests/test_06_math/test_626_local_bspline_interpolation.py::test_local_cubic_bspline_interpolation_from_tangents PASSED [ 63%] tests/test_06_math/test_626_local_bspline_interpolation.py::test_local_cubic_bspline_interpolation PASSED [ 63%] tests/test_06_math/test_627_bspline_basis.py::test_property_exists[Basis] PASSED [ 63%] tests/test_06_math/test_627_bspline_basis.py::test_bspline_basis_vector[Basis] PASSED [ 63%] tests/test_06_math/test_627_bspline_basis.py::test_find_span[Basis] PASSED [ 63%] tests/test_06_math/test_629_bezier.py::test_points_2d PASSED [ 63%] tests/test_06_math/test_629_bezier.py::test_bezier_objects_are_immutable PASSED [ 63%] tests/test_06_math/test_629_bezier.py::test_point_and_tangent_2d PASSED [ 63%] tests/test_06_math/test_629_bezier.py::test_points_3d PASSED [ 63%] tests/test_06_math/test_629_bezier.py::test_points PASSED [ 63%] tests/test_06_math/test_629_bezier.py::test_derivative_1 PASSED [ 63%] tests/test_06_math/test_629_bezier.py::test_derivative_2 PASSED [ 63%] tests/test_06_math/test_629_bezier.py::test_reverse PASSED [ 63%] tests/test_06_math/test_629_bezier.py::test_transform_interface PASSED [ 63%] tests/test_06_math/test_629_bezier.py::test_flattening PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_accepts_2d_points[Bezier4P0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_accepts_2d_points[Bezier4P1] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_objects_are_immutable[Bezier4P0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_objects_are_immutable[Bezier4P1] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_2d_tangent_computation[Bezier4P0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_2d_tangent_computation[Bezier4P1] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_approximate[Bezier4P0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_approximate[Bezier4P1] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_reverse[Bezier4P0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_reverse[Bezier4P1] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_transform_interface[Bezier4P0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_transform_interface[Bezier4P1] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_transform_returns_always_3d_curves[Bezier4P0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_transform_returns_always_3d_curves[Bezier4P1] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening[Bezier4P0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening[Bezier4P1] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_for_equal_start_and_end_points[Bezier4P0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_for_equal_start_and_end_points[Bezier4P1] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_with_large_elevation[Bezier4P0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_with_large_elevation[Bezier4P1] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_for_equal_start_and_end_points_large_elevation[Bezier4P0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_for_equal_start_and_end_points_large_elevation[Bezier4P1] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0-1e+99] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0-1e+79] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0-1e+59] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0-1e+39] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0-1e+19] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0-1000000000.0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0-1000000.0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0-1000] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0-0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0--1e+99] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0--1e+79] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0--1e+59] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0--1e+39] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0--1e+19] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0--1000000000.0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0--1000000.0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P0--1000] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1-1e+99] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1-1e+79] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1-1e+59] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1-1e+39] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1-1e+19] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1-1000000000.0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1-1000000.0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1-1000] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1-0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1--1e+99] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1--1e+79] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1--1e+59] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1--1e+39] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1--1e+19] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1--1000000000.0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1--1000000.0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P1--1000] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_pickle_support[Bezier4P0] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_pickle_support[Bezier4P1] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_cubic_bezier_arc_parameters_computation[cubic_bezier_arc_parameters0] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_cubic_bezier_arc_parameters_computation[cubic_bezier_arc_parameters1] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_from_circular_arc[cubic_bezier_from_arc0] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_from_circular_arc[cubic_bezier_from_arc1] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_from_circular_full_arc[cubic_bezier_from_arc0] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_from_circular_full_arc[cubic_bezier_from_arc1] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_bezier_curves_from_simple_elliptic_arc[cubic_bezier_from_ellipse0] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_bezier_curves_from_simple_elliptic_arc[cubic_bezier_from_ellipse1] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_bezier_curves_from_complex_elliptic_arc[cubic_bezier_from_ellipse0] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_bezier_curves_from_complex_elliptic_arc[cubic_bezier_from_ellipse1] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_arc_params_issue_708[cubic_bezier_arc_parameters0] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_arc_params_issue_708[cubic_bezier_arc_parameters1] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_bezier_curves_ellipse_issue_708[cubic_bezier_from_ellipse0] PASSED [ 64%] tests/test_06_math/test_630a_bezier4p_base.py::test_bezier_curves_ellipse_issue_708[cubic_bezier_from_ellipse1] PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_vertex_interpolation PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_invalid_bezier_interpolation PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_quadratic_to_cubic_bezier PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_g1_continuity_for_bezier_curves PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_g1_continuity_for_degenerated_bezier_curves PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_flatten_degenerated_bezier_curves[curve0] PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_flatten_degenerated_bezier_curves[curve1] PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_bezier_curves_to_bspline[G1] PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_bezier_curves_to_bspline[without G1] PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_bezier_curves_to_bspline[gap] PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_quality_of_bezier_to_bspline_conversion_1 PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_quality_of_bezier_to_bspline_conversion_2 PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_bezier_curves_to_bspline_error PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestSplitBezier::test_t_validation[-1] PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestSplitBezier::test_t_validation[2] PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestSplitBezier::test_control_point_validation PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestSplitBezier::test_split_cubic_bezier PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_quadratic_bezier_from_3_points PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::test_cubic_bezier_from_3_points PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestBezierCurveBoundingBox::test_linear_curve PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestBezierCurveBoundingBox::test_reverse_linear_curve PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestBezierCurveBoundingBox::test_cubic_bezier_curve_with_one_extrema PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestBezierCurveBoundingBox::test_cubic_bezier_curve_with_two_extrema PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestBezierCurveBoundingBox::test_closed_3d_cubic_bezier_curve PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestBezierCurveBoundingBox::test_quadratic_bezier_curve_box PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_no_intersection PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_one_intersection_point PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_two_intersection_points PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_three_intersection_points PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_collinear_ray_and_curve PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_linear_ray_and_curve[0] PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_linear_ray_and_curve[0.5] PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_linear_ray_and_curve[1] PASSED [ 64%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_linear_ray_and_curve[3] PASSED [ 64%] tests/test_06_math/test_631_euler_spiral.py::test_approximate PASSED [ 64%] tests/test_06_math/test_631_euler_spiral.py::test_radius PASSED [ 64%] tests/test_06_math/test_631_euler_spiral.py::test_tangent PASSED [ 64%] tests/test_06_math/test_631_euler_spiral.py::test_distance PASSED [ 64%] tests/test_06_math/test_631_euler_spiral.py::test_circle_midpoint PASSED [ 64%] tests/test_06_math/test_631_euler_spiral.py::test_as_bspline PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_accepts_2d_points[Bezier3P0] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_accepts_2d_points[Bezier3P1] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_objects_are_immutable[Bezier3P0] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_objects_are_immutable[Bezier3P1] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_approximate[Bezier3P0] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_approximate[Bezier3P1] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_first_derivative[Bezier3P0] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_first_derivative[Bezier3P1] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_reverse_points[Bezier3P0] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_reverse_points[Bezier3P1] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_transformation_interface[Bezier3P0] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_transformation_interface[Bezier3P1] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_transformation_returns_always_3d_curves[Bezier3P0] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_transformation_returns_always_3d_curves[Bezier3P1] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening[Bezier3P0] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening[Bezier3P1] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0-1e+99] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0-1e+79] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0-1e+59] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0-1e+39] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0-1e+19] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0-1000000000.0] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0-1000000.0] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0-1000] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0-0] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0--1e+99] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0--1e+79] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0--1e+59] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0--1e+39] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0--1e+19] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0--1000000000.0] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0--1000000.0] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P0--1000] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1-1e+99] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1-1e+79] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1-1e+59] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1-1e+39] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1-1e+19] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1-1000000000.0] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1-1000000.0] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1-1000] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1-0] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1--1e+99] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1--1e+79] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1--1e+59] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1--1e+39] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1--1e+19] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1--1000000000.0] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1--1000000.0] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P1--1000] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_approximated_length[Bezier3P0] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_approximated_length[Bezier3P1] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_pickle_support[Bezier3P0] PASSED [ 65%] tests/test_06_math/test_632_bezier3p.py::test_pickle_support[Bezier3P1] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_init PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_init_none PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_init_empty_list PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_is_empty[v0] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_is_empty[v1] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_is_empty[v2] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_is_empty[v3] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_is_empty[v4] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_not_is_empty PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_init_with_with_empty_list PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_inside PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_all_inside PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_any_inside PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_has_overlap_accepts_2d_bounding_box PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_has_intersection_accepts_2d_bounding_box PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_do_intersect_and_overlap PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_do_not_intersect_or_overlap PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_do_not_intersect_or_overlap_empty PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_crossing_2d_boxes PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_crossing_3d_boxes PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_touching_2d_boxes PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_touching_3d_boxes PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_extend PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_extend_by_empty_list PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_extend_by_bbox PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_size PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_center PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_union_of_two_bounding_boxes PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_union_bbox_with_empty_bbox PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_union_empty_bbox_with_bbox PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_union_empty_bounding_boxes PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_union_different_bounding_boxes PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_rect_vertices_for_empty_bbox_raises_value_error PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_cube_vertices_for_empty_bbox_raises_value_error PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_rect_vertices_returns_vertices_in_counter_clockwise_order PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_cube_vertices_returns_vertices_in_counter_clockwise_order PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_contains_other_bounding_box PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_growing_empty_bounding_box_does_nothing PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_grow_bounding_box PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_shrinking_to_zero_or_below_raises_exception PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_init PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_init_with_with_empty_list PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_init_none PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_is_empty[v0] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_is_empty[v1] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_is_empty[v2] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_is_empty[v3] PASSED [ 66%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_is_empty[v4] PASSED [ 66%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_not_is_empty PASSED [ 66%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_inside PASSED [ 66%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_extend PASSED [ 66%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_size PASSED [ 66%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_center PASSED [ 66%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_rect_vertices_for_empty_bbox_raises_value_error PASSED [ 66%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_rect_vertices_returns_vertices_in_counter_clockwise_order PASSED [ 66%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_contains_other_bounding_box PASSED [ 66%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_2d_box_contains_3d_box PASSED [ 66%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_3d_box_contains_2d_box PASSED [ 66%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_grow_bounding_box PASSED [ 66%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_has_overlap_accepts_3d_bounding_box PASSED [ 66%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_has_intersection_accepts_3d_bounding_box PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_accept_3d_box PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_empty_box_intersection PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_no_intersection PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_touches_at_one_corner PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_half_intersection PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_multiple_intersections[v10-v20] PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_multiple_intersections[v11-v21] PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_multiple_intersections[v12-v22] PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_full_intersection PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_smaller_inside_bigger_intersection PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_intersection_box_without_an_area_is_empty PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_accept_3d_box PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_empty_box_intersection PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_no_intersection PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_touches_at_one_corner PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_half_intersection PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_multiple_intersections[v10-v20] PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_multiple_intersections[v11-v21] PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_multiple_intersections[v12-v22] PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_full_intersection PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_smaller_inside_bigger_intersection PASSED [ 66%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_intersection_box_without_a_volume_is_empty PASSED [ 66%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_init_with_angle PASSED [ 66%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_Ray2D_get_x_y PASSED [ 66%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_intersect PASSED [ 66%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_parallel PASSED [ 66%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_intersect_with_vertical PASSED [ 66%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_intersect_with_horizontal PASSED [ 66%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_intersect_with_vertical_and_horizontal PASSED [ 66%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_parallel_vertical PASSED [ 66%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_normal_vertical PASSED [ 66%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_normal PASSED [ 66%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_normal_horizontal PASSED [ 66%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_angle PASSED [ 66%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_bisectrix PASSED [ 66%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_two_close_horizontal_rays PASSED [ 66%] tests/test_06_math/test_642_construction_line.py::TestConstructionLine::test_is_vertical PASSED [ 66%] tests/test_06_math/test_642_construction_line.py::TestConstructionLine::test_left_of_line PASSED [ 66%] tests/test_06_math/test_642_construction_line.py::TestConstructionLine::test_intersect_horizontal_line PASSED [ 66%] tests/test_06_math/test_642_construction_line.py::TestConstructionLine::test_intersect_vertical_line PASSED [ 66%] tests/test_06_math/test_642_construction_line.py::TestConstructionLine::test_bounding_box PASSED [ 66%] tests/test_06_math/test_642_construction_line.py::TestConstructionLine::test_translate PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_defaults PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_init PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_from_points PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_init_angle_90 PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_set_center PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_set_width PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_set_height PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_incircle_radius PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_circum_circle_radius PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_set_angle PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_translate PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_expand PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_scale PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_intersect_0 PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_intersect_1 PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_intersect_2 PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_is_inside_horiz_box PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_is_inside_rotated_box PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_any_corner_inside PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_overlapping_boxes PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_overlapping_crossing_boxes PASSED [ 66%] tests/test_06_math/test_643_construction_box.py::test_issue_2020_01_30 PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_init_circle PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_within PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_tangent PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_ray_pass PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_ray_touch PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::TestCircleInterectRay::test_vertical_ray PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::TestCircleInterectRay::test_horizontal_ray PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::TestCircleInterectRay::test_diagonal_ray PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::TestCircleInterectRay::test_diagonal_ray_through_mid_point PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::TestCircleInterectRay::test_horizontal_ray_through_mid_point PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::TestCircleInterectRay::test_vertical_ray_through_mid_point PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_circles_do_not_intersect PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center0-point0] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center1-point1] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center2-point2] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center3-point3] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center4-point4] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center5-point5] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center6-point6] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center7-point7] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_circle_intersect PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_inner_circle_touches_outer_circle_issue_982[outer circle right of inner circle] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_inner_circle_touches_outer_circle_issue_982[outer circle left of inner circle] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_inner_circle_touches_outer_circle_issue_982[outer circle above of inner circle] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_inner_circle_touches_outer_circle_issue_982[outer circle below of inner circle] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_vertices PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_flattening PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_create_3P PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_no_point[start0-end0] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_no_point[start1-end1] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_no_point[start2-end2] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_no_point[start3-end3] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_one_point[start0-end0] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_one_point[start1-end1] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_one_point[start2-end2] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_two_points[start0-end0] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_two_points[start1-end1] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_two_points[start2-end2] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_two_points[start3-end3] PASSED [ 67%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_two_points[start4-end4] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_from_2p_angle_complex PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_from_2p_angle_simple PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_from_2p_radius PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_from_3p PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_spatial_arc_from_3p PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_bounding_box PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_angles PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_vertices PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_tangents PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_angle_span PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_segment_count PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_flattening[1-0-180-0.35-3] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_flattening[1-0-180-0.1-5] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_flattening[0-0-360-0.1-0] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_flattening[-1-0-180-0.35-3] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_flattening[1-270-90-0.1-5] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_flattening[1-90--90-0.1-5] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_flattening[1-0-0-0.1-0] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_flattening[1--45--45-0.1-0] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_point_is_in_arc_range[p0] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_point_is_in_arc_range[p1] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_point_is_in_arc_range[p2] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_point_is_in_arc_range[p3] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_point_is_in_arc_range[p4] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_point_is_not_in_arc_range[p0] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_point_is_not_in_arc_range[p1] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_point_is_not_in_arc_range[p2] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_one_point[s0-e0] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_one_point[s1-e1] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_one_point[s2-e2] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_one_point[s3-e3] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_one_point[s4-e4] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_one_point[s5-e5] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_two_points[s0-e0] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_two_points[s1-e1] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_line[s0-e0] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_line[s1-e1] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_line[s2-e2] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_circle_in_one_point[c0-1.0] PASSED [ 68%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_circle_in_one_point[c1-0.5] PASSED [ 68%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_circle_in_one_point[c2-1.0] PASSED [ 68%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_circle_in_two_points[c0-1.0] PASSED [ 68%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_circle_in_two_points[c1-1.0] PASSED [ 68%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_circle[c0-0.5] PASSED [ 68%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_circle[c1-1.0] PASSED [ 68%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_circle[c2-2.0] PASSED [ 68%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_circle[c3-0.5] PASSED [ 68%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_arc_in_one_point[c0-1.0-90-270] PASSED [ 68%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_arc_in_one_point[c1-1.0-90-180] PASSED [ 68%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_arc_in_two_points[c0-1.0-90-270] PASSED [ 68%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_arc_in_two_points[c1-1.0-90-270] PASSED [ 68%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_arc[c0-1.0-90-270] PASSED [ 68%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_arc[c1-1.0-90-270] PASSED [ 68%] tests/test_06_math/test_646_offset_vertices_2d.py::test_0_offset PASSED [ 68%] tests/test_06_math/test_646_offset_vertices_2d.py::test_2_horiz_vertices_left_offset PASSED [ 68%] tests/test_06_math/test_646_offset_vertices_2d.py::test_2_horiz_vertices_right_offset PASSED [ 68%] tests/test_06_math/test_646_offset_vertices_2d.py::test_2_vert_vertices_left_offset PASSED [ 68%] tests/test_06_math/test_646_offset_vertices_2d.py::test_2_vert_vertices_right_offset PASSED [ 68%] tests/test_06_math/test_646_offset_vertices_2d.py::test_3_horiz_collinear_vertices PASSED [ 68%] tests/test_06_math/test_646_offset_vertices_2d.py::test_3_vert_collinear_vertices PASSED [ 68%] tests/test_06_math/test_646_offset_vertices_2d.py::test_3_vertices PASSED [ 68%] tests/test_06_math/test_646_offset_vertices_2d.py::test_closed_square_inside PASSED [ 68%] tests/test_06_math/test_646_offset_vertices_2d.py::test_closed_triangle_inside PASSED [ 68%] tests/test_06_math/test_646_offset_vertices_2d.py::test_closed_shape_with_collinear_last_segment PASSED [ 68%] tests/test_06_math/test_646_offset_vertices_2d.py::test_3_horiz_collinear_vertices_closed PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::test_transform_angle_without_ocs PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::test_transform_length_without_ocs PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_no_transformation[-2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_no_transformation[0] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_no_transformation[2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_axis[-2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_axis[0] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_axis[2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_y_axis[-2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_y_axis[0] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_y_axis[2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_z_axis[-2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_z_axis[0] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_z_axis[2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_and_y_axis[-2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_and_y_axis[0] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_and_y_axis[2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_and_z_axis[-2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_and_z_axis[0] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_and_z_axis[2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_y_and_z_axis[-2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_y_and_z_axis[0] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_y_and_z_axis[2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_y_and_z_axis[-2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_y_and_z_axis[0] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_y_and_z_axis[2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_no_transformation[-2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_no_transformation[0] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_no_transformation[2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_uniform_scaling_for_all_axis[-2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_uniform_scaling_for_all_axis[0] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_uniform_scaling_for_all_axis[2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_x_scaling[-2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_x_scaling[0] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_x_scaling[2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_y_scaling[-2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_y_scaling[0] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_y_scaling[2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_non_uniform_xy_scaling_for_x[-2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_non_uniform_xy_scaling_for_x[0] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_non_uniform_xy_scaling_for_x[2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_non_uniform_xy_scaling_for_y[-2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_non_uniform_xy_scaling_for_y[0] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_non_uniform_xy_scaling_for_y[2] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_no_transformation[0-00] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_no_transformation[0-90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_no_transformation[0-180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_no_transformation[0-360] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_no_transformation[0-01] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_no_transformation[0--90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_no_transformation[0--180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[45-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[45-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[45-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[45-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[45-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[45-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[45-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[90-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[90-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[90-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[90-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[90-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[90-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[90-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[180-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[180-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[180-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[180-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[180-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[180-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[180-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[270-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[270-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[270-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[270-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[270-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[270-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[270-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-45-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-45-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-45-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-45-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-45-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-45-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-45-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-90-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-90-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-90-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-90-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-90-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-90-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-90-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-180-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-180-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-180-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-180-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-180-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-180-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-180-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-45-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-45-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-45-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-45-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-45-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-45-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-45-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-90-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-90-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-90-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-90-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-90-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-90-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-90-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-180-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-180-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-180-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-180-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-180-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-180-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-180-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-270-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-270-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-270-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-270-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-270-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-270-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-270-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--45-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--45-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--45-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--45-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--45-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--45-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--45-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--90-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--90-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--90-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--90-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--90-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--90-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--90-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--180-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--180-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--180-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--180-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--180-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--180-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--180-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--270-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--270-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--270-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--270-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--270-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--270-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--270-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-45-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-45-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-45-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-45-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-45-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-45-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-45-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-90-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-90-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-90-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-90-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-90-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-90-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-90-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-180-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-180-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-180-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-180-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-180-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-180-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-180-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-270-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-270-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-270-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-270-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-270-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-270-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-270-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--45-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--45-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--45-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--45-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--45-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--45-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--45-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--90-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--90-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--90-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--90-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--90-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--90-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--90-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--180-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--180-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--180-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--180-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--180-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--180-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--180-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--270-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--270-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--270-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--270-0-360] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--270-0-01] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--270-0--90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--270-0--180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-45-0-00] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-45-0-90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-45-0-180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-45-0-360] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-45-0-01] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-45-0--90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-45-0--180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-90-0-00] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-90-0-90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-90-0-180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-90-0-360] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-90-0-01] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-90-0--90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-90-0--180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-180-0-00] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-180-0-90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-180-0-180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-180-0-360] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-180-0-01] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-180-0--90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-180-0--180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-270-0-00] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-270-0-90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-270-0-180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-270-0-360] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-270-0-01] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-270-0--90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-270-0--180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--45-0-00] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--45-0-90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--45-0-180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--45-0-360] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--45-0-01] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--45-0--90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--45-0--180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--90-0-00] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--90-0-90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--90-0-180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--90-0-360] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--90-0-01] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--90-0--90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--90-0--180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--180-0-00] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--180-0-90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--180-0-180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--180-0-360] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--180-0-01] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--180-0--90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--180-0--180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--270-0-00] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--270-0-90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--270-0-180] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--270-0-360] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--270-0-01] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--270-0--90] PASSED [ 71%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--270-0--180] PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_default_init PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_dxfattribs PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_get_start_and_end_vertex PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_from_arc PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_swap_axis_full_ellipse PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_swap_axis_half_ellipse PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_swap_axis_arbitrary_params PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_params PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_angle_to_param PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_vertices PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_tangents PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_params_from_vertices_random PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_to_ocs PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_flattening[0-180-0.35-3] PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_flattening[0-180-0.1-5] PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_flattening[270-90-0.1-5] PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_flattening[90--90-0.1-5] PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_flattening[0-0-0.1-0] PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_flattening[-45--45-0.1-0] PASSED [ 71%] tests/test_06_math/test_648_construction_ellipse.py::test_flattening_ellipse PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[0-0] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[90-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[-90--90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[180-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[-180--180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[270-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[-270--270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[360-360] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[-360--360] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[720-720] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[-720--720] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[0-360] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[360-0] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[-360-0] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[0--360] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[90-450] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[180-540] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[180--180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[-180-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[90--270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[-90-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[0-90-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[0--90-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[0-180-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[0--180-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[180-360-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[-180--360-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[-90-360-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[90--360-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[-90--360-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[90-360-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[360-90-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[360--90-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[-360-90-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[-360--90-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[30--30-300] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[-30-30-60] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[90--90-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[-90-90-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[360-400-40] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[400-360-320] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[0-0] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[90-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[-90--90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[180-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[-180--180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[270-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[-270--270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[360-360] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[-360--360] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[720-720] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[-720--720] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[0-360] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[360-0] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[-360-0] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[0--360] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[90-450] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[180-540] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[180--180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[-180-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[90--270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[-90-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[0-90-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[0--90-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[0-180-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[0--180-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[180-360-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[-180--360-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[-90-360-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[90--360-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[-90--360-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[90-360-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[360-90-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[360--90-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[-360-90-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[-360--90-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[30--30-300] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[-30-30-60] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[90--90-180] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[-90-90-180] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[360-400-40] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[400-360-320] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[0-0] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[90-90] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[-90--90] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[180-180] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[-180--180] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[270-270] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[-270--270] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[360-360] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[-360--360] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[720-720] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[-720--720] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[0-360] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[360-0] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[-360-0] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[0--360] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[90-450] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[180-540] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[180--180] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[-180-180] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[90--270] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[-90-270] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[0-90-90] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[0--90-270] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[0-180-180] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[0--180-180] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[180-360-180] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[-180--360-180] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[-90-360-90] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[90--360-270] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[-90--360-90] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[90-360-270] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[360-90-90] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[360--90-270] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[-360-90-90] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[-360--90-270] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[30--30-300] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[-30-30-60] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[90--90-180] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[-90-90-180] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[360-400-40] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[400-360-320] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_no_ellipse[0-00] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_no_ellipse[3.141592653589793-3.141592653589793] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_no_ellipse[6.283185307179586-6.283185307179586] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_no_ellipse[0-01] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_no_ellipse[-3.141592653589793--3.141592653589793] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_no_ellipse[-6.283185307179586--6.283185307179586] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_full_ellipse[0-6.283185307179586] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_full_ellipse[6.283185307179586-0] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_full_ellipse[3.141592653589793--3.141592653589793] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_full_ellipse[0--6.283185307179586] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_full_ellipse[-6.283185307179586-0] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_full_ellipse[-3.141592653589793-3.141592653589793] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[0-1.5707963267948966-1.5707963267948966] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[1.5707963267948966-0-4.71238898038469] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[1.5707963267948966-3.141592653589793-1.5707963267948966] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[1.5707963267948966--1.5707963267948966-3.141592653589793] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[3.141592653589793-0-3.141592653589793] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[0-3.141592653589793-3.141592653589793] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[0--1.5707963267948966-4.71238898038469] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[-1.5707963267948966-0-1.5707963267948966] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[-1.5707963267948966--3.141592653589793-4.71238898038469] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[-1.5707963267948966-1.5707963267948966-3.141592653589793] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[-3.141592653589793-0-3.141592653589793] PASSED [ 73%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[0--3.141592653589793-3.141592653589793] PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_empty_polyline PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_len_open_polyline PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_len_closed_polyline PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_get_single_vertex PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_get_last_vertex PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_get_vertex_slice PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_vertex_slice_has_same_type PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_is_immutable PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_empty_polyline_raises_Value_error PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_data_0 PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_data_1 PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_data_2 PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_data_3 PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_data_for_negative_index PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_vertices_at_the_same_location PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_raises_index_error PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestLength::test_empty_polyline PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestLength::test_open_polyline PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestLength::test_closed_polyline PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestLength::test_vertices_at_the_same_location PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestIsClosed::test_empty_polyline_is_not_closed PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestIsClosed::test_polyline_with_too_few_vertices_is_not_closed PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestIsClosed::test_poly1_is_not_closed PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestIsClosed::test_poly2_is_closed PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_empty_polyline[-1] PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_empty_polyline[0] PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_empty_polyline[1] PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_polyline_with_one_vertex[-1] PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_polyline_with_one_vertex[0] PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_polyline_with_one_vertex[1] PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_short_polyline PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_long_polyline PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_empty_polyline_raises_error PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_too_few_vertices_raises_error PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_out_of_range_raises_error PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_interpolation_at_vertex_location PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_interpolate_last_vertex_of_closed_polyline PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_interpolate_at_first_edge PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_interpolate_at_second_edge PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_interpolation_for_coincident_vertices_in_front PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_interpolation_for_coincident_vertices_after PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_interpolation_for_coincident_vertices_between PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestDivide::test_raises_error_invalid_count[-1] PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestDivide::test_raises_error_invalid_count[0] PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestDivide::test_raises_error_invalid_count[1] PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestDivide::test_divide_by_3 PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestDivide::test_divide_by_length PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestDivide::test_divide_by_length_force_last_vertex PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestApproximationAccuracy::test_unit_circle PASSED [ 74%] tests/test_06_math/test_651_construction_polyline.py::TestApproximationAccuracy::test_unit_circle_by_path PASSED [ 74%] tests/test_06_math/test_652_approx_param_t.py::TestGenericFeatures::test_access_to_construction_polyline PASSED [ 74%] tests/test_06_math/test_652_approx_param_t.py::TestGenericFeatures::test_get_max_t PASSED [ 74%] tests/test_06_math/test_652_approx_param_t.py::TestQuadraticBezier::test_start_param PASSED [ 74%] tests/test_06_math/test_652_approx_param_t.py::TestQuadraticBezier::test_end_param PASSED [ 74%] tests/test_06_math/test_652_approx_param_t.py::TestQuadraticBezier::test_certain_distance PASSED [ 74%] tests/test_06_math/test_652_approx_param_t.py::TestCubicBezier::test_start_param PASSED [ 74%] tests/test_06_math/test_652_approx_param_t.py::TestCubicBezier::test_end_param PASSED [ 74%] tests/test_06_math/test_652_approx_param_t.py::TestCubicBezier::test_certain_distance PASSED [ 74%] tests/test_06_math/test_652_approx_param_t.py::TestCubicSpline::test_max_t_is_not_1 PASSED [ 74%] tests/test_06_math/test_652_approx_param_t.py::TestCubicSpline::test_start_param PASSED [ 74%] tests/test_06_math/test_652_approx_param_t.py::TestCubicSpline::test_end_param PASSED [ 74%] tests/test_06_math/test_652_approx_param_t.py::TestCubicSpline::test_certain_distance PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_intersecting_single_segments PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_none_intersecting_single_segments PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_intersecting_cross PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_intersecting_x_cross PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_intersecting_zig_zag_lines PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_zig_zag_lines_with_common_vertices PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_complex_ellipse_with_spline_intersection PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_intersecting_squares PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_squares_with_common_corner_vertex PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_coincident_common_segment PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_coincident_common_last_segment PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_coincident_common_intermediate_segment PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines3d::test_intersecting_single_segments PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines3d::test_intersecting_single_vertical_segment PASSED [ 74%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines3d::test_none_intersecting_single_segments PASSED [ 74%] tests/test_06_math/test_654_rtree.py::test_can_not_build_empty_tree PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestFirstLevel::test_from_one_point PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestFirstLevel::test_contains_point PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestFirstLevel::test_iter_tree PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestFirstLevel::test_from_two_points PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestFirstLevel::test_store_duplicate_points PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_setup_is_correct PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_known_point_is_present[point0] PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_known_point_is_present[point1] PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_known_point_is_present[point2] PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_contains_all_random_points PASSED [ 75%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_nearest_neighbor[n0-point0] PASSED [ 75%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_nearest_neighbor[n1-point1] PASSED [ 75%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_nearest_neighbor[n2-point2] PASSED [ 75%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_find_points_in_sphere PASSED [ 75%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_find_points_in_bbox PASSED [ 75%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_iter_tree PASSED [ 75%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_avg_spherical_envelope_radius PASSED [ 75%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_avg_leaf_size PASSED [ 75%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_avg_nn_distance PASSED [ 75%] tests/test_06_math/test_654_rtree.py::test_Vec2_compatibility PASSED [ 75%] tests/test_06_math/test_654_rtree.py::test_split_strategies[box_split] PASSED [ 75%] tests/test_06_math/test_654_rtree.py::test_collect_leafs PASSED [ 75%] tests/test_06_math/test_654_rtree.py::test_average_leaf_size_of_random_points PASSED [ 75%] tests/test_06_math/test_654_rtree.py::test_avg_spherical_envelope_radius_of_random_points PASSED [ 75%] tests/test_06_math/test_654_rtree.py::test_avg_nn_distance_of_random_points PASSED [ 75%] tests/test_06_math/test_654_rtree.py::test_avg_methods_return_0_for_too_small_trees PASSED [ 75%] tests/test_06_math/test_654_rtree.py::test_spherical_envelope PASSED [ 75%] tests/test_06_math/test_655_dbscan.py::test_two_simple_cluster PASSED [ 75%] tests/test_06_math/test_655_dbscan.py::test_cluster_noise PASSED [ 75%] tests/test_06_math/test_656_k_means.py::test_cluster_random_points[4] PASSED [ 75%] tests/test_06_math/test_656_k_means.py::test_cluster_random_points[5] PASSED [ 75%] tests/test_06_math/test_656_k_means.py::test_cluster_random_points[6] PASSED [ 75%] tests/test_06_math/test_656_k_means.py::test_measure_average_cluster_radius PASSED [ 75%] tests/test_06_math/test_656_k_means.py::test_measure_average_intra_cluster_distance PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_ccw_square[CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_ccw_square[Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_cw_square[CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_cw_square[Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_concave_gear_shape[CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_concave_gear_shape[Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_square_with_square_hole[CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_square_with_square_hole[Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_square_with_two_holes[CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_square_with_two_holes[Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_square_with_steiner_point[CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_square_with_steiner_point[Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_empty_exterior[CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_empty_exterior[Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_empty_holes[CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_empty_holes[Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Star-CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Star-Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Simple Diamond-CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Simple Diamond-Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[No Concave Vertex-CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[No Concave Vertex-Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Slanted Side-CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Slanted Side-Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[New Thing-CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[New Thing-Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 1-CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 1-Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 2-CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 2-Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 3-A-CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 3-A-Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 3-B-CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 3-B-Cython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 4-CPython] PASSED [ 75%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 4-Cython] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_returns_zero_for_invalid_input[Radius = 0] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_returns_zero_for_invalid_input[colinear directions] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_returns_zero_for_invalid_input[opposite colinear directions] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[1.0-ax10-ax20] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[1.0-ax11-ax21] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[1.0-ax12-ax22] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[1.0-ax13-ax23] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-1.0-ax10-ax20] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-1.0-ax11-ax21] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-1.0-ax12-ax22] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-1.0-ax13-ax23] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[2.0-ax10-ax20] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[2.0-ax11-ax21] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[2.0-ax12-ax22] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[2.0-ax13-ax23] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-2.0-ax10-ax20] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-2.0-ax11-ax21] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-2.0-ax12-ax22] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-2.0-ax13-ax23] PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_45_deg_direction PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::test_bending_angle PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer::test_requires_three_points PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer::test_colinear_points_are_ignored[180deg] PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer::test_colinear_points_are_ignored[360deg] PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer::test_one_chamfer PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer::test_two_chamfers PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer2::test_requires_three_points PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer2::test_colinear_points_are_ignored[180deg] PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer2::test_colinear_points_are_ignored[360deg] PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer2::test_one_chamfer PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer2::test_two_chamfers PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestFillet::test_requires_three_points PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestFillet::test_colinear_points_are_ignored[180deg] PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestFillet::test_colinear_points_are_ignored[360deg] PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestFillet::test_points_for_45_deg PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestFillet::test_points_for_135_deg PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_requires_three_points PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_colinear_points_are_ignored[180deg] PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_colinear_points_are_ignored[360deg] PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_for_required_segment_count[0-3] PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_for_required_segment_count[1-3] PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_for_required_segment_count[4-3] PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_for_required_segment_count[16-6] PASSED [ 76%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_for_required_segment_count[32-10] PASSED [ 76%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_polygon_with_invalid_normal PASSED [ 76%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_intersection_point_inside PASSED [ 76%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_intersection_point_at_boundary_line PASSED [ 76%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_ignore_intersection_point_at_boundary_line PASSED [ 76%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_ignore_coplanar_start_point_as_intersection_point PASSED [ 76%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_ignore_coplanar_end_point_as_intersection_point PASSED [ 76%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_intersection_point_outside PASSED [ 76%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_ignore_coplanar_line PASSED [ 76%] tests/test_06_math/test_660_intersection_ray_polygon_3d.py::test_polygon_with_invalid_normal PASSED [ 76%] tests/test_06_math/test_660_intersection_ray_polygon_3d.py::test_intersection_point_inside PASSED [ 76%] tests/test_06_math/test_660_intersection_ray_polygon_3d.py::test_intersection_point_at_boundary_line PASSED [ 76%] tests/test_06_math/test_660_intersection_ray_polygon_3d.py::test_ignore_intersection_point_at_boundary_line PASSED [ 76%] tests/test_06_math/test_660_intersection_ray_polygon_3d.py::test_intersection_point_outside PASSED [ 76%] tests/test_06_math/test_660_intersection_ray_polygon_3d.py::test_ignore_coplanar_ray PASSED [ 76%] tests/test_06_math/test_661_is_face_normal_pointing_outwards.py::test_cube_with_ccw_vertex_orientation PASSED [ 76%] tests/test_06_math/test_661_is_face_normal_pointing_outwards.py::test_cube_with_clockwise_vertex_orientation PASSED [ 76%] tests/test_06_math/test_661_is_face_normal_pointing_outwards.py::test_torus_with_ccw_vertex_orientation PASSED [ 76%] tests/test_06_math/test_661_is_face_normal_pointing_outwards.py::test_torus_with_clockwise_vertex_orientation PASSED [ 76%] tests/test_06_math/test_661_is_face_normal_pointing_outwards.py::test_flipped_cone PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_open_triangle PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_closed_triangle PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_open_square PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_closed_square PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_irregular_polygons[polygon0] PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_irregular_polygons[polygon1] PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_irregular_polygons[polygon2] PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_two_colinear_edges PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_strict_mode_for_two_colinear_edges PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_all_colinear_edges PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_some_coincident_vertices PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_all_coincident_vertices PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_regular_convex_ngons[3] PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_regular_convex_ngons[4] PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_regular_convex_ngons[11] PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_star_is_concave[4] PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_star_is_concave[5] PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_star_is_concave[11] PASSED [ 76%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_concave_quadrilateral PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_aligned_rectangle[points0] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_aligned_rectangle[points1] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_aligned_rectangle[points2] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_aligned_rectangle[points3] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_aligned_rectangle[points4] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_aligned_rectangle[points5] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_not_aligned_rectangle[points0] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_not_aligned_rectangle[points1] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_not_aligned_rectangle[points2] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point0] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point1] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point2] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point3] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point4] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point5] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point6] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point7] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point8] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point0] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point1] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point2] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point3] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point4] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point5] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point6] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point7] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point8] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point9] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point10] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point11] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point12] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point13] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point14] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_and_b_outside_no_intersections_v PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_and_b_outside_no_intersections_h PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_and_b_inside_no_intersections_h PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_outside_b_inside_1_intersection_v PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_outside_b_inside_1_intersection_h PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_inside_b_outside_1_intersection_v PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_inside_b_outside_1_intersection_h PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_outside_b_outside_2_intersections PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_outside_b_inside_3_intersections PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_inside_b_outside_3_intersections PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_line_intersection_at_vertex PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_line_touches_at_vertex PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_line_is_colinear_to_outer_edge PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_line_is_colinear_to_inner_edge PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_line_is_colinear_to_inner_edge_reverse PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_line_is_equal_to_edge PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolylineClipping::test_polyline_outside PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolylineClipping::test_polyline_inside_no_intersection PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolylineClipping::test_polyline_inside_with_intersection PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolylineClipping::test_polyline_crossing_border PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolylineClipping::test_polyline_along_the_border_1 PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolylineClipping::test_polyline_along_the_border_2 PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_too_few_vertices[#0] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_too_few_vertices[#1] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_too_few_vertices[#2] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_too_few_vertices[#3] PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_polygon_inside_no_intersection PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_polygon_outside_no_intersection XFAIL [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_polygon_inside_with_intersection PASSED [ 77%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_polygon_colinear_edges PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_find_closest_vertices[lower-left] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_find_closest_vertices[lower-right] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_find_closest_vertices[upper-right] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_find_closest_vertices[upper-left] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_make_inverted_clipping_polygon PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_inside_polygon[point0] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_inside_polygon[point1] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_inside_polygon[point2] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_inside_polygon[point3] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point0] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point1] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point2] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point3] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point4] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point5] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point6] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point7] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point8] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::TestLineClipping::test_basic_clipping PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::TestLineClipping::test_connection_line_create_intersection_point PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::TestLineClipping::test_colinear_line PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::TestPolygonClipping::test_polygon_outside PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::TestPolygonClipping::test_polygon_clipping PASSED [ 77%] tests/test_07_render/test_701_arrows.py::test_filled_solid_arrow PASSED [ 77%] tests/test_07_render/test_701_arrows.py::test_arrow_name PASSED [ 77%] tests/test_07_render/test_701_arrows.py::test_closed_arrow_doc_r12 PASSED [ 77%] tests/test_07_render/test_701_arrows.py::test_closed_arrow_doc_r2000 PASSED [ 77%] tests/test_07_render/test_701_arrows.py::test_render_arrow PASSED [ 77%] tests/test_07_render/test_701_arrows.py::test_virtual_entities PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_circle_open PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_circle_closed PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_close_polygon PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_close_polygon_without_doublets PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_close_circle PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_square PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_box PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_open_arrow PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_closed_arrow PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_cube PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestExtrude::test_extrude_without_caps PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestExtrude::test_extrude_open_profiles_with_caps PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestExtrude::test_extrude_with_caps PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_from_profiles_linear PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_cylinder PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_spline_interpolation PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_spline_interpolated_profiles PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_from_profiles_splines PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_cone PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_rotation_form PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_translate PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_scale PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_rotate PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_square_by_radius PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_heptagon_by_edge_length PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestTorus::test_closed_torus_ngon_faces PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestTorus::test_open_torus_ngon_faces PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestTorus::test_major_radius_is_bigger_than_minor_radius[2] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestTorus::test_major_radius_is_bigger_than_minor_radius[1] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestTorus::test_major_radius_is_bigger_than_minor_radius[-2] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestTorus::test_major_radius_is_bigger_than_zero PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestTorus::test_minor_radius_is_bigger_than_zero PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_intersection_profiles PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestReferenceFrame::test_ref_z_in_x_axis PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestReferenceFrame::test_ref_z_in_z_axis_raise_exception[n0] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestReferenceFrame::test_ref_z_in_z_axis_raise_exception[n1] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestReferenceFrame::test_ref_ext_preserve_x PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestReferenceFrame::test_ref_ext_preserve_y PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_divide_path_count PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_divide_path_vertices PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_divide_path_into_equally_spaced_segments PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_divide_path_has_to_include_all_source_vertices PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_partial_path_factors PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_extrude_square_without_intermediate_profiles PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_extrude_square_with_intermediate_profiles PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_extrude_with_twist PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_extrude_with_scale PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_helix_positive_pitch_goes_up[True] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_helix_positive_pitch_goes_up[False] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_helix_negative_pitch_goes_down[True] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_helix_negative_pitch_goes_down[False] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_turtle_turn_left PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_turtle_turn_right PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::test_turtle_move_relative PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_default_arguments PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_cylinder_height_of_0_raises_value_error PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_various_directions[arbitrary] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_various_directions[+z axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_various_directions[-z axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_various_directions[+x axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_various_directions[-x axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_various_directions[+y axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_various_directions[-y axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_final_location_for_negative_z_axis PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_default_arguments PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_cylinder_height_of_0_raises_value_error PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_various_directions[arbitrary] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_various_directions[+z axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_various_directions[-z axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_various_directions[+x axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_various_directions[-x axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_various_directions[+y axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_various_directions[-y axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_final_location_for_negative_z_axis PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_vertex_merger_indices PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_vertex_merger_vertices PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_vertex_merger_index_of PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_average_vertex_merger_indices PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_average_vertex_merger_vertices PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_average_vertex_merger_index_of PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_mesh_builder PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_vertex_merger PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_average_vertex_merger PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_has_none_planar_faces PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_scale_mesh PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_rotate_x PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_mesh_bounding_box PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_get_face_vertices PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_index_error_for_getting_face_vertices PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_get_face_normal PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_empty_mesh_is_not_watertight PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_single_face_mesh_is_not_watertight PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_cube_is_watertight PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_is_watertight_can_not_detect_vertex_orientation_errors PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_edge_balance_of_closed_surface_is_not_broken PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_edge_balance_of_wrong_oriented_faces_is_broken PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_edge_balance_of_doubled_faces_is_broken PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_total_edge_count_of_closed_surface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_cube_of_separated_faces_is_not_watertight PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_cylinder_is_watertight PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_surface_normals_pointing_outwards[cube] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_surface_normals_pointing_outwards[cylinder] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_surface_normals_pointing_outwards[cone] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_surface_normals_pointing_outwards[sphere] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_cylinder_with_reversed_cap_normals PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_cube_is_manifold PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_mesh_bounding_box PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_regular_open_surface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_regular_cube_has_closed_surface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_multiple_cubes_have_closed_surface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_cube_with_reversed_face_has_closed_surface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_non_manifold_cube_has_not_a_closed_surface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_get_face_normals PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_flipped_cube_normals_pointing_inwards PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_from_empty_polyface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_from_cube_polyface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_render_polyface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_render_3dsolid PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_from_polymesh PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_from_polyface_type_error PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_from_polyface_182_1 PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_from_polyface_182_2 PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_mesh_subdivide PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_debug_coplanar_faces PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_merge_coplanar_faces PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_merge_disk PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_merge_coplanar_faces_in_two_passes PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_non_connected_paths[p0] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_non_connected_paths[p1] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_non_connected_paths[p2] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_connected_squares_same_orientation PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_connected_squares_different_orientation PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_connected_rect_same_orientation PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_complex_shape PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_connected_by_one_vertex PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_connection_error[p20] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_connection_error[p21] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_connection_error[p22] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_merge_multiple_paths PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_degenerated_path PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_simple_cases_without_action[v0] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_simple_cases_without_action[v1] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_simple_cases_without_action[v2] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_remove_in_between_vertices[v0] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_remove_in_between_vertices[v1] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_remove_duplicated_vertices[v0] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_remove_duplicated_vertices[v1] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_remove_duplicated_vertices[v2] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_remove_duplicated_vertices[v3] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_remove_in_between_vertices_with_direction_change PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_subdivided_square PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeFullPatch::test_fill_pie[seg0] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeFullPatch::test_fill_pie[seg1] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeFullPatch::test_fill_pie[seg2] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_all_edges_cube PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestGetEdgeStats::test_unique_edge_count PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestGetEdgeStats::test_sum_of_edge_count PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestGetEdgeStats::test_all_balances_are_0 PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestGetEdgeStats::test_invalid_face_orientation_break_the_rules PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestGetEdgeStats::test_coincident_faces_break_the_rules PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestGetEdgeStats::test_edge_balance_has_no_meaning_for_open_surfaces PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestSeparateMeshes::test_separate_a_single_cube_returns_a_single_cube PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestSeparateMeshes::test_separate_menger_sponge PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestSeparateMeshes::test_separate_two_cubes PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestSeparateMeshes::test_separate_two_intersecting_cubes PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestNormals::test_cube_has_six_normals PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestNormals::test_all_normals_are_normalized PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestNormals::test_all_normals_are_different PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_concave_mesh_tessellation PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[none] PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[x] PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[y] PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[z] PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[xy] PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[xz] PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[yz] PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[xyz] PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_cube_has_uniform_face_normals PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_multiple_disconnected_cubes PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_flipped_cube_faces_are_also_uniform PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_modified_cube_has_not_uniform_face_normals PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_torus_with_uniform_face_normals PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_find_all_backward_oriented_faces PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_detect_reference_face_orientation PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_regular_open_surface PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_regular_cube_has_closed_surface PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_multiple_cubes_have_closed_surface PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_cube_with_reversed_face_has_closed_surface PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_non_manifold_cube_has_not_a_closed_surface PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_unify_cube_normals_by_reference_face PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_force_unified_cube_normals_pointing_outwards[False] PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_force_unified_cube_normals_pointing_outwards[True] PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_unify_cube_normals_by_majority PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_unify_torus_normals_by_majority PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_volume6 PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_volume_of_closed_surface PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_volume_of_surface_with_clockwise_oriented_vertices PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_location_of_mesh_is_not_relevant_for_volume_calculation[loc0] PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_location_of_mesh_is_not_relevant_for_volume_calculation[loc1] PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_volume_of_an_open_surface_is_null PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_volume_of_two_cubes_in_a_single_mesh_is_invalid PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_torus_volume PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_surface_area_of_a_cube PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_surface_area_of_a_torus PASSED [ 80%] tests/test_07_render/test_703_mesh_builder.py::test_centroid_of_a_cube PASSED [ 80%] tests/test_07_render/test_704_render_linear_dimension.py::test_linear_dimension_with_one_tolerance PASSED [ 80%] tests/test_07_render/test_704_render_linear_dimension.py::test_linear_dimension_with_two_tolerances PASSED [ 80%] tests/test_07_render/test_704_render_linear_dimension.py::test_linear_dimension_with_limits PASSED [ 80%] tests/test_07_render/test_704_render_linear_dimension.py::test_dimension_insert_attribute_translates_the_block_content PASSED [ 80%] tests/test_07_render/test_704_render_linear_dimension.py::test_override_all_colors[1] PASSED [ 80%] tests/test_07_render/test_704_render_linear_dimension.py::test_override_all_colors[7] PASSED [ 80%] tests/test_07_render/test_705_shape.py::test_init PASSED [ 80%] tests/test_07_render/test_705_shape.py::test_translate PASSED [ 80%] tests/test_07_render/test_705_shape.py::test_scale PASSED [ 80%] tests/test_07_render/test_705_shape.py::test_scale_uniform PASSED [ 80%] tests/test_07_render/test_705_shape.py::test_rotate PASSED [ 80%] tests/test_07_render/test_705_shape.py::test_rotate_center PASSED [ 80%] tests/test_07_render/test_706_random_path.py::test_random_2d_path PASSED [ 80%] tests/test_07_render/test_706_random_path.py::test_random_3d_path PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_trace_builder_init PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_add_station_2d PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_add_station_3d PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_add_spline_segment PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_square_face PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_closed_linear_path PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_two_straight_faces PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_two_angled_faces PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_linear_trace_polygon PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_virtual_entities_added_to_entity_database PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_issue_191 PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_nearly_horizontal_parallel_lines_in_linear_trace_builder PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_nearly_vertical_parallel_lines_in_linear_trace_builder PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_init PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_if_path_is_empty PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_if_path_is_not_empty PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_init_start PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_if_path_with_only_a_start_point_is_still_empty PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_line_to PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_path_requires_a_command_to_represent_a_point PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_curve3_to PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_curve4_to PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_user_data_is_none_by_default PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_set_and_get_user_data PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_path_clones_share_user_data PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_reversed_path_preserves_user_data PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_transformed_path_preserves_user_data PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_sub_paths_inherit_parent_user_data PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_add_curves3 PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_add_curves4 PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_add_curves3_with_gap PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_add_curves4_with_gap PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_add_curves3_reverse PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_add_curves4_reverse PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_has_no_sub_paths_by_default PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_first_move_to PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_multiple_first_move_to PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_move_to_creates_a_multi_path_object PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_merge_multiple_move_to_commands_at_the_end PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_clone_multi_path_object PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_cant_detect_orientation_of_multi_path_object PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_cant_convert_multi_path_object_to_clockwise_orientation PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_cant_convert_multi_path_object_to_ccw_orientation PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_approximate_multi_path_object PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_flatten_multi_path_object PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_multi_path_object_to_wcs PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_transform_multi_path_object PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_sub_paths_from_single_path_object PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestSubPath::test_sub_paths_from_multi_path_object PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_add_spline PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_spline PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_add_ellipse PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_raises_type_error_for_unsupported_objects PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_ellipse PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_arc PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_circle[1] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_circle[-1] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_circle_with_zero_radius PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_line PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_quadrilateral_with_4_points[SOLID] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_quadrilateral_with_4_points[TRACE] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_quadrilateral_with_4_points[3DFACE] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_quadrilateral_with_3_points[SOLID] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_quadrilateral_with_3_points[TRACE] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_quadrilateral_with_3_points[3DFACE] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_lwpolyline_lines PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_make_path_from_lwpolyline_with_bulges PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_make_path_from_full_circle_lwpolyline PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_make_path_from_full_circle_lwpolyline_issue_424 PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_lwpolyline_s_shape PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_polyline_lines PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_polyline_with_bulges PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_3d_polyline PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestPathFromBoundaryWithElevationAndFlippedExtrusion::test_from_hatch_polyline_path PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_approximate_lines PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_approximate_curves PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_path_from_hatch_polyline_path_without_bulge PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_path_from_hatch_polyline_path_with_bulge PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_path_cloning PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_approximate_line_curves PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_transform PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_control_vertices PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_has_clockwise_orientation PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_empty_path PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_one_line PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_one_curve3 PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_one_curve4 PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_path_ctrl_vertices PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_path_approx PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_multi_path PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_multi_path_with_a_move_to_cmd_at_the_end PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_cw_and_ccw_orientation PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_edge_path PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_edge_path_with_two_closed_loops PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_edge_path_loops_with_gaps_should_be_closed PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e00-e10-e20-e30] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e01-e11-e21-e31] PASSED [ 82%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e02-e12-e22-e32] PASSED [ 82%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e03-e13-e23-e33] PASSED [ 82%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e04-e14-e24-e34] PASSED [ 82%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e05-e15-e25-e35] PASSED [ 82%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e06-e16-e26-e36] PASSED [ 82%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e07-e17-e27-e37] PASSED [ 82%] tests/test_07_render/test_708a_path.py::TestPathFromEdgePathWithElevationAndFlippedExtrusion::test_line_edge PASSED [ 82%] tests/test_07_render/test_708a_path.py::TestPathFromEdgePathWithElevationAndFlippedExtrusion::test_arc_edge PASSED [ 82%] tests/test_07_render/test_708a_path.py::TestPathFromEdgePathWithElevationAndFlippedExtrusion::test_ellipse_edge PASSED [ 82%] tests/test_07_render/test_708a_path.py::TestPathFromEdgePathWithElevationAndFlippedExtrusion::test_spline_edge PASSED [ 82%] tests/test_07_render/test_708a_path.py::TestPathFromEdgePathWithElevationAndFlippedExtrusion::test_from_complex_edge_path PASSED [ 82%] tests/test_07_render/test_708a_path.py::test_extend_path_by_another_none_empty_path PASSED [ 82%] tests/test_07_render/test_708a_path.py::test_extend_path_by_another_single_path PASSED [ 82%] tests/test_07_render/test_708a_path.py::test_extend_path_by_another_multi_path PASSED [ 82%] tests/test_07_render/test_708a_path.py::test_append_empty_path PASSED [ 82%] tests/test_07_render/test_708a_path.py::test_append_path_without_a_gap PASSED [ 82%] tests/test_07_render/test_708a_path.py::test_append_path_with_a_gap PASSED [ 82%] tests/test_07_render/test_708a_path.py::TestCloseSubPath::test_close_last_sub_path PASSED [ 82%] tests/test_07_render/test_708a_path.py::TestCloseSubPath::test_does_nothing_if_last_sub_path_is_closed PASSED [ 82%] tests/test_07_render/test_708a_path.py::TestCloseSubPath::test_does_nothing_if_last_sub_path_is_empty PASSED [ 82%] tests/test_07_render/test_708a_path.py::TestCloseSubPath::test_close_single_path PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_empty_paths PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_start_point_only_paths PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_transformation_is_executed PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_one_path_line_to PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_one_path_curve3_to PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_one_path_curve4_to PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_one_path_multiple_command PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_two_paths_one_command PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_two_paths_multiple_commands PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_multi_path_objects PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_to_ocs PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPreciseBoundingBox::test_empty_path PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPreciseBoundingBox::test_line_to PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPreciseBoundingBox::test_curve3_to PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPreciseBoundingBox::test_curve4_to PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPreciseBoundingBox::test_move_to PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestBoundingBox::test_empty_paths PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestBoundingBox::test_one_path PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestBoundingBox::test_two_path PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestBoundingBox::test_not_precise_box PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestBoundingBox::test_precise_box PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_empty_paths PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_uniform_stretch_paths_limited_by_z PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_uniform_stretch_paths_limited_by_y PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_uniform_stretch_paths_limited_by_x PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_uniform_shrink_paths PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_project_into_xy PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_project_into_xz PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_project_into_yz PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_invalid_target_size PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxNonUniformScaling::test_non_uniform_stretch_paths PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxNonUniformScaling::test_non_uniform_shrink_paths PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxNonUniformScaling::test_project_into_xy PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxNonUniformScaling::test_project_into_xz PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxNonUniformScaling::test_project_into_yz PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPathToBsplineAndVertices::test_empty_path PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPathToBsplineAndVertices::test_only_vertices PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPathToBsplineAndVertices::test_one_quadratic_bezier PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPathToBsplineAndVertices::test_one_cubic_bezier PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPathToBsplineAndVertices::test_adjacent_cubic_beziers_with_G1_continuity PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPathToBsplineAndVertices::test_adjacent_cubic_beziers_without_G1_continuity PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPathToBsplineAndVertices::test_multiple_segments PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_empty_to_polylines3d PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_polylines3d PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_empty_to_lines PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_lines PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_empty_to_lwpolyline PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_empty_path_to_lwpolyline PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_lwpolylines PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_lwpolylines_with_wcs_elevation PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_lwpolylines_with_ocs PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_multi_path_to_lwpolylines PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_empty_to_polylines2d PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_polylines2d PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_polylines2d_with_wcs_elevation PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_polylines2d_with_ocs PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_empty_to_hatches PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_poly_path_hatches PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_poly_path_hatches_with_wcs_elevation PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_poly_path_hatches_with_ocs PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_edge_path_hatches PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_splines_and_polylines PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_mpolygons_returns_expected_dxf_type PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::test_to_multi_path PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::test_to_multi_path_ignores_empty_paths PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::test_single_paths_from_a_single_path_object PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::test_single_paths_from_a_multi_path_object PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::test_issue_224_end_points PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::test_issue_494_make_path_from_spline_defined_by_fit_points_and_tangents PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_create_a_curve3_command PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_create_a_curve4_command PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_line_to_curve_creates_a_linear_segment[lines_to_curve3] PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_line_to_curve_creates_a_linear_segment[lines_to_curve4] PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_remove_line_segments_of_zero_length_at_the_start PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_remove_line_segments_of_zero_length_between_commands PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_remove_line_segments_of_zero_length_at_the_end PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_does_not_remove_a_line_representing_a_single_point PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_for_very_short_line_segments[0-1e-11] PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_for_very_short_line_segments[10-1e-08] PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_which_length_is_too_short_to_create_a_curve[0-1e-12] PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_which_length_is_too_short_to_create_a_curve[10-1e-09] PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestIsRectangular::test_empty_path PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestIsRectangular::test_less_than_four_corners PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestIsRectangular::test_open_square PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestIsRectangular::test_closed_square PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestIsRectangular::test_rectangle PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestIsRectangular::test_parallelogram PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::TestIsRectangular::test_non_aligned_square PASSED [ 83%] tests/test_07_render/test_708b_path_tools.py::test_polyline_with_bulge_value_greater_one PASSED [ 83%] tests/test_07_render/test_708c_matplotlib_path_tools.py::TestNumpyPath2dToMatplotlibPath::test_no_paths PASSED [ 83%] tests/test_07_render/test_708c_matplotlib_path_tools.py::TestNumpyPath2dToMatplotlibPath::test_line_to PASSED [ 83%] tests/test_07_render/test_708c_matplotlib_path_tools.py::TestNumpyPath2dToMatplotlibPath::test_curve3_to PASSED [ 83%] tests/test_07_render/test_708c_matplotlib_path_tools.py::TestNumpyPath2dToMatplotlibPath::test_curve4_to PASSED [ 83%] tests/test_07_render/test_708c_matplotlib_path_tools.py::TestNumpyPath2dToMatplotlibPath::test_two_single_paths PASSED [ 83%] tests/test_07_render/test_708c_matplotlib_path_tools.py::TestNumpyPath2dToMatplotlibPath::test_one_multi_path PASSED [ 83%] tests/test_07_render/test_708c_matplotlib_path_tools.py::test_orient_paths PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_unit_circle PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_scale_circle PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_move_circle PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_wedge PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_ellipse PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_rotated_ellipse PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_invalid_rect_dimensions[0-0] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_invalid_rect_dimensions[1-0] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_invalid_rect_dimensions[0-1] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_invalid_rect_dimensions[-1-1] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_invalid_rect_dimensions[1--1] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_rectangle PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_transformed_rectangle PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_ngon PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_star PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_gear PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_helix_positive_pitch_goes_up[True] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_helix_positive_pitch_goes_up[False] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_helix_negative_pitch_goes_down[True] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_helix_negative_pitch_goes_down[False] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_triangulate_doughnut PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_fast_bbox_detection[1 path] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_fast_bbox_detection[2 separated paths] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_fast_bbox_detection[1 nested sub-path] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_fast_bbox_detection[2 nested sub-path] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_fast_bbox_detection[2 separated sub-paths] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_winding_deconstruction[1 polygon] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_winding_deconstruction[2 polygons] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_winding_deconstruction[1 polygon 1 nested sub-polygon] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_winding_deconstruction[1 polygon 2 nested sub-polygons] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_winding_deconstruction[1 polygon 2 separated sub-polygons] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_flatten_polygons[1 polygon] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_flatten_polygons[2 polygons] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_flatten_polygons[1 polygon 1 nested sub-polygon] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_flatten_polygons[1 polygon 2 nested sub-polygons] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_flatten_polygons[1 polygon 2 separated sub-polygons] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_flatten_polygons[1 polygon 2 separated nested sub-polygons] PASSED [ 83%] tests/test_07_render/test_709_linetype_renderer.py::test_line_type_solid PASSED [ 83%] tests/test_07_render/test_709_linetype_renderer.py::test_line_start_is_end PASSED [ 83%] tests/test_07_render/test_709_linetype_renderer.py::test_dashed_line_2 PASSED [ 84%] tests/test_07_render/test_709_linetype_renderer.py::test_dashed_line_4 PASSED [ 84%] tests/test_07_render/test_709_linetype_renderer.py::test_dash_dot_2x_render_issue PASSED [ 84%] tests/test_07_render/test_711_points.py::test_dimensionless_point PASSED [ 84%] tests/test_07_render/test_711_points.py::test_none_point PASSED [ 84%] tests/test_07_render/test_711_points.py::test_cross_point PASSED [ 84%] tests/test_07_render/test_711_points.py::test_x_cross_point PASSED [ 84%] tests/test_07_render/test_711_points.py::test_tick_point PASSED [ 84%] tests/test_07_render/test_711_points.py::test_square_point PASSED [ 84%] tests/test_07_render/test_711_points.py::test_circle_point PASSED [ 84%] tests/test_07_render/test_711_points.py::test_rotated_cross_point PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0.5-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0.5-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0.5-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0.5-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0.5-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.0-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.0-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.0-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.0-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.0-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.5-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.5-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.5-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.5-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.5-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[2.0-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[2.0-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[2.0-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[2.0-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[2.0-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-0.5-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-0.5-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-0.5-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-0.5-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-0.5-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-1.0-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-1.0-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-1.0-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-1.0-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-1.0-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-100.0-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-100.0-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-100.0-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-100.0-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-100.0-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[2.5-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[2.5-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[2.5-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[2.5-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[2.5-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[3.0-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[3.0-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[3.0-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[3.0-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[3.0-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[4.0-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[4.0-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[4.0-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[4.0-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[4.0-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[100.0-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[100.0-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[100.0-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[100.0-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[100.0-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_dimension_line_divided_by_measurement_text[60-120] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_dimension_line_divided_by_measurement_text[300-240] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_dimension_line_divided_by_measurement_text[240-300] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_dimension_line_divided_by_measurement_text[300-30] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_text_and_arrows_fit_between_extension_lines PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_has_outside_text_and_arrows[3] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_has_outside_text_and_arrows[6] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_has_outside_text_and_arrows_but_not_a_wide_text PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_fixed_length_extension_lines PASSED [ 85%] tests/test_07_render/test_713_mleader_builder.py::TestMultiLeaderMTextBuilder::test_set_content PASSED [ 85%] tests/test_07_render/test_713_mleader_builder.py::TestMultiLeaderBlockBuilder::test_set_content PASSED [ 85%] tests/test_07_render/test_714_mleader_render_engine.py::TestRenderEngine::test_add_mtext_content PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestHatchBaseLine::test_positive_line_distance PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestHatchBaseLine::test_negative_line_distance PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestHatchBaseLine::test_hatch_line_direction_error PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestHatchBaseLine::test_dense_hatching_error PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestHatchBaseLine::test_no_offset_error PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestHatchBaseLine::test_very_small_offset_error PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_intersect_line_collinear PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_intersect_line_start PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_intersect_line_end PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_intersect_line_regular[-2] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_intersect_line_regular[0] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_intersect_line_regular[6] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_cubic_bezier_curve PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_missing_line_in_gear_example PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_polygons[10 l 10 l 10-10] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_polygons[2 l 2 r 2 r 2 l 6 l 10 l 2 l 2 r 2 r 2 l 6-14] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_polygons[2 l 2 r 2 l 2 r 2 r 4 l 4 l 10 l 2 l 2 r 2 l 2 r 2 r 4 l 4-18] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_polygons[2 r 2 l 2 r 2 l 2 l 4 r 4 l 10 l 2 r 2 l 2 r 2 l 2 l 4 r 4-18] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_polygons[2 l 2 r 2 r 2 l 2 l 4 r 2 r 4 l 2 l 10 l 2 r 2 l 2 l 2 r 2 r 4 l 2 l 4 r 2-22] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_polygons[3 @2,2 @2,-2 3 l 10 l @-2,-2 @-2,2 2 @-2,-2 @-2,2-14] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_polygons[3 @1,1 @1,1 @1,-1 @1,-1 3 l 10 l @-1,-1 @-1,-1 @-1,1 @-1,1 2 @-1,-1 @-1,-1 @-1,1 @-1,1-14] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_paths[10 l 10 l 10-10] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_paths[2 l 2 r 2 r 2 l 6 l 10 l 2 l 2 r 2 r 2 l 6-14] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_paths[2 l 2 r 2 l 2 r 2 r 4 l 4 l 10 l 2 l 2 r 2 l 2 r 2 r 4 l 4-18] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_paths[2 r 2 l 2 r 2 l 2 l 4 r 4 l 10 l 2 r 2 l 2 r 2 l 2 l 4 r 4-18] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_paths[2 l 2 r 2 r 2 l 2 l 4 r 2 r 4 l 2 l 10 l 2 r 2 l 2 l 2 r 2 r 4 l 2 l 4 r 2-22] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_paths[3 @2,2 @2,-2 3 l 10 l @-2,-2 @-2,2 2 @-2,-2 @-2,2-14] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_paths[3 @1,1 @1,1 @1,-1 @1,-1 3 l 10 l @-1,-1 @-1,-1 @-1,1 @-1,1 2 @-1,-1 @-1,-1 @-1,1 @-1,1-14] PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_curved_path PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_hatch_path_with_hole PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_vertical_hatching_with_hole PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestLinePatternRendering::test_pattern_length PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestLinePatternRendering::test_render_full_pattern PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestLinePatternRendering::test_render_start_to_offset PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestLinePatternRendering::test_render_offset_to_end PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestLinePatternRendering::test_render_offset_to_offset PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestLinePatternRendering::test_hatch_line_full_pattern PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestLinePatternRendering::test_hatch_line_with_start_and_end_offset PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_explode_earth1_pattern PASSED [ 85%] tests/test_07_render/test_715_issue_747_explode_3d_dim.py::test_exploded_arrow_blocks PASSED [ 85%] tests/test_07_render/test_715_issue_747_explode_3d_dim.py::test_exploded_arc PASSED [ 85%] tests/test_07_render/test_715_issue_747_explode_3d_dim.py::test_exploded_mtext PASSED [ 85%] tests/test_07_render/test_715_issue_747_explode_3d_dim.py::test_exploded_extension_line_1 PASSED [ 85%] tests/test_07_render/test_715_issue_747_explode_3d_dim.py::test_exploded_extension_line_2 PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_horiz_top PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_horiz_bottom PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_horiz_middle PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_45deg_top PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_45deg_bottom PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_one_liner PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_get_attribute_by_subscript PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_set_attribute_by_subscript PASSED [ 85%] tests/test_08_addons/test_801_r12spline.py::test_r12_quadratic_spline PASSED [ 85%] tests/test_08_addons/test_801_r12spline.py::test_r12_cubic_spline PASSED [ 85%] tests/test_08_addons/test_801_r12spline.py::test_r12_cubic_spline_closed PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_init PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_setter_methods PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_cell_index PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_default_text_cell PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_text_cell PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_block_cell PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_frame PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_cell_style PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_border_style PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_visibility_map PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_rendering PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_dxf_creation_span PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_span_beyond_table_borders PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_grid_coords PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_grid_coords_span PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_draw_cell_background PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_set_border_status PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_set_border_style PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::TestStyle::test_init_default_style PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::TestStyle::test_init_custom_style PASSED [ 86%] tests/test_08_addons/test_802_table_painter.py::TestStyle::test_get_attribute_index_operator PASSED [ 86%] tests/test_08_addons/test_802_table_painter.py::TestStyle::test_invalid_attribute_name_raises_key_error PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_fmt_mapping PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_fmt_int_list PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_fmt_float_list PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_fmt_vector_list PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_fmt_api_call PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_fmt_dxf_tags PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_line_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_point_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_circle_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_arc_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_text_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_solid_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_shape_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_ellipse_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_insert_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_attdef_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_mtext_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_lwpolyline_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_polyline_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_spline_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_leader_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_mesh_to_code PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_layer_entry PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_ltype_entry PASSED [ 86%] tests/test_08_addons/test_803_entities_to_code.py::test_block_to_code PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_simple_modelspace[R12] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_simple_modelspace[R2000] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_tables_without_conflict[R12] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_tables_without_conflict[R2000] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_tables_with_conflict_discard[R12] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_tables_with_conflict_discard[R2000] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_tables_with_conflict_replace[R12] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_tables_with_conflict_replace[R2000] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_without_conflict[R12] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_without_conflict[R2000] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_discard[R12] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_discard[R2000] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_rename[R12] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_rename[R2000] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_rename_resolve_block_ref[R12] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_rename_resolve_block_ref[R2000] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_rename_resolve_block_ref_inside_block_def[R12] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_rename_resolve_block_ref_inside_block_def[R2000] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_entities_using_complex_linetypes[R12-BORDER--ltypeshp.shx] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_entities_using_complex_linetypes[R12-GAS-Standard-txt] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_entities_using_complex_linetypes[R2000-BORDER--ltypeshp.shx] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_entities_using_complex_linetypes[R2000-GAS-Standard-txt] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_polyline PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_insert_with_attribs PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_cube_intersect PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_cube_union PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_cube_subtract PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_sphere_cylinder_intersect PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_sphere_cylinder_union PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_sphere_cylinder_subtract PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_bolt PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_example_simple PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_example_infiniteRecursion PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_init PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_get_set_color PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_object_color PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_dithering PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_grayscale PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_dxf_color_index PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_set_lineweight PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_write PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_set_style PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_get_style PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_get_color PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_get_lineweight PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_get_lineweight_none PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_get_lineweight_index PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_get_table_lineweight PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_set_table_lineweight PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_set_table_lineweight_index_error PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_write_header PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_write_aci_table PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_write_lineweights PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_set_style PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_get_style PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_get_color PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_get_lineweight PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_get_lineweight_none PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_get_lineweight_index PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_get_table_lineweight PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_set_table_lineweight PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_set_table_lineweight_index_error PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_write_header PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_write_lineweights PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestCTBImport::test_ctb_attribs PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestCTBImport::test_lineweight_table PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestCTBImport::test_style_1 PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestCTBImport::test_style_3 PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestCTBExport::test_create_ctb PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestSTBImport::test_stb_attribs PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestSTBImport::test_normal PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestSTBImport::test_style_1 PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestSTBImport::test_mozman PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestSTBExport::test_create_ctb PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestFunctions::test_color_name PASSED [ 87%] tests/test_08_addons/test_806_acadctb.py::TestFunctions::test_get_bool PASSED [ 87%] tests/test_08_addons/test_807_dwg_loader_basics.py::test_load_classes PASSED [ 87%] tests/test_08_addons/test_807_dwg_loader_basics.py::test_header_commands PASSED [ 87%] tests/test_08_addons/test_807_dwg_loader_basics.py::test_load_all PASSED [ 87%] tests/test_08_addons/test_807_dwg_loader_basics.py::test_crc8_is_runnable PASSED [ 87%] tests/test_08_addons/test_807_dwg_loader_basics.py::test_crc32_is_runnable PASSED [ 87%] tests/test_08_addons/test_807_dwg_loader_basics.py::test_parse_hex_dump PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_load_default_ctb PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_new_ctb PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_resolve_entity_visibility PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_resolve_attrib_visibility PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_resolve_entity_color PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_existing_true_color_overrides_any_aci_color PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_resolve_entity_linetype PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_resolve_entity_lineweight PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_resolve_block_entities PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::TestResolveLayerACIColor7::test_dark_background PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::TestResolveLayerACIColor7::test_light_background PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::TestResolveLayerACIColor7::test_switch_layout_colors PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::TestResolveLayerACIColor7::test_color_from_true_color_layer PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color[#012345-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color[#456789-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color[#ABCDEF-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color[#abcdef-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color[#ghijkl-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color[000000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color[ABCDEF-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_invalid_color_value_type[0] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_invalid_color_value_type[1.0] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_invalid_color_value_type[color2] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_transparent_color[#00000000-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_transparent_color[#000000FF-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_transparent_color[#000000ff-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_transparent_color[#000000gh-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#0-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#00-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#0000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#00000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#000000-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#0000000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#00000000-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#000000000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[ #0000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[ #000000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_resolve_transparency_from_layer PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_basic_frontend_init PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_backend_default_draw_path PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_draw_layout PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_draw_entities PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_filter_draw_entities PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_point_and_layers PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_line PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_lwpolyline_basic PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_lwpolyline_path PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_banded_lwpolyline PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_polyline_2d PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_banded_polyline_2d PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_polyline_3d_basic PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_polyline_3d_path PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_2d_arc_basic PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_3d_circle_basic PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_3d_circle_path PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_3d_arc_basic PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_3d_arc_path PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_3d_ellipse_basic PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_3d_ellipse_path PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_2d_text PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_ignore_3d_text PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_mtext PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_hatch PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_basic_spline PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_mesh PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_polyface PASSED [ 88%] tests/test_08_addons/test_811a_drawing_frontend.py::test_override_filter PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::test_replay_layout PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::test_points PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::test_line PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::test_lwpolyline_as_path PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::test_replay_properties PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::test_override_properties_at_replay PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::test_banded_lwpolyline_as_filled_polygon PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::test_2d_text_as_filled_paths PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::test_bounding_box PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::TestCroppingRecords::test_null_sized_crop_box_removes_everything PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::TestCroppingRecords::test_remove_entities_outside PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::TestCroppingRecords::test_entities_inside_crop_box_do_not_change PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::TestCroppingRecords::test_crop_filled_paths PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::TestCroppingRecords::test_does_not_crop_holes_inside_crop_box PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::TestCroppingRecords::test_does_remove_holes_outside_crop_box PASSED [ 88%] tests/test_08_addons/test_811c_viewport_processing.py::test_ignore_active_viewport PASSED [ 88%] tests/test_08_addons/test_811c_viewport_processing.py::test_ignore_only_the_first_active_viewport PASSED [ 88%] tests/test_08_addons/test_811c_viewport_processing.py::test_ignore_missing_active_viewport PASSED [ 88%] tests/test_08_addons/test_811c_viewport_processing.py::test_ignore_BricsCAD_off_viewports PASSED [ 88%] tests/test_08_addons/test_811c_viewport_processing.py::test_ignore_off_screen_viewports PASSED [ 88%] tests/test_08_addons/test_811c_viewport_processing.py::test_draw_viewports_in_order_of_status PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::TestDXFGraphicProxy::test_dxf_type PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::TestDXFGraphicProxy::test_get_dxfattribs PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::TestDXFGraphicProxy::test_setting_dxfattribs_does_no_alter_wrapped_entity PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::TestDXFGraphicProxy::test_copy_raises_cpy_not_supported_exception PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::TestDXFGraphicProxy::test_supports_virtual_entities_protocol PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::TestDXFGraphicProxy::test_supports_virtual_entities_method_of_wrapped_entity PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::TestDXFGraphicProxy::test_supports_virtual_entities_protocol_of_wrapped_entity PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::test_support_for_proxy_graphic_stored_in_acdb_entity PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_mapping_vertex_count_error[points0] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_mapping_vertex_count_error[points1] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_mapping_vertex_count_error[points2] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_map_dxf_point PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_map_dxf_line PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_map_polyline PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_map_dxf_polygon[HATCH] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_map_dxf_polygon[MPOLYGON] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_map_circle PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_map_arc PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_arc_geo_proxy_wcs_to_crs PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_types[entity0] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_types[entity1] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_types[entity2] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_types[entity3] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_types[entity4] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_types[entity5] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_types[entity6] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parsing_type_error PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parsing_value_error[entity0] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parsing_value_error[entity1] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parsing_value_error[entity2] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parsing_value_error[entity3] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parsing_value_error[entity4] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_polygon_without_holes PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_polygon_1_hole PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_polygon_2_holes PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_geometry_collection PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_parse_feature PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_feature_with_geometry_collection PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_parse_feature_collection PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_iter_feature_with_geometry_collection PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity0] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity1] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity2] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity3] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity4] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity5] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity6] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity7] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity8] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity9] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity10] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_point_to_dxf_entity PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_line_string_to_dxf_entity PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_without_holes_to_dxf_polygon[HATCH-1] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_without_holes_to_dxf_polygon[MPOLYGON-4] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_with_holes_to_dxf_polygon[HATCH-1] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_with_holes_to_dxf_polygon[MPOLYGON-4] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_mpolygon_supports_fill_and_border_color PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_geometry_collection_to_dxf_entities PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_feature_to_dxf_entities PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_feature_collection_to_dxf_entities PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_dxf_entities_post_process_properties PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_dxf_entities_from_geometry_collection_post_process_properties PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_common_WGS84_projection[deg0-coords0] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_common_WGS84_projection[deg1-coords1] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_common_WGS84_projection[deg2-coords2] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_common_WGS84_projection[deg3-coords3] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_common_WGS84_projection[deg4-coords4] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_single_entity[entity0-Point] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_single_entity[entity1-None] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_single_entity[entity2-None] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_single_entity[entity3-MultiPoint] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_single_entity[entity4-None] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_single_entity[entity5-None] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_single_entity[entity6-None] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_geometrie_collection PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_feature_collection PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_from_hatch_hole_in_hole PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_three_polygons_from_one_hatch PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[1-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[2-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[.-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[0-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[a-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[!-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[@-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[8-3] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[\xfc-3] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[&-3] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[\xe4-4] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[\xf6-4] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[%-5] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_chinese_char_paths_from_str[\u4e2d-3] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_chinese_char_paths_from_str[\u56fd-4] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_chinese_char_paths_from_str[\u6587-3] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_chinese_char_paths_from_str[\u5b57-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_one_contour_with_holes[1-0] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_one_contour_with_holes[2-0] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_one_contour_with_holes[.-0] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_one_contour_with_holes[0-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_one_contour_with_holes[a-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_one_contour_with_holes[8-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_two_contours_without_holes[:] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_two_contours_without_holes[!] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_two_contours_without_holes[;] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_two_contours_without_holes[=] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_three_contours_and_ignore_holes[\xdc] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_three_contours_and_ignore_holes[\xf6] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_three_contours_and_ignore_holes[\xe4] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_chinese_chars_and_ignore_holes[\u4e2d-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_chinese_chars_and_ignore_holes[\u56fd-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_chinese_chars_and_ignore_holes[\u6587-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_chinese_chars_and_ignore_holes[\u5b57-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[0] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[0.05] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[1] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[2] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[100] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[-1] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[-2] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[-100] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_positive_size[0.05] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_positive_size[1] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_positive_size[2] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_positive_size[100] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_negative_size[-0.05] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_negative_size[-1] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_negative_size[-2] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_negative_size[-100] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_length_for_fit_alignment[0.05] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_length_for_fit_alignment[1] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_length_for_fit_alignment[2] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_length_for_fit_alignment[100] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_scaled_height_and_length_for_aligned_text[0.05] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_scaled_height_and_length_for_aligned_text[1] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_scaled_height_and_length_for_aligned_text[2] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_scaled_height_and_length_for_aligned_text[100] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_paths_from_empty_string PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_make_multi_path_object PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_make_empty_multi_path_object PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakeHatchesFromString::test_hatches_from_empty_string PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakeHatchesFromString::test_make_exterior_only_hatches PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakeHatchesFromString::test_make_hatches_with_holes PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakeHatchesFromString::test_total_length_for_fit_alignment PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::test_check_entity_type PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_text_returns_correct_types[make_paths_from_entity-Path] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_text_returns_correct_types[make_hatches_from_entity-Hatch] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_text_height[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_text_height[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_text_height[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_left[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_left[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_left[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_center[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_center[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_center[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_right[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_right[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_right[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_baseline[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_baseline[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_baseline[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_bottom[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_bottom[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_bottom[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_middle[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_middle[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_middle[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_top[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_top[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_top[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_fit[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_fit[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_fit[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_aligned[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_aligned[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_aligned[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_rotation_90[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_rotation_90[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_rotation_90[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestVirtualEntities::test_virtual_entities_as_hatches PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestVirtualEntities::test_virtual_entities_as_splines_and_polylines PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestVirtualEntities::test_virtual_entities_as_lwpolylines PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestVirtualEntities::test_virtual_entities_to_all_types_at_once PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestExplode::test_source_entity_is_destroyed PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestExplode::test_explode_entity_into_layout PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestExplode::test_explode_entity_into_the_void PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_single_bin_single_item PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_single_bin_multiple_items[3-1-1] PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_single_bin_multiple_items[1-3-1] PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_single_bin_multiple_items[1-1-3] PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_single_bin_different_sized_items PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_empty_packer PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_empty_box PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_cannot_create_zero_sized_box PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_forced_zero_sized_box PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestExampleSmallerFirst::test_small_bins[box0] PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestExampleSmallerFirst::test_small_bins[box1] PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestExampleSmallerFirst::test_small_bins[box2] PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestExampleSmallerFirst::test_medium_box PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestExampleSmallerFirst::test_medium_box2 PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestExampleSmallerFirst::test_large_box PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestExampleSmallerFirst::test_large_box2 PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestExampleBiggerFirst::test_small_bins[box0] PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestExampleBiggerFirst::test_small_bins[box1] PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestExampleBiggerFirst::test_small_bins[box2] PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestExampleBiggerFirst::test_medium_box PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestExampleBiggerFirst::test_medium_box2 PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestExampleBiggerFirst::test_large_box PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestExampleBiggerFirst::test_large_box2 PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_copy_item[item0] PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_copy_item[item1] PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestItemTransformation::test_whd_rotation PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestItemTransformation::test_hwd_rotation PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestItemTransformation::test_hdw_rotation PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestItemTransformation::test_dhw_rotation PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestItemTransformation::test_dwh_rotation PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestItemTransformation::test_wdh_rotation PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_copy_box PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_copy_packer PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_cannot_copy_packed_packer PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_cannot_copy_packer_with_non_empty_bins PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_cannot_append_bins_to_packed_packer PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_cannot_append_non_empty_bins PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_cannot_append_items_to_packed_packer PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_random_shuffle_interface PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_random_shuffle_raise_exception_for_invalid_attempts PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_pack_item_subset PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_init_value PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_init_value_is_valid[-0.1] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_init_value_is_valid[1.1] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_flip_mutate_at PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_iter PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_reset_data PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_reset_data_checks_validity[values0] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_reset_data_checks_validity[values1] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_new_random_dna PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_subscription_setter PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestBitDNA::test_init_value PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestBitDNA::test_reset_data PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestBitDNA::test_new_random_dna PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestBitDNA::test_subscription_setter PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_init_value PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_init_values PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_init_invalid_values PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_reset_data PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_new_random_dna PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_subscription_setter PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_recombine_dna_ocx1_preserves_order PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_random_recombine_dna_ocx1[0-3] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_random_recombine_dna_ocx1[3-7] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_random_recombine_dna_ocx1[7-9] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_random_recombine_dna_ocx1[0-9] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_recombine_dna_ocx1_without_change[0-0] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_recombine_dna_ocx1_without_change[8-8] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_recombine_dna_ocx1_without_change[9-9] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_recombine_dna_ocx1_without_change[10-11] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestIntegerDNA::test_init_value PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestIntegerDNA::test_init_invalid_data PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestIntegerDNA::test_flip_mutate_at PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestIntegerDNA::test_reset_data PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestIntegerDNA::test_new_random_dna PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestHallOfFame::test_build PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestHallOfFame::test_get_n_best PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestHallOfFame::test_get_n_best_negative_values PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestHallOfFame::test_purge PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::test_reverse_mutate PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::test_scramble_mutate PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::test_tournament_selection PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestRouletteSelection::test_weights[1-10000] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestRouletteSelection::test_weights[-10000--1] PASSED [ 92%] tests/test_08_addons/test_817_genetic_algorithm.py::TestRankBasedSelection::test_weights[1-10000] PASSED [ 92%] tests/test_08_addons/test_817_genetic_algorithm.py::TestRankBasedSelection::test_weights[-10000--1] PASSED [ 92%] tests/test_08_addons/test_817_genetic_algorithm.py::test_two_point_crossover PASSED [ 92%] tests/test_08_addons/test_817_genetic_algorithm.py::TestThresholdFilter::test_positive_values PASSED [ 92%] tests/test_08_addons/test_817_genetic_algorithm.py::TestThresholdFilter::test_negative_values PASSED [ 92%] tests/test_08_addons/test_817_genetic_algorithm.py::TestGeneticOptimizer::test_init PASSED [ 92%] tests/test_08_addons/test_817_genetic_algorithm.py::TestGeneticOptimizer::test_init_invalid_max_runs PASSED [ 92%] tests/test_08_addons/test_817_genetic_algorithm.py::TestGeneticOptimizer::test_can_only_run_once PASSED [ 92%] tests/test_08_addons/test_817_genetic_algorithm.py::TestGeneticOptimizer::test_execution PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestStlLoader::test_empty_file_returns_empty_mesh PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestStlLoader::test_load_a_single_face PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestStlLoader::test_parsing_error_too_few_axis PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestStlLoader::test_parsing_error_invalid_coordinate_format PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestStlLoader::test_parsing_error_invalid_floats PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_valid_data[OFF\n# just a comment\n8 6 0\n-0.500000 -0.500000 0.500000 # ignor this\n0.500000 -0.500000 0.500000\n-0.500000 0.500000 0.500000\n0.500000 0.500000 0.500000\n-0.500000 0.500000 -0.500000\n0.500000 0.500000 -0.500000\n-0.500000 -0.500000 -0.500000\n0.500000 -0.500000 -0.500000\n4 0 1 3 2 # ignore this\n4 2 3 5 4\n4 4 5 7 6\n4 6 7 1 0\n4 1 7 5 3\n4 6 0 2 4\n] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_valid_data[OFF 8 6 0 # ignore this\n-0.500000 -0.500000 0.500000 # ignore this\n0.500000 -0.500000 0.500000\n-0.500000 0.500000 0.500000\n0.500000 0.500000 0.500000\n-0.500000 0.500000 -0.500000\n0.500000 0.500000 -0.500000\n-0.500000 -0.500000 -0.500000\n0.500000 -0.500000 -0.500000\n4 0 1 3 2 # ignore this\n4 2 3 5 4\n4 4 5 7 6\n4 6 7 1 0\n4 1 7 5 3\n4 6 0 2 4\n\n\n# ignore this\n] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_minimal_data PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[OFF] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[OFF 8 6 0] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[OFF 8 6 0\n1 2 3] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[OFF 3 1 0\n0 0 0\n 0 0 0\n0 0 Z\n3 0 1 2\n ] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[OFF 3 1 0\n0 0 0\n 0 0 0\n0 0\n3 0 1 2\n ] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[OFF 3 1 0\n0 0 0\n 0 0 0\n0 0 0\n3 0 1\n ] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[OFF 3 1 0\n0 0 0\n 0 0 0\n0 0 0\n3 0 1 z\n ] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJLoader::test_empty_file_returns_empty_mesh PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJLoader::test_load_a_single_face[v 0 0 0\nv 1 0 0\nv 1 1 0\nf 1 2 3\n] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJLoader::test_load_a_single_face[g\nv 0 0 0\nv 1 0 0\nv 1 1 0\ng\nf 1 2 3\n] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJLoader::test_parsing_error_too_few_axis PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJLoader::test_parsing_error_invalid_coordinate_format PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJLoader::test_parsing_error_invalid_floats PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestSTLDumpString::test_single_face PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestSTLDumpString::test_dump_and_load_cube_ascii PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestSTLDumpString::test_dump_and_load_cube_binary PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFDumpString::test_single_face PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFDumpString::test_dump_and_load_cube PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJDumpString::test_single_face PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJDumpString::test_dump_and_load_cube PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOpenSCADDumpString::test_single_face PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOpenSCADDumpString::test_inverted_cube PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::test_ifc_guid_compression PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestRecords::test_add_record_returns_record_number PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestRecords::test_add_record_check_expected_record_number PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestRecords::test_update_one_tag PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestRecords::test_update_multiple_tags PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestRecords::test_dumps PASSED [ 92%] tests/test_08_addons/test_819_menger_sponge.py::test_euler_characteristic_for_menger_sponge PASSED [ 92%] tests/test_08_addons/test_819_menger_sponge.py::test_edge_balance_for_menger_sponge PASSED [ 92%] tests/test_08_addons/test_819_menger_sponge.py::test_menger_sponge_is_non_manifold PASSED [ 92%] tests/test_08_addons/test_819_menger_sponge.py::test_menger_sponge_face_count PASSED [ 92%] tests/test_08_addons/test_819_menger_sponge.py::test_menger_sponge_edge_count PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::test_matrix44_to_multmatrix_str PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_build_boolean_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_build_all_operations[Operation.union-union()] PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_build_all_operations[Operation.difference-difference()] PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_build_all_operations[Operation.intersection-intersection()] PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_multmatrix_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_translation_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_rotation_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_rotation_about_axis_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_scale_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_resize_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_auto_resize_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_multi_auto_resize_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_mirror_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::test_str_polygon PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::test_str_polygon_is_automatically_closed PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::test_str_polygon_with_holes PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::test_parse_hpgl_commands PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::test_skip_all_pcl5_commands PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_pen_absolute[PD;PA2000,8000;] PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_pen_absolute[PU;PA2000,8000;] PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_select_pen PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_set_pen_width PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_set_current_pen_width PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_set_pen_color PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_set_fill_type_hatching PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_set_fill_type_shading PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_pen_relative PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_polyline PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_cubic_bezier_curve_pen_down PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_cubic_bezier_curve_pen_up PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_circle PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_abs_arc PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_rel_arc PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_abs_arc_three_points_clockwise PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_abs_arc_three_points_counter_clockwise PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_rel_arc_three_points_clockwise PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_polyline_encoded PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_escape[\x1b%-1BBP;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_escape[\x1b%0BBP;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_escape[\x1b%1BBP;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_escape[\x1b%2BBP;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_escape[\x1b%3BBP;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_short_commands[IN;PU;PD;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_short_commands[IN;PU;PD] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_short_commands[INPUPD] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_short_commands[IN PU PD] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_short_commands[ INPU PD] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_pe_command[PETEST-0] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_pe_command[PUPETEST;PD-1] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_pe_command[PUPUPETEST;PD-2] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_001 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_002 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_filter_non_printable_chars_from_pe_command PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_no_hpgl2_data PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_label_with_terminator[LB MY label \x03PA381,0SI0.125,0.25DI0,1;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_label_with_terminator[LBMY label \x03PA381,0SI0.125,0.25DI0,1;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_label_with_custom_terminator[DT\x04LB Tue Dec 18 16:20:05 2001 \x04PA381,0SI0.125,0.25DI0,1;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_label_with_custom_terminator[DT\x04,0LB Tue Dec 18 16:20:05 2001 \x04PA381,0SI0.125,0.25DI0,1;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_label_with_custom_terminator[DT\x04,1;LB Tue Dec 18 16:20:05 2001 \x04PA381,0SI0.125,0.25DI0,1;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_reset_custom_terminator[DT\x04LB MY label\x04DTLB My other label \x03] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_reset_custom_terminator[DT\x04LB MY label\x04DT;LB My other label \x03] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageCoordinates::test_user_to_page_coordinates PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageCoordinates::test_user_vector_to_page_vector PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageAnisotropicScaling::test_isotropic_scaling PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageAnisotropicScaling::test_anisotropic_scaling PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageAnisotropicScaling::test_reverse_anisotropic_scaling PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageIsotropicScaling::test_isotropic_bottom_window_50 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageIsotropicScaling::test_isotropic_bottom_window_0 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageIsotropicScaling::test_isotropic_bottom_window_100 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageIsotropicScaling::test_isotropic_left_window_50 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageIsotropicScaling::test_isotropic_left_window_0 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageIsotropicScaling::test_isotropic_left_window_100 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::test_arc_angles PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::test_sweeping_angle PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPlacementMatrix::test_shift_to_origin_Q1 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPlacementMatrix::test_shift_to_origin_Q3 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPlacementMatrix::test_rotate PASSED [ 93%] tests/test_08_addons/test_821_hpgl2_polygon_encoded.py::TestPolylineEncoding::test_8_bit PASSED [ 93%] tests/test_08_addons/test_821_hpgl2_polygon_encoded.py::TestPolylineEncoding::test_7_bit PASSED [ 93%] tests/test_08_addons/test_821_hpgl2_polygon_encoded.py::TestPolylineDecoding::test_8_bit PASSED [ 93%] tests/test_08_addons/test_821_hpgl2_polygon_encoded.py::TestPolylineDecoding::test_7_bit PASSED [ 93%] tests/test_08_addons/test_821_hpgl2_polygon_encoded.py::TestPolylineDecoding::test_8_bit_float PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestPage::test_ISO_A0 PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestPage::test_ANSI_A PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestPage::test_screen_size_in_pixels PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestDetectFinalPage::test_page_size_scale_1 PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestDetectFinalPage::test_page_size_scale_50 PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestDetectFinalPage::test_page_size_includes_margins_sc1 PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestDetectFinalPage::test_page_size_includes_margins_sc50 PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestDetectFinalPage::test_page_size_limited_page_height PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestDetectFinalPage::test_page_size_limited_page_width PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_stretch_width PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_stretch_height PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_shrink_width PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_shrink_height PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_stretch_width_margins PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_stretch_height_margins PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_shrink_width_margins PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_shrink_height_margins PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestSettings::test_rotate_content PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestSettings::test_invalid_rotate_content_angle_raises_exception PASSED [ 93%] tests/test_08_addons/test_824_svg_drawing_backend.py::TestStyles::test_create_stroke_style PASSED [ 93%] tests/test_08_addons/test_824_svg_drawing_backend.py::TestStyles::test_style_string PASSED [ 93%] tests/test_08_addons/test_824_svg_drawing_backend.py::TestStrokeWidthMapping::test_min_stroke_width PASSED [ 93%] tests/test_08_addons/test_824_svg_drawing_backend.py::TestStrokeWidthMapping::test_max_stroke_width PASSED [ 94%] tests/test_08_addons/test_824_svg_drawing_backend.py::TestStrokeWidthMapping::test_interpolation PASSED [ 94%] tests/test_08_addons/test_824_svg_drawing_backend.py::TestSVGBackend::test_get_xml_root_element PASSED [ 94%] tests/test_08_addons/test_824_svg_drawing_backend.py::TestSVGBackend::test_get_string PASSED [ 94%] tests/test_08_addons/test_824_svg_drawing_backend.py::test_empty_page PASSED [ 94%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::test_empty_page PASSED [ 94%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::TestPlotterBackend::test_enter_hpgl2_mode_prefix PASSED [ 94%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::TestPlotterBackend::test_init_commands_exist PASSED [ 94%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::TestPlotterBackend::test_pen_color_setup_exist PASSED [ 94%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::TestPlotterBackend::test_set_pen_command_exist PASSED [ 94%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::TestPlotterBackend::test_pen_width_command_exist PASSED [ 94%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::TestPlotterBackend::test_lines_are_7_bit_int_base_32_polyline_encoded PASSED [ 94%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::TestPlotterBackend::test_curves_are_ascii_encoded_relative_bezier_curves PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_default_constructor PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_is_immutable PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_init_x_y PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_init_2_tuple PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_init_vec2 PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_init_3_tuple PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_init_vec3 PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_init_type_error PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_compare PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_lower_than PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_is_null PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_bool PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_does_not_support_slicing PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[90] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[-90] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[600] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[-600] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[0.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[360.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[-360.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[720.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[-720.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[3.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[-3.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[10.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[-10.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[0.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[6.283185307179586] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[-6.283185307179586] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[12.566370614359172] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[-12.566370614359172] PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_default_constructor PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_is_immutable PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_init_x_y PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_init_2_tuple PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_init_vec2 PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_init_3_tuple PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_init_vec3 PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_init_type_error PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_is_null PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_bool PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_compare PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_lower_than PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_does_not_support_slicing PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_default_constructor PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_16_numbers_constructor PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_4_rows_constructor PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_set_item PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_set_row_4_values PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_set_row_1_value PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_set_col_4_values PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_set_col_1_value PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_copy PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_get_origin PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_array_inplace_transformation PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_default_constructor PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_point PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_tangent PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_approximate PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_flattening PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_approximated_length PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_reverse PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_transform PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_arc_parameters[0-3.141592653589793] PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_arc_parameters[3.141592653589793-6.283185307179586] PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_arc_parameters[0-6.283185307179586] PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_bezier_from_arc[0-180] PASSED [ 95%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_bezier_from_arc[180-360] PASSED [ 95%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_bezier_from_arc[0-360] PASSED [ 95%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_bezier_from_ellipse[0-3.141592653589793] PASSED [ 95%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_bezier_from_ellipse[3.141592653589793-6.283185307179586] PASSED [ 95%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_bezier_from_ellipse[0-6.283185307179586] PASSED [ 95%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_default_constructor PASSED [ 95%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_point PASSED [ 95%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_tangent PASSED [ 95%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_approximate PASSED [ 95%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_flattening PASSED [ 95%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_approximated_length PASSED [ 95%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_reverse PASSED [ 95%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_transform PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_find_span PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_cython_knots PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_basis_funcs PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_basis_vector PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_weighted_basis_vector PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_basis_funcs_derivatives PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_weighted_basis_funcs_derivatives PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_point_evaluator PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_derivative_evaluator PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_weighted_point_evaluator PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_weighted_derivative_evaluator PASSED [ 95%] tests/test_10_issues/test_issue_414_bbox_calculation.py::TestMakePath::test_WCS_calculation PASSED [ 95%] tests/test_10_issues/test_issue_414_bbox_calculation.py::TestMakePath::test_make_path PASSED [ 95%] tests/test_10_issues/test_issue_414_bbox_calculation.py::TestMakePath::test_bounding_box_calculation PASSED [ 95%] tests/test_10_issues/test_issue_414_bbox_calculation.py::TestMakePrimitive::test_make_primitive PASSED [ 95%] tests/test_10_issues/test_issue_414_bbox_calculation.py::TestMakePrimitive::test_bounding_box_calculation PASSED [ 95%] tests/test_10_issues/test_issue_557_reload_dimension_text_style.py::test_export_dimtxsty PASSED [ 95%] tests/test_10_issues/test_issue_557_reload_dimension_text_style.py::test_reload_dimtxsty PASSED [ 95%] tests/test_10_issues/test_issue_574_flattening_error.py::test_flattening_by_arc PASSED [ 95%] tests/test_10_issues/test_issue_574_flattening_error.py::test_flattening_by_ellipse PASSED [ 95%] tests/test_10_issues/test_issue_574_flattening_error.py::test_flattening_by_path PASSED [ 95%] tests/test_10_issues/test_issue_574_flattening_error.py::test_flattening_ellipse PASSED [ 95%] tests/test_10_issues/test_issue_589_incorrect_virtual_face3d.py::test_is_poly_face_mesh PASSED [ 95%] tests/test_10_issues/test_issue_589_incorrect_virtual_face3d.py::test_virtual_3dface_has_only_3_vertices PASSED [ 95%] tests/test_10_issues/test_issue_589_incorrect_virtual_face3d.py::test_virtual_3dface_does_not_include_NULLVEC PASSED [ 95%] tests/test_10_issues/test_issue_589_incorrect_virtual_face3d.py::test_mesh_builder PASSED [ 95%] tests/test_10_issues/test_issue_749_text_layout.py::test_parse_text PASSED [ 95%] tests/test_10_issues/test_issue_749_text_layout.py::test_explode_mtext PASSED [ 95%] tests/test_10_issues/test_issue_873_circle_inverted_normal.py::test_loaded_data PASSED [ 95%] tests/test_10_issues/test_issue_873_circle_inverted_normal.py::test_circle_with_inverted_normal PASSED [ 95%] integration_tests/test_acad_table.py::test_virtual_entities_from_block PASSED [ 95%] integration_tests/test_acad_table.py::test_virtual_entities_from_proxy_graphic PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_linear_dimline_all_arrow_style[AC1009] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_linear_dimline_all_arrow_style[AC1015] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_linear_dimline_all_arrow_style[AC1018] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_linear_dimline_all_arrow_style[AC1021] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_linear_dimline_all_arrow_style[AC1024] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_linear_dimline_all_arrow_style[AC1027] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_linear_dimline_all_arrow_style[AC1032] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_random_multi_point_linear_dimension PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_draw_all_arrows[AC1009] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_draw_all_arrows[AC1015] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_draw_all_arrows[AC1018] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_draw_all_arrows[AC1021] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_draw_all_arrows[AC1024] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_draw_all_arrows[AC1027] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_draw_all_arrows[AC1032] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793-2-2-2] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--1-1-1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793-1--1-1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793-1-1--1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--2--2-2] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793-2--2--2] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--2-2--2] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--3--3--3] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--1-2-3] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793-1--2-3] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793-1-2--3] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--3--2-1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793-3--2--1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--3-2--1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--3--2--1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-2-2-2] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--1-1-1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1--1-1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1-1--1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--2--2-2] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-2--2--2] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--2-2--2] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3--3--3] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--1-2-3] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1--2-3] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1-2--3] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3--2-1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-3--2--1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3-2--1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3--2--1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-2-2-2] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--1-1-1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1--1-1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1-1--1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--2--2-2] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-2--2--2] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--2-2--2] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3--3--3] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--1-2-3] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1--2-3] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1-2--3] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3--2-1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-3--2--1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3-2--1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3--2--1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_error_config[config0] PASSED [ 96%] integration_tests/test_anonymous_blocks.py::test_create_anonymous_block[AC1009] PASSED [ 96%] integration_tests/test_anonymous_blocks.py::test_create_anonymous_block[AC1015] PASSED [ 96%] integration_tests/test_anonymous_blocks.py::test_create_anonymous_block[AC1018] PASSED [ 96%] integration_tests/test_anonymous_blocks.py::test_create_anonymous_block[AC1021] PASSED [ 96%] integration_tests/test_anonymous_blocks.py::test_create_anonymous_block[AC1024] PASSED [ 96%] integration_tests/test_anonymous_blocks.py::test_create_anonymous_block[AC1027] PASSED [ 96%] integration_tests/test_anonymous_blocks.py::test_create_anonymous_block[AC1032] PASSED [ 96%] integration_tests/test_appsettings.py::test_update_extents PASSED [ 96%] integration_tests/test_audit_critical_dxf_files.py::test_kit_dev_coldfire SKIPPED [ 96%] integration_tests/test_audit_critical_dxf_files.py::test_leica_disto_r12[Leica_Disto_S910.dxf] PASSED [ 96%] integration_tests/test_audit_layouts.py::test_find_orphaned_layouts PASSED [ 96%] integration_tests/test_audit_layouts.py::test_find_orphaned_block_record PASSED [ 96%] integration_tests/test_audit_layouts.py::test_load_MODEL PASSED [ 96%] integration_tests/test_complex_line_type_2.py::test_complex_line_type PASSED [ 96%] integration_tests/test_create_basic_graphics.py::test_basic_graphics[AC1009] PASSED [ 96%] integration_tests/test_create_basic_graphics.py::test_basic_graphics[AC1015] PASSED [ 96%] integration_tests/test_create_basic_graphics.py::test_basic_graphics[AC1018] PASSED [ 96%] integration_tests/test_create_basic_graphics.py::test_basic_graphics[AC1021] PASSED [ 96%] integration_tests/test_create_basic_graphics.py::test_basic_graphics[AC1024] PASSED [ 96%] integration_tests/test_create_basic_graphics.py::test_basic_graphics[AC1027] PASSED [ 96%] integration_tests/test_create_basic_graphics.py::test_basic_graphics[AC1032] PASSED [ 96%] integration_tests/test_document_guid.py::test_guids_are_created_for_new_docs PASSED [ 96%] integration_tests/test_document_guid.py::test_guids_are_preserved_at_loading PASSED [ 96%] integration_tests/test_document_guid.py::test_fingerprint_guid_is_preserved_at_export PASSED [ 96%] integration_tests/test_document_guid.py::test_version_guid_changes_at_export PASSED [ 96%] integration_tests/test_document_page_setup.py::test_simple_page_setup_is_not_supported_for_DXF_R12 PASSED [ 96%] integration_tests/test_document_page_setup.py::test_reset_layout1_landscape PASSED [ 96%] integration_tests/test_document_page_setup.py::test_invalid_paper_format_returns_A3 PASSED [ 96%] integration_tests/test_document_page_setup.py::test_reset_layout1_portrait PASSED [ 96%] integration_tests/test_document_page_setup.py::test_resetting_layout1_creates_a_new_main_viewport PASSED [ 96%] integration_tests/test_document_page_setup.py::test_resetting_layout1_does_not_delete_entities PASSED [ 96%] integration_tests/test_document_page_setup.py::test_new_layout2 PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1009-asc] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1009-bin] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1015-asc] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1015-bin] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1018-asc] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1018-bin] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1021-asc] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1021-bin] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1024-asc] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1024-bin] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1027-asc] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1027-bin] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1032-asc] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1032-bin] PASSED [ 96%] integration_tests/test_dynblkhelper.py::test_direct_dynamic_block_references PASSED [ 96%] integration_tests/test_dynblkhelper.py::test_indirect_dynamic_block_references PASSED [ 96%] integration_tests/test_entities_iterator.py::test_entities_iterator[AC1009] PASSED [ 96%] integration_tests/test_entities_iterator.py::test_entities_iterator[AC1015] PASSED [ 96%] integration_tests/test_fix_dulicate_handles.py::test_recover_duplicate_handles[duplicate_handles.dxf] PASSED [ 97%] integration_tests/test_groups.py::test_load_dxf_with_groups PASSED [ 97%] integration_tests/test_groups.py::test_delete_group_content_and_export_dxf PASSED [ 97%] integration_tests/test_groups.py::test_reload_dxf_with_empty_group_content PASSED [ 97%] integration_tests/test_hpgl2_addon.py::test_svg_was_created PASSED [ 97%] integration_tests/test_hpgl2_addon.py::test_basic_svg_attributes PASSED [ 97%] integration_tests/test_ignore_junk_beyond_EOF.py::test_recover_ignores_junk_beyond_EOF PASSED [ 97%] integration_tests/test_ignore_junk_beyond_EOF.py::test_readfile_ignores_junk_beyond_EOF PASSED [ 97%] integration_tests/test_launcher.py::test_version PASSED [ 97%] integration_tests/test_launcher.py::test_audit_existing_file PASSED [ 97%] integration_tests/test_launcher.py::test_audit_file_not_found PASSED [ 97%] integration_tests/test_leica_disto_r12.py::test_leica_disto_r12[Leica_Disto_S910.dxf] PASSED [ 97%] integration_tests/test_load_dxf_unicode_notation.py::test_load_special_dxf_unicode_notation[ASCII_R12.dxf] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water3b-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water3b-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[eberly-6-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[eberly-6-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[boxy-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[boxy-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue149-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue149-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[building-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[building-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[rain-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[rain-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[eberly-3-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[eberly-3-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[dude-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[dude-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[bad-diagonals-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[bad-diagonals-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[degenerate-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[degenerate-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[infinite-loop-jhl-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[infinite-loop-jhl-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[filtered-bridge-jhl-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[filtered-bridge-jhl-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water3-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water3-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue16-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue16-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[collinear-diagonal-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[collinear-diagonal-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[touching-holes-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[touching-holes-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water4-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water4-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[touching2-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[touching2-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[hilbert-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[hilbert-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue52-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue52-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[shared-points-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[shared-points-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[empty-square-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[empty-square-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[self-touching-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[self-touching-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[outside-ring-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[outside-ring-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[bad-hole-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[bad-hole-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue29-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue29-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[steiner-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[steiner-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue119-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue119-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue35-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue35-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue131-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue131-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water2-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water2-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue34-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue34-Cython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue45-CPython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue45-Cython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue107-CPython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue107-Cython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[simplified-us-border-CPython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[simplified-us-border-Cython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[touching3-CPython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[touching3-Cython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue83-CPython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue83-Cython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue17-CPython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue17-Cython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[hole-touching-outer-CPython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[hole-touching-outer-Cython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[hourglass-CPython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[hourglass-Cython] PASSED [ 98%] integration_tests/test_mtext_columns.py::test_load_mtext_columns_from_dxf_r2007[load] PASSED [ 98%] integration_tests/test_mtext_columns.py::test_load_mtext_columns_from_dxf_r2007[recover] PASSED [ 98%] integration_tests/test_mtext_columns.py::test_load_mtext_columns_from_dxf_r2018[load] PASSED [ 98%] integration_tests/test_mtext_columns.py::test_load_mtext_columns_from_dxf_r2018[recover] PASSED [ 98%] integration_tests/test_mtext_explode_addon.py::test_created_text_styles_exists PASSED [ 98%] integration_tests/test_mtext_explode_addon.py::test_addon_is_still_working PASSED [ 98%] integration_tests/test_mtext_text_frame.py::test_remove_mtext_text_frame_at_loading_stage[load] PASSED [ 98%] integration_tests/test_mtext_text_frame.py::test_remove_mtext_text_frame_at_loading_stage[recover] PASSED [ 98%] integration_tests/test_mtext_text_frame.py::test_remove_column_text_frames_at_loading_stage PASSED [ 98%] integration_tests/test_mtext_text_frame.py::test_do_not_export_mtext_text_borders PASSED [ 98%] integration_tests/test_new_table_entries.py::test_adding_table_entries[AC1009] PASSED [ 98%] integration_tests/test_new_table_entries.py::test_adding_table_entries[AC1015] PASSED [ 98%] integration_tests/test_new_table_entries.py::test_adding_table_entries[AC1018] PASSED [ 98%] integration_tests/test_new_table_entries.py::test_adding_table_entries[AC1021] PASSED [ 98%] integration_tests/test_new_table_entries.py::test_adding_table_entries[AC1024] PASSED [ 98%] integration_tests/test_new_table_entries.py::test_adding_table_entries[AC1027] PASSED [ 98%] integration_tests/test_new_table_entries.py::test_adding_table_entries[AC1032] PASSED [ 98%] integration_tests/test_none_ascii_read_write.py::test_write_and_read_unicode[AC1009] PASSED [ 98%] integration_tests/test_none_ascii_read_write.py::test_write_and_read_unicode[AC1015] PASSED [ 98%] integration_tests/test_none_ascii_read_write.py::test_write_and_read_unicode[AC1018] PASSED [ 98%] integration_tests/test_none_ascii_read_write.py::test_write_and_read_unicode[AC1021] PASSED [ 98%] integration_tests/test_none_ascii_read_write.py::test_write_and_read_unicode[AC1024] PASSED [ 98%] integration_tests/test_none_ascii_read_write.py::test_write_and_read_unicode[AC1027] PASSED [ 98%] integration_tests/test_none_ascii_read_write.py::test_write_and_read_unicode[AC1032] PASSED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Not_Required::test_source_does_not_exist PASSED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Not_Required::test_source_has_unsupported_extension PASSED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Not_Required::test_destination_already_exist PASSED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Not_Required::test_destination_folder_does_not_exist PASSED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Not_Required::test_destination_has_unsupported_extension PASSED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Not_Required::test_invalid_DXF_version PASSED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Required::test_dxf_to_dwg_same_stem SKIPPED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Required::test_dxf_to_dwg_new_stem SKIPPED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Required::test_upgrade_dxf_to_r2013 SKIPPED [ 98%] integration_tests/test_odafc.py::Test_Export_And_Load_DWG::test_export_dwg SKIPPED [ 98%] integration_tests/test_odafc.py::Test_Export_And_Load_DWG::test_read_dwg SKIPPED [ 98%] integration_tests/test_open_R13_R14.py::test_open_R13_R14[small_r13.dxf] PASSED [ 98%] integration_tests/test_open_R13_R14.py::test_open_R13_R14[small_r14.dxf] PASSED [ 98%] integration_tests/test_open_R13_R14.py::test_open_R13_R14[no_layouts.dxf] PASSED [ 98%] integration_tests/test_open_binary_DXF_files.py::test_open_R13_R14[bin_dxf_r14.dxf] PASSED [ 98%] integration_tests/test_open_binary_DXF_files.py::test_open_R13_R14[bin_dxf_r13.dxf] PASSED [ 98%] integration_tests/test_open_binary_DXF_files.py::test_open_R2000_with_xdata PASSED [ 98%] integration_tests/test_open_binary_DXF_files.py::test_open_R12 PASSED [ 98%] integration_tests/test_open_coord_order_issue.py::test_coordinate_order_problem[AC1003_LINE_Example.dxf] PASSED [ 98%] integration_tests/test_open_exotic_dxf_files.py::test_read_plain_cp936_chinese SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::test_read_from_zip SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::TestProE::test_read_ProE_file SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::TestProE::test_recover_ProE_file SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::TestCorruptCivil3D::test_readfile_and_preserve_errors_by_surrogate_escape SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::TestCorruptCivil3D::test_readfile_and_ignore_errors SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::TestCorruptCivil3D::test_readfile_and_raise_exception SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::TestCorruptCivil3D::test_recover SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::test_read_map_3d SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::test_read_gerber_file SKIPPED [ 98%] integration_tests/test_polyline_entity.py::test_create_polyline_entities[AC1009] PASSED [ 98%] integration_tests/test_polyline_entity.py::test_create_polyline_entities[AC1015] PASSED [ 98%] integration_tests/test_polyline_entity.py::test_create_polyline_entities[AC1018] PASSED [ 98%] integration_tests/test_polyline_entity.py::test_create_polyline_entities[AC1021] PASSED [ 98%] integration_tests/test_polyline_entity.py::test_create_polyline_entities[AC1024] PASSED [ 98%] integration_tests/test_polyline_entity.py::test_create_polyline_entities[AC1027] PASSED [ 98%] integration_tests/test_polyline_entity.py::test_create_polyline_entities[AC1032] PASSED [ 98%] integration_tests/test_preserve_binary_data_in_xrecords.py::test_civil_3d_preserves_binary_data_in_xrecords[22C1] SKIPPED [ 98%] integration_tests/test_preserve_binary_data_in_xrecords.py::test_civil_3d_preserves_binary_data_in_xrecords[22C4] SKIPPED [ 98%] integration_tests/test_preserve_binary_data_in_xrecords.py::test_civil_3d_preserves_binary_data_in_xrecords[22C7] SKIPPED [ 99%] integration_tests/test_preserve_binary_data_in_xrecords.py::test_dxf_export_xrecords_with_binary_data[22C1-0] SKIPPED [ 99%] integration_tests/test_preserve_binary_data_in_xrecords.py::test_dxf_export_xrecords_with_binary_data[22C4-1] SKIPPED [ 99%] integration_tests/test_preserve_binary_data_in_xrecords.py::test_dxf_export_xrecords_with_binary_data[22C7-2] SKIPPED [ 99%] integration_tests/test_r12export.py::test_export_empty_doc PASSED [ 99%] integration_tests/test_r12export.py::test_export_dxf_primitives PASSED [ 99%] integration_tests/test_r12export.py::test_export_lwpolyline_as_polyline PASSED [ 99%] integration_tests/test_r12export.py::test_export_mesh_as_polyface_mesh PASSED [ 99%] integration_tests/test_r12export.py::test_export_ellipse_as_3d_polyline PASSED [ 99%] integration_tests/test_r12export.py::test_export_spline_as_3d_polyline PASSED [ 99%] integration_tests/test_r12export.py::test_export_proxy_graphic PASSED [ 99%] integration_tests/test_r12export.py::test_export_mtext PASSED [ 99%] integration_tests/test_r12export.py::test_export_virtual_entities PASSED [ 99%] integration_tests/test_r12export.py::test_export_hatch_pattern_fill PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_header_vars PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_appid PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_ltype PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_layer PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_text_style PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_dimstyle PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_ucs PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_view PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_vport PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_common_attributes PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_text_attributes PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_text_xdata PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_dimension_attributes PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_block_reference_attributes PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_modelspace_xdata PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_block_layout_names[MY_BLOCK_00] PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_block_layout_names[MY_BLOCK_1] PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_block_layout_names[MY_BLOCK_01] PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_block_content_attributes PASSED [ 99%] integration_tests/test_r12strict.py::test_clean_xdata_from_table_entries PASSED [ 99%] integration_tests/test_r12strict.py::test_remove_legacy_blocks PASSED [ 99%] integration_tests/test_r12writer.py::test_if_exists PASSED [ 99%] integration_tests/test_r12writer.py::test_write_r12 PASSED [ 99%] integration_tests/test_r12writer.py::test_read_r12 PASSED [ 99%] integration_tests/test_r12writer.py::test_context_manager PASSED [ 99%] integration_tests/test_r12writer.py::test_write_and_read_binary_dxf PASSED [ 99%] integration_tests/test_read_file_without_handles.py::test_read_file_without_handles PASSED [ 99%] integration_tests/test_read_write_modern_entites.py::test_lwpolyline PASSED [ 99%] integration_tests/test_recover.py::test_bytes_loader PASSED [ 99%] integration_tests/test_recover.py::test_safe_tag_loader PASSED [ 99%] integration_tests/test_recover.py::test_rebuild_sections PASSED [ 99%] integration_tests/test_recover.py::test_build_section_dict PASSED [ 99%] integration_tests/test_recover.py::test_readfile_recover01_dxf PASSED [ 99%] integration_tests/test_recover.py::test_rebuild_tables PASSED [ 99%] integration_tests/test_recover.py::test_readfile_recover02_dxf PASSED [ 99%] integration_tests/test_recover.py::test_read_cc_dxflib_file PASSED [ 99%] integration_tests/test_recover.py::test_readfile_empty_handles_dxf PASSED [ 99%] integration_tests/test_recover.py::test_decode_dxf_unicode_automatically PASSED [ 99%] integration_tests/test_recover.py::test_recover_layout_broken_links_1 PASSED [ 99%] integration_tests/test_recover.py::test_recover_layout_broken_links_2 PASSED [ 99%] integration_tests/test_recover.py::test_recover_layout_missing_block_record PASSED [ 99%] integration_tests/test_recover.py::test_recover_layout_missing_block_definition PASSED [ 99%] integration_tests/test_redraw_order.py::test_unset_redraw_order_returns_empty_tuple PASSED [ 99%] integration_tests/test_redraw_order.py::test_set_redraw_order PASSED [ 99%] integration_tests/test_redraw_order.py::test_store_and_load_redraw_order PASSED [ 99%] integration_tests/test_rotated_block_attributes.py::test_rotated_block[AC1009] PASSED [ 99%] integration_tests/test_rotated_block_attributes.py::test_rotated_block[AC1015] PASSED [ 99%] integration_tests/test_rotated_block_attributes.py::test_rotated_block[AC1018] PASSED [ 99%] integration_tests/test_rotated_block_attributes.py::test_rotated_block[AC1021] PASSED [ 99%] integration_tests/test_rotated_block_attributes.py::test_rotated_block[AC1024] PASSED [ 99%] integration_tests/test_rotated_block_attributes.py::test_rotated_block[AC1027] PASSED [ 99%] integration_tests/test_rotated_block_attributes.py::test_rotated_block[AC1032] PASSED [ 99%] integration_tests/test_surface_entities.py::test_get_acis_data_from_surfaces SKIPPED [ 99%] integration_tests/test_write_fixed_meta_data.py::test_fixed_meta_data[R12] PASSED [ 99%] integration_tests/test_write_fixed_meta_data.py::test_fixed_meta_data[R2000] PASSED [ 99%] integration_tests/test_write_fixed_meta_data.py::test_fixed_meta_data[R2018] PASSED [ 99%] integration_tests/test_write_fixed_meta_data.py::test_meta_data_is_different[R12] PASSED [ 99%] integration_tests/test_write_fixed_meta_data.py::test_meta_data_is_different[R2000] PASSED [ 99%] integration_tests/test_write_fixed_meta_data.py::test_meta_data_is_different[R2018] PASSED [ 99%] integration_tests/test_write_without_handles.py::test_check_R12_has_handles[POLI-ALL210_12.DXF] PASSED [ 99%] integration_tests/test_write_without_handles.py::test_write_R12_without_handles[POLI-ALL210_12.DXF] PASSED [ 99%] integration_tests/test_xref_detach.py::test_xref_doc_has_required_properties PASSED [ 99%] integration_tests/test_xref_detach.py::test_detached_dxf_contains_all_block_entities PASSED [ 99%] integration_tests/test_xref_detach.py::test_xref_doc_has_required_resources PASSED [ 99%] integration_tests/test_xref_detach.py::test_source_block_is_empty PASSED [100%] =========== 7798 passed, 56 skipped, 1 xfailed in 464.94s (0:07:44) ============ + EZDXF_DISABLE_C_EXT=1 + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + PATH=/builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib64/python3.12/site-packages:/builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/lib/python3.12/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/ezdxf-1.2.0/.pyproject-builddir' + PYTEST_XDIST_AUTO_NUM_WORKERS=4 + /usr/bin/pytest -k '' tests integration_tests -v ============================= test session starts ============================== platform linux -- Python 3.12.2, pytest-7.4.3, pluggy-1.3.0 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /builddir/build/BUILD/ezdxf-1.2.0 configfile: pytest.ini collecting ... collected 7581 items / 3 skipped tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_init PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_immutability PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_equality PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_index_able PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_unpack PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_iterable PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_public_attributes PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_dxf_str PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_xcode_for PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_001_dxf_types.py::test_is_valid_handle PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_002_dxf_vertex.py::test_init PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_002_dxf_vertex.py::test_clone PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_002_dxf_vertex.py::test_dxf_tags PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_002_dxf_vertex.py::test_dxf_string PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_002_dxf_vertex.py::test_xdata_string PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::test_init PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::test_index_able PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::test_dxf_str PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::test_long_string PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::test_hexstr_to_bytes PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::TestBinaryDataToDXFTags::test_for_preceding_length_tag PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::TestBinaryDataToDXFTags::test_if_data_tag_values_are_bytes PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::TestBinaryDataToDXFTags::test_if_empty_data_creates_a_length_tag PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::TestBinaryDataToDXFTags::test_if_tag_value_size_is_limited_to_chunk_size PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py::TestBinaryDataToDXFTags::test_if_merged_tag_values_matches_source_data PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test_single_value_code PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test_single_value_value PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test_single_value_str PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test_not_ispoint PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test_ispoint PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test__point_2coords PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test_point_3coords PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_004_dxf_value.py::TestDXFValue::test_point_str PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_tag_array_init PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_tag_array_clone PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_inherited_array PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertex_array_basics PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertex_array_advanced PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertex_array_delete PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertex_array_delete_slices PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertex_array_insert PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertex_array_to_dxf_tags PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertext_array_transform_by_ucs PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_005_packed_tags.py::test_vertext_transform PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_010_binary_data.py::test_hexstr_to_bytes PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_010_binary_data.py::test_hexstr_data_to_bytes_1 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_010_binary_data.py::test_hexstr_data_to_bytes_2 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_010_binary_data.py::test_bytes_to_hexstr PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_011_codepage.py::test_ansi_1250 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_011_codepage.py::test_default PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_011_codepage.py::test_tocodepage_1252 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_011_codepage.py::test_tocodepage_936 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_012_crypt.py::test_decode PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_012_crypt.py::test_encode PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_013_juliandate.py::TestJulianDate::test_1582_10_15 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_013_juliandate.py::TestJulianDate::test_1990_01_01 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_013_juliandate.py::TestJulianDate::test_2000_01_01 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_013_juliandate.py::TestJulianDate::test_2011_03_21 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_013_juliandate.py::TestJulianDate::test_1999_12_31 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_013_juliandate.py::TestCalendarDate::test_1999_12_31 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_013_juliandate.py::TestCalendarDate::test_2011_03_21 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_014_multi_tags_text.py::test_text_to_multi_tags PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_valid_tags PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_invalid_app_data_without_closing_tag PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_invalid_app_data_without_opening_tag PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_invalid_app_data_structure_tag PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_xrecord_with_group_code_102 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_xrecord_with_long_closing_tag PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_invalid_xdata PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_unbalanced_xdata_list_1 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_unbalanced_xdata_list_2 PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_invalid_xdata_list_nesting PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_extended_group_code_before_XDATA PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py::test_embedded_object_follows_XDATA PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_016_encoding.py::test_ascii_encoding PASSED [ 0%] tests/test_00_dxf_low_level_structs/test_016_encoding.py::test_surrogate_escape_support_in_dxf_replace_encoder[300\n\udcb7\udc9e\udcff\n-300\n\xb7\x9e\xff\n] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_016_encoding.py::test_surrogate_escape_support_in_dxf_replace_encoder[123\u6539-123\U+6539] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_016_encoding.py::test_XRECORD_handling_of_dxf_replace_encoder[0] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_016_encoding.py::test_XRECORD_handling_of_dxf_replace_encoder[1] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_016_encoding.py::test_XRECORD_handling_of_dxf_replace_encoder[2] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_next PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_next_function PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_seed PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_returns_not_zero PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_returns_not_negative PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_reset PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_init_and_reset_rejects_invalid_ints PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_copy_handle_generator PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_018_handle.py::test_copied_handle_generators_are_independent PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_line_type_tokenizer_just_numbers PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_line_type_tokenizer_strings PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_line_type_tokenizer_string_with_comma PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_line_type_tokenizer_shapes PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_line_type_parser_just_numbers PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_line_type_parser_strings PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_line_type_parser_shape PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_lin_compiler_floats PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_lin_compiler_strings PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_lin_compiler_shape PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_tags_from_complex_text PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_tags_from_complex_shape PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py::test_new_table_entry_has_text_style_handle PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_invalid_layer_name PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_the_asterisk_in_layer_names PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_allow_dxf_unicode_encoding_in_layer_names PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_allow_dxf_mplus_encoding_in_layer_names PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_strange_but_valid_layer_name PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_adsk_special_layer PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_lineweight PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_lineweight_fixer PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_aci_color PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_in_integer_range PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fit_into_integer_range PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_in_float_range PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fit_into_float_range PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_null_vector PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_positive_value PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_integer_bool PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fix_integer_bool PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_one_line_text[test\ntext\r] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_one_line_text[test\r\ntext] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_one_line_text[testtext^] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_one_line_text[test\ntext^] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_one_line_text[test\ntext^\r] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fix_invalid_one_line_text[test\ntext\r] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fix_invalid_one_line_text[test\r\ntext] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fix_invalid_one_line_text[testtext^] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fix_invalid_one_line_text[test\ntext^] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fix_invalid_one_line_text[test\ntext^\r] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_negative PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_zero PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_one_of PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_greater_or_equal_zero PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_bitmask PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_fix_bitmask PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_layer_color[2550] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_layer_color[-7] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_layer_color[-1] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_layer_color[1] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_layer_color[7] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_layer_color[2551] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_layer_color[2560] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_layer_color[0] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_layer_color[2561] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_a_handle[0] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_a_handle[100] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_a_handle[FEFE] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_a_handle[None] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_a_handle[0] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_a_handle[2097152] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_a_handle[xyz] PASSED [ 1%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_transparency[33554432] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_transparency[33554559] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_transparency[33554687] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_transparency[16777216] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_transparency[None] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_transparency[0] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_transparency[127] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_transparency[255] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_transparency[16777217] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_rgb[rgb0] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_rgb[rgb1] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_rgb[rgb2] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_valid_rgb[rgb3] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[None] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[10] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[1.0] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[11] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[rgb4] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[rgb5] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[rgb6] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[rgb7] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[rgb8] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[rgb9] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py::test_is_not_valid_rgb[rgb10] PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py::test_low_level_tagger PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py::test_fix_line_coordinate_order PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py::test_fix_2d_coordinates PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py::test_dont_fix_invalid_coordinates PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py::test_fix_3d_coordinates PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py::test_fix_two_lines_coordinate_order PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_022_set_flag_state.py::test_set_flag_state PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_023_fix_invalid_located_group_codes.py::test_fix_invalid_located_acdb_entity_group_codes PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_string_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_int_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_float_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_handle_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_reference_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_ctrl_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_point_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_render_binary_data_type PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_024_render_tag.py::TestRenderTag::test_raise_index_error_for_invalid_column_index PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_from_text PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_write PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_update PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_update_error PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_set_first PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_find_first PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_find_first_default PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_find_first_error PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_get_handle_5 PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_get_handle_105 PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_get_handle_create_new PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_find_all PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_tag_index PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_find_first_value_error PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_clone_is_equal PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_clone_is_independent PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_deepcopy PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_replace_handle_5 PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_replace_handle_105 PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_replace_no_handle_without_error PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_remove_tags PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_strip_tags PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_has_tag PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_has_not_tag PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTags::test_pop_tags PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_get_handle PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_get_soft_pointers PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_get_soft_owners PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_get_hard_pointers PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_get_hard_owners PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_get_translatable_pointers PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_is_translatable_pointer PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestGetPointers::test_has_translatable_pointer PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTagsCollect::test_with_start_param PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTagsCollect::test_with_end_param PASSED [ 2%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTagsCollect::test_with_start_and_end_param PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTagsCollect::test_none_existing_codes PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTagsCollect::test_all_codes PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_040_tags.py::TestTagsCollect::test_emtpy_tags PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_041_group_tags.py::test_init PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_041_group_tags.py::test_first_group PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_041_group_tags.py::test_second_group PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_041_group_tags.py::test_last_group PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_strtag_int PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_strtag_float PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_strtag_str PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_strtag2_vector PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_int_not_skip_comments PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_int_3d_coords PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_int_2d_coords PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_int_multiple_2d_coords PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_int_no_line_break_at_eof PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_int_float_to_int PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_int_no_eof PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_low_level_tagger_skip_comments PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_low_level_tagger_not_skip_comments PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_ext_next PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_ext_to_list PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_ext_one_point_reader PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_xdata_coords PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_ext_read_2D_points PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_ext_error_tag PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_ext_float_to_int PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_ext_coord_error_tag PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_042_tags_loader.py::test_polyline_with_xdata PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_invalid_y_coord_after_xyz PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_invalid_y_coord_after_xy PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_z_axis_after_valid_point PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_misplaced_z_axis PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_correct_xy_axis PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_invalid_single_x_axis PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_preserve_leading_0_tag PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py::test_preserve_elevation_group_code_38 PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_init_appdata PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_init_with_tags PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_init_xdata PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_init_one_tag PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_getitem PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_appdata_content_count PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_appdata_content PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_tags_skips_appdata_content PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_xdata_content_count PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_tags_skips_xdata_content PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_copy PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_getitem_layer PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_getitem_xdict PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_getitem_parent PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_get_last_item PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_tagscount PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_subclass_AcDbSymbolTableRecord PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_subclass_AcDbLayerTableRecord PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_clone_is_equal PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_replace_handle PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_xdata_count PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_tags_count PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_xdata3_tags PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_new_data PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_set_new_data PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_append_xdata PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_read_tags PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_read_tags_2 PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_read_tags_3 PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_key_error PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_skip_empty_subclass PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_get_not_existing_reactor PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_new_reactors PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_append_not_existing_reactors PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_append_to_existing_reactors PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_legacy_mode PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_group_code_1000_outside_XDATA PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_xrecord_with_group_code_102 PASSED [ 3%] tests/test_00_dxf_low_level_structs/test_050_extended_tags.py::test_xrecord_with_long_closing_tag PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_loader PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_error_section PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_valid_structure PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_eof_without_lineending PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_missing_eof PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_missing_endsec PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_missing_endsec_and_eof PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py::test_missing_section PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::test_write_tag2 PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::test_write_tag PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::test_write_point_tag PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::test_write_str PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::test_write_anything PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::TestTagCollector::test_write_tag2 PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::TestTagCollector::test_write_tag PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::TestTagCollector::test_write_point_tag PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_052_tag_writer.py::TestTagCollector::test_write_str PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py::test_parse_embedded_object PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py::test_embedded_object_structure PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py::test_mtext_structure PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py::test_mtext_set_text PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py::test_two_embedded_objects PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py::test_iter_tags PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_054_dxfattr.py::test_return_default PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_bytes_loader[bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_bytes_loader[synced_bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_encoding_detector[bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_encoding_detector[synced_bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_windows_line_endings_CR_LF[bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_windows_line_endings_CR_LF[synced_bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_linux_and_macos_x_line_endings_LF[bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_linux_and_macos_x_line_endings_LF[synced_bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_line_endings_only_CR PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_malformed_group_codes[bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestBytesLoader::test_malformed_group_codes[synced_bytes_loader] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestByteTagCompiler::test_malformed_value_tags PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestByteTagCompiler::test_malformed_integer_tags PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestByteTagCompiler::test_underlines_in_numbers_are_handled_by_python PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestByteTagCompiler::test_ignore_whitespace_in_floats[50\n1.000 e20\n] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestByteTagCompiler::test_ignore_whitespace_in_floats[50\n1.000 E20\n] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestByteTagCompiler::test_ignore_whitespace_in_floats[50\n1.000\te20\n] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestByteTagCompiler::test_ignore_whitespace_in_floats[50\n1.000\tE20\n] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::test_out_of_sync_tags PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_missing_dxf_version_is_r12 PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_r12 PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1004] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1006] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1009] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1012] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1014] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1015] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1018] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1021] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1024] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1027] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_all_supported_versions[AC1032] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_detect_any_well_formed_version PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_malformed_version_is_r12[AC10x9] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_malformed_version_is_r12[XC1009] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_malformed_version_is_r12[0000] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_malformed_version_is_r12[AC10240] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_malformed_version_is_r12[0] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_malformed_version_is_r12[None] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_strip_whitespace_from_version_string[ AC1015] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_strip_whitespace_from_version_string[AC1015 ] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestDetectDXFVersion::test_strip_whitespace_from_version_string[ AC1015 ] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_valid_zero_int[0] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_valid_zero_int[00] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_valid_zero_int[+0] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_valid_zero_int[-0] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_valid_int[+1] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_valid_int[1] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_valid_int[01] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_in_front_of_int[ 1] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_in_front_of_int[\t1] PASSED [ 4%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_in_front_of_int[\r1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_in_front_of_int[ \r1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_behind_int[1 ] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_behind_int[1\t] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_behind_int[1\r] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_whitespace_behind_int[1 \r] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[1.] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[1,] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[1a] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[1-] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[1+] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[1$] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[1 1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[+1 x fd fgg] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_ignore_invalid_chars_behind_int[\t\r+1_ ] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_if_works_with_bytes[1.] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_if_works_with_bytes[1,] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_if_works_with_bytes[1a] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_if_works_with_bytes[1-] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchIntConverter::test_if_works_with_bytes[\t\r+1_ ] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_zero[0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_zero[0.0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_zero[+0.] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_zero[-0.] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[+1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1.] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1.0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1e0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1.e0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1.0e0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1E0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1e+0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_positive_floats[1e-0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_negative_floats[-1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_negative_floats[-1.] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_negative_floats[-1.0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_negative_floats[-1e0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_negative_floats[-1.e0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_valid_negative_floats[-1.0e0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_negative_exponent PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_in_front_of_float[ 1.0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_in_front_of_float[\t1.0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_in_front_of_float[\r1.0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_in_front_of_float[ \r1.0] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_behind_float[1.0 ] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_behind_float[1.\t] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_behind_float[1.\r] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_behind_float[1. \r] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_whitespace_behind_float[1e0 \t] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1,] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1a] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1-] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1+] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1$] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1 1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[+1 x fd fgg] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[\t\r+1_ ] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1.,] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1.a] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1.-] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1.+] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1.$] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1. 1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[+1. x fd fgg] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[\t\r+1._ ] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1e0,] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1e0a] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1e0-] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1e0+] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1e0$] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[1e0 1] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[+1e0 x fd fgg] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[\t\r+1e0_ ] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[ 1e+0xx] PASSED [ 5%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[ 1e-0xx] PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[ 1E+0xx] PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_ignore_invalid_chars_behind_float[ 1E-0xx] PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[1,] PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[1a] PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[1-] PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[1+] PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[1$] PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[1 1] PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[+1 x fd fgg] PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_055_recover_loader.py::TestSearchFloatConverter::test_if_works_bytes[\t\r+1_ ] PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_has_dxf_unicode_encoding PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_has_not_dxf_unicode_encoding PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_decode_empty_string PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_decode_regular_escape_sequences PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_decode_regular_string_without_encoding PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_successive_chars PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_extra_backslash PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestUnicodeEncoding::test_extra_digits PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestMIFEncoding::test_has_mif_encoding PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestMIFEncoding::test_has_not_mif_encoding PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestMIFEncoding::test_decode_mif_encoding PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestMIFEncoding::test_decode_empty_string PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestMIFEncoding::test_decode_regular_escape_sequences PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py::TestMIFEncoding::test_decode_regular_string_without_mif_encoding PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_057_group_code_mapping.py::test_unique_group_codes PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_057_group_code_mapping.py::test_ignored_group_codes PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_057_group_code_mapping.py::test_duplicate_group_codes PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_057_group_code_mapping.py::test_if_callbacks_are_marked PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_058_json_tags.py::test_export_json_tags PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_058_json_tags.py::test_load_json_tags PASSED [ 6%] tests/test_00_dxf_low_level_structs/test_058_json_tags.py::test_load_dxf_document_from_json_tags PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_handle_and_owner PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_default_values PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_get_value_with_default PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_set_values PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_value_types PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_delete_attribs PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_is_supported PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_dxftype PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_cloning PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_deepcopy_usage PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_dxf_export_one_attribute PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_dxf_export_two_attribute PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_regular_usage PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_protect_entity_back_link_from_update PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_protect_handle_and_owner_from_update_by_default PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_can_exclude_attributes_from_update PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_can_update_handle_and_owner_on_demand PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_raises_attribute_error_for_invalid_attribute PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_raises_value_error_for_invalid_attribute_value PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::TestUpdateDXFAttributes::test_update_can_ignore_errors_on_demand PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_if_fast_load_handles_duplicate_group_codes PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_if_fast_load_handles_callback_group_codes PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_if_fast_load_handles_unprocessed_duplicate_group_codes PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_detect_implementation_version_returns_stored_version PASSED [ 6%] tests/test_01_dxf_entities/test_101_dxfnamespace.py::test_detect_implementation_version_returns_default PASSED [ 6%] tests/test_01_dxf_entities/test_102_appdata.py::test_app_data_get PASSED [ 6%] tests/test_01_dxf_entities/test_102_appdata.py::test_app_data_add PASSED [ 6%] tests/test_01_dxf_entities/test_102_appdata.py::test_app_data_add_data PASSED [ 6%] tests/test_01_dxf_entities/test_102_appdata.py::test_app_data_delete PASSED [ 6%] tests/test_01_dxf_entities/test_102_appdata.py::test_app_data_dxf_export PASSED [ 6%] tests/test_01_dxf_entities/test_102_appdata.py::test_clone PASSED [ 6%] tests/test_01_dxf_entities/test_103_reactors.py::test_reactors_new PASSED [ 6%] tests/test_01_dxf_entities/test_103_reactors.py::test_copy_reactors PASSED [ 6%] tests/test_01_dxf_entities/test_103_reactors.py::test_reactors_add PASSED [ 6%] tests/test_01_dxf_entities/test_103_reactors.py::test_reactors_set PASSED [ 6%] tests/test_01_dxf_entities/test_103_reactors.py::test_reactors_discard PASSED [ 6%] tests/test_01_dxf_entities/test_103_reactors.py::test_export_dxf PASSED [ 6%] tests/test_01_dxf_entities/test_103_reactors.py::test_from_tags PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_new_extension_dict PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_direct_interface PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_get_returns_none_for_non_existing_entries PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_supports_handle_property PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_line_new_extension_dict PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_del_entity_with_ext_dict PASSED [ 6%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_discard_existing_extension_dict PASSED [ 7%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_discard_non_existing_extension_dict_without_exception PASSED [ 7%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_discard_empty_extension PASSED [ 7%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_do_not_discard_non_empty_extension PASSED [ 7%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_multiple_destroy_calls PASSED [ 7%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_link_dxf_object_to_extension_dict PASSED [ 7%] tests/test_01_dxf_entities/test_104_extension_dict.py::test_add_new_dictionary_to_xdict PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_empty_xdata PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_add_data PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_safe_init PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_prevent_adding_invalid_data[1] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_prevent_adding_invalid_data[0] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_prevent_adding_invalid_data[1007] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_get_data PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_replace_xdata PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_discard_xdata PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_cloning PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_dxf_export PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_has_xdata_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_get_xlist_exception PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_set_xdata_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_discard_xdata_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_replace_xdata_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_poyline_with_xdata PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::test_remove_all_none_xdata_group_codes PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestEncodedXDATATags::test_find_begin_and_end_of_column_info PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestEncodedXDATATags::test_raise_exception_if_not_found PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestEncodedXDATATags::test_raise_exception_without_end_tag PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestEncodedXDATATags::test_raise_exception_without_begin_tag PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_load_not_existing_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_load_existing_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_load_user_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_list_like_getitem_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_list_like_setitem_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_list_like_insert_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_list_like_delitem_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_commit_creates_valid_XDATA PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_commit_replaces_existing_XDATA PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_modify_existing_XDATA PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_modify_existing_user_list PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_context_manager_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_invalid_line_break_characters_raise_exception[\n] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_invalid_line_break_characters_raise_exception[\r] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserList::test_too_long_string_raise_exception PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_load_not_existing_dict PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_load_existing_dict PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_load_user_dict PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_dict_like_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_dict_like_setitem_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_setitem_accepts_only_strings[0] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_setitem_accepts_only_strings[3.14] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_setitem_accepts_only_strings[data2] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_setitem_accepts_only_strings[data3] PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_dict_like_del_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_discard_non_existing_key PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_commit_creates_valid_XDATA PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_context_manager_interface PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_update_from_dict PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataUserDict::test_update_supports_only_string_keys PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataTransformation::test_move PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataTransformation::test_scale PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataTransformation::test_mirror_x PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataTransformation::test_scale_and_mirror_y PASSED [ 7%] tests/test_01_dxf_entities/test_105_xdata.py::TestXDataTransformation::test_rotate PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_dxfentity_is_set_compatible PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_is_not_graphic_entity PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_default_constructor PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_init_with_tags PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_invalid_dxf_attrib PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_get_all_dxf_attribs PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_get_dxf_attribs_and_discard_some PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_write_r12_dxf PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_write_latest_dxf PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_is_alive PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_calling_destroy_multiple_times PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_dont_write_handles_for_R12 PASSED [ 7%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_uuid PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_source_of_copy_is_none_for_a_new_entity PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_set_source_of_copy PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_delete_missing_source_of_copy_without_exception PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_source_block_reference_is_none_for_a_new_entity PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_set_source_block_reference PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_setting_source_block_reference_twice_without_exception PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_setting_source_block_reference_a_second_time_has_no_effect PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_do_not_copy_source_block_reference PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_delete_missing_source_block_reference_without_exception PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_str PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_get_dxf_defaul PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::test_ocs PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestAppData::test_new_app_data PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestAppData::test_get_app_data PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestAppData::test_set_app_data PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestAppData::test_not_existing_appid PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_new_app_data PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_get_xdata PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_set_xdata PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_not_existing_appid PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_get_xdata_list_exception PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_has_xdata_list PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_set_xdata_list PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_discard_xdata_list PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestXData::test_replace_xdata_list PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestReactors::test_has_no_reactors PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestReactors::test_set_reactors PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestReactors::test_append_handle PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestReactors::test_discard_handle PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestGetLayout::test_get_layout_model_space PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestGetLayout::test_get_layout_paper_space PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestGetLayout::test_get_layout_block PASSED [ 8%] tests/test_01_dxf_entities/test_110_dxfentity.py::TestGetLayout::test_get_layout_without_layout PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_default_attribs PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_wrapped_mtext_is_a_graphic_entity PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_wrapped_mtext_is_not_a_dxf_object PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_wrapped_mtext_returns_dxfattribs_dict PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_dxf_tag_storage_is_a_non_graphical_entity_by_default PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_dxf_tag_storage_returns_empty_dxfattribs_dict_for_non_graphical_objetcs PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_dxf_export PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_virtual_entities PASSED [ 8%] tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py::test_supports_virtual_entities_protocol PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_is_graphic_entity PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_init_from_tags PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_true_color PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_color_name PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_transparency PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_default_attributes PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_aci_color_index_fixer PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_lineweight_fixer PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_is_linetype_validator_active PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_is_layer_name_validator_active PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_clone_graphical_entity PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_basic_transformation_interfaces PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_unlink_from_layout PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_unlink_from_layout_without_doc PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_unlink_destroyed_entity_from_layout PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_recover_acdb_entity_tags PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_recover_acdb_entity_tags_does_not_replace_existing_attribs PASSED [ 8%] tests/test_01_dxf_entities/test_112a_dxfgfx.py::test_recover_acdb_entity_tags_ignores_unknown_tags PASSED [ 8%] tests/test_01_dxf_entities/test_112b_dxfobj.py::test_is_dxf_object PASSED [ 8%] tests/test_01_dxf_entities/test_112b_dxfobj.py::test_wrapped_xrecord_is_a_dxf_object PASSED [ 8%] tests/test_01_dxf_entities/test_112b_dxfobj.py::test_wrapped_xrecord_is_not_a_graphic_entity PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_registered PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_default_init PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_default_new PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_load_from_text PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_write_dxf_2000 PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_write_dxf_2004 PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_write_dxf_r12 PASSED [ 8%] tests/test_01_dxf_entities/test_113_dxfclass.py::test_entity_type PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_registered_structural_entities PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_registered_table_entries PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_new PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_factory_load PASSED [ 8%] tests/test_01_dxf_entities/test_114_factory.py::test_bind_entity_to_doc PASSED [ 9%] tests/test_01_dxf_entities/test_114_factory.py::test_bind_entity_with_existing_handle_to_doc PASSED [ 9%] tests/test_01_dxf_entities/test_114_factory.py::test_bind_dead_entity_to_doc PASSED [ 9%] tests/test_01_dxf_entities/test_114_factory.py::test_is_bound_true PASSED [ 9%] tests/test_01_dxf_entities/test_114_factory.py::test_is_bound_false PASSED [ 9%] tests/test_01_dxf_entities/test_114_factory.py::test_if_destroyed_entity_is_bound PASSED [ 9%] tests/test_01_dxf_entities/test_114_factory.py::test_create_db_entry PASSED [ 9%] tests/test_01_dxf_entities/test_114_factory.py::test_unbind_bound_entity PASSED [ 9%] tests/test_01_dxf_entities/test_114_factory.py::test_unbind_unbound_entity PASSED [ 9%] tests/test_01_dxf_entities/test_114_factory.py::test_unbind_destroyed_entity PASSED [ 9%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_create_new_empty_drawing PASSED [ 9%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_section PASSED [ 9%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_viewports PASSED [ 9%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_layers PASSED [ 9%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_linetypes PASSED [ 9%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_text_styles PASSED [ 9%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_dim_styles PASSED [ 9%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_views PASSED [ 9%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_appids PASSED [ 9%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_ucs PASSED [ 9%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_get_modelspace PASSED [ 9%] tests/test_01_dxf_entities/test_115_new_empty_drawing.py::test_get_paperspace PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_getitem PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_len PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_getitem_with_keyerror PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_owner PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_handle PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_get PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_get_entity PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_get_without_keyerror PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_contains PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_not_contains PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_delete_existing_key PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_delete_not_existing_key PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_remove_existing_key PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_remove_not_existing_key PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_discard_existing_key PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_discard_not_existing_key PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_clear PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_keys PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_items PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestNoneEmptyDXFDict::test_find_key PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestEmptyDXFDict::test_len PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestEmptyDXFDict::test_add_first_item PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestEmptyDXFDict::test_add_first_item_2 PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestEmptyDXFDict::test_add_and_replace_first_item PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestEmptyDXFDict::test_clear PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_do_not_recover_owner_tag_at_loading_stage PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_dictionary_loads_owner_tag PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_get_entity_invalid_handle PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_add_sub_dict PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestDictionaryVar::test_add_dict_var PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestDictionaryVar::test_value_property PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_add_xrecord PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_cannot_add_graphical_entities_to_dict PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_audit_fix_invalid_root_dict_owner PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_audit_ok PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_audit_invalid_pointer PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_audit_fix_invalid_pointer PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::test_link_dxf_object_to_dictionary PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestDXFDictWithDefault::test_get_existing_value PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestDXFDictWithDefault::test_get_not_existing_value PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestDXFDictWithDefault::test_get_default_value PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestDXFDictWithDefault::test_set_default_value PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestDXFDictWithDefault::test_create_place_holder_for_invalid_default_vaue PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_keys_are_copied PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_objects_exist PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_objects_are_copied PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_copied_objects_are_not_bound_to_document PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_fully_manual_dictionary_copy PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_copied_data_is_bound[DICTVAR] PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_copied_data_is_bound[XRECORD] PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_copied_xrecord PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_copied_objects_are_owned_by_copy PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyHardOwnerDictionary::test_copy_sub_dictionary PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyNotHardOwnerDictionary::test_is_not_hard_owner PASSED [ 9%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyNotHardOwnerDictionary::test_keys_are_copied PASSED [ 10%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyNotHardOwnerDictionary::test_objects_exist PASSED [ 10%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyNotHardOwnerDictionary::test_objects_are_not_copied PASSED [ 10%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyNotHardOwnerDictionary::test_objects_are_not_owned_by_copy PASSED [ 10%] tests/test_01_dxf_entities/test_116_dictionary.py::TestCopyNotHardOwnerDictionary::test_copied_dictionary_is_bound PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_handle PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_name PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_flags PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_color PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_linetype PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_set_name PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_set_color PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_set_color_2 PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_set_color_for_off_layer PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_color_as_property PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_is_locked PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_is_not_locked PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_is_on PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_is_off PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_is_frozen PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_freeze PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_thaw PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_invald_layer_name PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_set_true_color_as_rgb PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_true_color_as_rgb PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_default_description PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_default_description_at_existing_xdata PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_description_for_unusual_xdata_structure PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_set_description PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_replace_description PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_get_default_transparency PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_fully_transparent_layer PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_half_transparent_layer PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_opaque_layer PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_invalid_transparency_returns_opaque PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_transparency_byblock_returns_opaque PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_set_transparency PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_replace_transparency PASSED [ 10%] tests/test_01_dxf_entities/test_117_layer_table_entry.py::test_malformed_layer PASSED [ 10%] tests/test_01_dxf_entities/test_118_appid_table_entry.py::test_name PASSED [ 10%] tests/test_01_dxf_entities/test_119_ucs_table_entry.py::test_name PASSED [ 10%] tests/test_01_dxf_entities/test_119_ucs_table_entry.py::test_origin PASSED [ 10%] tests/test_01_dxf_entities/test_119_ucs_table_entry.py::test_xaxis PASSED [ 10%] tests/test_01_dxf_entities/test_119_ucs_table_entry.py::test_yaxis PASSED [ 10%] tests/test_01_dxf_entities/test_119_ucs_table_entry.py::test_ucs PASSED [ 10%] tests/test_01_dxf_entities/test_119_ucs_table_entry.py::test_default_vales PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_name PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_font PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_width PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_height PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_oblique PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_bigfont PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_is_backward PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_set_backward PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_is_upside_down PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_set_is_upside_down PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_set_is_vertical_stacked PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_not_existing_extended_font_data PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_extended_font_data PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_discard_extended_font_data PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_set_extended_font_data PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_dxf_details_for_extended_font_data PASSED [ 10%] tests/test_01_dxf_entities/test_120_style_table_entry.py::test_malformed_layer PASSED [ 10%] tests/test_01_dxf_entities/test_121_ltype_table_entry.py::test_name PASSED [ 10%] tests/test_01_dxf_entities/test_121_ltype_table_entry.py::test_description PASSED [ 10%] tests/test_01_dxf_entities/test_121_ltype_table_entry.py::test_pattern_items_count PASSED [ 10%] tests/test_01_dxf_entities/test_121_ltype_table_entry.py::test_pattern_tags_details PASSED [ 10%] tests/test_01_dxf_entities/test_121_ltype_table_entry.py::test_complex_linetype_name PASSED [ 10%] tests/test_01_dxf_entities/test_121_ltype_table_entry.py::test_compile_pattern PASSED [ 10%] tests/test_01_dxf_entities/test_121_ltype_table_entry.py::test_get_simplified_line_pattern PASSED [ 10%] tests/test_01_dxf_entities/test_122_vport_table_entry.py::test_name PASSED [ 10%] tests/test_01_dxf_entities/test_123_view_table_entry.py::test_view_attribute_access PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_name PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_blk1_and_blk2_arrows PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_both_arrows PASSED [ 10%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_tick PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_text_align PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_text_format PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_handle_export PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_resource_handles_export_R2000 PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_text_stream_for_resource_handles_R2000 PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dont_write_handles_for_R12 PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_name PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_blk1_and_blk2_ticks PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_both_ticks PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_virtual_dimtxsty_attribute PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_virtual_dimldrblk_attribute PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_virtual_linetypes_attributes PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_group_codes PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_dimstyle_set_align PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_text_format_2 PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_dimline_format PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_extline_format PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_extline1 PASSED [ 11%] tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py::test_set_extline2 PASSED [ 11%] tests/test_01_dxf_entities/test_125_image_def.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_125_image_def.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_125_image_def.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_125_image_def.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_125_image_def.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_126_image_def_reactor.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_126_image_def_reactor.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_126_image_def_reactor.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_126_image_def_reactor.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_126_image_def_reactor.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_127_raster_variables.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_127_raster_variables.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_127_raster_variables.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_127_raster_variables.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_127_raster_variables.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_128_pdf_definition.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_128_pdf_definition.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_128_pdf_definition.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_128_pdf_definition.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_128_pdf_definition.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_128_pdf_definition.py::test_dwf_definition PASSED [ 11%] tests/test_01_dxf_entities/test_128_pdf_definition.py::test_dgn_definition PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_handle PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_parent_handle PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_cloning_parameter PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_get_data PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_last_data PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_iter_data PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_len PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_set_data PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_append_data PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_extend PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_clear PASSED [ 11%] tests/test_01_dxf_entities/test_129_xrecord.py::test_reset PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_generic_id_buffer PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_set_get_id_buffer PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_dxf_tags PASSED [ 11%] tests/test_01_dxf_entities/test_130_id_buffer.py::test_clone PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_registered PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_default_init PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_default_new PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_load_from_text PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_write_dxf PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_generic_field_list PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_set_get_field_list PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_dxf_tags PASSED [ 11%] tests/test_01_dxf_entities/test_131_field_list.py::test_clone PASSED [ 12%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_registered PASSED [ 12%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_default_init PASSED [ 12%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_default_new PASSED [ 12%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_load_from_text PASSED [ 12%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_write_dxf PASSED [ 12%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_generic_field_list PASSED [ 12%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_set_get_field_list PASSED [ 12%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_dxf_tags PASSED [ 12%] tests/test_01_dxf_entities/test_132_layer_filter.py::test_clone PASSED [ 12%] tests/test_01_dxf_entities/test_133_sun.py::test_registered PASSED [ 12%] tests/test_01_dxf_entities/test_133_sun.py::test_default_init PASSED [ 12%] tests/test_01_dxf_entities/test_133_sun.py::test_default_new PASSED [ 12%] tests/test_01_dxf_entities/test_133_sun.py::test_load_from_text PASSED [ 12%] tests/test_01_dxf_entities/test_133_sun.py::test_write_dxf PASSED [ 12%] tests/test_01_dxf_entities/test_133_sun.py::test_sun PASSED [ 12%] tests/test_01_dxf_entities/test_134_material.py::test_material_manager PASSED [ 12%] tests/test_01_dxf_entities/test_134_material.py::test_export_matrix PASSED [ 12%] tests/test_01_dxf_entities/test_135_geo_data.py::test_registered PASSED [ 12%] tests/test_01_dxf_entities/test_135_geo_data.py::test_default_init PASSED [ 12%] tests/test_01_dxf_entities/test_135_geo_data.py::test_default_new PASSED [ 12%] tests/test_01_dxf_entities/test_135_geo_data.py::test_load_from_text PASSED [ 12%] tests/test_01_dxf_entities/test_135_geo_data.py::test_write_dxf PASSED [ 12%] tests/test_01_dxf_entities/test_135_geo_data.py::test_geodata_dxf_attributes PASSED [ 12%] tests/test_01_dxf_entities/test_135_geo_data.py::test_geodata_get_mesh_data PASSED [ 12%] tests/test_01_dxf_entities/test_135_geo_data.py::test_geodata_delete_and_extend_mesh_data PASSED [ 12%] tests/test_01_dxf_entities/test_135_geo_data.py::test_geodata_set_mesh_data PASSED [ 12%] tests/test_01_dxf_entities/test_135_geo_data.py::test_geodata_coordinate_system_definition PASSED [ 12%] tests/test_01_dxf_entities/test_135_geo_data.py::test_create_new_geo_data_for_model_space PASSED [ 12%] tests/test_01_dxf_entities/test_135_geo_data.py::test_interpreting_geodata PASSED [ 12%] tests/test_01_dxf_entities/test_135_geo_data.py::test_setup_local_grid_epsg_3395 PASSED [ 12%] tests/test_01_dxf_entities/test_136_vba_project.py::test_vba_project PASSED [ 12%] tests/test_01_dxf_entities/test_136_vba_project.py::test_load_vba_project PASSED [ 12%] tests/test_01_dxf_entities/test_137_sortentstable.py::test_sort_entities_table PASSED [ 12%] tests/test_01_dxf_entities/test_137_sortentstable.py::test_sort_entities_table_as_list PASSED [ 12%] tests/test_01_dxf_entities/test_137_sortentstable.py::test_sort_entities_table_to_dict PASSED [ 12%] tests/test_01_dxf_entities/test_137_sortentstable.py::test_remove_invalid_handles PASSED [ 12%] tests/test_01_dxf_entities/test_137_sortentstable.py::test_remove_handle PASSED [ 12%] tests/test_01_dxf_entities/test_137_sortentstable.py::test_load_table PASSED [ 12%] tests/test_01_dxf_entities/test_138_setup_visual_styles.py::test_visualstyle PASSED [ 12%] tests/test_01_dxf_entities/test_138_setup_visual_styles.py::test_setup_standard_visual_styles PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestFlatRecord::test_parse_all PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestFlatRecord::test_parse_str PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestFlatRecord::test_parse_float PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestFlatRecord::test_parse_int PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestFlatRecord::test_parse_vec3 PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_top_level_list PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_nested_list_inside_list PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_top_level_dict PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_nested_dict_as_dict_value PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_nested_list_as_dict_value PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_nested_dict_inside_list PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_missing_open_tag_raises_dxf_structure_error PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_missing_close_tag_raises_dxf_structure_error PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_invalid_group_code_raises_value_error PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_invalid_line_break_characters_raise_exception[\n] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_invalid_line_break_characters_raise_exception[\r] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_too_long_string_raise_exception PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_empty_data PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_simple_types[str] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_simple_types[int] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_simple_types[float] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_simple_types[Vec3] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_complex_structures[flat list] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_complex_structures[flat dict] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_complex_structures[nested list] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_complex_structures[nested dict] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_complex_structures[list as dict value] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestCompileData::test_compile_complex_structures[dict inside a list] PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestUserRecord::test_required_final_commit_to_store_data_in_xrecord PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestUserRecord::test_works_as_context_manager PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestUserRecord::test_str PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::test_parse_binary_data PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestBinaryRecord::test_required_final_commit_to_store_data_in_xrecord PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestBinaryRecord::test_works_as_context_manager PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestBinaryRecord::test_stores_line_endings PASSED [ 12%] tests/test_01_dxf_entities/test_139_user_record.py::TestBinaryRecord::test_str PASSED [ 13%] tests/test_01_dxf_entities/test_140_block_record.py::test_duplicate_handle_loading_error PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::test_doc_setup PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::test_get_new_vp_override_object PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::test_if_a_layer_has_any_overrides PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::test_if_a_layer_has_overrides_for_specific_viewport PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::test_get_default_layer_values_for_missing_overrides PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_set_color_override PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_invalid_color_raises_value_error[300] PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_invalid_color_raises_value_error[256] PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_invalid_color_raises_value_error[0] PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_set_rgb_override PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_remove_rgb_by_override PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_set_transparency_override PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_set_linetype_override PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_linetype_without_table_entry_raises_value_error PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_set_lineweight_override PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_invalid_lineweight_raises_value_error[300] PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_invalid_lineweight_raises_value_error[-1] PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_invalid_lineweight_raises_value_error[-2] PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_discard_specific_overrides PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_discard_all_overrides PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestSetOverridesWithoutCommit::test_discard_ignores_none_existing_vp_handles PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestCommitChanges::test_commit_creates_proper_xdict_structure PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestCommitChanges::test_load_overrides_for_one_vp PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestCommitChanges::test_load_overrides_for_two_vp PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestCommitChanges::test_commit_no_overrides_creates_no_xdict PASSED [ 13%] tests/test_01_dxf_entities/test_141_layer_vp_override.py::TestCommitChanges::test_resetting_overrides_to_default_removes_xdict_entry PASSED [ 13%] tests/test_01_dxf_entities/test_142_copy_strategy.py::test_basic_copy PASSED [ 13%] tests/test_01_dxf_entities/test_142_copy_strategy.py::test_ignore_errors_in_linked_entities PASSED [ 13%] tests/test_01_dxf_entities/test_142_copy_strategy.py::test_raise_copy_not_supported_exception PASSED [ 13%] tests/test_01_dxf_entities/test_143_spatial_filter.py::test_setup_from_tags PASSED [ 13%] tests/test_01_dxf_entities/test_143_spatial_filter.py::test_loaded_transform_matrix PASSED [ 13%] tests/test_01_dxf_entities/test_143_spatial_filter.py::test_loaded_inverse_insert_matrix PASSED [ 13%] tests/test_01_dxf_entities/test_143_spatial_filter.py::test_dxf_export PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_init PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_has_section PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_add_new_section PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_replace_existing_section PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_get_section PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_discard_existing_section PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_discard_non_existing_section PASSED [ 13%] tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py::test_locate_section PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_registered PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_default_init PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_default_new PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_load_from_text[0\nLINE\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n11\n1.0\n21\n1.0\n31\n1.0\n] PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_load_from_text[0\nLINE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbLine\n10\n0.0\n20\n0.0\n30\n0.0\n11\n1.0\n21\n1.0\n31\n1.0\n] PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_write_dxf[0\nLINE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbLine\n10\n0.0\n20\n0.0\n30\n0.0\n11\n1.0\n21\n1.0\n31\n1.0\n-AC1015] PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_write_dxf[0\nLINE\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n11\n1.0\n21\n1.0\n31\n1.0\n-AC1009] PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_get_pass_through_ocs PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_transform PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_translation PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_rotation PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_scaling PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_copy_entity_transparency PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_setting_invalid_transparency_value_raises_exception PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_load_entity_with_invalid_transparency PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_recover_acdb_entity_tags PASSED [ 13%] tests/test_02_dxf_graphics/test_200_line.py::test_malformed_line PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_registered PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_default_init PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_default_new PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_load_from_text[0\nPOINT\n5\n0\n8\n0\n10\n1.0\n20\n2.0\n30\n3.0\n] PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_load_from_text[0\nPOINT\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbPoint\n10\n1.0\n20\n2.0\n30\n3.0\n] PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_load_malformed_entity PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_write_dxf[0\nPOINT\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbPoint\n10\n1.0\n20\n2.0\n30\n3.0\n-AC1015] PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_write_dxf[0\nPOINT\n5\n0\n8\n0\n10\n1.0\n20\n2.0\n30\n3.0\n-AC1009] PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_transform PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_fast_translation PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_do_not_explode_point_entity PASSED [ 13%] tests/test_02_dxf_graphics/test_201_point.py::test_virtual_sub_entities PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_registered PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_default_init PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_negative_radius PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_zero_radius PASSED [ 13%] tests/test_02_dxf_graphics/test_202_circle.py::test_extrusion_can_not_be_a_null_vector PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_default_new PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_load_from_text[0\nCIRCLE\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_load_from_text[0\nCIRCLE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbCircle\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_get_point_2d_circle PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_get_point_with_ocs PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_write_dxf[0\nCIRCLE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbCircle\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n-AC1015] PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_write_dxf[0\nCIRCLE\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n-AC1009] PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_default_ocs PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_fast_translation PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_non_uniform_scaling PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_user_ocs PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_flattening[1-0.35-5] PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_flattening[1-0.1-8] PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_flattening[0-0.35-0] PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_flattening[0-0.1-0] PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_flattening[-1-0.35-5] PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_circle_flattening[-1-0.1-8] PASSED [ 14%] tests/test_02_dxf_graphics/test_202_circle.py::test_load_malformed_circle PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_registered PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_default_init PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_default_new PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_get_start_and_end_vertices_with_ocs PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_load_from_text[0\nARC\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n50\n0\n51\n360\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_load_from_text[0\nARC\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbCircle\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n100\nAcDbArc\n50\n0\n51\n360\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_write_dxf[0\nARC\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbCircle\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n100\nAcDbArc\n50\n0\n51\n360\n-AC1015] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_write_dxf[0\nARC\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n50\n0\n51\n360\n-AC1009] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_angles PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_default_ocs PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_flattening[1-0-180-0.1-5] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_flattening[0-0-360-0.1-0] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_flattening[-1-0-180-0.35-3] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_flattening[1-270-90-0.1-5] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_3d_flattening_parallel_to_xy_plane PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_3d_flattening PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_arc_flattening_returns_Vec3 PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_360_deg_arc_transformation PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[x-30] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[x-180] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[x-360] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[y-30] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[y-180] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[y-360] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[z-30] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[z-180] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_30_deg_arc_reflexion[z-360] PASSED [ 14%] tests/test_02_dxf_graphics/test_203_arc.py::test_load_malformed_circle PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_registered PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_default_init PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_default_new PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_load_from_text[0\nSHAPE\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n2\nNAME\n50\n0.0\n41\n1.0\n51\n0.0\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_load_from_text[0\nSHAPE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbShape\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n2\nNAME\n50\n0.0\n41\n1.0\n51\n0.0\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_write_dxf[0\nSHAPE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbShape\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n2\nNAME\n50\n0.0\n41\n1.0\n51\n0.0\n-AC1015] PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_write_dxf[0\nSHAPE\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n2\nNAME\n50\n0.0\n41\n1.0\n51\n0.0\n-AC1009] PASSED [ 14%] tests/test_02_dxf_graphics/test_204_shape.py::test_load_malformed_shape PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_registered PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_default_init PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_default_new PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_load_from_text[0\nSOLID\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n12\n0.0\n22\n0.0\n32\n0.0\n13\n0.0\n23\n0.0\n33\n0.0\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_load_from_text[0\nSOLID\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbTrace\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n12\n0.0\n22\n0.0\n32\n0.0\n13\n0.0\n23\n0.0\n33\n0.0\n] PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_write_dxf[0\nSOLID\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbTrace\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n12\n0.0\n22\n0.0\n32\n0.0\n13\n0.0\n23\n0.0\n33\n0.0\n-AC1015] PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_write_dxf[0\nSOLID\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n12\n0.0\n22\n0.0\n32\n0.0\n13\n0.0\n23\n0.0\n33\n0.0\n-AC1009] PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_trace PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_3dface PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_solid_translate PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_trace_translate PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_solid_reorder_quad_ocs_vertices PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_solid_triangle_ocs_vertices PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_solid_close_triangle_ocs_vertices PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_solid_close_quad_ocs_vertices PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_solid_wcs_vertices PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_3dface_quad_vertices PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_3dface_triangle_vertices PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_elevation_group_code_support PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_do_not_write_elevation_group_code PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_load_malformed_solid[SOLID] PASSED [ 14%] tests/test_02_dxf_graphics/test_205_solid.py::test_load_malformed_solid[TRACE] PASSED [ 15%] tests/test_02_dxf_graphics/test_205_solid.py::test_load_malformed_solid[3DFACE] PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_registered PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_default_init PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_default_new PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_load_from_text[0\nTEXT\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nTEXTCONTENT\n50\n0.0\n51\n0.0\n7\nStandard\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n73\n0\n] PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_load_from_text[0\nTEXT\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbText\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nTEXTCONTENT\n50\n0.0\n51\n0.0\n7\nStandard\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n100\nAcDbText\n73\n0\n] PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_write_dxf[0\nTEXT\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbText\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nTEXTCONTENT\n50\n0.0\n51\n0.0\n7\nStandard\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n100\nAcDbText\n73\n0\n-AC1015] PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_write_dxf[0\nTEXT\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nTEXTCONTENT\n50\n0.0\n51\n0.0\n7\nStandard\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n73\n0\n-AC1009] PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_removing_invalid_chars_at_setting_content[test\ntext\r] PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_removing_invalid_chars_at_setting_content[test\r\ntext] PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_removing_invalid_chars_at_setting_content[testtext^] PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_removing_invalid_chars_at_setting_content[test\ntext^] PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_removing_invalid_chars_at_setting_content[test\ntext^\r] PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_set_alignment PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_set_fit_alignment PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_reset_fit_alignment PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_resetting_location_raises_value_error_for_missing_point PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_get_align_enum PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_get_pos_enum_TOP_CENTER PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_get_pos_LEFT PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_transform_interface PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_fit_length PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_default_font_name PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_scale_and_reflexion[1-1] PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_scale_and_reflexion[-1-1] PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_scale_and_reflexion[-1--1] PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_scale_and_reflexion[1--1] PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_non_uniform_scaling PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_is_backward PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_set_backward PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_is_upside_down PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_set_is_upside_down PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_get_pos_handles_missing_align_point PASSED [ 15%] tests/test_02_dxf_graphics/test_206_text.py::test_malformed_text PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::test_registered PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::test_default_init PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::test_default_new PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::test_load_from_text[0\nATTDEF\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n3\nPROMPTTEXT\n2\nTAG\n70\n0\n74\n0\n] PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::test_load_from_text[0\nATTDEF\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbText\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n100\nAcDbAttributeDefinition\n3\nPROMPTTEXT\n2\nTAG\n70\n0\n73\n0\n74\n0\n] PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::test_write_dxf[0\nATTDEF\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbText\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n100\nAcDbAttributeDefinition\n3\nPROMPTTEXT\n2\nTAG\n70\n0\n73\n0\n74\n0\n-AC1015] PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::test_write_dxf[0\nATTDEF\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n71\n0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n3\nPROMPTTEXT\n2\nTAG\n70\n0\n74\n0\n-AC1009] PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::TestEmbeddedMTextSupport::test_has_embedded_mtext PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::TestEmbeddedMTextSupport::test_get_plain_mtext PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::TestEmbeddedMTextSupport::test_get_virtual_mtext_entity PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::TestEmbeddedMTextSupport::test_attdef_graphic_attributes PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::TestEmbeddedMTextSupport::test_mtext_graphic_attdefutes_inherited_from_host PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::TestEmbeddedMTextSupport::test_mtext_entity_attributes PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::TestEmbeddedMTextSupport::test_dxf_export_matches_test_data PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::test_lock_position_and_ignore_version_tag PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::test_lock_position_without_version_tag PASSED [ 15%] tests/test_02_dxf_graphics/test_207_attdef.py::test_version_without_lock_position PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_registered PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_default_init PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_default_new PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_load_from_text[0\nATTRIB\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n71\n0\n2\nTAG\n70\n0\n74\n0\n] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_load_from_text[0\nATTRIB\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbText\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n71\n0\n100\nAcDbAttribute\n2\nTAG\n70\n0\n73\n0\n74\n0\n] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_write_dxf[0\nATTRIB\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbText\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n71\n0\n100\nAcDbAttribute\n2\nTAG\n70\n0\n73\n0\n74\n0\n-AC1015] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_write_dxf[0\nATTRIB\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n1\nDEFAULTTEXT\n50\n0.0\n51\n0.0\n7\nSTANDARD\n41\n1.0\n72\n0\n11\n0.0\n21\n0.0\n31\n0.0\n71\n0\n2\nTAG\n70\n0\n74\n0\n-AC1009] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_removing_invalid_chars_at_setting_content[test\ntext\r] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_removing_invalid_chars_at_setting_content[test\r\ntext] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_removing_invalid_chars_at_setting_content[testtext^] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_removing_invalid_chars_at_setting_content[test\ntext^] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::test_removing_invalid_chars_at_setting_content[test\ntext^\r] PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_has_embedded_mtext PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_get_plain_mtext PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_get_virtual_mtext_entity PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_attrib_graphic_attributes PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_mtext_graphic_attributes_inherited_from_host PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_mtext_entity_attributes PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_dxf_export_matches_test_data PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_set_mtext PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMTextSupport::test_transformation_of_embedded_mtext PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMText::test_special_namespace PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMText::test_setup PASSED [ 15%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMText::test_set_mtext_attribute PASSED [ 16%] tests/test_02_dxf_graphics/test_208_attrib.py::TestEmbeddedMText::test_set_invalid_mtext_attribute PASSED [ 16%] tests/test_02_dxf_graphics/test_208_attrib.py::test_lock_position_and_ignore_version_tag PASSED [ 16%] tests/test_02_dxf_graphics/test_208_attrib.py::test_lock_position_without_version_tag PASSED [ 16%] tests/test_02_dxf_graphics/test_208_attrib.py::test_version_without_lock_position PASSED [ 16%] tests/test_02_dxf_graphics/test_209_vertex.py::test_registered PASSED [ 16%] tests/test_02_dxf_graphics/test_209_vertex.py::test_default_init PASSED [ 16%] tests/test_02_dxf_graphics/test_209_vertex.py::test_default_new PASSED [ 16%] tests/test_02_dxf_graphics/test_209_vertex.py::test_load_from_text[0\nVERTEX\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n] PASSED [ 16%] tests/test_02_dxf_graphics/test_209_vertex.py::test_load_from_text[0\nVERTEX\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbVertex\n100\nAcDb2dVertex\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n] PASSED [ 16%] tests/test_02_dxf_graphics/test_209_vertex.py::test_write_dxf[0\nVERTEX\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbVertex\n100\nAcDb2dVertex\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n-AC1015] PASSED [ 16%] tests/test_02_dxf_graphics/test_209_vertex.py::test_write_dxf[0\nVERTEX\n5\n0\n8\n0\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n-AC1009] PASSED [ 16%] tests/test_02_dxf_graphics/test_209_vertex.py::test_load_malformed_vertex PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_registered PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_default_constructor PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_default_new PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_load_from_text[0\nPOLYLINE\n5\n0\n8\n0\n66\n1\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n] PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_load_from_text[0\nPOLYLINE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDb2dPolyline\n66\n1\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n] PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_polyline_3d PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_poly_face_mesh PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_polygon_mesh PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_copy_polyline PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_write_dxf[0\nPOLYLINE\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDb2dPolyline\n66\n1\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n-AC1015] PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_write_dxf[0\nPOLYLINE\n5\n0\n8\n0\n66\n1\n10\n0.0\n20\n0.0\n30\n0.0\n70\n0\n-AC1009] PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_polyline2d_transform_interface PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_polyline3d_transform_interface PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_2d_polyline_has_default_width PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_2d_polyline_has_any_start_width PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_2d_polyline_has_any_end_width PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_2d_polyline_has_any_arc PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_1.py::test_malformed_polyline PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_create_polyline2D PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_create_polyline3D PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_add_new_sub_entities_to_entity_database PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_export_sub_entities_to_dxf PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_vertex_layer PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_change_polyline_layer PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_set_vertex PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_points PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_point_slicing PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_append_vertices PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_insert_vertices PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_delete_one_vertex PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_delete_two_vertices PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polymesh_correct_casting PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polymesh_set_vertex PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polymesh_error_n_index PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polymesh_error_m_index PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polymesh_mesh_cache PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polyface_correct_casting PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polyface_create_face PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polyface_add_face PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polyface_face_indices PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polyface_add_two_face_indices PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polyface_faces PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_polyface_optimized_cube PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_export_polyline2d PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_export_polyline3d PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_internals_polymesh PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_internals_polyface PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_new_style_polyface_face_count PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_2.py::test_add_virtual_polyline_to_layout PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyline2d_virtual_entities PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_virtual_sub_entities_source_tracking PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyline2d_elevation PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyline2d_closed PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyline2d_explode PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyline3d_virtual_entities PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyline3d_closed PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyline3d_explode PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polymesh_virtual_entities PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_closed_polymesh PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_explode.py::test_polyface_virtual_entities PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py::test_vertext_attribs_xy PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py::test_vertext_attribs_xyb PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py::test_vertext_attribs_xyseb PASSED [ 16%] tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py::test_vertext_attribs_vseb PASSED [ 17%] tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py::test_append_formatted_vertices PASSED [ 17%] tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py::test_vertex_format PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_registered PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_default_init PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_default_new PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_load_from_text[0\nVIEWPORT\n5\n0\n8\nVIEWPORTS\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n41\n1.0\n68\n1\n1001\nACAD\n1000\nMVIEW\n1002\n{\n1070\n16\n1010\n0.0\n1020\n0.0\n1030\n0.0\n1010\n0.0\n1020\n0.0\n1030\n0.0\n1040\n0.0\n1040\n1.0\n1040\n0.0\n1040\n0.0\n1040\n50.0\n1040\n0.0\n1040\n0.0\n1070\n0\n1070\n100\n1070\n1\n1070\n3\n1070\n0\n1070\n0\n1070\n0\n1070\n0\n1040\n0.0\n1040\n0.0\n1040\n0.0\n1040\n0.1\n1040\n0.1\n1040\n0.1\n1040\n0.1\n1070\n0\n1002\n{\n1002\n}\n1002\n}\n] PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_load_from_text[0\nVIEWPORT\n5\n0\n330\n0\n100\nAcDbEntity\n67\n1\n8\nVIEWPORTS\n100\nAcDbViewport\n10\n0.0\n20\n0.0\n30\n0.0\n40\n1.0\n41\n1.0\n68\n2\n69\n2\n12\n0.0\n22\n0.0\n13\n0.0\n23\n0.0\n14\n0.1\n24\n0.1\n15\n0.1\n25\n0.1\n16\n0.0\n26\n0.0\n36\n0.0\n17\n0.0\n27\n0.0\n37\n0.0\n42\n50.0\n43\n0.0\n44\n0.0\n45\n1.0\n50\n0.0\n51\n0.0\n72\n100\n90\n32864\n1\n\n281\n0\n71\n0\n74\n0\n110\n0.0\n120\n0.0\n130\n0.0\n111\n1.0\n121\n0.0\n131\n0.0\n112\n0.0\n122\n1.0\n132\n0.0\n79\n0\n146\n0.0\n] PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_write_dxf_r2000 PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_write_dxf_r12 PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_post_load_hook_resolves_frozen_layer_handles_into_names PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::TestFrozenLayers::test_set_and_get__frozen_layer_names PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::TestFrozenLayers::test_freeze_a_specific_layer PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::TestFrozenLayers::test_freezing_a_layer_twice_does_not_duplicate_entry PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::TestFrozenLayers::test_is_a_specific_layer_frozen PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::TestFrozenLayers::test_thaw_a_specific_layer PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::TestFrozenLayers::test_ignore_thawing_non_frozen_layers_silently PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_is_top_view PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_get_scale PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_get_transformation_matrix PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_has_clipping_path PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_clipping_path_corners PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_clipping_rect PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_aspect_ratio PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_invalid_aspect_ratio PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_modelspace_limits PASSED [ 17%] tests/test_02_dxf_graphics/test_211_viewport.py::test_modelspace_limits_rotated PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_registered PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_default_constructor PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_new_constructor PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_has_scaling PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_load_from_text[0\nINSERT\n5\n0\n8\n0\n2\nBLOCKNAME\n10\n0.0\n20\n0.0\n30\n0.0\n41\n1.0\n42\n1.0\n43\n1.0\n50\n0.0\n] PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_load_from_text[0\nINSERT\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbBlockReference\n2\nBLOCKNAME\n10\n0.0\n20\n0.0\n30\n0.0\n41\n1.0\n42\n1.0\n43\n1.0\n50\n0.0\n] PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_write_dxf[0\nINSERT\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbBlockReference\n2\nBLOCKNAME\n10\n0.0\n20\n0.0\n30\n0.0\n41\n1.0\n42\n1.0\n43\n1.0\n50\n0.0\n-AC1015] PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_write_dxf[0\nINSERT\n5\n0\n8\n0\n2\nBLOCKNAME\n10\n0.0\n20\n0.0\n30\n0.0\n41\n1.0\n42\n1.0\n43\n1.0\n50\n0.0\n-AC1009] PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_add_attribs PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_get_block PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_clone_with_insert PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_export_without_sub_entities_to_dxf PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_export_with_sub_entities_to_dxf PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_copy_with_insert PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_matrix44_no_transform PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_matrix44_insert PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_matrix44_insert_and_base_point PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_matrix44_rotation PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_matrix44_scaled PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_matrix44_direction PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_insert_transform_interface PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_insert_scaling PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_add_virtual_insert_with_attribs_to_layout PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::TestSupportsVirtualEntitiesProtocol::test_supports_virtual_entities_protocol PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::TestSupportsVirtualEntitiesProtocol::test_query_virtual_entities PASSED [ 17%] tests/test_02_dxf_graphics/test_212_insert.py::test_load_malformed_insert PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::test_mcount_property PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestSimpleBlock::test_minsert_normal_spacing PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestSimpleBlock::test_discard_minsert_attribs_from_virtual_insert PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestSimpleBlock::test_minsert_zero_column_spacing PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestSimpleBlock::test_minsert_zero_row_spacing PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestSimpleBlock::test_explode PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestInsertAttributes::test_attribs_transformation PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestInsertAttributes::test_explode PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestRotatedInsert::test_minsert_transformation PASSED [ 17%] tests/test_02_dxf_graphics/test_213_minsert.py::TestRotatedInsert::test_attribs_transformation PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_registered PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_default_init PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_default_new PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_load_from_text[0\nBLOCK\n5\n0\n8\n0\n2\nBLOCKNAME\n70\n0\n10\n0.0\n20\n0.0\n30\n0.0\n3\nBLOCKNAME\n1\n\n] PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_load_from_text[0\nBLOCK\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbBlockBegin\n2\nBLOCKNAME\n70\n0\n10\n0.0\n20\n0.0\n30\n0.0\n3\nBLOCKNAME\n1\n\n] PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_write_block_dxf[0\nBLOCK\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbBlockBegin\n2\nBLOCKNAME\n70\n0\n10\n0.0\n20\n0.0\n30\n0.0\n3\nBLOCKNAME\n1\n\n-AC1015] PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_write_block_dxf[0\nBLOCK\n5\n0\n8\n0\n2\nBLOCKNAME\n70\n0\n10\n0.0\n20\n0.0\n30\n0.0\n3\nBLOCKNAME\n1\n\n-AC1009] PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_write_endblk_dxf[0\nENDBLK\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbBlockEnd\n-AC1015] PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_write_endblk_dxf[ 0\nENDBLK\n 5\n0\n 8\n0\n-AC1009] PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_load_malformed_block PASSED [ 17%] tests/test_02_dxf_graphics/test_214_block.py::test_load_malformed_endblk PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_registered PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_default_init PASSED [ 17%] tests/test_02_dxf_graphics/test_215_dimension.py::test_default_new PASSED [ 18%] tests/test_02_dxf_graphics/test_215_dimension.py::test_load_from_text[0\nDIMENSION\n5\n0\n8\n0\n2\n*D0\n3\nStandard\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n12\n0.0\n22\n0.0\n32\n0.0\n70\n0\n1\n\n13\n0.0\n23\n0.0\n33\n0.0\n14\n0.0\n24\n0.0\n34\n0.0\n15\n0.0\n25\n0.0\n35\n0.0\n16\n0.0\n26\n0.0\n36\n0.0\n40\n1.0\n50\n0.0\n] PASSED [ 18%] tests/test_02_dxf_graphics/test_215_dimension.py::test_load_from_text[ 0\nDIMENSION\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbDimension\n2\n*D0\n3\nStandard\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n70\n32\n71\n5\n42\n0.0\n100\nAcDbAlignedDimension\n 13\n0.0\n 23\n0.0\n 33\n0.0\n 14\n0.0\n 24\n0.0\n 34\n0.0\n50\n0\n100\nAcDbRotatedDimension\n] PASSED [ 18%] tests/test_02_dxf_graphics/test_215_dimension.py::test_write_dxf[ 0\nDIMENSION\n5\n0\n330\n0\n100\nAcDbEntity\n8\n0\n100\nAcDbDimension\n2\n*D0\n3\nStandard\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n70\n32\n71\n5\n42\n0.0\n100\nAcDbAlignedDimension\n 13\n0.0\n 23\n0.0\n 33\n0.0\n 14\n0.0\n 24\n0.0\n 34\n0.0\n50\n0\n100\nAcDbRotatedDimension\n-AC1015] PASSED [ 18%] tests/test_02_dxf_graphics/test_215_dimension.py::test_write_dxf[0\nDIMENSION\n5\n0\n8\n0\n2\n*D0\n3\nStandard\n10\n0.0\n20\n0.0\n30\n0.0\n11\n0.0\n21\n0.0\n31\n0.0\n12\n0.0\n22\n0.0\n32\n0.0\n70\n0\n1\n\n13\n0.0\n23\n0.0\n33\n0.0\n14\n0.0\n24\n0.0\n34\n0.0\n15\n0.0\n25\n0.0\n35\n0.0\n16\n0.0\n26\n0.0\n36\n0.0\n40\n1.0\n50\n0.0\n-AC1009] PASSED [ 18%] tests/test_02_dxf_graphics/test_215_dimension.py::test_missing_block_geometry_name PASSED [ 18%] tests/test_02_dxf_graphics/test_215_dimension.py::test_format_text PASSED [ 18%] tests/test_02_dxf_graphics/test_215_dimension.py::test_apply_dimpost PASSED [ 18%] tests/test_02_dxf_graphics/test_215_dimension.py::test_apply_dimpost_raises_exception_for_invalid_text_format PASSED [ 18%] tests/test_02_dxf_graphics/test_215_dimension.py::test_linear_measurement_without_ocs PASSED [ 18%] tests/test_02_dxf_graphics/test_215_dimension.py::test_dimension_transform_interface PASSED [ 18%] tests/test_02_dxf_graphics/test_215_dimension.py::test_audit_invalid_dimstyle PASSED [ 18%] tests/test_02_dxf_graphics/test_215_dimension.py::test_audit_invalid_geometry_block PASSED [ 18%] tests/test_02_dxf_graphics/test_215_dimension.py::test_audit_fake_dimensional_constraints PASSED [ 18%] tests/test_02_dxf_graphics/test_216_dimlines_R12.py::test_dimstyle_standard_exist PASSED [ 18%] tests/test_02_dxf_graphics/test_216_dimlines_R12.py::test_dimstyle_override PASSED [ 18%] tests/test_02_dxf_graphics/test_216_dimlines_R12.py::test_dimstyle_override_arrows PASSED [ 18%] tests/test_02_dxf_graphics/test_216_dimlines_R12.py::test_dimstyle_override_linetypes PASSED [ 18%] tests/test_02_dxf_graphics/test_216_dimlines_R12.py::test_horizontal_dimline PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_dimstyle_standard_exist PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_rotated_dimline PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_aligned_dimline PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_angular_dimline PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_angular_3p_dimline PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_radius_dimline PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_diameter_dimline PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_ordinate_dimline PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_add_horizontal_dimline PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_virtual_entities_and_explode PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_transformation_of_associated_anonymous_geometry_block PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_copy_dimension_with_geometry_block PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_destroy_virtual_dimension_copy PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_transform_virtual_geometry_block PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_add_virtual_dimension_copy_to_layout PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_supports_virtual_entities_protocol PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_dimstyle_override PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_linetype_override_R2000 PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_linetype_override_R2007 PASSED [ 18%] tests/test_02_dxf_graphics/test_217_dimlines_R2000.py::test_dimstyle_override_arrows PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_create_polyline2D PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_create_polyline3D PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline3d_vertex_layer PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline3d_change_polyline_layer PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline2d_set_vertex PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline2d_points PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline2d_point_slicing PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_poyline2d_append_vertices PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline2d_insert_vertices PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline2d_delete_one_vertex PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyline2d_delete_two_vertices PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polymesh_create_mesh PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polymesh_set_vertex PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polymesh_error_nindex PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polymesh_error_mindex PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polymesh_mesh_cache PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyface_create_face PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyface_add_face PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyface_face_indices PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyface_add_two_face_indices PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyface_faces PASSED [ 18%] tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py::test_polyface_optimized_cube PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_default_settings PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_ac1018_default_settings PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_ac1018_true_color PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_ac1018_color_name PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_ac1018_transparency PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_ac1021_default_settings PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_line PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_circle PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_arc PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_trace PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_solid PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_3dface PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_text PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_text_set_alignment PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_text_set_fit_alignment PASSED [ 18%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_text_get_alignment PASSED [ 19%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_text_get_pos_TOP_CENTER PASSED [ 19%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_text_get_pos_LEFT PASSED [ 19%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_shape PASSED [ 19%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_create_ray PASSED [ 19%] tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py::test_xline_ray PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_registered PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_default_init PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_default_new PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_load_from_text PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_write_dxf PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_has_const_width PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_has_any_start_width PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_has_any_end_width PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_has_arc PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_1.py::test_raises_dxf_structure_error_for_missing_AcDbPolyline_subclass PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_new_line PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_get_point PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_slicing PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_set_point PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_get_point_error PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_insert_point PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_del_points PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_append_points PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_context_manager PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_clear PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_delete_const_width PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_vertices PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_format_point PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_point_to_array PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_packed_points_basics PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_packed_points_advanced PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_packed_points_to_dxf_tags PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_packed_points_to_dxf_tags_with_bulge PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_2.py::test_lwpolyline_transform_interface PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_3.py::test_lwpolyline_to_path PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_explode.py::test_virtual_entities PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_explode.py::test_virtual_sub_entities_source_tracking PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_explode.py::test_virtual_entities_elevation PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_explode.py::test_closed_polyline PASSED [ 19%] tests/test_02_dxf_graphics/test_220_lwpolyline_explode.py::test_explode_entities PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_registered PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_default_init PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_default_new PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_extrusion_can_not_be_a_null_vector PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_major_axis_can_not_be_a_null_vector PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_is_always_valid[-2] PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_is_always_valid[-1] PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_is_always_valid[0] PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_is_always_valid[1] PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_is_always_valid[2] PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_can_be_negative[-1] PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_can_be_negative[-0.5] PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_ratio_can_be_negative[-1e-09] PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_load_from_text PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_get_start_and_end_vertex PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_write_dxf PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_from_arc PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::TestEllipseParameters::test_adding_ellipse_with_too_big_ratio PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::TestEllipseParameters::test_adding_ellipse_with_too_small_ratio PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::TestEllipseParameters::test_adding_ellipse_with_invalid_major_axis PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::TestEllipseParameters::test_audit_max_ratio PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::TestEllipseParameters::test_audit_min_ratio PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::TestEllipseParameters::test_audit_invalid_major_axis PASSED [ 19%] tests/test_02_dxf_graphics/test_221_ellipse.py::test_malformed_ellipse PASSED [ 19%] tests/test_02_dxf_graphics/test_222_xline.py::test_registered PASSED [ 19%] tests/test_02_dxf_graphics/test_222_xline.py::test_default_init PASSED [ 19%] tests/test_02_dxf_graphics/test_222_xline.py::test_default_new PASSED [ 19%] tests/test_02_dxf_graphics/test_222_xline.py::test_load_from_text PASSED [ 19%] tests/test_02_dxf_graphics/test_222_xline.py::test_write_dxf PASSED [ 19%] tests/test_02_dxf_graphics/test_222_xline.py::test_xline_transform PASSED [ 19%] tests/test_02_dxf_graphics/test_222_xline.py::test_xline_fast_translation PASSED [ 19%] tests/test_02_dxf_graphics/test_223_ray.py::test_registered PASSED [ 19%] tests/test_02_dxf_graphics/test_223_ray.py::test_default_init PASSED [ 19%] tests/test_02_dxf_graphics/test_223_ray.py::test_default_new PASSED [ 19%] tests/test_02_dxf_graphics/test_223_ray.py::test_load_from_text PASSED [ 19%] tests/test_02_dxf_graphics/test_223_ray.py::test_write_dxf PASSED [ 20%] tests/test_02_dxf_graphics/test_224_group.py::test_group_table_is_empty PASSED [ 20%] tests/test_02_dxf_graphics/test_224_group.py::test_create_new_group PASSED [ 20%] tests/test_02_dxf_graphics/test_224_group.py::test_create_unnamed_group PASSED [ 20%] tests/test_02_dxf_graphics/test_224_group.py::test_delete_group_by_entity PASSED [ 20%] tests/test_02_dxf_graphics/test_224_group.py::test_delete_group_by_name PASSED [ 20%] tests/test_02_dxf_graphics/test_224_group.py::test_add_entities PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_registered PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_default_init PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_virtual_text_attribute PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_setup_by_virtual_text_attribute PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_hasattr_for_virtual_text_attribute_is_always_false PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_default_new PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_load_from_text PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_write_dxf PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_expected_python_backslash_decoding PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_required_escaping_of_line_endings_at_dxf_export[test\ntext] PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_required_escaping_of_line_endings_at_dxf_export[test\r\ntext] PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_required_escaping_of_line_endings_at_dxf_export[test\ntext\rtext] PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_new_long_mtext[a new mtext] PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_new_long_mtext[0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789a new mtext] PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_new_long_mtext[0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij] PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_default_text_chunk_size_of_250_chars PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_text_direction_wins_over_rotation PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_set_rotation_replaces_text_direction PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_append_text PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_set_location PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_set_bg_color PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_set_bg_true_color PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_delete_bg_color PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_set_bg_canvas_color PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_set_text_frame_only PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_transform_interface PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_bg_fill_flags PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_get_text_direction_from_text_direction PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_get_text_direction_from_rotation PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_convert_rotation_to_text_direction PASSED [ 20%] tests/test_02_dxf_graphics/test_225_mtext.py::test_get_ucs PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_registered PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_default_init PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_default_new PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_load_from_text PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_write_dxf PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_tangent[start] PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_tangent[end] PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_users_cant_set_invalid_tangents[start] PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_users_cant_set_invalid_tangents[end] PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_ignore_invalid_tangent_values_at_loading_stage PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_knot_values PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_weights PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_control_points PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_fit_points PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_open_uniform PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_uniform PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_closed PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_open_rational PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_uniform_rational PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_set_closed_rational PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_open_spline PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_open_rational_spline PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_spline_transform_interface PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_from_circle PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_from_arc PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_from_ellipse PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline.py::test_from_line_with_type_error PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline_with_linear_segments.py::test_flatten_spline PASSED [ 20%] tests/test_02_dxf_graphics/test_226_spline_with_linear_segments.py::test_make_path PASSED [ 20%] tests/test_02_dxf_graphics/test_227_mesh_packed_data.py::test_mesh_geometric_data PASSED [ 20%] tests/test_02_dxf_graphics/test_227_mesh_packed_data.py::test_create_vertex_array PASSED [ 20%] tests/test_02_dxf_graphics/test_227_mesh_packed_data.py::test_create_face_list PASSED [ 20%] tests/test_02_dxf_graphics/test_227_mesh_packed_data.py::test_create_edge_array PASSED [ 20%] tests/test_02_dxf_graphics/test_227_mesh_packed_data.py::test_create_crease_array PASSED [ 20%] tests/test_02_dxf_graphics/test_227_mesh_packed_data.py::test_face_indices_as_array PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_registered PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_default_init PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_default_new PASSED [ 20%] tests/test_02_dxf_graphics/test_228_mesh.py::test_load_from_text PASSED [ 21%] tests/test_02_dxf_graphics/test_228_mesh.py::test_write_dxf PASSED [ 21%] tests/test_02_dxf_graphics/test_228_mesh.py::test_mesh_properties PASSED [ 21%] tests/test_02_dxf_graphics/test_228_mesh.py::test_mesh_dxf_attribs PASSED [ 21%] tests/test_02_dxf_graphics/test_228_mesh.py::test_mesh_geometric_data PASSED [ 21%] tests/test_02_dxf_graphics/test_228_mesh.py::test_create_empty_mesh PASSED [ 21%] tests/test_02_dxf_graphics/test_228_mesh.py::test_add_faces PASSED [ 21%] tests/test_02_dxf_graphics/test_228_mesh.py::test_add_edge_crease PASSED [ 21%] tests/test_02_dxf_graphics/test_228_mesh.py::test_dxf_export_adds_required_crease_values PASSED [ 21%] tests/test_02_dxf_graphics/test_228_mesh.py::test_dxf_export_removes_crease_not_required PASSED [ 21%] tests/test_02_dxf_graphics/test_228_mesh.py::test_auditor_fixes_invalid_crease_count PASSED [ 21%] tests/test_02_dxf_graphics/test_228_mesh.py::test_vertex_format PASSED [ 21%] tests/test_02_dxf_graphics/test_228_mesh.py::test_optimize PASSED [ 21%] tests/test_02_dxf_graphics/test_228_mesh.py::test_mesh_transform_interface PASSED [ 21%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_if_registered PASSED [ 21%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_default_init PASSED [ 21%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_default_new PASSED [ 21%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_load_from_text PASSED [ 21%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_seeds PASSED [ 21%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_write_dxf PASSED [ 21%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_write_correct_polyline_path_tag_order PASSED [ 21%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_hatch_boundary_state PASSED [ 21%] tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py::test_hatch_boundary_default_state PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_default_settings PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_default_hatch_settings PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_get_seed_points PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_set_seed_points PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_remove_all_paths PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_polyline_path_attribs PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_polyline_path_vertices PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_edge_path_count PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_edge_path_type PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_edge_path_edges PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_spline_edge_hatch_get_params PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_create_spline_edge PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_create_required_tangents_for_spline_edge_if_fit_points_present PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_no_fit_points_export PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_is_pattern_hatch PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_edit_pattern PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_create_new_pattern_hatch PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_pattern_scale PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_pattern_scale_x_times PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_pattern_rotation PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_pattern_rotation_add_angle PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_create_gradient PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_create_gradient_low_level_dxf_tags PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_remove_gradient_data PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_remove_gradient_low_level_dxf_tags PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_bgcolor_not_exists PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_set_new_bgcolor PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_change_bgcolor PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_delete_bgcolor PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_delete_not_existing_bgcolor PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_associate_valid_entity PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_if_hatch_is_alive_before_association PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_can_not_associate_entity_from_different_document PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_can_not_associate_entity_with_different_owner PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_can_not_associate_destroyed_entity PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_triangulate_hatch PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_triangulate_with_elevation PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_render_pattern_lines PASSED [ 21%] tests/test_02_dxf_graphics/test_229b_hatch_extended.py::test_render_pattern_lines_with_elevation PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_polyline_path_transform_interface PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_edge_path_transform_interface PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_full_circle_ellipse_edge_rotation[arc] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_full_circle_ellipse_edge_rotation[ellipse] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_full_circle_edge_scaling PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_ocs_mirror_transformations_of_clockwise_oriented_curves[arc-mirror-x] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_ocs_mirror_transformations_of_clockwise_oriented_curves[arc-mirror-y] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_ocs_mirror_transformations_of_clockwise_oriented_curves[arc-mirror-xy] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_ocs_mirror_transformations_of_clockwise_oriented_curves[ellipse-mirror-x] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_ocs_mirror_transformations_of_clockwise_oriented_curves[ellipse-mirror-y] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_ocs_mirror_transformations_of_clockwise_oriented_curves[ellipse-mirror-xy] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_of_clockwise_oriented_curves[arc-mirror-x] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_of_clockwise_oriented_curves[arc-mirror-y] PASSED [ 21%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_of_clockwise_oriented_curves[arc-mirror-xy] PASSED [ 22%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_of_clockwise_oriented_curves[ellipse-mirror-x] PASSED [ 22%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_of_clockwise_oriented_curves[ellipse-mirror-y] PASSED [ 22%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_of_clockwise_oriented_curves[ellipse-mirror-xy] PASSED [ 22%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_for_all_edge_types[mirror-x] PASSED [ 22%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_for_all_edge_types[mirror-y] PASSED [ 22%] tests/test_02_dxf_graphics/test_229c_hatch_transformations.py::test_wcs_mirror_transformations_for_all_edge_types[mirror-xy] PASSED [ 22%] tests/test_02_dxf_graphics/test_230a_image_as_virtual_entity.py::test_registered PASSED [ 22%] tests/test_02_dxf_graphics/test_230a_image_as_virtual_entity.py::test_default_init PASSED [ 22%] tests/test_02_dxf_graphics/test_230a_image_as_virtual_entity.py::test_default_new PASSED [ 22%] tests/test_02_dxf_graphics/test_230a_image_as_virtual_entity.py::test_load_from_text PASSED [ 22%] tests/test_02_dxf_graphics/test_230a_image_as_virtual_entity.py::test_image_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_set_raster_variables PASSED [ 22%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_imagedef_attribs PASSED [ 22%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_image_dxf_attribs PASSED [ 22%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_boundary_path PASSED [ 22%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_reset_boundary_path PASSED [ 22%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_set_boundary_path PASSED [ 22%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_post_load_hook_creates_image_def_reactor PASSED [ 22%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_exception_while_fixing_image_def_reactor PASSED [ 22%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_post_load_hook_destroys_image_without_valid_image_def PASSED [ 22%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_new_image_def PASSED [ 22%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_create_and_delete_image PASSED [ 22%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_create_and_copy_image PASSED [ 22%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_moving_to_another_layout PASSED [ 22%] tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py::test_copying_to_another_layout PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay.py::test_registered PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay.py::test_default_init PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay.py::test_default_new PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay.py::test_load_from_text PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay.py::test_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay.py::test_dwf_underlay PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay.py::test_dgn_underlay PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_pdf_def_properties PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_pdf_def_dxf_attribs PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_pdf_properties PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_pdf_dxf_attribs PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_get_boundary_path PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_reset_boundary_path PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_set_boundary_path PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_set_scale PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_new_pdf_underlay_def PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay_2.py::test_new_pdf PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay_2.py::TestCopyAndTransformUnderlay::test_copied_underlay_has_same_underlay_definition PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay_2.py::TestCopyAndTransformUnderlay::test_underlay_definition_has_reactor_handles_to_copies PASSED [ 22%] tests/test_02_dxf_graphics/test_231_underlay_2.py::TestCopyAndTransformUnderlay::test_transform_underlay PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis.py::test_body_default_settings PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis.py::test_body_getting_acis_data PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis.py::test_region_default_settings PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis.py::test_region_getting_acis_data PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis.py::test_3dsolid_default_settings PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis.py::test_3dsolid_getting_acis_data PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis.py::test_tag2lines PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis.py::test_lines2tags PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_registered PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_default_init PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_default_new PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_load_from_text PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_body_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_region_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_3dsolid_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_surface_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_extruded_surface_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_lofted_surface_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_revolved_surface_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_232_acis_2.py::test_swept_surface_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_232_surface.py::test_surface PASSED [ 22%] tests/test_02_dxf_graphics/test_232_surface.py::test_extruded_surface PASSED [ 22%] tests/test_02_dxf_graphics/test_232_surface.py::test_lofted_surface PASSED [ 22%] tests/test_02_dxf_graphics/test_232_surface.py::test_swept_surface PASSED [ 22%] tests/test_02_dxf_graphics/test_232_surface.py::test_revolved_surface PASSED [ 22%] tests/test_02_dxf_graphics/test_233_helix.py::test_registered PASSED [ 22%] tests/test_02_dxf_graphics/test_233_helix.py::test_default_init PASSED [ 22%] tests/test_02_dxf_graphics/test_233_helix.py::test_default_new PASSED [ 22%] tests/test_02_dxf_graphics/test_233_helix.py::test_load_from_text PASSED [ 22%] tests/test_02_dxf_graphics/test_233_helix.py::test_write_dxf PASSED [ 22%] tests/test_02_dxf_graphics/test_233_helix.py::test_generic_helix PASSED [ 23%] tests/test_02_dxf_graphics/test_234_light.py::test_registered PASSED [ 23%] tests/test_02_dxf_graphics/test_234_light.py::test_default_init PASSED [ 23%] tests/test_02_dxf_graphics/test_234_light.py::test_default_new PASSED [ 23%] tests/test_02_dxf_graphics/test_234_light.py::test_load_from_text PASSED [ 23%] tests/test_02_dxf_graphics/test_234_light.py::test_write_dxf PASSED [ 23%] tests/test_02_dxf_graphics/test_234_light.py::test_add_light PASSED [ 23%] tests/test_02_dxf_graphics/test_235_leader.py::test_registered PASSED [ 23%] tests/test_02_dxf_graphics/test_235_leader.py::test_default_init PASSED [ 23%] tests/test_02_dxf_graphics/test_235_leader.py::test_default_new PASSED [ 23%] tests/test_02_dxf_graphics/test_235_leader.py::test_load_from_text PASSED [ 23%] tests/test_02_dxf_graphics/test_235_leader.py::test_write_dxf PASSED [ 23%] tests/test_02_dxf_graphics/test_235_leader.py::test_add_leader PASSED [ 23%] tests/test_02_dxf_graphics/test_235_leader.py::test_supports_virtual_entities_protocol PASSED [ 23%] tests/test_02_dxf_graphics/test_235_leader.py::test_virtual_sub_entities_source_tracking PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::test_new_multileader PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::test_synonym_mleader PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMLeaderStyle::test_standard_mleader_style PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMLeaderStyle::test_audit_fixes_invalid_text_style_handle PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMLeaderStyle::test_audit_fixes_invalid_arrow_head_handle PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMLeaderStyle::test_audit_fixes_invalid_block_record_handle PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestLeaderLine::test_parse PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestLeaderLine::test_export_dxf PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestLeaderLine::test_transform PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestLeader::test_parse PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestLeader::test_export_dxf PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestLeader::test_transform PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestLeader::test_scaling PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_context_attribs_definition PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_mleader_export_dxf PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_mtext_data_attribs_definition PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_load_mtext_context PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_mtext_data PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_transform_context PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_transform_context_reversed_extrusion PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_transform_mtext_data PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestMTextContext::test_transform_mtext_extrusion PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_context_attribs_definition PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_mleader_export_dxf PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_block_data_attribs_definition PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_load_block_context PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_block_data PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_get_transformation_matrix PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_set_transformation_matrix PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_transform_block_data PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_transform_block_data_x_reflection PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_transform_block_data_y_reflection PASSED [ 23%] tests/test_02_dxf_graphics/test_236_multileader.py::TestBlockContext::test_transform_block_data_xy_reflection PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_unbounded_mline PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_generic_mline PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_set_justification PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_set_scale_factor PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_close_state PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_point_count_management PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_add_first_vertex PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_add_two_vertices PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_x_rotation PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_translate PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_uniform_scale PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_non_uniform_scale PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_support_virtual_entities_protocol PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLine::test_virtual_sub_entities_source_tracking PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineStyle::test_standard_mline_style PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineStyle::test_set_defined_style PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineStyle::test_set_undefined_style PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineStyle::test_ordered_indices PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineStyle::test_invalid_element_count PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineVertex::test_load_tags PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineVertex::test_new PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineVertex::test_export_dxf PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineAudit::test_valid_mline PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineAudit::test_fix_invalid_style_name PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineAudit::test_fix_invalid_style_handle PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineAudit::test_fix_invalid_style_handle_by_name PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineAudit::test_fix_invalid_line_direction PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineAudit::test_fix_invalid_miter_direction PASSED [ 23%] tests/test_02_dxf_graphics/test_237_mline.py::TestMLineAudit::test_fix_invalid_line_parameters PASSED [ 24%] tests/test_02_dxf_graphics/test_238_tolerance.py::test_registered PASSED [ 24%] tests/test_02_dxf_graphics/test_238_tolerance.py::test_default_init PASSED [ 24%] tests/test_02_dxf_graphics/test_238_tolerance.py::test_default_new PASSED [ 24%] tests/test_02_dxf_graphics/test_238_tolerance.py::test_load_from_text PASSED [ 24%] tests/test_02_dxf_graphics/test_238_tolerance.py::test_write_dxf PASSED [ 24%] tests/test_02_dxf_graphics/test_238_tolerance.py::test_add_tolerance PASSED [ 24%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::test_load_proxy_graphic PASSED [ 24%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::test_export_proxy_graphic PASSED [ 24%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_info PASSED [ 24%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_supports_virtual_entities_protocol PASSED [ 24%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_multi_leader_entities PASSED [ 24%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_image_entities PASSED [ 24%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_circular_arc_entities PASSED [ 24%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_can_parse_R2000_lwpolyline PASSED [ 24%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_can_parse_R2018_lwpolyline PASSED [ 24%] tests/test_02_dxf_graphics/test_239_proxy_graphic.py::TestProxyGraphic::test_polygon_creation PASSED [ 24%] tests/test_02_dxf_graphics/test_240_arc_dimension.py::test_load_arc_dimension PASSED [ 24%] tests/test_02_dxf_graphics/test_240_arc_dimension.py::test_dimtype_is_8_for_R2018 PASSED [ 24%] tests/test_02_dxf_graphics/test_240_arc_dimension.py::test_export_proxy_graphic_R2010 PASSED [ 24%] tests/test_02_dxf_graphics/test_240_arc_dimension.py::test_export_proxy_graphic_R2013 PASSED [ 24%] tests/test_02_dxf_graphics/test_240_arc_dimension.py::test_export_dimtype_R2013 PASSED [ 24%] tests/test_02_dxf_graphics/test_240_arc_dimension.py::test_export_dimtype_R2018 PASSED [ 24%] tests/test_02_dxf_graphics/test_241_hyperlink.py::test_set_hyperlink PASSED [ 24%] tests/test_02_dxf_graphics/test_241_hyperlink.py::test_set_description PASSED [ 24%] tests/test_02_dxf_graphics/test_241_hyperlink.py::test_set_location PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[2-2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[-1-1-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[1--1-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[1-1--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[-2--2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[2--2--2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[-2-2--2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_circle_transformation[-3--3--3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[2-2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[-1-1-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[1--1-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[1-1--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[-2--2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[2--2--2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[-2-2--2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_arc_transformation[-3--3--3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793-2-2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--1-1-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793-1--1-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793-1-1--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--2--2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793-2--2--2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--2-2--2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--3--3--3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--1-2-3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793-1--2-3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793-1-2--3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--3--2-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793-3--2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--3-2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0-3.141592653589793--3--2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-2-2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--1-1-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1--1-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1-1--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--2--2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-2--2--2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--2-2--2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3--3--3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--1-2-3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1--2-3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1-2--3] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3--2-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-3--2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3-2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3--2--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-2-2-2] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--1-1-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1--1-1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1-1--1] PASSED [ 24%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--2--2-2] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-2--2--2] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--2-2--2] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3--3--3] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--1-2-3] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1--2-3] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1-2--3] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3--2-1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-3--2--1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3-2--1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3--2--1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[2-2-2] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-1-1-1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[1--1-1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[1-1--1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-2--2-2] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[2--2--2] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-2-2--2] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-3--3--3] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-1-2-3] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[1--2-3] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[1-2--3] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-3--2-1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[3--2--1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-3-2--1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_random_block_reference_transformation[-3--2--1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[1.1-1.1-1.1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[-1.1--1.1--1.1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[-1.1-1.1-1.1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[1.1--1.1-1.1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[1.1-1.1--1.1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[-1.1--1.1-1.1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[1.1--1.1--1.1] PASSED [ 25%] tests/test_02_dxf_graphics/test_242_random_transform.py::test_apply_transformation_multiple_times[-1.1-1.1--1.1] PASSED [ 25%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_add_entity PASSED [ 25%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_replace_entity PASSED [ 25%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_replace_entity_without_layout PASSED [ 25%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_convert_circle_to_ellipse PASSED [ 25%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_replace_circle_by_ellipse PASSED [ 25%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_convert_circle_to_spline PASSED [ 25%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_replace_circle_by_spline PASSED [ 25%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_convert_ellipse_to_spline PASSED [ 25%] tests/test_02_dxf_graphics/test_243_replace_entity.py::test_replace_ellipse_by_spline PASSED [ 25%] tests/test_02_dxf_graphics/test_244_large_radial_dimension.py::test_load_dimension PASSED [ 25%] tests/test_02_dxf_graphics/test_244_large_radial_dimension.py::test_export_dimension PASSED [ 25%] tests/test_02_dxf_graphics/test_245_wipeout.py::test_wipeout_default_new PASSED [ 25%] tests/test_02_dxf_graphics/test_245_wipeout.py::test_wipeout_write_dxf PASSED [ 25%] tests/test_02_dxf_graphics/test_245_wipeout.py::test_wipeout_creator_interface PASSED [ 25%] tests/test_02_dxf_graphics/test_245_wipeout.py::test_copy_wipeout PASSED [ 25%] tests/test_02_dxf_graphics/test_245_wipeout.py::test_wipeout_vars PASSED [ 25%] tests/test_02_dxf_graphics/test_245_wipeout.py::test_boundary_path_wcs PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_without_given_end_tangents[0-2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_without_given_end_tangents[1-2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_without_given_end_tangents[2-2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_without_given_end_tangents[3-3] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_without_given_end_tangents[4-4] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_without_given_end_tangents[5-5] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_with_given_end_tangents[0-2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_with_given_end_tangents[1-2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_with_given_end_tangents[2-2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_with_given_end_tangents[3-2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_with_given_end_tangents[4-2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_fit_points_with_given_end_tangents[5-3] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_control_points_calculation[0-2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_control_points_calculation[1-2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_control_points_calculation[2-2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_control_points_calculation[3-3] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_required_control_points_calculation[4-4] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_any_points_present PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::test_degree_of_spline PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestFitPoints::test_if_fit_point_count_is_valid[1] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestFitPoints::test_if_fit_point_count_is_valid[2] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestFitPoints::test_if_fit_point_count_is_valid[3] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestFitPoints::test_if_fit_point_count_is_valid[4] PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestFitPoints::test_remove_unused_knot_values PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestFitPoints::test_remove_unused_weights PASSED [ 25%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_control_point_count[1] PASSED [ 26%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_control_point_count[2] PASSED [ 26%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_control_point_count[3] PASSED [ 26%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_control_point_count[4] PASSED [ 26%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_knot_value_count[1] PASSED [ 26%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_knot_value_count[2] PASSED [ 26%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_knot_value_count[3] PASSED [ 26%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_knot_value_count[4] PASSED [ 26%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_weight_count[1] PASSED [ 26%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_weight_count[2] PASSED [ 26%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_weight_count[3] PASSED [ 26%] tests/test_02_dxf_graphics/test_246_spline_audit.py::TestControlPoints::test_auditing_weight_count[4] PASSED [ 26%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_load_mtext_attribs_from_embedded_object[DYN_MANUAL] PASSED [ 26%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_load_mtext_attribs_from_embedded_object[DYN_AUTO] PASSED [ 26%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_load_mtext_attribs_from_embedded_object[STATIC] PASSED [ 26%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_load_dynamic_cols_manual_height PASSED [ 26%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_load_dynamic_cols_with_auto_height PASSED [ 26%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_load_static_cols PASSED [ 26%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_export_static_columns_as_embedded_object PASSED [ 26%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_export_dynamic_columns_auto_height_as_embedded_object PASSED [ 26%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_export_dynamic_columns_manual_height_as_embedded_object PASSED [ 26%] tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py::test_create_new_mtext_with_columns PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_if_registered PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_default_init PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_default_new PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_fill_properties_without_solid_filling PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_fill_properties_with_solid_filling PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_load_from_text PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_write_dxf_no_fill PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_write_dxf_r2004_no_fill_requires_basic_gradient_data PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_write_dxf_with_fill PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_write_dxf_R2004_with_fill PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_write_correct_polyline_path_tag_order PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_write_dxf_with_pattern_fill PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mpolygon.py::test_do_not_export_mpolygon_with_edge_paths PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_load_dynamic_cols_manual_height PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_load_dynamic_cols_with_auto_height PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_load_static_cols PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_mtext_without_column_info PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_set_columns_xdata[STATIC] PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_set_columns_xdata[DYNAMIC_AUTO] PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_set_columns_xdata[DYNAMIC_MANUAL] PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_create_new_mtext_with_linked_columns PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_destroy_mtext_with_linked_columns PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_add_mtext_with_linked_columns_to_entitydb PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_add_mtext_with_linked_columns_to_msp PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_delete_mtext_with_linked_columns_from_entitydb PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_discard_mtext_with_linked_columns_from_entitydb PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_destroy_mtext_with_linked_columns_from_entitydb PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_copy_mtext_with_linked_columns PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_transform_mtext_with_linked_columns PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_scale_mtext_with_linked_columns PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_sync_common_attribs_of_linked_columns PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::test_remove_dependencies_from_mtext_and_linked_columns PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::TestPreprocessDXFExport::test_successful_preprocessing PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::TestPreprocessDXFExport::test_accept_invalid_column_count PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::TestPreprocessDXFExport::test_fail_for_destroyed_columns PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::TestGetColumnContent::test_get_raw_content_of_all_columns PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::TestGetColumnContent::test_get_plain_text_of_all_columns_as_string PASSED [ 26%] tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py::TestGetColumnContent::test_get_plain_text_of_all_columns_as_list_of_strings PASSED [ 26%] tests/test_02_dxf_graphics/test_249_boundary_paths.py::test_add_polyline_path PASSED [ 26%] tests/test_02_dxf_graphics/test_249_boundary_paths.py::test_add_edge_path PASSED [ 26%] tests/test_02_dxf_graphics/test_249_boundary_paths.py::test_polyline_path_with_arcs_to_edge_path PASSED [ 26%] tests/test_02_dxf_graphics/test_249_boundary_paths.py::test_arc_to_ellipse_edges PASSED [ 26%] tests/test_02_dxf_graphics/test_249_boundary_paths.py::test_ellipse_edges_to_spline_edges PASSED [ 26%] tests/test_02_dxf_graphics/test_249_boundary_paths.py::test_edge_to_polyline_paths PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_returns_one_path PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_path_has_six_entities PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_expected_entity_types PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_arc_0_parameters PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_ellipse_1_parameters PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_line_parameters PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_ellipse_3_parameters PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_arc_4_parameters PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_spline_parameters PASSED [ 26%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_spline_control_points PASSED [ 27%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestVirtualEntitiesFromEdgePath::test_spline_knots PASSED [ 27%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestSpatialTransformation::test_wcs_line PASSED [ 27%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestSpatialTransformation::test_wcs_spline PASSED [ 27%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestSpatialTransformation::test_ocs_clockwise_arc PASSED [ 27%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestSpatialTransformation::test_ocs_counter_clockwise_arc PASSED [ 27%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestSpatialTransformation::test_wcs_clockwise_ellipse PASSED [ 27%] tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py::TestSpatialTransformation::test_wcs_counter_clockwise_ellipse PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[0.0] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[30.0] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[60.0] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[90.0] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[180.0] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[270.0] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[-30.0] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[-60.0] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[-90.0] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[-180.0] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_flip_deg_angle[-270.0] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_safety_checks PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_circle_dxf_attributes PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_circle_geometry PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_arc_dxf_attributes PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_arc_geometry PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_quadrilaterals[Solid] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_quadrilaterals[Trace] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_ellipse PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_polyline[lwpolyline] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_polyline[polyline2d] PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_hatch_with_polyline_path PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_hatch_with_edge_path PASSED [ 27%] tests/test_02_dxf_graphics/test_251_upright.py::test_upright_insert PASSED [ 27%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_load_acad_proxy_entity PASSED [ 27%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_export_exact_original_data PASSED [ 27%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_virtual_entities_support PASSED [ 27%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_virtual_sub_entities_source_tracking PASSED [ 27%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_virtual_entities_if_no_proxy_graphic_exists PASSED [ 27%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_supports_virtual_entities_protocol PASSED [ 27%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_proxy_entity_is_not_transformable PASSED [ 27%] tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py::test_proxy_graphic_is_not_copyable PASSED [ 27%] tests/test_02_dxf_graphics/test_253_ole2frame.py::test_sublass_is_loaded PASSED [ 27%] tests/test_02_dxf_graphics/test_253_ole2frame.py::test_dxf_type PASSED [ 27%] tests/test_02_dxf_graphics/test_253_ole2frame.py::test_bounding_box PASSED [ 27%] tests/test_02_dxf_graphics/test_253_ole2frame.py::test_export_exact_original_data PASSED [ 27%] tests/test_02_dxf_graphics/test_253_ole2frame.py::test_binary_data PASSED [ 27%] tests/test_02_dxf_graphics/test_254_get_font_name.py::test_get_font_name_for_entity_without_font_support PASSED [ 27%] tests/test_02_dxf_graphics/test_254_get_font_name.py::test_get_font_name_for_text PASSED [ 27%] tests/test_02_dxf_graphics/test_254_get_font_name.py::test_undefined_text_style PASSED [ 27%] tests/test_02_dxf_graphics/test_254_get_font_name.py::test_get_font_name_for_mtext PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::test_default_properties PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::test_set_units PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::test_delete_entity PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::test_delete_all_entities PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::test_paper_space PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::test_iter_layout PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::test_query_entities PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::test_model_space_get_layout_for_entity PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::test_paper_space_get_layout_for_entity PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::test_default_entity_settings PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::test_clone_dxfattribs PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::test_invalid_layer_name PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::test_create_layout PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::TestAcquireLayouts::test_get_modelspace PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::TestAcquireLayouts::test_layout_returns_first_layout_in_tab_order PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::TestAcquireLayouts::test_paperspace_returns_active_paperspace_by_default PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::TestAcquireLayouts::test_paperspace_returns_paperspace_by_name PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::TestAcquireLayouts::test_paperspace_raises_key_error_if_not_exists PASSED [ 27%] tests/test_03_dxf_layouts/test_300_layout.py::TestAcquireLayouts::test_paperspace_raises_key_error_for_modelspace PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_delete_polyline3d PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_unlink_unsupported_graphic_entity PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_delete_unsupported_graphic_entity PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_cannot_add_invalid_dxf_objects PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_line PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_point PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_circle PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_arc PASSED [ 27%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_trace PASSED [ 28%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_solid PASSED [ 28%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_3dface PASSED [ 28%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_text PASSED [ 28%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_create_shape PASSED [ 28%] tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py::test_post_bind_hook_call PASSED [ 28%] tests/test_03_dxf_layouts/test_302_block_references.py::test_create_blockref PASSED [ 28%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_attrib_get_flags PASSED [ 28%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_attrib_set_flags PASSED [ 28%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_add_new_attribs PASSED [ 28%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_add_to_attribs PASSED [ 28%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_place PASSED [ 28%] tests/test_03_dxf_layouts/test_302_block_references.py::test_lockref_grid PASSED [ 28%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_attribs_follow_abuse PASSED [ 28%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_delete_not_existing_attrib PASSED [ 28%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_delete_not_existing_attrib_without_exception PASSED [ 28%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_delete_last_attrib PASSED [ 28%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_delete_one_of_many_attribs PASSED [ 28%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_delete_first_of_many_attribs PASSED [ 28%] tests/test_03_dxf_layouts/test_302_block_references.py::test_blockref_delete_all_attribs PASSED [ 28%] tests/test_03_dxf_layouts/test_303_auto_block_references.py::test_auto_blockref PASSED [ 28%] tests/test_03_dxf_layouts/test_303_auto_block_references.py::test_blockref_with_attribs PASSED [ 28%] tests/test_03_dxf_layouts/test_303_auto_block_references.py::test_has_attdef PASSED [ 28%] tests/test_03_dxf_layouts/test_303_auto_block_references.py::test_get_attdef PASSED [ 28%] tests/test_03_dxf_layouts/test_303_auto_block_references.py::test_get_attdef_text PASSED [ 28%] tests/test_03_dxf_layouts/test_303_auto_block_references.py::test_attdef_getter_properties PASSED [ 28%] tests/test_03_dxf_layouts/test_303_auto_block_references.py::test_attdef_setter_properties PASSED [ 28%] tests/test_03_dxf_layouts/test_304_new_entity_space.py::test_init PASSED [ 28%] tests/test_03_dxf_layouts/test_304_new_entity_space.py::test_existence PASSED [ 28%] tests/test_03_dxf_layouts/test_304_new_entity_space.py::test_remove PASSED [ 28%] tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py::test_copy_simple_entity PASSED [ 28%] tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py::test_copy_polyline_entity PASSED [ 28%] tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py::test_move_simple_entity PASSED [ 28%] tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py::test_move_polyline_to_paperspace PASSED [ 28%] tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py::test_move_polyline_to_block PASSED [ 28%] tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py::test_move_from_block_to_block PASSED [ 28%] tests/test_03_dxf_layouts/test_306_copy_linked_entities.py::test_duplicate_simple_entity PASSED [ 28%] tests/test_03_dxf_layouts/test_306_copy_linked_entities.py::test_duplicate_polyline_entity PASSED [ 28%] tests/test_03_dxf_layouts/test_306_copy_linked_entities.py::test_duplicate_insert_with_attribs_entity PASSED [ 28%] tests/test_03_dxf_layouts/test_307_groupby.py::test_groupby_dxfattrib PASSED [ 28%] tests/test_03_dxf_layouts/test_307_groupby.py::test_groupby_not_existing_dxfattrib PASSED [ 28%] tests/test_03_dxf_layouts/test_307_groupby.py::test_groupby_key PASSED [ 28%] tests/test_03_dxf_layouts/test_307_groupby.py::test_groupby_result PASSED [ 28%] tests/test_03_dxf_layouts/test_307_groupby.py::test_calling_convention PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestNameQuery::test_all_names PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestNameQuery::test_some_names PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestNameQuery::test_exclude_some_names PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_remove_supports_virtual_entities PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_empty_init PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_select_all PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_first PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_last PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_new_query_select_all PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_new_empty_query PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_select_line PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_select_layer_1 PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_select_unicode_layer_name PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_select_layer_1_exclude_line PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_match_regex PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_match_regex_not_text PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_match_whole_string PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_not_supported_attribute PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_bool_select PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_bool_select_2 PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_bool_select_3 PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_bool_select_4 PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_ignore_case PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_ignore_case_for_num_values PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_ignore_case_match_regex PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_extend_query PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_all_names PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_match_one_string PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_match_full_string PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_match_default_values PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_iter_does_not_remove_destroyed_entities PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::test_purge_does_remove_destroyed_entities PASSED [ 28%] tests/test_03_dxf_layouts/test_308_query.py::TestGetSetDelItemInterface::test_select_entities_with_supported_attribute PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestGetSetDelItemInterface::test_set_item_accepts_only_strings_as_key PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestGetSetDelItemInterface::test_set_item_set_supported_dxf_attributes PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestGetSetDelItemInterface::test_set_item_ignores_unsupported_attributes PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestGetSetDelItemInterface::test_set_item_does_not_ignore_invalid_attribute_values PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestGetSetDelItemInterface::test_del_item_ignores_unsupported_attributes PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestVirtualAttributes::test_get_virtual_attributes PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestVirtualAttributes::test_set_virtual_attributes PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestVirtualAttributes::test_cannot_delete_virtual_attributes PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_no_selected_dxf_attribute_raises_type_error PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_is_equal_operator PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_is_not_equal_operator PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_query_is_case_insensitive_by_default PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_less_than_operator PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_less_than_raises_type_error_for_vector_attributes PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_greater_than_operator PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_greater_than_raises_type_error_for_vector_attributes PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_less_equal_operator PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_less_equal_raises_type_error_for_vector_attributes PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_greater_equal_operator PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_greater_equal_raises_type_error_for_vector_attributes PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestOperatorSelection::test_filter_operator PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestRegexMatch::test_match_nothing PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestRegexMatch::test_match_is_case_insensitive PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestRegexMatch::test_match_case_insensitive PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestRegexMatch::test_match_invalid_attributes_raise_type_error PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestSetOperations::test_union PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestSetOperations::test_union_unique_entities PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestSetOperations::test_difference PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestSetOperations::test_intersection PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestSetOperations::test_symmetric_difference PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestSetOperations::test_operator_combination PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_select_layers PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_set_layer_attribute PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_delete_layer_attribute PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_color_descriptor_exists PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_linetype_descriptor_exists PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_lineweight_descriptor_exists PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_ltscale_descriptor_exists PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_invisible_descriptor_exists PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_true_color_descriptor_exists PASSED [ 29%] tests/test_03_dxf_layouts/test_308_query.py::TestDescriptors::test_transparency_descriptor_exists PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithoutAttributes::test_without_wildcards PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithoutAttributes::test_two_entity_names PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithoutAttributes::test_star_wildcard PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithoutAttributes::test_wrong_star_wildcard PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithoutAttributes::test_star_wildcard_2 PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithoutAttributes::test_star_wildcard_3 PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithoutAttributes::test_star_wildcard_4 PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_empty_attribute_list_not_allowed PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_one_attribute PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_double_quoted_attributes PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_single_quoted_attributes PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_attribute_name_with_underscore PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_star_with_one_attribute PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_relation_lt PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_relation_le PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_relation_eq PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_relation_ne PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_relation_ge PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_relation_gt PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_regex_match PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_not_regex_match PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestEntityQueryParserWithAttributes::test_appended_ignore_case_option PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestInfixBoolQuery::test_not_operation PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestInfixBoolQuery::test_and_operation PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestInfixBoolQuery::test_or_operation PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestInfixBoolQuery::test_not_operation_with_brackets PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestInfixBoolQuery::test_operation_with_brackets PASSED [ 29%] tests/test_03_dxf_layouts/test_309_query_parser.py::TestInfixBoolQuery::test_operation_with_nested_brackets PASSED [ 29%] tests/test_03_dxf_layouts/test_311_add_foreign_entity.py::test_01_copy_foreign_entities_reset_resources PASSED [ 29%] tests/test_03_dxf_layouts/test_311_add_foreign_entity.py::test_02_copy_foreign_entities_with_resources PASSED [ 29%] tests/test_03_dxf_layouts/test_311_add_foreign_entity.py::test_03_move_foreign_entities PASSED [ 29%] tests/test_03_dxf_layouts/test_311_add_foreign_entity.py::test_04_move_foreign_entities_with_resources PASSED [ 29%] tests/test_03_dxf_layouts/test_311_add_foreign_entity.py::test_05_copy_polyline_reset_resources PASSED [ 29%] tests/test_03_dxf_layouts/test_311_add_foreign_entity.py::test_06_move_polyline PASSED [ 29%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_add_simple_entities PASSED [ 30%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_entities_have_no_handle PASSED [ 30%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_removing_entiy_does_not_destroy_entity PASSED [ 30%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_purge_destroyed_entities PASSED [ 30%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_can_add_entity_to_a_real_layout PASSED [ 30%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_copy_all_entities_to_a_real_layout PASSED [ 30%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_move_all_entities_to_a_real_layout PASSED [ 30%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_copy_all_sub_entities_to_a_real_layout PASSED [ 30%] tests/test_03_dxf_layouts/test_312_virtual_layout.py::test_move_all_sub_entities_to_a_real_layout PASSED [ 30%] tests/test_03_dxf_layouts/test_313_redraw_order.py::test_set_redraw_order PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_new_drawing PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_valid_header PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_invalid_header_structure PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_invalid_header_var_name PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_get_acadver PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_get_insbase PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_getitem_keyerror PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_get PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_set_existing_var PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_set_existing_point PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_set_unknown_var PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_create_var PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_create_var_wrong_args_2d PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_create_var_wrong_args_3d PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_contains PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_not_contains PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_remove_headervar PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_str_point PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_new_dxf12 PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_custom_properties_exists PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_order_of_occurrence PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_get_custom_property PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_get_custom_property_2 PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_add_custom_property PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_remove_custom_property PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_remove_not_existing_property PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_replace_custom_property PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_replace_not_existing_property PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_version_specific_header_vars[$ACADMAINTVER-AC1032-90] PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_version_specific_header_vars[$ACADMAINTVER-AC1027-70] PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_version_specific_header_vars[$XCLIPFRAME-AC1021-290] PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_version_specific_header_vars[$XCLIPFRAME-AC1024-280] PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_401_headersection.py::test_version_specific_group_code_raises_key_error_for_unknown_names PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_402_classessection.py::test_write PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_402_classessection.py::test_empty_section PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_402_classessection.py::test_count_class_instances PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_get_value PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_set_value PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_del_value PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_delete_entity PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_delete_dead_entity_entity PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_keys PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_values PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_items PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_get PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_add_tags PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_len PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_restore_integrity_purge PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_restore_integrity_recover PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_restore_integrity_remove_invalid_None PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_restore_integrity_remove_invalid_handle PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_add_entity_multiple_times PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_discard_contained_entity PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_discard_entity_with_none_handle PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_discard_entity_with_handle_not_in_database PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_trashcan_context_manager PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_reset_entity_handle PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_can_not_reset_entity_handle PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_403_entity_database.py::test_query_method_exist PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_constructor PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_getattr_upper_case PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_error_getattr PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_get_entry_by_handle PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_get_non_existing_entry_by_handle PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_get_handle_of_entry PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_get_handle_of_non_existing_entry PASSED [ 30%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestGenericTableFeatures::test_get_entry_by_handle_is_type_safe PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestLayerTableEntry::test_add_layer PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestLayerTableEntry::test_check_invalid_aci_color PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestLayerTableEntry::test_check_invalid_line_weight PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestLayerTableEntry::test_add_new_line_type PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_add_new_ttf_font_text_style PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_add_new_shape_file PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_add_multiple_shape_files PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_get_shape_file PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_find_shape_file PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_if_shape_file_entry_exist PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_discard_shape_files PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_discard_not_existing_shape_file PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestTextStyleTable::test_export_multiple_shape_file_entries PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404a_tables.py::TestLineTypeTable::test_add_new_line_type PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_len PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_iter PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_is_unique_name PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_contains PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_contains_is_case_insensitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_getitem PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_getitem_is_case_insensitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_get PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestGetterMethods::test_get_is_case_insensitive PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestCreateNewEntry::test_new_entry_is_an_object PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestCreateNewEntry::test_new_entry_is_added_to_collection PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestCreateNewEntry::test_cannot_use_existing_name PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestCreateNewEntry::test_invalid_char_in_name_raises_exception PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDeleteEntry::test_delete_entry_remove_entry PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDeleteEntry::test_delete_non_existing_entry_does_not_raise_exception PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDuplicateEntry::test_duplicate_existing_entry PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDuplicateEntry::test_duplicate_non_existing_entry_raises_exception PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDuplicateEntry::test_new_entry_replaces_existing_entry PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDuplicateEntry::test_duplicated_entries_have_same_content PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDuplicateEntry::test_duplicated_entry_is_stored_in_objects_section PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::TestDuplicateEntry::test_invalid_char_in_new_name_raises_exception PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_404b_object_collections.py::test_clear PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_405_classes.py::test_init PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_405_classes.py::test_add_known_class PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_405_classes.py::test_add_required_classes PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_405_classes.py::test_double_keys PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_405_classes.py::test_export_dxf PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_405_classes.py::test_load_section PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_empty_section PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_key PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_is_layout_block PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_overwrite_existing_block PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_not_in_blocks_section PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_getitem PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_new_block_layout PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_case_insensitivity PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_iter_blocks PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_block_content_entity_drawing_attribute PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_delete_block PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_safe_delete_block PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_do_not_delete_layouts_and_special_arrow_blocks PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_rename_block PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_dxf2000_dxf_block_structure PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_dxf2000_delete_block PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_dxf2000_delete_all_blocks PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_dxf2000_rename_block PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_406_blocks_section.py::test_update_block_flags PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_407_entity_section.py::test_iterate_entities_section PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_408_objects_section.py::test_load_section PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_408_objects_section.py::TestAuditObjectSection::test_auditor_removes_invalid_entities PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_408_objects_section.py::TestAuditObjectSection::test_audit_restores_deleted_owner_tag PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_408_objects_section.py::TestAuditObjectSection::test_validate_known_dictionaries PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_408_objects_section.py::TestAuditObjectSection::test_remove_orphaned_dictionary_and_owned_entries PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_408_objects_section.py::TestAuditObjectSection::test_remove_orphaned_dictionary_but_preserve_shared_entries PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_409_create_objects.py::test_setup_rootdict PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_409_create_objects.py::test_add_new_sub_dict PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_409_create_objects.py::test_required_tables_exists PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_409_create_objects.py::test_new_plot_style_name_table PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_table_entry_dxf_type PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_ac1009_load_table PASSED [ 31%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_load_table_with_invalid_table_entry PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_ac1009_write PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_ac1024_load_table PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_ac1024_write PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_get_table_entry PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_entry_names_are_case_insensitive PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_duplicate_entry PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_410_table.py::test_create_vport_table PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_loader PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_default_section_does_not_have_records PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_loaded_section_does_not_have_records PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_acds_record PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_write_dxf PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_empty_acds_section_will_not_be_exported PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_get_acis_data PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_del_acis_data PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_reset_acis_data PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_set_new_acis_data PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_create_explicit_a_new_acis_data PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_411_acds_data.py::test_write_dxf_for_new_created_acis_record PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_412_rename_layer.py::test_rename_layer PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_412_rename_layer.py::test_rename_layer_errors PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py::test_new_group PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py::test_unique_groups PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py::test_modify_group PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py::test_can_not_add_invalid_block_entities PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py::test_can_not_add_invalid_table_entry PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py::test_audit_filters_invalid_entities PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_virtual_entities_owner_and_handle PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_virtual_entities_source_block_reference PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_copying_entities_from_block_reference_removes_source_context PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_virtual_entities_transformation PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_explode_blockrefs PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_explode_polyline_bulge PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_explode_blockref_with_attrib PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_examine_uniform_scaled_ellipse PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_skipped_entities_callback PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_curves[1-False] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_curves[0.5-False] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_curves[1-True] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_curves[0.5-True] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_curves[-1-False] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_curves[-1-True] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_and_stretched_curves[0.5-False] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_rotated_and_reflected_and_stretched_curves[0.5-True] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::test_explode_xref PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::TestSourceBlockReferenceFromNestedBlockReferences::test_virtual_entities_from_block_ref_0 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::TestSourceBlockReferenceFromNestedBlockReferences::test_virtual_entities_from_block_ref_1 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::TestSourceBlockReferenceFromNestedBlockReferences::test_virtual_entities_from_block_ref_2 PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::TestEntitiesInRedrawOrder::test_ascending_redraw_order PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py::TestEntitiesInRedrawOrder::test_descending_redraw_order PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_layout_dict_is_not_hard_owner PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_create_new_layout PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_reserved_model_space_name[Model] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_reserved_model_space_name[MODEL] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_reserved_model_space_name[model] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_case_insensitive_layout_names PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_create_and_delete_new_layout PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_set_active_layout PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_rename_layout PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_415_layout_management.py::test_rename_not_existing_layout PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_do_nothing PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_convert_unsupported_entity_to_primitive PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_multiple_unsupported_entities_to_vertices PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_point_to_primitive PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_line_to_primitive PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_lwpolyline_to_primitive PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_circle_to_primitive PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_arc_to_primitive PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_ellipse_to_primitive PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_spline_to_primitive PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_mesh_entity_to_primitive PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_from_quadrilateral_with_3_points[SOLID] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_from_quadrilateral_with_3_points[TRACE] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_from_quadrilateral_with_3_points[3DFACE] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_from_quadrilateral_with_4_points[SOLID] PASSED [ 32%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_from_quadrilateral_with_4_points[TRACE] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_from_quadrilateral_with_4_points[3DFACE] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_poly_face_mesh_to_primitive PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_poly_mesh_to_primitive PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_2d_3d_polyline_to_primitive PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_2d_polyline_including_width_to_primitive PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_text_to_primitive PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_mtext_to_primitive PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_mtext_columns_to_primitive PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_hatch_returns_multiple_primitives PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_image_primitive PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_to_vertices PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416a_disassemble.py::test_to_control_vertices PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_level_0 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_0[normal] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_0[reflect-x] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_0[reflect-y] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_0[reflect-z] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_level_1 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_1[normal] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_1[reflect-x] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_1[reflect-y] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_block_reference_level_1[reflect-z] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::test_decompose_minsert_level_1 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::TestSourceBlockReferences::test_count_of_expected_virtual_entities PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::TestSourceBlockReferences::test_same_source_block_references_blk0 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::TestSourceBlockReferences::test_same_source_block_references_blk1 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::TestSourceBlockReferences::test_same_source_block_references_blk2 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py::TestSourceBlockReferences::test_link_structure_of_virtual_block_references PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_extend PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_line PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_empty_cache PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_multi_boxes[multi_flat-entities] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_multi_boxes[multi_flat-blockrefs] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_multi_boxes[multi_recursive-entities] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_multi_boxes[multi_recursive-blockrefs] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_without_handles PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_with_uuids PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_for_flat_multi_boxes[multi_flat] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_for_flat_multi_boxes[extents] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_for_recreation_on_the_fly PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_for_reused_virtual_entities[multi_flat] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_for_reused_virtual_entities[extents] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_for_reused_virtual_entities[multi_recursive] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_with_uuids_for_reused_virtual_entities[multi_flat] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_with_uuids_for_reused_virtual_entities[extents] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_cache_usage_with_uuids_for_reused_virtual_entities[multi_recursive] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_fast_bounding_box_calculation PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_417_bbox.py::test_precise_bounding_box_calculation PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_418_copy_entities.py::test_copy_entity_with_extension_dict PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_418_copy_entities.py::test_virtual_copy_with_extension_dict PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_418_copy_entities.py::test_source_of_copy_for_bound_entity PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_418_copy_entities.py::test_is_copy_state PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_418_copy_entities.py::test_origin_of_copy_for_copy_chains PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_418_copy_entities.py::test_source_of_copy_for_virtual_entity PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_420_load_dxf_file.py::test_load_dxf[R12] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_420_load_dxf_file.py::test_load_dxf[R2000] PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_new_AC1009 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_new_AC1015 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_new_AC1018 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_new_AC1021 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_new_AC1024 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_new_AC1027 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_new_AC1032 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_421_new_drawings.py::test_invalid_dxf_version PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_dxfversion_1 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_dxfversion_2 PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_acad_release PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_get_layer PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_error_getting_not_existing_layer PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_create_layer PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_error_adding_existing_layer PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_has_layer PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_has_not_layer PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_removing_layer PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_error_removing_not_existing_layer PASSED [ 33%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_r2000_dxfversion PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_r2000_acad_release PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_min_r12_header_section PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_min_r12_layers_table PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_min_r12_styles_table PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_min_r12_linetypes_table PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_min_r12_blocks_section PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_min_r12_entity_section PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_chain_layout_and_block PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_base64_encoding_r12 PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_base64_encoding_r2000 PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_422_drawing_object.py::test_set_drawing_units PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_423_read_proe_r2004.py::test_open_proe_ac1018 SKIPPED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_color_index PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_lineweight_too_small PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_lineweight_too_big PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_invalid_lineweight PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_for_valid_layer_name PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_if_layer_linetype_exist PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_for_existing_owner PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_for_existing_text_style[TEXT] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_for_existing_text_style[MTEXT] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_for_existing_text_style[ATTRIB] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_for_existing_text_style[ATTDEF] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_block_cycle_detector_setup PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_block_cycle_detector PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_broken_block_cycle_detector PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_fix_invalid_leader PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_fix_invalid_insert PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_fix_insert_scale PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_remove_invalid_entities_from_blocks PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_remove_standalone_attrib_entities_from_blocks PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_424_audit.py::test_fix_invalid_transparency PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_new_doc_extents[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_new_doc_limits[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_modelspace_extents[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_modelspace_limits[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_layout1_extents[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_layout1_limits[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_reset_modelspace_extents[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_reset_modelspace_limits[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_active_msp_vport_config[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_active_layout1_viewport[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_reset_layout1_active_viewport[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_new_doc_extents[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_new_doc_limits[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_modelspace_extents[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_modelspace_limits[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_layout1_extents[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_layout1_limits[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_reset_modelspace_extents[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_reset_modelspace_limits[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_active_msp_vport_config[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_default_active_layout1_viewport[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py::test_reset_layout1_active_viewport[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_created_by_ezdxf_metadata[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_created_by_ezdxf_metadata[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_written_by_ezdxf_metadata[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_written_by_ezdxf_metadata[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_add_custom_metadata[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_add_custom_metadata[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_non_existing_key_raises_key_error[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_non_existing_key_raises_key_error[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_modify_metadata[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_modify_metadata[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_delete_metadata[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_delete_metadata[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_delete_non_existing_metadata_raises_KeyError[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_delete_non_existing_metadata_raises_KeyError[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_discard_non_existing_metadata_without_exception[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_discard_non_existing_metadata_without_exception[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_write_and_read_metadata[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_write_and_read_metadata[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_key_and_data_is_limited_to_255_chars[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_key_and_data_is_limited_to_255_chars[R2000] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_escape_line_endings_in_key_and_data[R12] PASSED [ 34%] tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py::test_escape_line_endings_in_key_and_data[R2000] PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_set_current_layer PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_invalid_layer_raises_exception PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_set_current_aci_color PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_invalid_aci_color_raises_exception PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_set_current_linetype PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_invalid_linetype_raises_exception PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_set_current_lineweight PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_invalid_lineweight_raises_exception PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_set_current_linetype_scale PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_invalid_linetype_scale_raises_exception PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_set_current_textstyle PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_invalid_textstyle_raises_exception PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_set_current_dimstyle PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_427_appsettings.py::test_invalid_dimstyle_raises_exception PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_empty_string PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_uppercase_letters PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_lowercase_letters PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_digits PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_special_chars PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_asterix_is_allowed_as_first_letter PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_punctuation PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translation_spaces PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_invalid_chars_to_underscores PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_get_same_translations_for_same_names PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_unique_names_for_same_r12_translations PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_names_case_insensitive PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_limit_length_of_long_names PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py::test_translate_long_names PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_new_clipping_path_dxf_structure PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_new_clipping_path_geometry PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_invalid_clipping_path_raises_exception[vertices0] PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_invalid_clipping_path_raises_exception[vertices1] PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_rectangular_clipping_path_geometry PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_new_spatial_filter_parmeters PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_enable_clipping_without_path_set PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_toggle_clipping_state PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_discard_clipping_path PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_cleanup_base_entity PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_get_wcs_clipping_path PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_set_wcs_clipping_path PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_invert_clip_without_clipping_path PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_cannot_invert_clipping_path_twice PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_invert_clipping_path_properties PASSED [ 35%] tests/test_04_dxf_high_level_structs/test_429_xclip.py::test_invert_clipping_path_dxf_structure PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_msp_1_m PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_msp_easy_usage PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_msp_2_m PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_msp_1_ft PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_msp_2_ft PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_msp_1_in PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_paper_space_scale_1_1 PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_paper_space_scale_1_100 PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_paper_space_default PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_paper_space_to_model_space_metric PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_paper_space_to_model_space_us PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_conversion_factor[6-4-1000] PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_conversion_factor[4-6-0.001] PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_conversion_factor[6-5-100] PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_conversion_factor[5-6-0.01] PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_conversion_factor[5-4-10] PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_conversion_factor[4-5-0.1] PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_conversion_type_error[0-6] PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_conversion_type_error[6-0] PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_conversion_type_error[0-0] PASSED [ 35%] tests/test_05_tools/test_500_units.py::test_conversion_invalid_units PASSED [ 35%] tests/test_05_tools/test_501_truecolor.py::test_rgb PASSED [ 35%] tests/test_05_tools/test_501_truecolor.py::test_from_rgb PASSED [ 35%] tests/test_05_tools/test_501_truecolor.py::test_from_aci PASSED [ 35%] tests/test_05_tools/test_501_truecolor.py::test_0 PASSED [ 35%] tests/test_05_tools/test_501_truecolor.py::test_256 PASSED [ 35%] tests/test_05_tools/test_501_truecolor.py::test_luminance PASSED [ 35%] tests/test_05_tools/test_501_truecolor.py::TestRGB::test_from_hex_ PASSED [ 35%] tests/test_05_tools/test_501_truecolor.py::TestRGB::test_from_hex_with_alpha PASSED [ 35%] tests/test_05_tools/test_501_truecolor.py::TestRGB::test_from_floats PASSED [ 35%] tests/test_05_tools/test_501_truecolor.py::TestRGB::test_to_floats PASSED [ 35%] tests/test_05_tools/test_501_truecolor.py::TestRGB::test_to_hex PASSED [ 36%] tests/test_05_tools/test_501_truecolor.py::TestRGB::test_luminance PASSED [ 36%] tests/test_05_tools/test_501_truecolor.py::TestRGBA::test_from_hex PASSED [ 36%] tests/test_05_tools/test_501_truecolor.py::TestRGBA::test_to_hex PASSED [ 36%] tests/test_05_tools/test_501_truecolor.py::TestRGBA::test_from_floats PASSED [ 36%] tests/test_05_tools/test_501_truecolor.py::TestRGBA::test_to_floats PASSED [ 36%] tests/test_05_tools/test_501_truecolor.py::TestRGBA::test_luminance PASSED [ 36%] tests/test_05_tools/test_501_truecolor.py::TestRGBA::test_default_alpha_channel_is_opaque PASSED [ 36%] tests/test_05_tools/test_502_raw_color.py::test_decode_by_block PASSED [ 36%] tests/test_05_tools/test_502_raw_color.py::test_encode_by_block PASSED [ 36%] tests/test_05_tools/test_502_raw_color.py::test_decode_by_layer PASSED [ 36%] tests/test_05_tools/test_502_raw_color.py::test_encode_by_layer PASSED [ 36%] tests/test_05_tools/test_502_raw_color.py::test_decode_aci PASSED [ 36%] tests/test_05_tools/test_502_raw_color.py::test_encode_aci PASSED [ 36%] tests/test_05_tools/test_502_raw_color.py::test_decode_rgb PASSED [ 36%] tests/test_05_tools/test_502_raw_color.py::test_encode_rgb PASSED [ 36%] tests/test_05_tools/test_503_indexing.py::test_item_index PASSED [ 36%] tests/test_05_tools/test_503_indexing.py::test_slicing_ascending_order PASSED [ 36%] tests/test_05_tools/test_503_indexing.py::test_errors PASSED [ 36%] tests/test_05_tools/test_503_indexing.py::test_slicing_descending_order PASSED [ 36%] tests/test_05_tools/test_504_suppress_zeros.py::test_leading_zeros PASSED [ 36%] tests/test_05_tools/test_504_suppress_zeros.py::test_trim_trailing_zeros_for_integers PASSED [ 36%] tests/test_05_tools/test_506_version.py::test_version PASSED [ 36%] tests/test_05_tools/test_507_dxf_pretty_printer.py::test_dxf_drawing_to_html PASSED [ 36%] tests/test_05_tools/test_508_read_zip.py::test_read_ac1009 PASSED [ 36%] tests/test_05_tools/test_509_comments.py::test_load_only_comments PASSED [ 36%] tests/test_05_tools/test_509_comments.py::test_load_handles_and_comments PASSED [ 36%] tests/test_05_tools/test_509_comments.py::test_load_structure_and_comments PASSED [ 36%] tests/test_05_tools/test_510_byte_stream.py::test_init PASSED [ 36%] tests/test_05_tools/test_510_byte_stream.py::test_read_ps PASSED [ 36%] tests/test_05_tools/test_510_byte_stream.py::test_read_ps_align PASSED [ 36%] tests/test_05_tools/test_510_byte_stream.py::test_read_pus PASSED [ 36%] tests/test_05_tools/test_510_byte_stream.py::test_read_doubles PASSED [ 36%] tests/test_05_tools/test_511_bit_stream.py::test_read_bit PASSED [ 36%] tests/test_05_tools/test_511_bit_stream.py::test_read_bits PASSED [ 36%] tests/test_05_tools/test_511_bit_stream.py::test_read_unsigned_byte PASSED [ 36%] tests/test_05_tools/test_511_bit_stream.py::test_read_signed_byte PASSED [ 36%] tests/test_05_tools/test_511_bit_stream.py::test_read_unsigned_short PASSED [ 36%] tests/test_05_tools/test_511_bit_stream.py::test_read_aligned_unsigned_short PASSED [ 36%] tests/test_05_tools/test_511_bit_stream.py::test_read_unsigned_long PASSED [ 36%] tests/test_05_tools/test_511_bit_stream.py::test_read_aligned_unsigned_long PASSED [ 36%] tests/test_05_tools/test_511_bit_stream.py::test_read_bitshort PASSED [ 36%] tests/test_05_tools/test_511_bit_stream.py::test_read_signed_modular_chars PASSED [ 36%] tests/test_05_tools/test_511_bit_stream.py::test_read_unsigned_modular_chars PASSED [ 36%] tests/test_05_tools/test_511_bit_stream.py::test_read_modular_shorts PASSED [ 36%] tests/test_05_tools/test_511_bit_stream.py::test_read_object_type PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::test_load_iso_pattern PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::test_load_scaled_iso_pattern PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::test_load_imperial_pattern PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::test_scale_pattern PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::test_scale_all_pattern PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::test_parse_pattern_file PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_horizontal_lines[ISO02W100] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_horizontal_lines[DASH] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_horizontal_lines[CLAY] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_horizontal_lines[FLEXIBLE] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_vertical_lines[GOST_WOOD] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_vertical_lines[V_ZINC] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_45_deg_lines[ANSI31] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_45_deg_lines[BRICK_INSULATING] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_45_deg_lines[BUTTERFLY] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_45_deg_lines[CROSSES] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_135_deg_lines[BUTTERFLY] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_135_deg_lines[CROSSES] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_60_deg_lines[DIAMONDS] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_has_60_deg_lines[ESCHER] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_all_45_deg_lines[ANSI31] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_all_45_deg_lines[BRICK_EXISTING] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_all_solid_lines[ANSI31] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_all_solid_lines[BRICK_EXISTING] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_analyse_ansi31 PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_analyse_checker PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_rotated_checker PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::TestPatternAnalyser::test_analyse_crosses PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[0-0] PASSED [ 36%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[45-450] PASSED [ 37%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[90-90] PASSED [ 37%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[135-135] PASSED [ 37%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[22-15] PASSED [ 37%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[23-30] PASSED [ 37%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[45-451] PASSED [ 37%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[180-0] PASSED [ 37%] tests/test_05_tools/test_512_pattern.py::test_round_angle_15_deg[270-90] PASSED [ 37%] tests/test_05_tools/test_513_reorder_entities.py::test_ascending_sort_order PASSED [ 37%] tests/test_05_tools/test_513_reorder_entities.py::test_mapped_ascending_sort_order PASSED [ 37%] tests/test_05_tools/test_513_reorder_entities.py::test_mapping_to_0_ascending_sort_order PASSED [ 37%] tests/test_05_tools/test_513_reorder_entities.py::test_full_mapped_ascending_sort_order PASSED [ 37%] tests/test_05_tools/test_513_reorder_entities.py::test_descending_sort_order PASSED [ 37%] tests/test_05_tools/test_513_reorder_entities.py::test_mapping_to_0_descending_sort_order PASSED [ 37%] tests/test_05_tools/test_513_reorder_entities.py::test_full_mapped_descending_sort_order PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLine::test_text_width_and_height PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLine::test_shrink_to_fit PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLine::test_stretch_to_aligned PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLine::test_baseline_vertices_left_aligned PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLine::test_baseline_vertices_center_aligned PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLine::test_baseline_vertices_right_aligned PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLine::test_corner_vertices_baseline_aligned PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLine::test_corner_vertices_top_aligned PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLine::test_corner_vertices_bottom_aligned PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLine::test_corner_vertices_middle_aligned PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_empty_input PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_translation[location0] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_translation[location1] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_translation[location2] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_translation[location3] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_translation[location4] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_rotate[0] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_rotate[1.5707963267948966] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_rotate[0.7853981633974483] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_rotate[-1.5707963267948966] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_rotate[-0.7853981633974483] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_x[0-2-0] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_x[1-2-2] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_x[2-2-4] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_x[2--1--2] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_x[2--2--4] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_y[0-2-0] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_y[1-2-2] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_y[2-2-4] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_y[2--1--2] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_scale_y[2--2--4] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestTextLineTransformation::test_oblique PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_plain_text PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_caret_decode PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_dxf_escape_line_endings PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_replace_non_printable PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_plain_mtext_removes_formatting PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_plain_mtext2_removes_formatting PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_remove_commands_without_terminating_semicolon PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_plain_mtext_decoding_special_chars[fast_plain_mtext] PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_plain_mtext_decoding_special_chars[plain_mtext] PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestSplitMText::test_do_not_split_at_caret PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestSplitMText::test_split_empty_string PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestSplitMText::test_split_short_string PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestSplitMText::test_split_long_string PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestSplitMText::test_split_longer_string PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_text_wrapping PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestIsTextVerticalStacked::test_virtual_text_entity PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestIsTextVerticalStacked::test_standard_text_entity PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestIsTextVerticalStacked::test_stacked_text_entity PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestIsTextVerticalStacked::test_stacked_mtext_entity PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestIsTextVerticalStacked::test_raise_type_error_for_unsupported_types PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestMTextContentHasInlineFormattingCodes::test_line_breaks_is_not_an_inline_code PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestMTextContentHasInlineFormattingCodes::test_non_breaking_space_is_not_an_inline_code PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestMTextContentHasInlineFormattingCodes::test_inline_formatting_code PASSED [ 37%] tests/test_05_tools/test_514_text.py::TestMTextContentHasInlineFormattingCodes::test_line_break_and_inline_formatting_code PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_is_upside_down_text_angle[95] PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_is_upside_down_text_angle[180] PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_is_upside_down_text_angle[265] PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_is_upside_down_text_angle[-95] PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_is_upside_down_text_angle[-180] PASSED [ 37%] tests/test_05_tools/test_514_text.py::test_is_upside_down_text_angle[-265] PASSED [ 38%] tests/test_05_tools/test_514_text.py::test_is_not_upside_down_text_angle[0] PASSED [ 38%] tests/test_05_tools/test_514_text.py::test_is_not_upside_down_text_angle[90] PASSED [ 38%] tests/test_05_tools/test_514_text.py::test_is_not_upside_down_text_angle[270] PASSED [ 38%] tests/test_05_tools/test_514_text.py::test_is_not_upside_down_text_angle[-90] PASSED [ 38%] tests/test_05_tools/test_514_text.py::test_is_not_upside_down_text_angle[-270] PASSED [ 38%] tests/test_05_tools/test_514_text.py::test_flipping_tolerance PASSED [ 38%] tests/test_05_tools/test_514_text.py::test_upright_text_angle PASSED [ 38%] tests/test_05_tools/test_514_text.py::TestEstimateMTextContentExtents::test_empty_text PASSED [ 38%] tests/test_05_tools/test_514_text.py::TestEstimateMTextContentExtents::test_more_empty_text PASSED [ 38%] tests/test_05_tools/test_514_text.py::TestEstimateMTextContentExtents::test_single_line PASSED [ 38%] tests/test_05_tools/test_514_text.py::TestEstimateMTextContentExtents::test_many_lines_no_line_wrapping PASSED [ 38%] tests/test_05_tools/test_514_text.py::TestEstimateMTextContentExtents::test_many_lines_with_line_wrapping PASSED [ 38%] tests/test_05_tools/test_514_text.py::TestEstimateMTextContentExtents::test_estimation_safety_factor PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_sut_font_cache_was_loaded PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[LiberationSans-Regular.ttf-Liberation Sans] PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[LiberationSerif-Regular.ttf-Liberation Serif] PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[LiberationMono-Regular.ttf-Liberation Mono] PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[LiberationSansNarrow-Regular.ttf-Liberation Sans Narrow] PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[DejaVuSans.ttf-DejaVu Sans] PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[DejaVuSerif.ttf-DejaVu Serif] PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[DejaVuSansMono.ttf-DejaVu Sans Mono] PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[OpenSans-Regular.ttf-Open Sans] PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[OpenSansCondensed-Light.ttf-Open Sans Condensed] PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_if_all_test_fonts_are_available[NotoSansSC-Regular.otf-Noto Sans SC] PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_find_font_face_without_definition PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_find_font_face PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_get_font_without_definition PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_get_font_face_with_definition PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_map_shx_to_ttf PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_map_ttf_to_shx PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_get_font_measurement PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_get_font_measurement_for_shx_fonts PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontFace::test_same_font_faces_have_equal_hash_values PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontFace::test_font_face_is_italic PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontFace::test_font_face_is_oblique PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontFace::test_font_face_is_bold PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontFace::test_weight_str PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontFace::test_width_str PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontMeasurements::test_total_height PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontMeasurements::test_scale PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontMeasurements::test_shift PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontMeasurements::test_scale_from_baseline PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontMeasurements::test_cap_top PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontMeasurements::test_x_top PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestFontMeasurements::test_bottom PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestMonospaceFont::test_space_width PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestMonospaceFont::test_text_width PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestMonospaceFont::test_text_width_ex PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestMonospaceFont::test_text_path PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestMonospaceFont::test_text_path_ex PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestTrueTypeFont::test_space_width PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestTrueTypeFont::test_text_width PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestTrueTypeFont::test_text_width_ex PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestTrueTypeFont::test_text_path PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::TestTrueTypeFont::test_text_path_ex PASSED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_find_font_file_by_best_match SKIPPED [ 38%] tests/test_05_tools/test_515a_fonts_truetype.py::test_find_generic_font_family SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::test_get_font_family_for_shx_files SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::test_get_font_family_for_shp_files SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::test_get_font_style_for_shx_files SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::test_best_match_for_shape_files SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::test_width_value_influences_the_best_match_for_shape_files SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestShapeFileFont::test_space_width SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestShapeFileFont::test_text_width SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestShapeFileFont::test_text_width_ex SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestShapeFileFont::test_text_path SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestShapeFileFont::test_text_path_ex SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestGlyphCache::test_get_glyphs SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestGlyphCache::test_get_advance_width SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestGlyphCache::test_get_space_width SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestGlyphCache::test_get_font_measurements SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestGlyphCache::test_path_for_unsupported_glyphs SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestGlyphCache::test_spaces_are_measured SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::TestGlyphCache::test_spaces_are_not_rendered SKIPPED [ 38%] tests/test_05_tools/test_515b_fonts_shapefiles.py::test_resolve_shx_font_name SKIPPED [ 38%] tests/test_05_tools/test_515c_fonts_lff.py::test_get_font_family_for_lff_files SKIPPED [ 39%] tests/test_05_tools/test_515c_fonts_lff.py::TestLibreCadFont::test_is_a_lff_font SKIPPED [ 39%] tests/test_05_tools/test_515c_fonts_lff.py::TestLibreCadFont::test_space_width SKIPPED [ 39%] tests/test_05_tools/test_515c_fonts_lff.py::TestLibreCadFont::test_text_width SKIPPED [ 39%] tests/test_05_tools/test_515c_fonts_lff.py::TestLibreCadFont::test_text_width_ex SKIPPED [ 39%] tests/test_05_tools/test_515c_fonts_lff.py::TestLibreCadFont::test_text_path SKIPPED [ 39%] tests/test_05_tools/test_515c_fonts_lff.py::TestLibreCadFont::test_text_path_ex SKIPPED [ 39%] tests/test_05_tools/test_515c_fonts_lff.py::test_low_level_glyph_cache_measures_spaces SKIPPED [ 39%] tests/test_05_tools/test_515c_fonts_lff.py::test_map_shx_to_lff SKIPPED [ 39%] tests/test_05_tools/test_516_zoom.py::TestModelSpace::test_zoom_center PASSED [ 39%] tests/test_05_tools/test_516_zoom.py::TestModelSpace::test_zoom_extents PASSED [ 39%] tests/test_05_tools/test_516_zoom.py::TestModelSpace::test_zoom_extents_factor_2 PASSED [ 39%] tests/test_05_tools/test_516_zoom.py::TestModelSpace::test_zoom_window PASSED [ 39%] tests/test_05_tools/test_516_zoom.py::TestModelSpace::test_zoom_objects PASSED [ 39%] tests/test_05_tools/test_516_zoom.py::TestModelSpace::test_zoom_objects_of_empty_set PASSED [ 39%] tests/test_05_tools/test_516_zoom.py::TestPaperSpace::test_bbox_of_main_viewport PASSED [ 39%] tests/test_05_tools/test_516_zoom.py::TestPaperSpace::test_zoom_center PASSED [ 39%] tests/test_05_tools/test_516_zoom.py::TestPaperSpace::test_zoom_extents PASSED [ 39%] tests/test_05_tools/test_516_zoom.py::TestPaperSpace::test_zoom_extents_factor_2 PASSED [ 39%] tests/test_05_tools/test_516_zoom.py::TestPaperSpace::test_zoom_window PASSED [ 39%] tests/test_05_tools/test_516_zoom.py::TestPaperSpace::test_zoom_objects_of_empty_set PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_resolve_margins[None-expected0] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_resolve_margins[margins1-expected1] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_resolve_margins[margins2-expected2] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_resolve_margins[margins3-expected3] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_resolve_margins[margins4-expected4] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[1-expected0] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[2-expected1] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[3-expected2] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[4-expected3] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[5-expected4] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[6-expected5] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[7-expected6] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[8-expected7] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_insert_location[9-expected8] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_create_empty_layout_top_left PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_create_empty_layout_middle_center PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_add_one_column_by_reference_width PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_add_two_equal_columns PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_bounding_box_for_not_placed_layout PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_bounding_box_for_placed_layout PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_next_existing_column PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestTopLevelLayout::test_next_column_creates_a_new_column PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestColumn::test_size_calculation PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestColumn::test_render PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::test_paragraph_available_line_content_space PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithUnrestrictedHeight::test_empty_paragraph_dimensions PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithUnrestrictedHeight::test_render_empty_paragraph PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithUnrestrictedHeight::test_distribute_invalid_content PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithUnrestrictedHeight::test_distribute_common_case_without_nbsp PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithUnrestrictedHeight::test_distribute_with_nbsp PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithUnrestrictedHeight::test_distribute_too_long_lines PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithUnrestrictedHeight::test_distribute_too_long_lines_including_nbsp PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithRestrictedHeight::test_distribute_with_exact_height_match PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithRestrictedHeight::test_distribute_with_one_line_left_over PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphWithRestrictedHeight::test_distribute_with_all_lines_left_over PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphLeftAlignment::test_without_indentation PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphLeftAlignment::test_left_indentation PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphLeftAlignment::test_move_tab_to_next_line_if_following_content_does_not_fit PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphLeftAlignment::test_tab_and_text_do_not_fit_into_line PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphAlignment::test_without_indentation PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphAlignment::test_right_indentation PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphCenterAlignment::test_without_indentation PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphCenterAlignment::test_left_indentation PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphCenterAlignment::test_right_indentation PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphJustifiedAlignment::test_without_indentation PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestParagraphJustifiedAlignment::test_with_indentation PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestVerticalCellAlignment::test_line_properties PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestVerticalCellAlignment::test_bottom_alignment PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestVerticalCellAlignment::test_center_alignment PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestVerticalCellAlignment::test_top_alignment PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestVerticalCellAlignment::test_mixed_alignment PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestTextStrokeRendering::test_simple_stroke[1-STROKE(UNDERLINE, 3.0)] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestTextStrokeRendering::test_simple_stroke[4-STROKE(OVERLINE, 3.0)] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestTextStrokeRendering::test_simple_stroke[2-STROKE(STRIKE_THROUGH, 3.0)] PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestTextContinueStroke::test_continue_stroke_across_one_space PASSED [ 39%] tests/test_05_tools/test_517_text_layout.py::TestTextContinueStroke::test_continue_stroke_across_multiple_spaces PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestTextContinueStroke::test_do_not_continue_stroke_automatically PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestFractionCell::test_a_over_b PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestFractionCell::test_a_over_line_b PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestFractionCell::test_a_slanted_b PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::test_cell_converter PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_no_glue_between_content_raises_value_error[tt] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_no_glue_between_content_raises_value_error[tf] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_no_glue_between_content_raises_value_error[ft] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_no_glue_between_content_raises_value_error[ff] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_ignore_non_breaking_space_between_text_and_fraction[t~f] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_ignore_non_breaking_space_between_text_and_fraction[f~f] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_ignore_non_breaking_space_between_text_and_fraction[f~t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_ignore_pending_non_breaking_space PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_multiple_nbsp[t~t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_multiple_nbsp[t~~t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_multiple_nbsp[t~~~t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[t~ t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[t ~t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[t~~ t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[t ~~t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[~t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[~~t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[t#~t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[t~#t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_replace_useless_nbsp_by_spaces[t~#~t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_multiple_spaces[t t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_multiple_spaces[t t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_multiple_spaces[t t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_remove_pending_glue PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_prepending_space[ t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_prepending_space[ t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestNormalizeCells::test_preserve_prepending_space[ t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_shrink_space PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_default_min_width PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_expand_restricted_space PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_expand_unrestricted_space PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_total_height_is_zero PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_non_breaking_space_to_space PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_can_shrink PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestSpace::test_can_grow PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestRigidConnection::test_rigid_connection PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestRigidConnection::test_create_one_connection[t~t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestRigidConnection::test_create_one_connection[t~t~t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestRigidConnection::test_create_two_connections[t~t t~t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestRigidConnection::test_create_two_connections[t~t~t t~t~t] PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestRigidConnection::test_ignore_pending_non_breaking_space PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_setup PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_line_height_is_defined_by_max_content_height PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_line_total_width_is_defined_by_content PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_fill_until_line_is_full PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_left_tab PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_left_tab_without_tab_stops PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_center_tab PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::TestLeftLine::test_right_tab PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::test_shift_tab_stop_left_in_range PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::test_shift_tab_stops_beyond_left_border PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::test_shift_tab_stops_beyond_right_border PASSED [ 40%] tests/test_05_tools/test_517_text_layout.py::test_empty_paragraph PASSED [ 40%] tests/test_05_tools/test_518_header_guid.py::test_guid_string_matches_autocad_pattern PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_append_text PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_iadd_text PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_stacked_text_limits_style PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_stacked_text_with_horizontal_divider_line PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_stacked_text_with_slanted_divider_line PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_invalid_divider_char_raises_value_error PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_change_color_name PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_change_aci_color PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_aci_color_raises_value_error[-1] PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_aci_color_raises_value_error[257] PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_change_to_red_by_rgb PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_change_to_green_by_rgb PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_change_to_blue_by_rgb PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_change_font PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_scale_height_factor PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_absolute_text_height PASSED [ 40%] tests/test_05_tools/test_519_mtext_editor.py::test_change_width_factor PASSED [ 41%] tests/test_05_tools/test_519_mtext_editor.py::test_change_char_tracking_factor PASSED [ 41%] tests/test_05_tools/test_519_mtext_editor.py::test_change_oblique_angle PASSED [ 41%] tests/test_05_tools/test_519_mtext_editor.py::test_fluent_interface PASSED [ 41%] tests/test_05_tools/test_519_mtext_editor.py::test_grouping PASSED [ 41%] tests/test_05_tools/test_519_mtext_editor.py::test_underline_text PASSED [ 41%] tests/test_05_tools/test_519_mtext_editor.py::test_overline_text PASSED [ 41%] tests/test_05_tools/test_519_mtext_editor.py::test_strike_through_text PASSED [ 41%] tests/test_05_tools/test_519_mtext_editor.py::test_bullet_lists PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::test_underline PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::test_strike PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::test_overstrike PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::test_copy PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::test_equality PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::test_set_aci PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_default_properties PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_indent_first_line PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_indent_paragraph_left PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_indent_paragraph_right PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_center_alignment_without_indentation PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_center_alignment_with_indentation PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_one_tab_stop PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_multiple_tab_stops PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_different_kinds_of_tab_stops PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_indentation_and_multiple_tab_stops PASSED [ 41%] tests/test_05_tools/test_520_mtext_context.py::TestParagraphPropertiesToString::test_justified_alignment_and_multiple_tab_stops PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_parse_plain_text PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_three_adjacent_spaces PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_non_breaking_space PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_space_and_adjacent_non_breaking_space PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_tabulator_caret_I PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_new_paragraph_caret_J PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_replace_caret_chars_by_space PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_escaped_letters_building_words PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_invalid_escaped_letters_printed_verbatim PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_single_new_paragraph_token PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_new_paragraph_token_in_usual_context PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_single_new_column_token PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_grouping_chars_do_not_yield_tokens PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_parser_does_not_check_valid_grouping PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_wrap_at_dimline PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_decode_special_encodings PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_unknown_special_encodings PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContentParsing::test_percent_sign_usage PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_simple_horizontal_fraction PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_simple_diagonal_fraction PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_simple_limit_style_fraction PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_without_terminator_parsing_until_end_of_string PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_replace_all_caret_encoded_chars_by_space[A] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_replace_all_caret_encoded_chars_by_space[I] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_replace_all_caret_encoded_chars_by_space[J] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_replace_all_caret_encoded_chars_by_space[M] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_replace_all_caret_encoded_chars_by_space[Z] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_escape_terminator_char PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_escape_backslash_char PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_escape_stacking_type_char PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_escape_caret_char PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_escape_caret_new_line PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_remove_backslash_escape_char PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_preserve_second_stacking_type_char PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_preserve_second_caret_char PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_parse_without_stacking_type_char PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_next_word_after_stacking PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_next_semi_colon_after_stacking PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_extraction_of_expression[word\\p______;word] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_extraction_of_expression[word\\f______;word] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestParsingFractions::test_extraction_of_expression[word\\F______;word] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_underline_on PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_underline_on_off_for_multiple_words PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_consecutive_tokens_get_the_same_context_objects_if_unchanged PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_underline_on_off_creates_different_context_objects PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_overline_on_off PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_strike_through_on_off PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_stroke_on_off_multiple_times[\\L-\\l-underline] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_stroke_on_off_multiple_times[\\K-\\k-strike_through] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_switch_stroke_on_off_multiple_times[\\O-\\o-overline] PASSED [ 41%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_context_stack_for_grouping PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_bottom_alignment_with_terminator PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_middle_alignment_without_terminator PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_top_alignment_without_terminator PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_alignment_default_value_for_invalid_argument PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_font_b0_i0 PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_font_b1_i0 PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_font_b0_i1 PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_font_b1_i1 PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_font_uppercase_command PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_empty_font_command_does_not_change_font_properties PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_empty_font_family_name_does_not_change_font_properties PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H3] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H+3] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H+3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H-3] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H-3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H0.3e1] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H0.3e1;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H30e-1] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_height_command[\\H30e-1;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W3x] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W3x;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W+3x] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W+3x;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W-3x] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W-3x;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W0.3e1x] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W0.3e1x;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W30e-1x] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_height_command[\\W30e-1x;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\Hx] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\Hx;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H1-2;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H.3] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H.3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H.3x] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H.3x;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H.] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_invalid_height_command[\\H.;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W3] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W+3] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W+3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W-3] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W-3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W0.3e1] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W0.3e1;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W30e-1] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_width_command[\\W30e-1;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T3] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T+3] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T+3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T-3] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T-3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T0.3e1] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T0.3e1;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T30e-1] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_absolut_char_tracking_command[\\T30e-1;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T3x] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T3x;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T+3x] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T+3x;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T-3x] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T-3x;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T0.3e1x] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T0.3e1x;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T30e-1x] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_relative_char_tracking_command[\\T30e-1x;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q3] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q3;] PASSED [ 42%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q+3] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q+3;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q0.3e1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q0.3e1;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q30e-1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_positive_oblique_command[\\Q30e-1;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_negative_oblique_command[\\Q-3] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_negative_oblique_command[\\Q-3;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_negative_oblique_command[\\Q-0.3e1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_negative_oblique_command[\\Q-0.3e1;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_negative_oblique_command[\\Q-30e-1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_negative_oblique_command[\\Q-30e-1;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_aci_color[\\C3] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_aci_color[\\C3;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_aci_color[\\C03] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_aci_color[\\C03;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_aci_color_is_limited_to_256[\\C1000] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_aci_color_is_limited_to_256[\\C1000;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_rgb_color[\\c255] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_rgb_color[\\c255;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_rgb_color[\\c0255] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_rgb_color[\\c0255;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextContextParsing::test_rgb_color_overflow PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_first_line[i0;-0] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_first_line[i+1;-1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_first_line[i1.1;-1.1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_first_line[i-1;--1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_first_line[i-1.1;--1.1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_left[l0;-0] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_left[l+1;-1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_left[l1.1;-1.1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_left[l-1;--1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_left[l-1.1;--1.1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_right[r0;-0] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_right[r+1;-1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_right[r1.1;-1.1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_right[r-1;--1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_indent_right[r-1.1;--1.1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_paragraph_alignment[ql;-1] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_paragraph_alignment[qr;-2] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_paragraph_alignment[qc;-3] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_paragraph_alignment[qj;-4] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_paragraph_alignment[qd;-5] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_paragraph_alignment[q?;-0] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_tab_stops PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_combinations[i1,l2,r3,qc,t1,2,3;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_combinations[qc,l2,r3,i1,t1,2,3;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_combinations[xqc,xl2,xr3,xi1,xt1,2,3;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_combinations[xqcl2xr3xi1xt1,2,3;] PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_reset_arguments PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_invalid_tab_stops PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParagraphProperties::test_unknown_escape_sequence PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParserYieldsPropertyChangeCommands::test_change_height PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParserYieldsPropertyChangeCommands::test_change_height_without_semicolon PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParserYieldsPropertyChangeCommands::test_change_char_tracking PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParserYieldsPropertyChangeCommands::test_change_paragraph PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParserYieldsPropertyChangeCommands::test_one_char_commands PASSED [ 43%] tests/test_05_tools/test_521_mtext_parser.py::TestMTextParserYieldsPropertyChangeCommands::test_unknown_escape_sequence PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_scan_empty_text PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_non_empty_string_is_not_empty PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_peeking_next_letter PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_peeking_more_letters_ahead PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_peeking_beyond_word_boundaries_returns_empty_string PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_getting_next_letter_forwards_scan_position PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_consume_one_letter PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_consume_two_letter PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_getting_all_letters_empties_scanner PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_can_not_consume_zero_chars PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_can_not_consume_negative_chars PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_can_not_peek_in_reverse_direction PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_find_next_char PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_find_ignores_escaped_chars PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_find_next_backslash PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_not_find_next PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_substr_at_the_begin PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_substr_from_consumed_string PASSED [ 43%] tests/test_05_tools/test_522_text_scanner.py::TestTextScanner::test_substr_index_error PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_text_size_of_an_empty_string PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_text_width_of_a_single_char PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_text_width_of_a_string[ABC] PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_text_width_of_a_string[.,!] PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_text_width_of_a_string[ ] PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_text_width_of_a_string_for_width_factor_2[ABC] PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_text_width_of_a_string_for_width_factor_2[.,!] PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_text_width_of_a_string_for_width_factor_2[ ] PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_measurement_of_plain_text[ABC\n] PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_measurement_of_plain_text[ABC\r] PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_measurement_of_plain_text[AB^I] PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_measurement_of_plain_text[AB%%d] PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_support_for_text_size PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_mtext_size_of_an_empty_string PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_mtext_size_of_a_single_char PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_mtext_size_of_a_string PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_estimate_mtext_extents PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_mtext_size_of_2_lines[2.0-6.703281982585398] PASSED [ 44%] tests/test_05_tools/test_523_text_size.py::test_mtext_size_of_2_lines[3.0-10.054922973878098] PASSED [ 44%] tests/test_05_tools/test_524_block_reference_manager.py::test_non_exiting_handles_return_0 PASSED [ 44%] tests/test_05_tools/test_524_block_reference_manager.py::test_access_interface PASSED [ 44%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_simple_references PASSED [ 44%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_nested_block_references PASSED [ 44%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_used_in_xdata PASSED [ 44%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_used_in_app_data PASSED [ 44%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_used_in_xrecord PASSED [ 44%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_in_header_section PASSED [ 44%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_in_dimstyle PASSED [ 44%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_in_leader PASSED [ 44%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_for_anonymous_dimension_block PASSED [ 44%] tests/test_05_tools/test_524_block_reference_manager.py::test_count_references_in_mleader_style PASSED [ 44%] tests/test_05_tools/test_525_transparency.py::test_transparency_to_float[33554432-1.0] PASSED [ 44%] tests/test_05_tools/test_525_transparency.py::test_transparency_to_float[33554559-0.5] PASSED [ 44%] tests/test_05_tools/test_525_transparency.py::test_transparency_to_float[33554687-0.0] PASSED [ 44%] tests/test_05_tools/test_525_transparency.py::test_transparency_to_float[0-1.0] PASSED [ 44%] tests/test_05_tools/test_525_transparency.py::test_transparency_to_float[127-0.5] PASSED [ 44%] tests/test_05_tools/test_525_transparency.py::test_transparency_to_float[255-0.0] PASSED [ 44%] tests/test_05_tools/test_525_transparency.py::test_float_to_transparency[33554432-1.0] PASSED [ 44%] tests/test_05_tools/test_525_transparency.py::test_float_to_transparency[33554559-0.5] PASSED [ 44%] tests/test_05_tools/test_525_transparency.py::test_float_to_transparency[33554687-0.0] PASSED [ 44%] tests/test_05_tools/test_526_explode.py::test_virtual_entities_from_insert PASSED [ 44%] tests/test_05_tools/test_526_explode.py::test_transparency_of_virtual_entities_from_insert PASSED [ 44%] tests/test_05_tools/test_526_explode.py::test_complex_target_coordinate_system PASSED [ 44%] tests/test_05_tools/test_526_explode.py::test_explode_scaled_block_ref_containing_a_hatch PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestDefaultGfxAttribs::test_default_init PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestDefaultGfxAttribs::test_str PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestDefaultGfxAttribs::test_repr PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestDefaultGfxAttribs::test_as_dict PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestDefaultGfxAttribs::test_as_dict_default_values PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribsFromDict::test_set_aci_color PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribsFromDict::test_set_transparency_as_float PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribsFromDict::test_set_transparency_by_block PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribsFromDict::test_set_transparency_as_raw_dxf_value PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribsFromDict::test_validation_errors PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLayer::test_init_by_value PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLayer::test_init_by_invalid_value_raises_exception PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLayer::test_set_value PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLayer::test_set_invalid_value_raises_exception PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLayer::test_str PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLayer::test_repr PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribColor::test_init_by_value PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribColor::test_init_by_invalid_value_raises_exception PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribColor::test_set_value PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribColor::test_set_invalid_value_raises_exception PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribColor::test_str PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribColor::test_repr PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTrueColor::test_init_by_value PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTrueColor::test_init_by_invalid_value_raises_exception PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTrueColor::test_set_value PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTrueColor::test_reset_value PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTrueColor::test_set_invalid_value_raises_exception PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTrueColor::test_str PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTrueColor::test_repr PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetype::test_init_by_value PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetype::test_init_by_invalid_value_raises_exception PASSED [ 44%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetype::test_set_value PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetype::test_set_invalid_value_raises_exception PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetype::test_str PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetype::test_repr PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLineweight::test_init_by_value PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLineweight::test_init_by_invalid_value_raises_exception PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLineweight::test_set_value PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLineweight::test_set_invalid_value_raises_exception PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLineweight::test_str PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLineweight::test_repr PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_init_by_value PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_init_by_invalid_value_raises_exception PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_set_value[0.0] PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_set_value[0.5] PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_set_value[1.0] PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_set_by_block_value PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_reset_value PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_set_invalid_value_raises_exception PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_str PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_by_block_str PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribTransparency::test_repr PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_init_by_value PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_init_by_invalid_value_raises_exception PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_set_value[0.5] PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_set_value[1.0] PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_set_value[2.0] PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_set_value[1] PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_set_invalid_value_raises_exception[-1.0] PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_set_invalid_value_raises_exception[0.0] PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_set_invalid_value_raises_exception[-1] PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_str PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::TestGfxAttribLinetypeScale::test_repr PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::test_gfx_attribs_as_dict PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::test_transparency_by_block_as_dict PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::test_gfx_attribs_string PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::test_gfx_attribs_repr PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::test_load_header_defaults PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::test_write_back_header_defaults PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::test_from_entity PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::test_update_dxf_attributes_from_gfx_attribs PASSED [ 45%] tests/test_05_tools/test_527_gfxattribs.py::test_update_transparency_by_block_from_gfx_attribs PASSED [ 45%] tests/test_05_tools/test_528_difftags.py::test_equal_string_tags PASSED [ 45%] tests/test_05_tools/test_528_difftags.py::test_round_tags PASSED [ 45%] tests/test_05_tools/test_528_difftags.py::test_equal_rounded_float_tags PASSED [ 45%] tests/test_05_tools/test_528_difftags.py::test_equal_vertex_tags PASSED [ 45%] tests/test_05_tools/test_528_difftags.py::test_prepend_tag PASSED [ 45%] tests/test_05_tools/test_528_difftags.py::test_insert_tag PASSED [ 45%] tests/test_05_tools/test_528_difftags.py::test_append_tag PASSED [ 45%] tests/test_05_tools/test_528_difftags.py::test_replace_last_tag PASSED [ 45%] tests/test_05_tools/test_528_difftags.py::test_replace_inner_tag PASSED [ 45%] tests/test_05_tools/test_528_difftags.py::test_delete_last_tag PASSED [ 45%] tests/test_05_tools/test_528_difftags.py::test_delete_inner_tag PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::test_default_header PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::test_dump_header_string[400-400 0 1 0 \n25 ezdxf v1.2.0 ACIS Builder 12 ACIS 4.00 NT 24 Sat Jan 1 10:00:00 2022 \n1 9.9999999999999995e-007 1e-010 ] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::test_dump_header_string[700-700 0 1 0 \n@25 ezdxf v1.2.0 ACIS Builder @12 ACIS 32.0 NT @24 Sat Jan 1 10:00:00 2022 \n1 9.9999999999999995e-007 1e-010 ] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::test_dump_header_string[21800-21800 0 1 0 \n@25 ezdxf v1.2.0 ACIS Builder @14 ACIS 218.00 NT @24 Sat Jan 1 10:00:00 2022 \n1 9.9999999999999995e-007 1e-010 ] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::test_parse_header_str[18 ezdxf ACIS Builder 14 ACIS 208.00 NT 24 Sat Jan 1 10:00:00 2022 ] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::test_parse_header_str[@18 ezdxf ACIS Builder @14 ACIS 208.00 NT @24 Sat Jan 1 10:00:00 2022 ] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::test_parse_sat_header[400 0 1 0 \n25 ezdxf v1.2.0 ACIS Builder 12 ACIS 4.00 NT 24 Sat Jan 1 10:00:00 2022 \n1 9.9999999999999995e-007 1e-010 -400] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::test_parse_sat_header[21800 0 1 0 \n@25 ezdxf v1.2.0 ACIS Builder @14 ACIS 218.00 NT @24 Sat Jan 1 10:00:00 2022 \n1 9.9999999999999995e-007 1e-010 -21800] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestMergeRecordStrings::test_end_of_records_detection[data0] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestMergeRecordStrings::test_end_of_records_detection[data1] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestMergeRecordStrings::test_merge_records[data0] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestMergeRecordStrings::test_merge_records[data1] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestMergeRecordStrings::test_merge_records[data2] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestMergeRecordStrings::test_weird_placement_of_record_terminator PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestParseRecords::test_simple_case PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestParseRecords::test_sequence_numbers PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestParseRecords::test_non_continuous_sequence_numbers_raises_exception PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestParseRecords::test_merged_records[data0] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestParseRecords::test_merged_records[data1] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestParseRecords::test_merged_records[data2] PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::test_build_entities PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestAcisBuilder::test_parsing_result PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestAcisBuilder::test_body_entity PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestAcisBuilder::test_ptr_resolving PASSED [ 45%] tests/test_05_tools/test_529_acis_sat.py::TestAcisBuilder::test_attr_ptr_is_reset PASSED [ 46%] tests/test_05_tools/test_529_acis_sat.py::TestAcisBuilder::test_dump_sat_recreates_the_source_structure PASSED [ 46%] tests/test_05_tools/test_529_acis_sat.py::test_build_str_records PASSED [ 46%] tests/test_05_tools/test_530_acis_sab.py::test_decode_header PASSED [ 46%] tests/test_05_tools/test_530_acis_sab.py::test_encode_header PASSED [ 46%] tests/test_05_tools/test_530_acis_sab.py::test_decode_first_record PASSED [ 46%] tests/test_05_tools/test_530_acis_sab.py::test_decode_all_records PASSED [ 46%] tests/test_05_tools/test_530_acis_sab.py::test_parse_sab PASSED [ 46%] tests/test_05_tools/test_530_acis_sab.py::TestSabEntity::test_get_pointer_at_index PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::test_load_any_format[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_type_type[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_transform_attribute[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_transform_attribute_was_loaded[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_wire_attribute[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_get_all_lumps_as_a_list[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_lump_type[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_back_pointer_to_body[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_no_next_lump[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_attribute_to_first_shell[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_get_all_shells_as_a_list[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_shell_type[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_back_pointer_to_lump[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_has_no_next_shell[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_get_all_faces_as_a_list[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_type[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_back_pointer_to_shell[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_has_attribute_surface[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_features[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_traverse_all_six_cube_faces[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_type[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_location[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_normal[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_u_dir[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_has_infinite_bounds[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_type[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_cube_face_has_only_one_loop[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_references_the_parent_face[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_type[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_forward_linked_list[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_reverse_linked_list[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_partner_co_edge_count_is_two[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_have_partner_co_edges_other_faces[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_sense_of_co_edge_is_forward[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_references_the_parent_loop[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_type[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_a_start_vertex[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_an_end_vertex[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_sense_of_edge_is_forward[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_underlying_curve_of_edge[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_is_referenced_by_two_parent_co_edges[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_type[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_references_parent_edge[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_type[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_location[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_get_all_points[SAT_400] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::test_load_any_format[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_type_type[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_transform_attribute[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_transform_attribute_was_loaded[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_wire_attribute[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_get_all_lumps_as_a_list[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_lump_type[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_back_pointer_to_body[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_no_next_lump[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_attribute_to_first_shell[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_get_all_shells_as_a_list[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_shell_type[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_back_pointer_to_lump[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_has_no_next_shell[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_get_all_faces_as_a_list[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_type[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_back_pointer_to_shell[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_has_attribute_surface[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_features[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_traverse_all_six_cube_faces[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_type[SAT_700] PASSED [ 46%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_location[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_normal[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_u_dir[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_has_infinite_bounds[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_type[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_cube_face_has_only_one_loop[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_references_the_parent_face[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_type[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_forward_linked_list[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_reverse_linked_list[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_partner_co_edge_count_is_two[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_have_partner_co_edges_other_faces[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_sense_of_co_edge_is_forward[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_references_the_parent_loop[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_type[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_a_start_vertex[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_an_end_vertex[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_sense_of_edge_is_forward[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_underlying_curve_of_edge[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_is_referenced_by_two_parent_co_edges[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_type[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_references_parent_edge[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_type[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_location[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_get_all_points[SAT_700] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::test_load_any_format[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_type_type[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_transform_attribute[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_transform_attribute_was_loaded[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_wire_attribute[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_get_all_lumps_as_a_list[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_lump_type[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_back_pointer_to_body[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_no_next_lump[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_attribute_to_first_shell[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_get_all_shells_as_a_list[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_shell_type[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_back_pointer_to_lump[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_has_no_next_shell[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_get_all_faces_as_a_list[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_type[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_back_pointer_to_shell[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_has_attribute_surface[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_features[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_traverse_all_six_cube_faces[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_type[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_location[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_normal[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_u_dir[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_has_infinite_bounds[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_type[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_cube_face_has_only_one_loop[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_references_the_parent_face[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_type[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_forward_linked_list[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_reverse_linked_list[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_partner_co_edge_count_is_two[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_have_partner_co_edges_other_faces[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_sense_of_co_edge_is_forward[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_references_the_parent_loop[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_type[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_a_start_vertex[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_an_end_vertex[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_sense_of_edge_is_forward[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_underlying_curve_of_edge[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_is_referenced_by_two_parent_co_edges[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_type[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_references_parent_edge[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_type[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_location[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_get_all_points[SAB_R2013] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::test_load_any_format[SAB_R2018] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_type_type[SAB_R2018] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_transform_attribute[SAB_R2018] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_transform_attribute_was_loaded[SAB_R2018] PASSED [ 47%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_has_wire_attribute[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_get_all_lumps_as_a_list[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_lump_type[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_back_pointer_to_body[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_no_next_lump[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_has_attribute_to_first_shell[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_get_all_shells_as_a_list[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_shell_type[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_back_pointer_to_lump[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_has_no_next_shell[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_get_all_faces_as_a_list[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_type[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_back_pointer_to_shell[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_has_attribute_surface[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_face_features[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestFace::test_traverse_all_six_cube_faces[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_type[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_location[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_normal[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_u_dir[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestPlane::test_plane_has_infinite_bounds[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_type[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_cube_face_has_only_one_loop[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_loop_references_the_parent_face[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_type[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_forward_linked_list[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_are_organized_as_a_reverse_linked_list[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_partner_co_edge_count_is_two[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edges_have_partner_co_edges_other_faces[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_sense_of_co_edge_is_forward[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestCoedge::test_co_edge_references_the_parent_loop[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_type[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_a_start_vertex[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_has_an_end_vertex[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_sense_of_edge_is_forward[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_underlying_curve_of_edge[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestEdge::test_edge_is_referenced_by_two_parent_co_edges[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_type[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestVertex::test_vertex_references_parent_edge[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_type[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_point_location[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestPoint::test_get_all_points[SAB_R2018] PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestBody::test_append_lumps PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestLump::test_append_shells PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestShell::test_append_faces PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestPolyhedronFaceBuilder::test_creates_six_faces PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestPolyhedronFaceBuilder::test_each_face_defines_a_plane_surface PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_set_closed_coedges PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestLoop::test_set_open_coedges PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::test_default_partner_co_edge_count_is_two PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestExportSat::test_export_rejects_unsupported_acis_versions PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestExportSat::test_export_acis_700 PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestExportSab21800::test_export_rejects_unsupported_acis_versions PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestExportSab21800::test_reload_records_from_acis_export PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::test_load_mesh_from_exported_sat_data PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::test_load_mesh_from_exported_sab_data PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestExportTransform::test_export_sat_identity_matrix PASSED [ 48%] tests/test_05_tools/test_531_acis_entities.py::TestExportTransform::test_export_sab_identity_matrix PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPrismToMesh::test_mesh_has_10_faces PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPrismToMesh::test_mesh_has_8_unique_vertices PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPrismToMesh::test_all_faces_have_at_least_3_vertices PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPrismToMesh::test_any_face_has_at_least_4_vertices PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_six_faces_will_be_created PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_each_face_gets_it_own_plane PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_each_face_has_a_single_loop PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_for_24_unique_coedges PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_coedge_references_parent_loop PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_for_partner_coedges PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_for_12_unique_edges PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_edges_have_a_parent_coedge PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_each_edges_has_a_unique_straight_line PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_for_8_unique_vertices PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_for_8_unique_points PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestPolyhedronFaceBuilder::test_build_multiple_times_independent_faces PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::test_rebuild_mesh_from_acis_body PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestTransformCenterOfMeshToOriginAtConversionToAcisBody::test_transformation_matrix_for_translation PASSED [ 48%] tests/test_05_tools/test_532_acis_mesh.py::TestTransformCenterOfMeshToOriginAtConversionToAcisBody::test_if_acis_points_are_centered_around_the_origin PASSED [ 49%] tests/test_05_tools/test_532_acis_mesh.py::test_non_manifold_detection PASSED [ 49%] tests/test_05_tools/test_532_acis_mesh.py::test_body_from_menger_sponge_is_manifold PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::test_filter_noise PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::test_merge_wrapped_spec_line PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::test_do_not_merge_spec_without_name PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::test_big_font_not_supported PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_shape_file_name PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_cap_height PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_descender PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_mode PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_encoding PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_embed PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_is_font PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_shape_count PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_shape_by_number PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_find_shape_by_name PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestFontShapeFile::test_find_undefined_shape PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestShapeFile::test_is_a_shape_file PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestShapeFile::test_shape_by_number PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestShapeFile::test_shape_by_name PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_render_only_lines PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_render_bulges PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_render_full_circle_by_octant_arc PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_render_ccw_fractional_arcs_number_nine PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_render_ccw_fractional_arcs_ampersand PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_render_clockwise_fractional_arcs_letter_c PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_unsupported_non_printable_shape_number_returns_empty_path PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_unsupported_printable_shape_number_returns_empty_box PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestShapeRenderer::test_empty_box_has_advance_width_like_glyph_A PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestLoadShxShapeFile::test_shape_count PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestLoadShxShapeFile::test_shape_file_has_no_name PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestLoadShxShapeFile::test_shape_data PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestLoadShxFontFile::test_shape_count PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestLoadShxFontFile::test_some_shape_data PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestLoadUnifontFile::test_shape_count PASSED [ 49%] tests/test_05_tools/test_533_shapefiles.py::TestLoadUnifontFile::test_one_shape_data PASSED [ 49%] tests/test_05_tools/test_534_dwg_info.py::test_detect[R12] PASSED [ 49%] tests/test_05_tools/test_534_dwg_info.py::test_detect[R2000] PASSED [ 49%] tests/test_05_tools/test_534_dwg_info.py::test_detect[R2018] PASSED [ 49%] tests/test_05_tools/test_534_dwg_info.py::test_detect[unknown] PASSED [ 49%] tests/test_05_tools/test_534_dwg_info.py::test_detect_invalid[invalid] PASSED [ 49%] tests/test_05_tools/test_534_dwg_info.py::test_detect_invalid[empty] PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadResourcesWithoutNamingConflicts::test_loading_a_simple_layer PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadResourcesWithoutNamingConflicts::test_loading_a_shape_linetype PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadResourcesWithoutNamingConflicts::test_loading_a_text_linetype PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadResourcesWithoutNamingConflicts::test_loading_layer_with_complex_linetype PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadResourcesWithoutNamingConflicts::test_loading_a_text_style_with_extended_font_data PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadResourcesWithoutNamingConflicts::test_loading_dimstyle PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadResourcesWithoutNamingConflicts::test_loading_layer_with_custom_default_material PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadEntities::test_load_plain_entity PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadEntities::test_load_entity_layer_without_layer_table_entry PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadEntities::test_load_entity_with_xdata PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadEntities::test_load_entity_with_reactors PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadEntities::test_load_entity_with_extension_dict PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadTextEntities::test_load_text_entity PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadTextEntities::test_load_mtext_entity PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadTextEntities::test_attdef_with_embedded_mtext_entity PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::test_load_mtext_with_columns PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadLinkedEntities::test_load_polyline PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLoadLinkedEntities::test_load_polyface PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestBlocks::test_load_block_layout PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestBlocks::test_load_block_layout_does_type_checking PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestBlocks::test_load_block_reference PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestBlocks::test_load_block_reference_attributes PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestAnonymousBlocks::test_load_anonymous_block PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::test_loaded_external_reference PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::test_load_hard_owned_XRecord_within_appdata_section PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::test_load_hard_owned_XRecord_by_extension_dict PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestDimension::test_load_dimension_style_exist PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestDimension::test_loaded_geometry_block_exist PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestDimensionDimStyleOverride::test_load_dimension_style_exist PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestDimensionDimStyleOverride::test_dot_blocks_in_source_doc PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestDimensionDimStyleOverride::test_loaded_geometry_block_has_two_block_refs_of_dot PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestDimensionDimStyleOverride::test_loaded_xdata_override_has_handle_to_existing_block PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLeader::test_loaded_leader_is_linked_to_loaded_text PASSED [ 49%] tests/test_05_tools/test_535_xref_basic.py::TestLeader::test_loaded_xdata_override_has_handle_to_existing_block PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::test_tolerance_entity_register_dimstyle PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::test_associative_hatch_has_updated_source_boundary_handles PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadImage::test_loaded_infrastructure PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadImage::test_loaded_images_share_image_definition PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadImage::test_loaded_image_def_reactors PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadWipeout::test_loaded_infrastructure PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadWipeout::test_loaded_wipeout_has_same_boundary_path PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadMLine::test_loaded_infrastructure PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadMLine::test_loaded_mline_has_correct_style_attributes PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadMLine::test_loaded_mline_has_same_vertices PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestMultiLeaderMText::test_loaded_infrastructure PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestMultiLeaderMText::test_loaded_mleader_mtext_style PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestMultiLeaderMText::test_loader_multileader_attributes PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestMultiLeaderBlock::test_loaded_mleader_block_style PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestMultiLeaderBlock::test_loaded_mleader_attributes PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestMultiLeaderBlock::test_loaded_block_attributes PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestUnderlay::test_loaded_infrastructure PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestUnderlay::test_loaded_attributes PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadPaperspaceLayout::test_loaded_infrastructure PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadPaperspaceLayout::test_loaded_paperspace_without_name_conflict PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadPaperspaceLayout::test_loaded_paperspace_content PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadPaperspaceLayout::test_paperspace_name_conflict PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadPaperspaceViewport::test_loaded_viewport_attributes PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadPaperspaceViewport::test_loaded_clipping_entity PASSED [ 50%] tests/test_05_tools/test_535_xref_basic.py::TestLoadPaperspaceViewport::test_loaded_sun PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLayers::test_conflict_policy_keep PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLayers::test_xref_rename_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLayers::test_xref_rename_policy_load_2_times PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLayers::test_numbered_rename_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLayers::test_numbered_rename_policy_load_2_times PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLinetypes::test_conflict_policy_keep PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLinetypes::test_xref_rename_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLinetypes::test_numbered_rename_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadTextStyles::test_conflict_policy_keep PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadTextStyles::test_xref_rename_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadTextStyles::test_numbered_rename_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadDimStyles::test_conflict_policy_keep PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadDimStyles::test_xref_rename_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadDimStyles::test_numbered_rename_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMaterials::test_conflict_policy_keep PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMaterials::test_xref_rename_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMaterials::test_numbered_rename_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMLineStyles::test_conflict_policy_keep PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMLineStyles::test_xref_rename_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMLineStyles::test_numbered_rename_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMLeaderStyles::test_conflict_policy_keep PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMLeaderStyles::test_xref_rename_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadMLeaderStyles::test_numbered_rename_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadTextWithExistingTextstyle::test_keep_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadTextWithExistingTextstyle::test_xref_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLineWithExistingLinetype::test_keep_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLineWithExistingLinetype::test_xref_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadLineWithExistingComplexLinetype::test_xref_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadEntityWithExistingMaterial::test_keep_policy PASSED [ 50%] tests/test_05_tools/test_536_xref_conflict.py::TestLoadEntityWithExistingMaterial::test_xref_policy PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestInplaceMethod::test_transformation_by_matrix_without_errors[doc] PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestInplaceMethod::test_transformation_by_matrix_without_errors[virtual] PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestInplaceMethod::test_non_uniform_transformation[doc] PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestInplaceMethod::test_entities_without_transformation_support PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestInplaceMethod::test_acis_entities PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestConvenientFunctions::test_translate PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestConvenientFunctions::test_scale_uniform PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestConvenientFunctions::test_scale PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestConvenientFunctions::test_z_rotate PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestConvenientFunctions::test_y_rotate PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestConvenientFunctions::test_x_rotate PASSED [ 50%] tests/test_05_tools/test_537_transform.py::test_circle_non_uniform_scaling PASSED [ 50%] tests/test_05_tools/test_537_transform.py::test_polyline_non_uniform_scaling PASSED [ 50%] tests/test_05_tools/test_537_transform.py::test_virtual_entities_do_not_support_non_uniform_scaling PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestVirtualCopies::test_just_copy PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestVirtualCopies::test_scale_virtual_circular_arcs_non_uniform PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestVirtualCopies::test_scale_virtual_polyline_with_bulge_non_uniform PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestMLeaderNonUniformScaling::test_transformation_will_not_be_applied_inplace PASSED [ 50%] tests/test_05_tools/test_537_transform.py::TestMLeaderNonUniformScaling::test_mleader_will_not_copied PASSED [ 50%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[word \\H100; word] PASSED [ 50%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[word \\H100 word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[\\H100; word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[\\H100 word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[word \\H100;] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[word \\H100] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[\\H100;] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[\\H100] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scale_absolute_height_commands[\\H100.000] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[word \\H100; word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[word \\H100 word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[\\H100; word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[\\H100 word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[word \\H100;] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[word \\H100] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[\\H100;] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_scaling_preserves_content_structure[\\H100] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[word \\H100x; word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[word \\H100x word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[\\H100x; word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[\\H100x word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[word \\H100x;] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[word \\H100x] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[\\H100x;] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[\\H100x] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_does_not_scale_relative_height_commands[\\H100.000x] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H; word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H0 word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H0; word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[\\H; word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[\\H word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[\\H0 word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[\\H0; word] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H;] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H0] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_invalid_constructs_are_preserved[word \\H0;] PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_negative_factor PASSED [ 51%] tests/test_05_tools/test_538_scale_mtext_inline_commands.py::test_empty_content PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints2d::test_conversion PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints2d::test_extents PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints2d::test_transform_inplace PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints2d::test_to_tuples PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints2d::test_to_list PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints3d::test_conversion PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints3d::test_extents PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPoints3d::test_transform_inplace PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_clone PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_start_point PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_end_point PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_has_subpaths PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_has_no_subpaths PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_to_path_2d PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_extents PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_transform PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_start_point_only_path PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_from_empty_path PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2d::test_create_empty_path_from_none PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_extend_empty_path PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_extend_by_empty_path PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_extend_by_empty_2d_path PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_extend_by_empty_list PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_concatenate_adjacent_paths PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_concatenate_separated_paths PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_concatenate_all_paths PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_concatenate_curves PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestNumpyPath2dExtend::test_concatenate_empty_list_returns_empty_path PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestSubPaths::test_empty_path PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestSubPaths::test_single_path PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestSubPaths::test_multipath_of_two PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestSubPaths::test_multipath_with_curve3 PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestSubPaths::test_multipath_with_curve4 PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestSubPaths::test_sub_paths_are_reversible PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::test_path_conversion_methods PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::test_flatten_path PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_empty_path PASSED [ 51%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_one_line PASSED [ 52%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_one_curve3 PASSED [ 52%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_one_curve4 PASSED [ 52%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_path_ctrl_vertices PASSED [ 52%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_flattened_path PASSED [ 52%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_multi_path PASSED [ 52%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_reversing_multi_path_with_a_move_to_cmd_at_the_end PASSED [ 52%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_has_clockwise_orientation PASSED [ 52%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_has_counter_clockwise_orientation PASSED [ 52%] tests/test_05_tools/test_539_npshapes.py::TestReversePath::test_cw_and_ccw_orientation PASSED [ 52%] tests/test_05_tools/test_539_npshapes.py::test_clockwise_orientation_of_implicit_closed_path PASSED [ 52%] tests/test_05_tools/test_539_npshapes.py::test_clockwise_orientation_of_explicit_closed_path PASSED [ 52%] tests/test_05_tools/test_539_npshapes.py::test_counter_clockwise_orientation_of_implicit_closed_path PASSED [ 52%] tests/test_05_tools/test_539_npshapes.py::test_counter_clockwise_orientation_of_explicit_closed_path PASSED [ 52%] tests/test_05_tools/test_540_lff_parser.py::test_load_font PASSED [ 52%] tests/test_05_tools/test_540_lff_parser.py::test_glyph_A PASSED [ 52%] tests/test_05_tools/test_540_lff_parser.py::test_glyph_dollar PASSED [ 52%] tests/test_05_tools/test_540_lff_parser.py::test_composite_glyph PASSED [ 52%] tests/test_05_tools/test_540_lff_parser.py::test_render_glyphs PASSED [ 52%] tests/test_05_tools/test_540_lff_parser.py::test_scan_int_ex PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestClippingRect::test_clipping_points PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestClippingRect::test_clipping_lines PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestClippingRect::test_clip_polyline PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_extents PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_remove_empty_clipping_shapes PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_inside[point0] PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_inside[point1] PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_inside[point2] PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_inside[point3] PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_inside[point4] PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_inside[point5] PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_outside[point0] PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_outside[point1] PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_point_outside[point2] PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_clip_line_1 PASSED [ 52%] tests/test_05_tools/test_541_clipping_portal.py::TestMultiClip::test_clip_line_2 PASSED [ 52%] tests/test_05_tools/test_542_itertools.py::TestTake2::test_empty_list PASSED [ 52%] tests/test_05_tools/test_542_itertools.py::TestTake2::test_1_item PASSED [ 52%] tests/test_05_tools/test_542_itertools.py::TestTake2::test_2_items PASSED [ 52%] tests/test_05_tools/test_542_itertools.py::TestTake2::test_3_items PASSED [ 52%] tests/test_05_tools/test_542_itertools.py::TestTake2::test_4_items PASSED [ 52%] tests/test_05_tools/test_542_itertools.py::TestPairwiseOpen::test_empty_list PASSED [ 52%] tests/test_05_tools/test_542_itertools.py::TestPairwiseOpen::test_1_item PASSED [ 52%] tests/test_05_tools/test_542_itertools.py::TestPairwiseOpen::test_2_items PASSED [ 52%] tests/test_05_tools/test_542_itertools.py::TestPairwiseOpen::test_3_items PASSED [ 52%] tests/test_05_tools/test_542_itertools.py::TestPairwiseClose::test_empty_list PASSED [ 52%] tests/test_05_tools/test_542_itertools.py::TestPairwiseClose::test_1_item PASSED [ 52%] tests/test_05_tools/test_542_itertools.py::TestPairwiseClose::test_2_items PASSED [ 52%] tests/test_05_tools/test_542_itertools.py::TestPairwiseClose::test_3_items PASSED [ 52%] tests/test_06_math/test_600_base.py::test_left_of_line PASSED [ 52%] tests/test_06_math/test_600_base.py::test_point_to_line_relation_left PASSED [ 52%] tests/test_06_math/test_600_base.py::test_left_of_line_or_on_the_line PASSED [ 52%] tests/test_06_math/test_600_base.py::test_point_ot_line_relation_on_line PASSED [ 52%] tests/test_06_math/test_600_base.py::test_xround PASSED [ 52%] tests/test_06_math/test_600_base.py::test_enclosing_angles PASSED [ 52%] tests/test_06_math/test_600_base.py::test_no_points PASSED [ 52%] tests/test_06_math/test_600_base.py::test_one_points PASSED [ 52%] tests/test_06_math/test_600_base.py::test_two_points PASSED [ 52%] tests/test_06_math/test_600_base.py::test_more_points PASSED [ 52%] tests/test_06_math/test_600_base.py::test_decdeg2dms PASSED [ 52%] tests/test_06_math/test_600_base.py::test_linspace PASSED [ 52%] tests/test_06_math/test_600_base.py::test_area PASSED [ 52%] tests/test_06_math/test_601_bulge.py::test_bulge_radius PASSED [ 52%] tests/test_06_math/test_601_bulge.py::test_bulge_center PASSED [ 52%] tests/test_06_math/test_601_bulge.py::test_arc_to_bulge PASSED [ 52%] tests/test_06_math/test_601_bulge.py::test_bulge_3_points PASSED [ 52%] tests/test_06_math/test_601_bulge.py::test_bulge_to_arc PASSED [ 52%] tests/test_06_math/test_601_bulge.py::TestBulgeFromRadiusAndChord::test_semi_circle_bulge PASSED [ 52%] tests/test_06_math/test_601_bulge.py::TestBulgeFromRadiusAndChord::test_half_bulge PASSED [ 52%] tests/test_06_math/test_601_bulge.py::TestBulgeFromRadiusAndChord::test_radius_of_zero PASSED [ 52%] tests/test_06_math/test_601_bulge.py::TestBulgeFromRadiusAndChord::test_too_small_radius_for_chord PASSED [ 52%] tests/test_06_math/test_601_bulge.py::test_bulge_from_arc_angle[180-1.0] PASSED [ 52%] tests/test_06_math/test_601_bulge.py::test_bulge_from_arc_angle[-180--1.0] PASSED [ 52%] tests/test_06_math/test_601_bulge.py::test_bulge_from_arc_angle[106.26020471-0.5] PASSED [ 52%] tests/test_06_math/test_601_bulge.py::test_bulge_from_arc_angle[-106.26020471--0.5] PASSED [ 52%] tests/test_06_math/test_601_bulge.py::test_bulge_from_arc_angle[56.14497387-0.25] PASSED [ 53%] tests/test_06_math/test_601_bulge.py::test_bulge_from_arc_angle[-56.14497387--0.25] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_default_constructor[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_init_one_param[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_invalid_one_param_init[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_invalid_param_count[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_init_two_params[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_init_three_params[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_immutable_attributes[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_from_angle[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_usage_as_tuple[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_get_item_positive_index[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_get_item_negative_index[Vec3--1] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_get_item_negative_index[Vec3--2] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_get_item_negative_index[Vec3--3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_get_item_does_not_support_slicing[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_vec2[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_round[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_iter[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_deep_copy[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_get_angle[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_spatial_angle[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_compare_vectors[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_xy[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_null[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_null_default_abs_tol[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_null_default_abs_tol[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_bool[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_magnitude[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_magnitude_square[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_normalize[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_normalize_to_length[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_normalize_error[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_orthogonal_ccw[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_orthogonal_cw[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_negative[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_add_vector[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_iadd_vector[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_radd_vector[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_add_scalar_type_error[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_radd_scalar_type_error[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_iadd_scalar_type_error[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_sub_vector[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_isub_vector[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_rsub_vector[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_sub_scalar_type_error[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_rsub_scalar_vector_type_error[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_isub_scalar_type_error[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_mul_scalar[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_mul_tuple_type_error[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_imul_scalar[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_imul_tuple_type_error[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_rmul_scalar[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_rmul_tuple_type_error[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_div_scalar[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_idiv_scalar[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_div_tuple_type_error[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_rdiv_scalar_type_error[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_rdiv_tuple_type_error[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_inplace_operations_do_not_mutate_vec3_inplace PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_dot_product[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_angle_deg[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_angle_between[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_angle_between_null_vector[Vec3-v10-v20] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_angle_between_null_vector[Vec3-v11-v21] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_angle_between_null_vector[Vec3-v12-v22] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_angle_about[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_cross_product[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_rot_z[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_lerp[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_replace[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_project[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_vec3_sum[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_picklable[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_equal[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_not_equal[Vec3] PASSED [ 53%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec3-1.000001-1.0000019-1e-06] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec3-10.000001-10.0000019-1e-07] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec3-100.000001-100.0000019-1e-08] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec3-1000.000001-1000.0000019-1e-09] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec3-10000.000001-10000.0000019-1e-10] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec3-100000.000001-100000.0000019-1e-11] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_relative_tolerance[Vec3-1000000.000001-1000000.0000019-1e-12] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec3-1.000001-1.0000019-1e-07] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec3-10.000001-10.0000019-1e-08] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec3-100.000001-100.0000019-1e-09] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec3-1000.000001-1000.0000019-1e-10] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec3-10000.000001-10000.0000019-1e-11] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec3-100000.000001-100000.0000019-1e-12] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_not_close_relative_tolerance[Vec3-1000000.000001-1000000.0000019-1e-13] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec3-10.00000001-10.000000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec3-100.0000001-100.00000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec3-1000.000001-1000.0000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec3-10000.00001-10000.000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_for_fixed_relative_tolerance[Vec3-100000.0001-100000.00019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec3-10.000001-10.0000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec3-100.000001-100.0000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec3-1000.000001-1000.0000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec3-10000.000001-10000.0000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec3-100000.000001-100000.0000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_close_absolute_tolerance[Vec3-1000000.000001-1000000.0000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec3-10.000001-10.0000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec3-100.000001-100.0000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec3-1000.000001-1000.0000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec3-10000.000001-10000.0000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec3-100000.000001-100000.0000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_is_not_close_absolute_tolerance[Vec3-1000000.000001-1000000.0000019] PASSED [ 54%] tests/test_06_math/test_602_vec3.py::test_loosing_floating_point_precision_for_big_values PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_init_tuple[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_init_tuple[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_empty_init[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_empty_init[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_init_vec2[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_init_vec2[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_compatible_to_vector PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_vec3[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_round[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_from_angle[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_from_angle[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_vec2_as_tuple[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_iter[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_iter[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_deep_copy PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_get_angle[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_get_angle[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_compare_vectors[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_compare_vectors[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_close[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_close[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_null[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_null[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_not_null_default_abs_tol[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_not_null_default_abs_tol[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_null_default_abs_tol[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_is_null_default_abs_tol[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_bool[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_bool[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_magnitude[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_magnitude[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_normalize[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_normalize[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_normalize_to_length[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_normalize_to_length[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_orthogonal_ccw[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_orthogonal_ccw[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_orthogonal_cw[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_orthogonal_cw[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_negative[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_negative[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_add_vector[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_add_vector[Vec3] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_add_vec3[Vec2] PASSED [ 54%] tests/test_06_math/test_603_vec2.py::test_iadd_vector[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_inplace_operations_do_not_mutate_vec2_inplace PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_add_scalar_type_erorr[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_add_scalar_type_erorr[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_iadd_scalar_type_error[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_iadd_scalar_type_error[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_radd_scalar_type_error[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_radd_scalar_type_error[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_radd_tuple_type_error[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_sub_vector[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_sub_vector[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_isub_vector[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_sub_vec3[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_sub_scalar_type_error[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_sub_scalar_type_error[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_isub_scalar_type_erorr[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_isub_scalar_type_erorr[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rsub_tuple[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rsub_scalar_type_error[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rsub_scalar_type_error[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_mul_scalar[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_mul_scalar[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_imul_scalar[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_imul_scalar[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rmul_scalar[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rmul_scalar[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_mul_tuple_type_error[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_mul_tuple_type_error[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rmul_tuple_type_error[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rmul_tuple_type_error[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_imul_tuple_type_error[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_imul_tuple_type_error[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_div_scalar[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_div_scalar[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_idiv_scalar[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_idiv_scalar[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_dot_product[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_dot_product[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_deg[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_deg[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec2-v10-v20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec2-v11-v21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec2-v12-v22] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec3-v10-v20] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec3-v11-v21] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_null_vector[Vec3-v12-v22] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_angle_between_outside_domain PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rotate[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_rotate[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_lerp[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_lerp[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_project[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_project[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_det[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_sum[Vec2] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_sum[Vec3] PASSED [ 55%] tests/test_06_math/test_603_vec2.py::test_picklable[Vec2] PASSED [ 55%] tests/test_06_math/test_604_banded_matrix.py::test_detect_banded_matrix PASSED [ 55%] tests/test_06_math/test_604_banded_matrix.py::test_compact_banded_matrix PASSED [ 55%] tests/test_06_math/test_604_banded_matrix.py::test_solve_banded_matrix_vector PASSED [ 55%] tests/test_06_math/test_604_banded_matrix.py::test_solve_banded_matrix_matrix PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_matrix_getter PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_matrix_setter PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_row PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_set_row PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_set_row_error PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_col PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_set_col PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_set_col_error PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_freeze_matrix PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_mul PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_imul PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_transpose PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_add PASSED [ 55%] tests/test_06_math/test_604_linalg.py::test_iadd PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_sub PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_build_matrix_by_rows PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_build_matrix_by_cols PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_diag PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_set_diag_float PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_set_diag_above PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_set_diag_below PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_set_diag_iterable PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_identity PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_gauss_vector_solver PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_gauss_matrix_solver PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_gauss_jordan_vector_solver PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_gauss_jordan_matrix_solver PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_gauss_jordan_inverse PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_LU_decomposition_solve_vector PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_LU_decomposition_solve_matrix PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_LU_decomposition_inverse PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_determinant PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_tridiagonal_vector_solver PASSED [ 56%] tests/test_06_math/test_604_linalg.py::test_tridiagonal_matrix_solver PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_default_constructor[Matrix44-0] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_default_constructor[Matrix44-1] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_default_constructor[Matrix44-2] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_default_constructor[Matrix44-3] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_numbers_constructor[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_row_constructor[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_invalid_row_constructor[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_invalid_number_constructor[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_item_does_not_support_slicing[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_item_index_error[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_item_does_not_support_slicing[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_item_index_error[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_iter[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_copy[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_row_index_error[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_row[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_row_index_error[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_col[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_get_col_index_error[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_col[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_set_col_index_error[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_is_orthogonal[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_is_cartesian[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_translate[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_scale[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_x_rotate[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_y_rotate[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_z_rotate[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_chain[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_chain2[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_transform[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_multiply[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_transpose[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_inverse_error[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_determinant[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_axis_rotate_for_axis_normalization[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_assign_after_initialized[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_picklable[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_shear_xy[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_from_2d_transformation[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_from_2d_transformation_checks_component_count[Matrix44-components0] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_from_2d_transformation_checks_component_count[Matrix44-components1] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestMatrix44::test_from_2d_transformation_checks_component_count[Matrix44-components2] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::test_has_matrix_2d_stretching PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::test_has_matrix_3d_stretching PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestFast2dTransform::test_fast_translate[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestFast2dTransform::test_fast_z_rotate[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestFast2dTransform::test_fast_scale[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestFast2dTransform::test_fast_scale_rotate_translate[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestTransformArrayInplace::test_ndim_2[Matrix44] PASSED [ 56%] tests/test_06_math/test_605_matrix44.py::TestTransformArrayInplace::test_ndim_3[Matrix44] PASSED [ 56%] tests/test_06_math/test_606_convexhull.py::test_convex_hull_raises PASSED [ 56%] tests/test_06_math/test_606_convexhull.py::test_convex_hull_set1 PASSED [ 56%] tests/test_06_math/test_606_convexhull.py::test_convex_hull_set2 PASSED [ 56%] tests/test_06_math/test_606_convexhull.py::test_convex_hull_set3 PASSED [ 56%] tests/test_06_math/test_607_perlin_noise.py::test_simplex_2d_range PASSED [ 57%] tests/test_06_math/test_607_perlin_noise.py::test_simplex_2d_octaves_range PASSED [ 57%] tests/test_06_math/test_607_perlin_noise.py::test_simplex_3d_range PASSED [ 57%] tests/test_06_math/test_607_perlin_noise.py::test_simplex_3d_octaves_range PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_virtual PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_with_vertical PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_with_horizontal PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_with_vertical_and_horizontal PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_parallel_vertical PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_parallel_horizontal PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_normal_vertical PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersection_by_line_end_points PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_real PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_real_colinear PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_coincident_lines[horiz] PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_coincident_lines[vert] PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_intersect_coincident_lines[diag] PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_issue_128 PASSED [ 57%] tests/test_06_math/test_608_intersection_line_line_2d.py::test_issue_664 PASSED [ 57%] tests/test_06_math/test_609_point_on_line.py::test_distance_point_horiz_line PASSED [ 57%] tests/test_06_math/test_609_point_on_line.py::test_distance_point_vertical_line PASSED [ 57%] tests/test_06_math/test_609_point_on_line.py::test_is_point_on_horiz_line PASSED [ 57%] tests/test_06_math/test_609_point_on_line.py::test_is_point_on_vertical_line PASSED [ 57%] tests/test_06_math/test_609_point_on_line.py::test_is_point_on_diag_line PASSED [ 57%] tests/test_06_math/test_610_ocs.py::test_wcs_to_ocs PASSED [ 57%] tests/test_06_math/test_610_ocs.py::test_ocs_to_wcs PASSED [ 57%] tests/test_06_math/test_610_ocs.py::test_matrix44_to_ocs PASSED [ 57%] tests/test_06_math/test_610_ocs.py::test_matrix44_to_wcs PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_ucs_init PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_ucs_init_ux_uy PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_ucs_init_ux_uz PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_ucs_init_uy_uz PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_translation PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_rotation PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_matrix44_rotation PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_transformation PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_none_cartesian PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_arbitrary_ucs PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_ucs_direction_to_ocs_direction PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_to_ocs PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_points_to_ocs PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_to_ocs_angle_deg PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_constructor_functions PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_rotate_x_axis PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_rotate_y_axis PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_rotate_z_axis PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_rotate_local_x PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_rotate_local_y PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_rotate_local_z PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_shift_ucs PASSED [ 57%] tests/test_06_math/test_611_ucs.py::test_moveto PASSED [ 57%] tests/test_06_math/test_612_ucs_pass_trough.py::test_u_vectors PASSED [ 57%] tests/test_06_math/test_612_ucs_pass_trough.py::test_to_wcs PASSED [ 57%] tests/test_06_math/test_612_ucs_pass_trough.py::test_points_to_wcs PASSED [ 57%] tests/test_06_math/test_612_ucs_pass_trough.py::test_to_ocs PASSED [ 57%] tests/test_06_math/test_612_ucs_pass_trough.py::test_points_to_ocs PASSED [ 57%] tests/test_06_math/test_612_ucs_pass_trough.py::test_from_wcs PASSED [ 57%] tests/test_06_math/test_612_ucs_pass_trough.py::test_points_from_wcs PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_inside_horizontal_box PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_outside_horizontal_box PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_colinear_outside_horizontal_box PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_corners_horizontal_box PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_inside_slanted_box PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_outside_slanted_box PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_corners_slanted_box PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_borders_slanted_box_stable PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_shape_c_is_not_convex PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point0] PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point1] PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point2] PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point3] PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point4] PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point5] PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point6] PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point7] PASSED [ 57%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_ccw_polygon[point8] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point0] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point1] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point2] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point3] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point4] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point5] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point6] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_ccw_polygon[point7] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point0] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point1] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point2] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point3] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point4] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point5] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point6] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point7] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point8] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point9] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point10] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point11] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point12] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point13] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_ccw_polygon[point14] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point0] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point1] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point2] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point3] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point4] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point5] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point6] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point7] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_inside_cw_polygon[point8] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point0] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point1] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point2] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point3] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point4] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point5] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point6] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_on_boundary_cw_polygon[point7] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point0] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point1] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point2] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point3] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point4] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point5] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point6] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point7] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point8] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point9] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point10] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point11] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point12] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point13] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::test_is_outside_cw_polygon[point14] PASSED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point0] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point1] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point2] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point3] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point4] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point5] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point6] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point7] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_inside_ccw_polygon[point8] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point0] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point1] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point2] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point3] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point4] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point5] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point6] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_on_boundary_ccw_polygon[point7] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point0] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point1] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point2] SKIPPED [ 58%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point3] SKIPPED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point4] SKIPPED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point5] SKIPPED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point6] SKIPPED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point7] SKIPPED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point8] SKIPPED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point9] SKIPPED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point10] SKIPPED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point11] SKIPPED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point12] SKIPPED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point13] SKIPPED [ 59%] tests/test_06_math/test_613_is_point_in_polygon_2d.py::TestCythonImplementation::test_is_outside_ccw_polygon[point14] SKIPPED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_face_count PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_regular_face PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_irregular_face PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_only_colinear_edges PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_regular_face_with_colinear_edge PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_does_not_detect_wrong_order PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_subdivide_square_in_quads PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_subdivide_square_in_triangles PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_subdivide_triangle PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_subdivide_ngons PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_subdivide_vec2_square_in_quads PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectionRayRay3d::test_parallel_rays_return_empty_tuple PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectionRayRay3d::test_intersecting_rays_return_one_tuple PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectionRayRay3d::test_not_intersecting_and_not_parallel_rays_return_two_tuple PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectionRayRay3d::test_intersecting_rays PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectionRayRay3d::test_random_intersecting_rays PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectingLines3d::test_real_intersecting_lines PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectingLines3d::test_virtual_intersecting_lines PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectingLines3d::test_not_intersecting_lines PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectingLines3d::test_touching_lines_do_intersect PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectingLines3d::test_coincident_lines_do_not_intersect[horiz] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectingLines3d::test_coincident_lines_do_not_intersect[vert] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestIntersectingLines3d::test_coincident_lines_do_not_intersect[diag] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_normal_vector_for_3_points[a0-b0-c0-r0] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_normal_vector_for_3_points[a1-b1-c1-r1] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_normal_vector_for_3_points[a2-b2-c2-r2] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_normal_vector_for_3_points[a3-b3-c3-r3] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_normal_vector_for_3_points[a4-b4-c4-r4] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_normal_vector_for_3_points[a5-b5-c5-r5] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_safe_normal_vector_regular PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_safe_normal_vector_for_coincident_vertices PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_safe_normal_vector_for_colinear_vertices PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_safe_normal_vector_raises_exception_for_undefined_normal_vector PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d[points0-3] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d[points1-0] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d[points2-4] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d[points3-5] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d[points4-0.8164965809277259] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d_no_line[1e-99] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d_no_line[1e-09] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d_no_line[0] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d_no_line[1000000000.0] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::test_distance_point_line_3d_no_line[1e+99] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_if_returns_right_handed_normals[a0-b0-c0-r0] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_if_returns_right_handed_normals[a1-b1-c1-r1] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_if_returns_right_handed_normals[a2-b2-c2-r2] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_if_returns_right_handed_normals[a3-b3-c3-r3] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_if_returns_right_handed_normals[a4-b4-c4-r4] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_if_returns_right_handed_normals[a5-b5-c5-r5] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_transformed_counter_clockwise_vertices_ccw PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBestFitNormal::test_transformed_clockwise_vertices PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_basic_coords PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_center_of_mass_property PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_point_outside_triangle[p0] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_point_outside_triangle[p1] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_point_outside_triangle[p2] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_point_inside_triangle[p0] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_point_inside_triangle[p1] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestBarycentricCoords::test_point_inside_triangle[p2] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_returns_always_two_or_more_vertices[-1] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_returns_always_two_or_more_vertices[0] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_returns_always_two_or_more_vertices[1] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_returns_always_two_or_more_vertices[2] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_returns_always_two_or_more_vertices[3] PASSED [ 59%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_works_if_start_is_equal_to_end PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q1[2] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q1[3] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q1[4] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q1[5] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q3[2] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q3[3] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q3[4] PASSED [ 60%] tests/test_06_math/test_614_construct_3d.py::TestLinearVertexSpacing::test_correct_spacing_in_Q3[5] PASSED [ 60%] tests/test_06_math/test_615_rytz_axis.py::test_exception PASSED [ 60%] tests/test_06_math/test_615_rytz_axis.py::test_simple_case PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_init PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_init_form_3_colinear_points PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_init_form_3p PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_equal PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_init_form_vector PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_signed_distance_to PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_distance_to PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_is_coplanar PASSED [ 60%] tests/test_06_math/test_616_plane.py::test_is_coplanar_plane PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestSplitConvexPolygon::test_spit_horizontal_square PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestSplitConvexPolygon::test_ignore_coplanar_square PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestSplitConvexPolygon::test_return_coplanar_square_front PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestSplitConvexPolygon::test_return_coplanar_square_back PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_intersection_line PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_line_above_plane PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_line_below_plane PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_colinear_start_point_intersection PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_ignore_coplanar_start_point_intersection PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_colinear_end_point_intersection PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_ignore_coplanar_end_point_intersection PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectLine::test_coplanar_line_has_no_intersection PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectRay::test_intersection_line PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectRay::test_coplanar_ray_has_no_intersection PASSED [ 60%] tests/test_06_math/test_616_plane.py::TestIntersectRay::test_plane_parallel_to_yz PASSED [ 60%] tests/test_06_math/test_617_clockwise_orientation.py::test_has_clockwise_orientation[vertices0] PASSED [ 60%] tests/test_06_math/test_617_clockwise_orientation.py::test_has_clockwise_orientation[vertices1] PASSED [ 60%] tests/test_06_math/test_617_clockwise_orientation.py::test_has_counter_clockwise_orientation[vertices0] PASSED [ 60%] tests/test_06_math/test_617_clockwise_orientation.py::test_has_counter_clockwise_orientation[vertices1] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_no_clipping[polygon] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_regular_clip_inside_outside[polygon] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_regular_clip_outside_inside[polygon] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_horizontal_left_to_right[polygon] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_horizontal_right_to_left[polygon] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_vertical[polygon] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_diagonal[polygon] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_diagonal_edge_to_edge[polygon] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_horizontal_edge[polygon-bottom] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_horizontal_edge[polygon-top] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_vertical_edge[polygon-left] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_vertical_edge[polygon-right] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_no_clipping[rect] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_regular_clip_inside_outside[rect] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_regular_clip_outside_inside[rect] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_horizontal_left_to_right[rect] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_horizontal_right_to_left[rect] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_vertical[rect] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_diagonal[rect] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_crossing_diagonal_edge_to_edge[rect] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_horizontal_edge[rect-bottom] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_horizontal_edge[rect-top] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_vertical_edge[rect-left] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipSingleLineAtConvexBoundary::test_colinear_vertical_edge[rect-right] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipPolylineAtConvexBoundary::test_crossing_zigzag[polygon] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipPolylineAtConvexBoundary::test_crossing_zigzag[rect] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipPolylineAtConvexBoundary::test_closed_rectangle PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_subject_do_overlap_clipping_rect[polygon] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_subject_is_inside_rect[polygon] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_subject_is_outside_rect[polygon] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_circle_outside_rect[polygon] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_circle_inside_rect[polygon] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_subject_do_overlap_clipping_rect[rect] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_subject_is_inside_rect[rect] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_subject_is_outside_rect[rect] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_circle_outside_rect[rect] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_circle_inside_rect[rect] PASSED [ 60%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_clockwise_oriented_clipping_rect PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_rect_outside_circle PASSED [ 61%] tests/test_06_math/test_618_clipping.py::TestClipPolygonAtConvexBoundary::test_rect_inside_circle PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_start_point_is_not_an_intersection_point PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_end_point_is_not_an_intersection_point PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_corner_point_is_not_an_intersection_point PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_vertical_line_does_intersect_skewed_line PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_horizontal_line_does_intersect_skewed_line PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_orthogonal_lines_do_intersect PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_parallel_vertical_lines_do_not_intersect PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_parallel_horizontal_lines_do_not_intersect PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_collinear_lines_do_not_intersect PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_coincident_lines_do_not_intersect[horiz] PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_coincident_lines_do_not_intersect[vert] PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_coincident_lines_do_not_intersect[diag] PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_virtual_intersection_is_not_an_intersection PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_issue_128 PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestLineIntersection::test_issue_664 PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanUnion::test_overlapping_polygons_are_united PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanUnion::test_vertex_order_is_not_important PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanUnion::test_a_polygon_inside_another_polygon_is_ignored PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanUnion::test_a_failed_union_returns_an_empty_list PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanUnion::test_disconnected_polygons_cannot_be_united PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanUnion::test_overlapping_but_collinear_edges_cannot_be_united PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanUnion::test_polygons_with_a_shared_edge_cannot_be_united PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanDifference::test_difference_of_overlapping_polygons PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanDifference::test_polygon_inside_polygon PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanDifference::test_polygon_inside_polygon_reverse_difference PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanDifference::test_polygon_outside_polygon PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanIntersection::test_intersection_of_overlapping_polygons PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanIntersection::test_polygon_inside_polygon PASSED [ 61%] tests/test_06_math/test_619_greiner_hormann.py::TestBooleanIntersection::test_polygon_outside_polygon PASSED [ 61%] tests/test_06_math/test_620_knot.py::test_open_uniform_knot_order_2 PASSED [ 61%] tests/test_06_math/test_620_knot.py::test_open_uniform_knot_order_3 PASSED [ 61%] tests/test_06_math/test_620_knot.py::test_open_uniform_knot_order_4 PASSED [ 61%] tests/test_06_math/test_620_knot.py::test_uniform_knot_order_2 PASSED [ 61%] tests/test_06_math/test_620_knot.py::test_uniform_knot_order_3 PASSED [ 61%] tests/test_06_math/test_620_knot.py::test_uniform_knot_order_4 PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_is_clamped PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_is_a_clamped_bspline[knots0] PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_is_a_clamped_bspline[knots1] PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_is_not_a_clamped_bspline[no repetitive knot values] PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_is_not_a_clamped_bspline[2 repetitive knot values] PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_is_not_a_clamped_bspline[3 repetitive knot values] PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_is_not_a_clamped_bspline[inaccuracy at the end] PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_is_not_a_clamped_bspline[inaccuracy at the start] PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_normalize_knots PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_normalize_knots_if_needed PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_bspline_insert_knot PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_transform_interface PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_bezier_decomposition PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_cubic_bezier_approximation PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_subdivide_params PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_weired_closed_spline PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_bezier_decomposition_issue PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_flattening PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_bspline_point_calculation_to_pre_calculated_results[degree=1] PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_bspline_point_calculation_to_pre_calculated_results[degree=2] PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_bspline_point_calculation_to_pre_calculated_results[degree=3] PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_bspline_derivative_calculation_to_pre_calculated_results PASSED [ 61%] tests/test_06_math/test_621_bspline.py::test_bspline_point_calculation_against_derivative_calculation PASSED [ 61%] tests/test_06_math/test_622_bsplineu.py::test_bsplineu_points PASSED [ 61%] tests/test_06_math/test_622_bsplineu.py::test_dbsplineu_points PASSED [ 61%] tests/test_06_math/test_622_bsplineu.py::test_dbsplineu_derivative_1 PASSED [ 61%] tests/test_06_math/test_622_bsplineu.py::test_dbsplineu_derivative_2 PASSED [ 61%] tests/test_06_math/test_623_rbspline.py::test_rbspline PASSED [ 61%] tests/test_06_math/test_623_rbspline.py::test_rbsplineu PASSED [ 61%] tests/test_06_math/test_623_rbspline.py::test_rational_spline_from_circular_arc_has_expected_parameters PASSED [ 61%] tests/test_06_math/test_623_rbspline.py::test_rational_spline_from_circular_arc_has_same_end_points PASSED [ 61%] tests/test_06_math/test_623_rbspline.py::test_rational_spline_from_elliptic_arc_has_expected_parameters PASSED [ 61%] tests/test_06_math/test_623_rbspline.py::test_rational_spline_from_elliptic_arc_has_same_end_points PASSED [ 61%] tests/test_06_math/test_623_rbspline.py::test_nurbs_arc_parameter_quarter_arc_1_segment PASSED [ 61%] tests/test_06_math/test_623_rbspline.py::test_nurbs_arc_parameter_quarter_arc_4_segments PASSED [ 61%] tests/test_06_math/test_623_rbspline.py::test_nurbs_arc_parameter_full_circle PASSED [ 61%] tests/test_06_math/test_623_rbspline.py::test_flattening_issue PASSED [ 61%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_uniform_t_array[fit_points0] PASSED [ 61%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_uniform_t_array[fit_points1] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_chord_length_t_array[fit_points0] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_chord_length_t_array[fit_points1] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_centripetal_length_t_array[fit_points0] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_centripetal_length_t_array[fit_points1] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_arc_distances PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_arc_length_t_array[fit_points0] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_arc_length_t_array[fit_points1] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_invalid_order_count_combination PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_knot_generation[average-2] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_knot_generation[average-3] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_knot_generation[average-4] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_knot_generation[natural-2] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_knot_generation[natural-3] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_knot_generation[natural-4] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_averaged_knots[2] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_averaged_knots[3] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_averaged_knots[4] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_averaged_knots[5] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_averaged_knots[2] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_averaged_knots[3] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_averaged_knots[4] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_averaged_knots[5] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_natural_knots[2] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_natural_knots[3] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_natural_knots[4] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_unconstrained_natural_knots[5] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_natural_knots[2] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_natural_knots[3] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_natural_knots[4] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_constrained_natural_knots[5] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_double_knots[2] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_double_knots[3] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_double_knots[4] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_double_knots[5] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_bspline_interpolation[fit_points0] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_bspline_interpolation[fit_points1] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_create_t_vectors_for_identical_points[distance] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_create_t_vectors_for_identical_points[centripetal] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_create_t_vectors_for_identical_points[arc] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_bspline_interpolation_first_derivatives[fit_points0] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_bspline_interpolation_first_derivatives[fit_points1] PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_check_values PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_cad_fit_point_interpolation_for_2_points PASSED [ 62%] tests/test_06_math/test_624_global_bspline_interpolation.py::test_cad_fit_point_interpolation_for_5_points PASSED [ 62%] tests/test_06_math/test_626_local_bspline_interpolation.py::test_estimate_tangents_3p PASSED [ 62%] tests/test_06_math/test_626_local_bspline_interpolation.py::test_estimate_tangents_5p PASSED [ 62%] tests/test_06_math/test_626_local_bspline_interpolation.py::test_local_cubic_bspline_interpolation_from_tangents PASSED [ 62%] tests/test_06_math/test_626_local_bspline_interpolation.py::test_local_cubic_bspline_interpolation PASSED [ 62%] tests/test_06_math/test_627_bspline_basis.py::test_property_exists[Basis] PASSED [ 62%] tests/test_06_math/test_627_bspline_basis.py::test_bspline_basis_vector[Basis] PASSED [ 62%] tests/test_06_math/test_627_bspline_basis.py::test_find_span[Basis] PASSED [ 62%] tests/test_06_math/test_629_bezier.py::test_points_2d PASSED [ 62%] tests/test_06_math/test_629_bezier.py::test_bezier_objects_are_immutable PASSED [ 62%] tests/test_06_math/test_629_bezier.py::test_point_and_tangent_2d PASSED [ 62%] tests/test_06_math/test_629_bezier.py::test_points_3d PASSED [ 62%] tests/test_06_math/test_629_bezier.py::test_points PASSED [ 62%] tests/test_06_math/test_629_bezier.py::test_derivative_1 PASSED [ 62%] tests/test_06_math/test_629_bezier.py::test_derivative_2 PASSED [ 62%] tests/test_06_math/test_629_bezier.py::test_reverse PASSED [ 62%] tests/test_06_math/test_629_bezier.py::test_transform_interface PASSED [ 62%] tests/test_06_math/test_629_bezier.py::test_flattening PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_accepts_2d_points[Bezier4P] PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_objects_are_immutable[Bezier4P] PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_2d_tangent_computation[Bezier4P] PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_approximate[Bezier4P] PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_reverse[Bezier4P] PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_transform_interface[Bezier4P] PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_transform_returns_always_3d_curves[Bezier4P] PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening[Bezier4P] PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_for_equal_start_and_end_points[Bezier4P] PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_with_large_elevation[Bezier4P] PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_for_equal_start_and_end_points_large_elevation[Bezier4P] PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P-1e+99] PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P-1e+79] PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P-1e+59] PASSED [ 62%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P-1e+39] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P-1e+19] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P-1000000000.0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P-1000000.0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P-1000] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P-0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P--1e+99] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P--1e+79] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P--1e+59] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P--1e+39] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P--1e+19] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P--1000000000.0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P--1000000.0] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_flattening_big_z_coordinates[Bezier4P--1000] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_pickle_support[Bezier4P] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_cubic_bezier_arc_parameters_computation[cubic_bezier_arc_parameters] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_from_circular_arc[cubic_bezier_from_arc] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_from_circular_full_arc[cubic_bezier_from_arc] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_bezier_curves_from_simple_elliptic_arc[cubic_bezier_from_ellipse] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_bezier_curves_from_complex_elliptic_arc[cubic_bezier_from_ellipse] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_arc_params_issue_708[cubic_bezier_arc_parameters] PASSED [ 63%] tests/test_06_math/test_630a_bezier4p_base.py::test_bezier_curves_ellipse_issue_708[cubic_bezier_from_ellipse] PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_vertex_interpolation PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_invalid_bezier_interpolation PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_quadratic_to_cubic_bezier PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_g1_continuity_for_bezier_curves PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_g1_continuity_for_degenerated_bezier_curves PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_flatten_degenerated_bezier_curves[curve0] PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_flatten_degenerated_bezier_curves[curve1] PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_bezier_curves_to_bspline[G1] PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_bezier_curves_to_bspline[without G1] PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_bezier_curves_to_bspline[gap] PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_quality_of_bezier_to_bspline_conversion_1 PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_quality_of_bezier_to_bspline_conversion_2 PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_bezier_curves_to_bspline_error PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestSplitBezier::test_t_validation[-1] PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestSplitBezier::test_t_validation[2] PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestSplitBezier::test_control_point_validation PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestSplitBezier::test_split_cubic_bezier PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_quadratic_bezier_from_3_points PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::test_cubic_bezier_from_3_points PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestBezierCurveBoundingBox::test_linear_curve PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestBezierCurveBoundingBox::test_reverse_linear_curve PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestBezierCurveBoundingBox::test_cubic_bezier_curve_with_one_extrema PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestBezierCurveBoundingBox::test_cubic_bezier_curve_with_two_extrema PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestBezierCurveBoundingBox::test_closed_3d_cubic_bezier_curve PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestBezierCurveBoundingBox::test_quadratic_bezier_curve_box PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_no_intersection PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_one_intersection_point PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_two_intersection_points PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_three_intersection_points PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_collinear_ray_and_curve PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_linear_ray_and_curve[0] PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_linear_ray_and_curve[0.5] PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_linear_ray_and_curve[1] PASSED [ 63%] tests/test_06_math/test_630b_bezier4p_functions.py::TestRayCubicBezierCurve2dIntersection::test_linear_ray_and_curve[3] PASSED [ 63%] tests/test_06_math/test_631_euler_spiral.py::test_approximate PASSED [ 63%] tests/test_06_math/test_631_euler_spiral.py::test_radius PASSED [ 63%] tests/test_06_math/test_631_euler_spiral.py::test_tangent PASSED [ 63%] tests/test_06_math/test_631_euler_spiral.py::test_distance PASSED [ 63%] tests/test_06_math/test_631_euler_spiral.py::test_circle_midpoint PASSED [ 63%] tests/test_06_math/test_631_euler_spiral.py::test_as_bspline PASSED [ 63%] tests/test_06_math/test_632_bezier3p.py::test_accepts_2d_points[Bezier3P] PASSED [ 63%] tests/test_06_math/test_632_bezier3p.py::test_objects_are_immutable[Bezier3P] PASSED [ 63%] tests/test_06_math/test_632_bezier3p.py::test_approximate[Bezier3P] PASSED [ 63%] tests/test_06_math/test_632_bezier3p.py::test_first_derivative[Bezier3P] PASSED [ 63%] tests/test_06_math/test_632_bezier3p.py::test_reverse_points[Bezier3P] PASSED [ 63%] tests/test_06_math/test_632_bezier3p.py::test_transformation_interface[Bezier3P] PASSED [ 63%] tests/test_06_math/test_632_bezier3p.py::test_transformation_returns_always_3d_curves[Bezier3P] PASSED [ 63%] tests/test_06_math/test_632_bezier3p.py::test_flattening[Bezier3P] PASSED [ 63%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P-1e+99] PASSED [ 63%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P-1e+79] PASSED [ 63%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P-1e+59] PASSED [ 63%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P-1e+39] PASSED [ 63%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P-1e+19] PASSED [ 63%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P-1000000000.0] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P-1000000.0] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P-1000] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P-0] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P--1e+99] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P--1e+79] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P--1e+59] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P--1e+39] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P--1e+19] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P--1000000000.0] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P--1000000.0] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_flattening_big_z_coordinates[Bezier3P--1000] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_approximated_length[Bezier3P] PASSED [ 64%] tests/test_06_math/test_632_bezier3p.py::test_pickle_support[Bezier3P] PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_init PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_init_none PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_init_empty_list PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_is_empty[v0] PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_is_empty[v1] PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_is_empty[v2] PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_is_empty[v3] PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_is_empty[v4] PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_not_is_empty PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_init_with_with_empty_list PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_inside PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_all_inside PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_any_inside PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_has_overlap_accepts_2d_bounding_box PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_has_intersection_accepts_2d_bounding_box PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_do_intersect_and_overlap PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_do_not_intersect_or_overlap PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_do_not_intersect_or_overlap_empty PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_crossing_2d_boxes PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_crossing_3d_boxes PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_touching_2d_boxes PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_touching_3d_boxes PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_extend PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_extend_by_empty_list PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_extend_by_bbox PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_size PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_center PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_union_of_two_bounding_boxes PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_union_bbox_with_empty_bbox PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_union_empty_bbox_with_bbox PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_union_empty_bounding_boxes PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_union_different_bounding_boxes PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_rect_vertices_for_empty_bbox_raises_value_error PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_cube_vertices_for_empty_bbox_raises_value_error PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_rect_vertices_returns_vertices_in_counter_clockwise_order PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_cube_vertices_returns_vertices_in_counter_clockwise_order PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_contains_other_bounding_box PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_growing_empty_bounding_box_does_nothing PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_grow_bounding_box PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox::test_shrinking_to_zero_or_below_raises_exception PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_init PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_init_with_with_empty_list PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_init_none PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_is_empty[v0] PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_is_empty[v1] PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_is_empty[v2] PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_is_empty[v3] PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_is_empty[v4] PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_not_is_empty PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_inside PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_extend PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_size PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_center PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_rect_vertices_for_empty_bbox_raises_value_error PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_rect_vertices_returns_vertices_in_counter_clockwise_order PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_contains_other_bounding_box PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_2d_box_contains_3d_box PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_3d_box_contains_2d_box PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_grow_bounding_box PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_has_overlap_accepts_3d_bounding_box PASSED [ 64%] tests/test_06_math/test_640_bbox.py::TestBoundingBox2d::test_has_intersection_accepts_3d_bounding_box PASSED [ 64%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_accept_3d_box PASSED [ 64%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_empty_box_intersection PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_no_intersection PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_touches_at_one_corner PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_half_intersection PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_multiple_intersections[v10-v20] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_multiple_intersections[v11-v21] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_multiple_intersections[v12-v22] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_full_intersection PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_smaller_inside_bigger_intersection PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test2DIntersection::test_intersection_box_without_an_area_is_empty PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_accept_3d_box PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_empty_box_intersection PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_no_intersection PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_touches_at_one_corner PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_half_intersection PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_multiple_intersections[v10-v20] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_multiple_intersections[v11-v21] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_multiple_intersections[v12-v22] PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_full_intersection PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_smaller_inside_bigger_intersection PASSED [ 65%] tests/test_06_math/test_640_bbox.py::Test3DIntersection::test_intersection_box_without_a_volume_is_empty PASSED [ 65%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_init_with_angle PASSED [ 65%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_Ray2D_get_x_y PASSED [ 65%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_intersect PASSED [ 65%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_parallel PASSED [ 65%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_intersect_with_vertical PASSED [ 65%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_intersect_with_horizontal PASSED [ 65%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_intersect_with_vertical_and_horizontal PASSED [ 65%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_parallel_vertical PASSED [ 65%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_normal_vertical PASSED [ 65%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_normal PASSED [ 65%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_normal_horizontal PASSED [ 65%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_ray2d_angle PASSED [ 65%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_bisectrix PASSED [ 65%] tests/test_06_math/test_641_construction_ray.py::TestConstructionRay::test_two_close_horizontal_rays PASSED [ 65%] tests/test_06_math/test_642_construction_line.py::TestConstructionLine::test_is_vertical PASSED [ 65%] tests/test_06_math/test_642_construction_line.py::TestConstructionLine::test_left_of_line PASSED [ 65%] tests/test_06_math/test_642_construction_line.py::TestConstructionLine::test_intersect_horizontal_line PASSED [ 65%] tests/test_06_math/test_642_construction_line.py::TestConstructionLine::test_intersect_vertical_line PASSED [ 65%] tests/test_06_math/test_642_construction_line.py::TestConstructionLine::test_bounding_box PASSED [ 65%] tests/test_06_math/test_642_construction_line.py::TestConstructionLine::test_translate PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_defaults PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_init PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_from_points PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_init_angle_90 PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_set_center PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_set_width PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_set_height PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_incircle_radius PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_circum_circle_radius PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_set_angle PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_translate PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_expand PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_scale PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_intersect_0 PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_intersect_1 PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_intersect_2 PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_is_inside_horiz_box PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_is_inside_rotated_box PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_any_corner_inside PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_overlapping_boxes PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::TestTextBox::test_overlapping_crossing_boxes PASSED [ 65%] tests/test_06_math/test_643_construction_box.py::test_issue_2020_01_30 PASSED [ 65%] tests/test_06_math/test_644_construction_circle.py::test_init_circle PASSED [ 65%] tests/test_06_math/test_644_construction_circle.py::test_within PASSED [ 65%] tests/test_06_math/test_644_construction_circle.py::test_tangent PASSED [ 65%] tests/test_06_math/test_644_construction_circle.py::test_intersect_ray_pass PASSED [ 65%] tests/test_06_math/test_644_construction_circle.py::test_intersect_ray_touch PASSED [ 65%] tests/test_06_math/test_644_construction_circle.py::TestCircleInterectRay::test_vertical_ray PASSED [ 65%] tests/test_06_math/test_644_construction_circle.py::TestCircleInterectRay::test_horizontal_ray PASSED [ 65%] tests/test_06_math/test_644_construction_circle.py::TestCircleInterectRay::test_diagonal_ray PASSED [ 65%] tests/test_06_math/test_644_construction_circle.py::TestCircleInterectRay::test_diagonal_ray_through_mid_point PASSED [ 65%] tests/test_06_math/test_644_construction_circle.py::TestCircleInterectRay::test_horizontal_ray_through_mid_point PASSED [ 65%] tests/test_06_math/test_644_construction_circle.py::TestCircleInterectRay::test_vertical_ray_through_mid_point PASSED [ 65%] tests/test_06_math/test_644_construction_circle.py::test_circles_do_not_intersect PASSED [ 65%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center0-point0] PASSED [ 65%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center1-point1] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center2-point2] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center3-point3] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center4-point4] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center5-point5] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center6-point6] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_two_circles_touching_at_one_point[center7-point7] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_intersect_circle_intersect PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_inner_circle_touches_outer_circle_issue_982[outer circle right of inner circle] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_inner_circle_touches_outer_circle_issue_982[outer circle left of inner circle] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_inner_circle_touches_outer_circle_issue_982[outer circle above of inner circle] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_inner_circle_touches_outer_circle_issue_982[outer circle below of inner circle] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_vertices PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_flattening PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_create_3P PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_no_point[start0-end0] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_no_point[start1-end1] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_no_point[start2-end2] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_no_point[start3-end3] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_one_point[start0-end0] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_one_point[start1-end1] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_one_point[start2-end2] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_two_points[start0-end0] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_two_points[start1-end1] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_two_points[start2-end2] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_two_points[start3-end3] PASSED [ 66%] tests/test_06_math/test_644_construction_circle.py::test_intersect_line_in_two_points[start4-end4] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_from_2p_angle_complex PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_from_2p_angle_simple PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_from_2p_radius PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_from_3p PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_spatial_arc_from_3p PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_bounding_box PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_angles PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_vertices PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_tangents PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_angle_span PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_segment_count PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_flattening[1-0-180-0.35-3] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_flattening[1-0-180-0.1-5] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_flattening[0-0-360-0.1-0] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_flattening[-1-0-180-0.35-3] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_flattening[1-270-90-0.1-5] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_flattening[1-90--90-0.1-5] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_flattening[1-0-0-0.1-0] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_flattening[1--45--45-0.1-0] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_point_is_in_arc_range[p0] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_point_is_in_arc_range[p1] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_point_is_in_arc_range[p2] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_point_is_in_arc_range[p3] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_point_is_in_arc_range[p4] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_point_is_not_in_arc_range[p0] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_point_is_not_in_arc_range[p1] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_point_is_not_in_arc_range[p2] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_one_point[s0-e0] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_one_point[s1-e1] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_one_point[s2-e2] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_one_point[s3-e3] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_one_point[s4-e4] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_one_point[s5-e5] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_two_points[s0-e0] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_line_in_two_points[s1-e1] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_line[s0-e0] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_line[s1-e1] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_line[s2-e2] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_circle_in_one_point[c0-1.0] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_circle_in_one_point[c1-0.5] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_circle_in_one_point[c2-1.0] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_circle_in_two_points[c0-1.0] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_circle_in_two_points[c1-1.0] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_circle[c0-0.5] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_circle[c1-1.0] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_circle[c2-2.0] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_circle[c3-0.5] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_arc_in_one_point[c0-1.0-90-270] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_arc_in_one_point[c1-1.0-90-180] PASSED [ 66%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_arc_in_two_points[c0-1.0-90-270] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_intersect_arc_in_two_points[c1-1.0-90-270] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_arc[c0-1.0-90-270] PASSED [ 67%] tests/test_06_math/test_645_construction_arc.py::test_arc_does_not_intersect_arc[c1-1.0-90-270] PASSED [ 67%] tests/test_06_math/test_646_offset_vertices_2d.py::test_0_offset PASSED [ 67%] tests/test_06_math/test_646_offset_vertices_2d.py::test_2_horiz_vertices_left_offset PASSED [ 67%] tests/test_06_math/test_646_offset_vertices_2d.py::test_2_horiz_vertices_right_offset PASSED [ 67%] tests/test_06_math/test_646_offset_vertices_2d.py::test_2_vert_vertices_left_offset PASSED [ 67%] tests/test_06_math/test_646_offset_vertices_2d.py::test_2_vert_vertices_right_offset PASSED [ 67%] tests/test_06_math/test_646_offset_vertices_2d.py::test_3_horiz_collinear_vertices PASSED [ 67%] tests/test_06_math/test_646_offset_vertices_2d.py::test_3_vert_collinear_vertices PASSED [ 67%] tests/test_06_math/test_646_offset_vertices_2d.py::test_3_vertices PASSED [ 67%] tests/test_06_math/test_646_offset_vertices_2d.py::test_closed_square_inside PASSED [ 67%] tests/test_06_math/test_646_offset_vertices_2d.py::test_closed_triangle_inside PASSED [ 67%] tests/test_06_math/test_646_offset_vertices_2d.py::test_closed_shape_with_collinear_last_segment PASSED [ 67%] tests/test_06_math/test_646_offset_vertices_2d.py::test_3_horiz_collinear_vertices_closed PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::test_transform_angle_without_ocs PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::test_transform_length_without_ocs PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_no_transformation[-2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_no_transformation[0] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_no_transformation[2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_axis[-2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_axis[0] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_axis[2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_y_axis[-2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_y_axis[0] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_y_axis[2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_z_axis[-2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_z_axis[0] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_z_axis[2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_and_y_axis[-2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_and_y_axis[0] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_and_y_axis[2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_and_z_axis[-2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_and_z_axis[0] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_and_z_axis[2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_y_and_z_axis[-2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_y_and_z_axis[0] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_y_and_z_axis[2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_y_and_z_axis[-2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_y_and_z_axis[0] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformThickness::test_reflection_in_x_y_and_z_axis[2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_no_transformation[-2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_no_transformation[0] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_no_transformation[2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_uniform_scaling_for_all_axis[-2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_uniform_scaling_for_all_axis[0] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_uniform_scaling_for_all_axis[2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_x_scaling[-2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_x_scaling[0] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_x_scaling[2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_y_scaling[-2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_y_scaling[0] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_y_scaling[2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_non_uniform_xy_scaling_for_x[-2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_non_uniform_xy_scaling_for_x[0] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_non_uniform_xy_scaling_for_x[2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_non_uniform_xy_scaling_for_y[-2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_non_uniform_xy_scaling_for_y[0] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformWidth::test_non_uniform_xy_scaling_for_y[2] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_no_transformation[0-00] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_no_transformation[0-90] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_no_transformation[0-180] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_no_transformation[0-360] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_no_transformation[0-01] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_no_transformation[0--90] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_no_transformation[0--180] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[45-0-00] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[45-0-90] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[45-0-180] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[45-0-360] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[45-0-01] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[45-0--90] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[45-0--180] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[90-0-00] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[90-0-90] PASSED [ 67%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[90-0-180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[90-0-360] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[90-0-01] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[90-0--90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[90-0--180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[180-0-00] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[180-0-90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[180-0-180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[180-0-360] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[180-0-01] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[180-0--90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[180-0--180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[270-0-00] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[270-0-90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[270-0-180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[270-0-360] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[270-0-01] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[270-0--90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[270-0--180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-45-0-00] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-45-0-90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-45-0-180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-45-0-360] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-45-0-01] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-45-0--90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-45-0--180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-90-0-00] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-90-0-90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-90-0-180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-90-0-360] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-90-0-01] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-90-0--90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-90-0--180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-180-0-00] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-180-0-90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-180-0-180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-180-0-360] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-180-0-01] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-180-0--90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_rotation[-180-0--180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-45-0-00] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-45-0-90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-45-0-180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-45-0-360] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-45-0-01] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-45-0--90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-45-0--180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-90-0-00] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-90-0-90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-90-0-180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-90-0-360] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-90-0-01] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-90-0--90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-90-0--180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-180-0-00] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-180-0-90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-180-0-180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-180-0-360] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-180-0-01] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-180-0--90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-180-0--180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-270-0-00] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-270-0-90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-270-0-180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-270-0-360] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-270-0-01] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-270-0--90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x-270-0--180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--45-0-00] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--45-0-90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--45-0-180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--45-0-360] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--45-0-01] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--45-0--90] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--45-0--180] PASSED [ 68%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--90-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--90-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--90-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--90-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--90-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--90-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--90-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--180-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--180-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--180-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--180-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--180-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--180-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--180-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--270-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--270-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--270-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--270-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--270-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--270-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[x--270-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-45-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-45-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-45-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-45-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-45-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-45-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-45-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-90-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-90-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-90-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-90-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-90-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-90-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-90-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-180-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-180-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-180-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-180-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-180-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-180-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-180-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-270-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-270-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-270-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-270-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-270-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-270-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y-270-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--45-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--45-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--45-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--45-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--45-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--45-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--45-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--90-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--90-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--90-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--90-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--90-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--90-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--90-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--180-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--180-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--180-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--180-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--180-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--180-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--180-0--180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--270-0-00] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--270-0-90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--270-0-180] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--270-0-360] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--270-0-01] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--270-0--90] PASSED [ 69%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[y--270-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-45-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-45-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-45-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-45-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-45-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-45-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-45-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-90-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-90-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-90-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-90-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-90-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-90-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-90-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-180-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-180-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-180-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-180-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-180-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-180-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-180-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-270-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-270-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-270-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-270-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-270-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-270-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy-270-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--45-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--45-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--45-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--45-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--45-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--45-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--45-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--90-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--90-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--90-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--90-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--90-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--90-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--90-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--180-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--180-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--180-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--180-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--180-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--180-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--180-0--180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--270-0-00] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--270-0-90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--270-0-180] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--270-0-360] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--270-0-01] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--270-0--90] PASSED [ 70%] tests/test_06_math/test_647_transform_tools.py::TestTransformCCWAngles::test_reflections[xy--270-0--180] PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_default_init PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_dxfattribs PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_get_start_and_end_vertex PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_from_arc PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_swap_axis_full_ellipse PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_swap_axis_half_ellipse PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_swap_axis_arbitrary_params PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_params PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_angle_to_param PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_vertices PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_tangents PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_params_from_vertices_random PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_to_ocs PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_flattening[0-180-0.35-3] PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_flattening[0-180-0.1-5] PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_flattening[270-90-0.1-5] PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_flattening[90--90-0.1-5] PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_flattening[0-0-0.1-0] PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_flattening[-45--45-0.1-0] PASSED [ 70%] tests/test_06_math/test_648_construction_ellipse.py::test_flattening_ellipse PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[0-0] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[90-90] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[-90--90] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[180-180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[-180--180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[270-270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[-270--270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[360-360] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[-360--360] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[720-720] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_no_curve[-720--720] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[0-360] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[360-0] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[-360-0] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[0--360] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[90-450] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[180-540] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[180--180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[-180-180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[90--270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_closed_curve[-90-270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[0-90-90] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[0--90-270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[0-180-180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[0--180-180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[180-360-180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[-180--360-180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[-90-360-90] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[90--360-270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[-90--360-90] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[90-360-270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[360-90-90] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[360--90-270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[-360-90-90] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[-360--90-270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[30--30-300] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[-30-30-60] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[90--90-180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[-90-90-180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[360-400-40] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpan::test_partial_arc[400-360-320] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[0-0] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[90-90] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[-90--90] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[180-180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[-180--180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[270-270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[-270--270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[360-360] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[-360--360] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[720-720] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_no_curve[-720--720] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[0-360] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[360-0] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[-360-0] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[0--360] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[90-450] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[180-540] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[180--180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[-180-180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[90--270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_closed_curve[-90-270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[0-90-90] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[0--90-270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[0-180-180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[0--180-180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[180-360-180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[-180--360-180] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[-90-360-90] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[90--360-270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[-90--360-90] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[90-360-270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[360-90-90] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[360--90-270] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[-360-90-90] PASSED [ 71%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[-360--90-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[30--30-300] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[-30-30-60] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[90--90-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[-90-90-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[360-400-40] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestEllipseParamSpan::test_partial_arc[400-360-320] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[0-0] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[90-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[-90--90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[180-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[-180--180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[270-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[-270--270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[360-360] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[-360--360] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[720-720] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_no_curve[-720--720] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[0-360] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[360-0] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[-360-0] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[0--360] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[90-450] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[180-540] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[180--180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[-180-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[90--270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_closed_curve[-90-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[0-90-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[0--90-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[0-180-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[0--180-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[180-360-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[-180--360-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[-90-360-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[90--360-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[-90--360-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[90-360-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[360-90-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[360--90-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[-360-90-90] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[-360--90-270] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[30--30-300] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[-30-30-60] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[90--90-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[-90-90-180] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[360-400-40] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestArcParamSpanRadians::test_partial_arc[400-360-320] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_no_ellipse[0-00] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_no_ellipse[3.141592653589793-3.141592653589793] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_no_ellipse[6.283185307179586-6.283185307179586] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_no_ellipse[0-01] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_no_ellipse[-3.141592653589793--3.141592653589793] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_no_ellipse[-6.283185307179586--6.283185307179586] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_full_ellipse[0-6.283185307179586] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_full_ellipse[6.283185307179586-0] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_full_ellipse[3.141592653589793--3.141592653589793] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_full_ellipse[0--6.283185307179586] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_full_ellipse[-6.283185307179586-0] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_full_ellipse[-3.141592653589793-3.141592653589793] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[0-1.5707963267948966-1.5707963267948966] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[1.5707963267948966-0-4.71238898038469] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[1.5707963267948966-3.141592653589793-1.5707963267948966] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[1.5707963267948966--1.5707963267948966-3.141592653589793] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[3.141592653589793-0-3.141592653589793] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[0-3.141592653589793-3.141592653589793] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[0--1.5707963267948966-4.71238898038469] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[-1.5707963267948966-0-1.5707963267948966] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[-1.5707963267948966--3.141592653589793-4.71238898038469] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[-1.5707963267948966-1.5707963267948966-3.141592653589793] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[-3.141592653589793-0-3.141592653589793] PASSED [ 72%] tests/test_06_math/test_650_elliptic_arc_span.py::TestParamSpan::test_elliptic_arc[0--3.141592653589793-3.141592653589793] PASSED [ 72%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_empty_polyline PASSED [ 72%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_len_open_polyline PASSED [ 72%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_len_closed_polyline PASSED [ 72%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_get_single_vertex PASSED [ 72%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_get_last_vertex PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_get_vertex_slice PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_vertex_slice_has_same_type PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestSequenceInterface::test_is_immutable PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_empty_polyline_raises_Value_error PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_data_0 PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_data_1 PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_data_2 PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_data_3 PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_data_for_negative_index PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_vertices_at_the_same_location PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestExtendedData::test_raises_index_error PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestLength::test_empty_polyline PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestLength::test_open_polyline PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestLength::test_closed_polyline PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestLength::test_vertices_at_the_same_location PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestIsClosed::test_empty_polyline_is_not_closed PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestIsClosed::test_polyline_with_too_few_vertices_is_not_closed PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestIsClosed::test_poly1_is_not_closed PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestIsClosed::test_poly2_is_closed PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_empty_polyline[-1] PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_empty_polyline[0] PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_empty_polyline[1] PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_polyline_with_one_vertex[-1] PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_polyline_with_one_vertex[0] PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_polyline_with_one_vertex[1] PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_short_polyline PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestIndexAt::test_long_polyline PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_empty_polyline_raises_error PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_too_few_vertices_raises_error PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_out_of_range_raises_error PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_interpolation_at_vertex_location PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_interpolate_last_vertex_of_closed_polyline PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_interpolate_at_first_edge PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_interpolate_at_second_edge PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_interpolation_for_coincident_vertices_in_front PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_interpolation_for_coincident_vertices_after PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestVertexAt::test_interpolation_for_coincident_vertices_between PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestDivide::test_raises_error_invalid_count[-1] PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestDivide::test_raises_error_invalid_count[0] PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestDivide::test_raises_error_invalid_count[1] PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestDivide::test_divide_by_3 PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestDivide::test_divide_by_length PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestDivide::test_divide_by_length_force_last_vertex PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestApproximationAccuracy::test_unit_circle PASSED [ 73%] tests/test_06_math/test_651_construction_polyline.py::TestApproximationAccuracy::test_unit_circle_by_path PASSED [ 73%] tests/test_06_math/test_652_approx_param_t.py::TestGenericFeatures::test_access_to_construction_polyline PASSED [ 73%] tests/test_06_math/test_652_approx_param_t.py::TestGenericFeatures::test_get_max_t PASSED [ 73%] tests/test_06_math/test_652_approx_param_t.py::TestQuadraticBezier::test_start_param PASSED [ 73%] tests/test_06_math/test_652_approx_param_t.py::TestQuadraticBezier::test_end_param PASSED [ 73%] tests/test_06_math/test_652_approx_param_t.py::TestQuadraticBezier::test_certain_distance PASSED [ 73%] tests/test_06_math/test_652_approx_param_t.py::TestCubicBezier::test_start_param PASSED [ 73%] tests/test_06_math/test_652_approx_param_t.py::TestCubicBezier::test_end_param PASSED [ 73%] tests/test_06_math/test_652_approx_param_t.py::TestCubicBezier::test_certain_distance PASSED [ 73%] tests/test_06_math/test_652_approx_param_t.py::TestCubicSpline::test_max_t_is_not_1 PASSED [ 73%] tests/test_06_math/test_652_approx_param_t.py::TestCubicSpline::test_start_param PASSED [ 73%] tests/test_06_math/test_652_approx_param_t.py::TestCubicSpline::test_end_param PASSED [ 73%] tests/test_06_math/test_652_approx_param_t.py::TestCubicSpline::test_certain_distance PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_intersecting_single_segments PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_none_intersecting_single_segments PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_intersecting_cross PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_intersecting_x_cross PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_intersecting_zig_zag_lines PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_zig_zag_lines_with_common_vertices PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_complex_ellipse_with_spline_intersection PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_intersecting_squares PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_squares_with_common_corner_vertex PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_coincident_common_segment PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_coincident_common_last_segment PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines2d::test_coincident_common_intermediate_segment PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines3d::test_intersecting_single_segments PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines3d::test_intersecting_single_vertical_segment PASSED [ 73%] tests/test_06_math/test_653_polyline_intersection.py::TestIntersectPolylines3d::test_none_intersecting_single_segments PASSED [ 73%] tests/test_06_math/test_654_rtree.py::test_can_not_build_empty_tree PASSED [ 73%] tests/test_06_math/test_654_rtree.py::TestFirstLevel::test_from_one_point PASSED [ 73%] tests/test_06_math/test_654_rtree.py::TestFirstLevel::test_contains_point PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestFirstLevel::test_iter_tree PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestFirstLevel::test_from_two_points PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestFirstLevel::test_store_duplicate_points PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_setup_is_correct PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_known_point_is_present[point0] PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_known_point_is_present[point1] PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_known_point_is_present[point2] PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_contains_all_random_points PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_nearest_neighbor[n0-point0] PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_nearest_neighbor[n1-point1] PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_nearest_neighbor[n2-point2] PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_find_points_in_sphere PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_find_points_in_bbox PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_iter_tree PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_avg_spherical_envelope_radius PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_avg_leaf_size PASSED [ 74%] tests/test_06_math/test_654_rtree.py::TestBiggerTree::test_avg_nn_distance PASSED [ 74%] tests/test_06_math/test_654_rtree.py::test_Vec2_compatibility PASSED [ 74%] tests/test_06_math/test_654_rtree.py::test_split_strategies[box_split] PASSED [ 74%] tests/test_06_math/test_654_rtree.py::test_collect_leafs PASSED [ 74%] tests/test_06_math/test_654_rtree.py::test_average_leaf_size_of_random_points PASSED [ 74%] tests/test_06_math/test_654_rtree.py::test_avg_spherical_envelope_radius_of_random_points PASSED [ 74%] tests/test_06_math/test_654_rtree.py::test_avg_nn_distance_of_random_points PASSED [ 74%] tests/test_06_math/test_654_rtree.py::test_avg_methods_return_0_for_too_small_trees PASSED [ 74%] tests/test_06_math/test_654_rtree.py::test_spherical_envelope PASSED [ 74%] tests/test_06_math/test_655_dbscan.py::test_two_simple_cluster PASSED [ 74%] tests/test_06_math/test_655_dbscan.py::test_cluster_noise PASSED [ 74%] tests/test_06_math/test_656_k_means.py::test_cluster_random_points[4] PASSED [ 74%] tests/test_06_math/test_656_k_means.py::test_cluster_random_points[5] PASSED [ 74%] tests/test_06_math/test_656_k_means.py::test_cluster_random_points[6] PASSED [ 74%] tests/test_06_math/test_656_k_means.py::test_measure_average_cluster_radius PASSED [ 74%] tests/test_06_math/test_656_k_means.py::test_measure_average_intra_cluster_distance PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_ccw_square[CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_ccw_square[Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_cw_square[CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_cw_square[Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_concave_gear_shape[CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_concave_gear_shape[Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_square_with_square_hole[CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_square_with_square_hole[Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_square_with_two_holes[CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_square_with_two_holes[Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_square_with_steiner_point[CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_triangulate_square_with_steiner_point[Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_empty_exterior[CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_empty_exterior[Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_empty_holes[CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_empty_holes[Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Star-CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Star-Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Simple Diamond-CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Simple Diamond-Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[No Concave Vertex-CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[No Concave Vertex-Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Slanted Side-CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Slanted Side-Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[New Thing-CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[New Thing-Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 1-CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 1-Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 2-CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 2-Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 3-A-CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 3-A-Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 3-B-CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 3-B-Cython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 4-CPython] PASSED [ 74%] tests/test_06_math/test_657_mapbox_earcut.py::test_polygon_data0[Edge Case 4-Cython] PASSED [ 74%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_returns_zero_for_invalid_input[Radius = 0] PASSED [ 74%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_returns_zero_for_invalid_input[colinear directions] PASSED [ 74%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_returns_zero_for_invalid_input[opposite colinear directions] PASSED [ 74%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[1.0-ax10-ax20] PASSED [ 74%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[1.0-ax11-ax21] PASSED [ 74%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[1.0-ax12-ax22] PASSED [ 74%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[1.0-ax13-ax23] PASSED [ 74%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-1.0-ax10-ax20] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-1.0-ax11-ax21] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-1.0-ax12-ax22] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-1.0-ax13-ax23] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[2.0-ax10-ax20] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[2.0-ax11-ax21] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[2.0-ax12-ax22] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[2.0-ax13-ax23] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-2.0-ax10-ax20] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-2.0-ax11-ax21] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-2.0-ax12-ax22] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_90_deg_directions[-2.0-ax13-ax23] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestInscribeCircle::test_45_deg_direction PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::test_bending_angle PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer::test_requires_three_points PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer::test_colinear_points_are_ignored[180deg] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer::test_colinear_points_are_ignored[360deg] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer::test_one_chamfer PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer::test_two_chamfers PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer2::test_requires_three_points PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer2::test_colinear_points_are_ignored[180deg] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer2::test_colinear_points_are_ignored[360deg] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer2::test_one_chamfer PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestChamfer2::test_two_chamfers PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestFillet::test_requires_three_points PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestFillet::test_colinear_points_are_ignored[180deg] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestFillet::test_colinear_points_are_ignored[360deg] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestFillet::test_points_for_45_deg PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestFillet::test_points_for_135_deg PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_requires_three_points PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_colinear_points_are_ignored[180deg] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_colinear_points_are_ignored[360deg] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_for_required_segment_count[0-3] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_for_required_segment_count[1-3] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_for_required_segment_count[4-3] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_for_required_segment_count[16-6] PASSED [ 75%] tests/test_06_math/test_658_bevel_tools.py::TestPolygonalFillet::test_for_required_segment_count[32-10] PASSED [ 75%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_polygon_with_invalid_normal PASSED [ 75%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_intersection_point_inside PASSED [ 75%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_intersection_point_at_boundary_line PASSED [ 75%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_ignore_intersection_point_at_boundary_line PASSED [ 75%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_ignore_coplanar_start_point_as_intersection_point PASSED [ 75%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_ignore_coplanar_end_point_as_intersection_point PASSED [ 75%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_intersection_point_outside PASSED [ 75%] tests/test_06_math/test_659_intersection_line_polygon_3d.py::test_ignore_coplanar_line PASSED [ 75%] tests/test_06_math/test_660_intersection_ray_polygon_3d.py::test_polygon_with_invalid_normal PASSED [ 75%] tests/test_06_math/test_660_intersection_ray_polygon_3d.py::test_intersection_point_inside PASSED [ 75%] tests/test_06_math/test_660_intersection_ray_polygon_3d.py::test_intersection_point_at_boundary_line PASSED [ 75%] tests/test_06_math/test_660_intersection_ray_polygon_3d.py::test_ignore_intersection_point_at_boundary_line PASSED [ 75%] tests/test_06_math/test_660_intersection_ray_polygon_3d.py::test_intersection_point_outside PASSED [ 75%] tests/test_06_math/test_660_intersection_ray_polygon_3d.py::test_ignore_coplanar_ray PASSED [ 75%] tests/test_06_math/test_661_is_face_normal_pointing_outwards.py::test_cube_with_ccw_vertex_orientation PASSED [ 75%] tests/test_06_math/test_661_is_face_normal_pointing_outwards.py::test_cube_with_clockwise_vertex_orientation PASSED [ 75%] tests/test_06_math/test_661_is_face_normal_pointing_outwards.py::test_torus_with_ccw_vertex_orientation PASSED [ 75%] tests/test_06_math/test_661_is_face_normal_pointing_outwards.py::test_torus_with_clockwise_vertex_orientation PASSED [ 75%] tests/test_06_math/test_661_is_face_normal_pointing_outwards.py::test_flipped_cone PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_open_triangle PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_closed_triangle PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_open_square PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_closed_square PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_irregular_polygons[polygon0] PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_irregular_polygons[polygon1] PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_irregular_polygons[polygon2] PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_two_colinear_edges PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_strict_mode_for_two_colinear_edges PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_all_colinear_edges PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_some_coincident_vertices PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_all_coincident_vertices PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_regular_convex_ngons[3] PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_regular_convex_ngons[4] PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_regular_convex_ngons[11] PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_star_is_concave[4] PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_star_is_concave[5] PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_star_is_concave[11] PASSED [ 75%] tests/test_06_math/test_662_is_convex_polygon_2d.py::test_concave_quadrilateral PASSED [ 75%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_aligned_rectangle[points0] PASSED [ 75%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_aligned_rectangle[points1] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_aligned_rectangle[points2] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_aligned_rectangle[points3] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_aligned_rectangle[points4] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_aligned_rectangle[points5] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_not_aligned_rectangle[points0] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_not_aligned_rectangle[points1] PASSED [ 76%] tests/test_06_math/test_663_is_axes_aligned_rectange.py::test_is_not_aligned_rectangle[points2] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point0] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point1] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point2] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point3] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point4] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point5] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point6] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point7] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_inside_polygon[point8] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point0] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point1] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point2] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point3] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point4] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point5] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point6] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point7] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point8] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point9] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point10] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point11] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point12] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point13] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::test_point_is_outside_polygon[point14] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_and_b_outside_no_intersections_v PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_and_b_outside_no_intersections_h PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_and_b_inside_no_intersections_h PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_outside_b_inside_1_intersection_v PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_outside_b_inside_1_intersection_h PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_inside_b_outside_1_intersection_v PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_inside_b_outside_1_intersection_h PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_outside_b_outside_2_intersections PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_outside_b_inside_3_intersections PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_a_inside_b_outside_3_intersections PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_line_intersection_at_vertex PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_line_touches_at_vertex PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_line_is_colinear_to_outer_edge PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_line_is_colinear_to_inner_edge PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_line_is_colinear_to_inner_edge_reverse PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestLineClipping::test_line_is_equal_to_edge PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolylineClipping::test_polyline_outside PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolylineClipping::test_polyline_inside_no_intersection PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolylineClipping::test_polyline_inside_with_intersection PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolylineClipping::test_polyline_crossing_border PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolylineClipping::test_polyline_along_the_border_1 PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolylineClipping::test_polyline_along_the_border_2 PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_too_few_vertices[#0] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_too_few_vertices[#1] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_too_few_vertices[#2] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_too_few_vertices[#3] PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_polygon_inside_no_intersection PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_polygon_outside_no_intersection XFAIL [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_polygon_inside_with_intersection PASSED [ 76%] tests/test_06_math/test_664_concave_clipping_polygon.py::TestPolygonClipping::test_polygon_colinear_edges PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_find_closest_vertices[lower-left] PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_find_closest_vertices[lower-right] PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_find_closest_vertices[upper-right] PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_find_closest_vertices[upper-left] PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_make_inverted_clipping_polygon PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_inside_polygon[point0] PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_inside_polygon[point1] PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_inside_polygon[point2] PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_inside_polygon[point3] PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point0] PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point1] PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point2] PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point3] PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point4] PASSED [ 76%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point5] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point6] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point7] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::test_point_is_outside_polygon[point8] PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::TestLineClipping::test_basic_clipping PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::TestLineClipping::test_connection_line_create_intersection_point PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::TestLineClipping::test_colinear_line PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::TestPolygonClipping::test_polygon_outside PASSED [ 77%] tests/test_06_math/test_665_inverted_clipping_polygon.py::TestPolygonClipping::test_polygon_clipping PASSED [ 77%] tests/test_07_render/test_701_arrows.py::test_filled_solid_arrow PASSED [ 77%] tests/test_07_render/test_701_arrows.py::test_arrow_name PASSED [ 77%] tests/test_07_render/test_701_arrows.py::test_closed_arrow_doc_r12 PASSED [ 77%] tests/test_07_render/test_701_arrows.py::test_closed_arrow_doc_r2000 PASSED [ 77%] tests/test_07_render/test_701_arrows.py::test_render_arrow PASSED [ 77%] tests/test_07_render/test_701_arrows.py::test_virtual_entities PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_circle_open PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_circle_closed PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_close_polygon PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_close_polygon_without_doublets PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_close_circle PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_square PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_box PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_open_arrow PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_closed_arrow PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_cube PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestExtrude::test_extrude_without_caps PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestExtrude::test_extrude_open_profiles_with_caps PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestExtrude::test_extrude_with_caps PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_from_profiles_linear PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_cylinder PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_spline_interpolation PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_spline_interpolated_profiles PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_from_profiles_splines PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_cone PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_rotation_form PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_translate PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_scale PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_rotate PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_square_by_radius PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_heptagon_by_edge_length PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestTorus::test_closed_torus_ngon_faces PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestTorus::test_open_torus_ngon_faces PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestTorus::test_major_radius_is_bigger_than_minor_radius[2] PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestTorus::test_major_radius_is_bigger_than_minor_radius[1] PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestTorus::test_major_radius_is_bigger_than_minor_radius[-2] PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestTorus::test_major_radius_is_bigger_than_zero PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestTorus::test_minor_radius_is_bigger_than_zero PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_intersection_profiles PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestReferenceFrame::test_ref_z_in_x_axis PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestReferenceFrame::test_ref_z_in_z_axis_raise_exception[n0] PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestReferenceFrame::test_ref_z_in_z_axis_raise_exception[n1] PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestReferenceFrame::test_ref_ext_preserve_x PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestReferenceFrame::test_ref_ext_preserve_y PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_divide_path_count PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_divide_path_vertices PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_divide_path_into_equally_spaced_segments PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_divide_path_has_to_include_all_source_vertices PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_partial_path_factors PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_extrude_square_without_intermediate_profiles PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_extrude_square_with_intermediate_profiles PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_extrude_with_twist PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestExtrude2::test_extrude_with_scale PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_helix_positive_pitch_goes_up[True] PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_helix_positive_pitch_goes_up[False] PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_helix_negative_pitch_goes_down[True] PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_helix_negative_pitch_goes_down[False] PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_turtle_turn_left PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_turtle_turn_right PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::test_turtle_move_relative PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_default_arguments PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_cylinder_height_of_0_raises_value_error PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_various_directions[arbitrary] PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_various_directions[+z axis] PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_various_directions[-z axis] PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_various_directions[+x axis] PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_various_directions[-x axis] PASSED [ 77%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_various_directions[+y axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_various_directions[-y axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCylinder2p::test_final_location_for_negative_z_axis PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_default_arguments PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_cylinder_height_of_0_raises_value_error PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_various_directions[arbitrary] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_various_directions[+z axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_various_directions[-z axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_various_directions[+x axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_various_directions[-x axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_various_directions[+y axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_various_directions[-y axis] PASSED [ 78%] tests/test_07_render/test_702_render_forms.py::TestCone2p::test_final_location_for_negative_z_axis PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_vertex_merger_indices PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_vertex_merger_vertices PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_vertex_merger_index_of PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_average_vertex_merger_indices PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_average_vertex_merger_vertices PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_average_vertex_merger_index_of PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_mesh_builder PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_vertex_merger PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_average_vertex_merger PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_has_none_planar_faces PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_scale_mesh PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_rotate_x PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_mesh_bounding_box PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_get_face_vertices PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_index_error_for_getting_face_vertices PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_get_face_normal PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_empty_mesh_is_not_watertight PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_single_face_mesh_is_not_watertight PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_cube_is_watertight PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_is_watertight_can_not_detect_vertex_orientation_errors PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_edge_balance_of_closed_surface_is_not_broken PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_edge_balance_of_wrong_oriented_faces_is_broken PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_edge_balance_of_doubled_faces_is_broken PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_total_edge_count_of_closed_surface PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_cube_of_separated_faces_is_not_watertight PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_cylinder_is_watertight PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_surface_normals_pointing_outwards[cube] PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_surface_normals_pointing_outwards[cylinder] PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_surface_normals_pointing_outwards[cone] PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_surface_normals_pointing_outwards[sphere] PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_cylinder_with_reversed_cap_normals PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_cube_is_manifold PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_mesh_bounding_box PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_regular_open_surface PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_regular_cube_has_closed_surface PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_multiple_cubes_have_closed_surface PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_cube_with_reversed_face_has_closed_surface PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_non_manifold_cube_has_not_a_closed_surface PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMeshDiagnose::test_get_face_normals PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_flipped_cube_normals_pointing_inwards PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_from_empty_polyface PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_from_cube_polyface PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_render_polyface PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_render_3dsolid PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_from_polymesh PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_from_polyface_type_error PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_from_polyface_182_1 PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_from_polyface_182_2 PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_mesh_subdivide PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_debug_coplanar_faces PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_merge_coplanar_faces PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_merge_disk PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::test_merge_coplanar_faces_in_two_passes PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_non_connected_paths[p0] PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_non_connected_paths[p1] PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_non_connected_paths[p2] PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_connected_squares_same_orientation PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_connected_squares_different_orientation PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_connected_rect_same_orientation PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_complex_shape PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_connected_by_one_vertex PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_connection_error[p20] PASSED [ 78%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_connection_error[p21] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_connection_error[p22] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_merge_multiple_paths PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeConnectedPaths::test_degenerated_path PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_simple_cases_without_action[v0] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_simple_cases_without_action[v1] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_simple_cases_without_action[v2] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_remove_in_between_vertices[v0] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_remove_in_between_vertices[v1] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_remove_duplicated_vertices[v0] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_remove_duplicated_vertices[v1] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_remove_duplicated_vertices[v2] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_remove_duplicated_vertices[v3] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_remove_in_between_vertices_with_direction_change PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestRemoveColinearVertices::test_subdivided_square PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeFullPatch::test_fill_pie[seg0] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeFullPatch::test_fill_pie[seg1] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestMergeFullPatch::test_fill_pie[seg2] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_all_edges_cube PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestGetEdgeStats::test_unique_edge_count PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestGetEdgeStats::test_sum_of_edge_count PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestGetEdgeStats::test_all_balances_are_0 PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestGetEdgeStats::test_invalid_face_orientation_break_the_rules PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestGetEdgeStats::test_coincident_faces_break_the_rules PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestGetEdgeStats::test_edge_balance_has_no_meaning_for_open_surfaces PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestSeparateMeshes::test_separate_a_single_cube_returns_a_single_cube PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestSeparateMeshes::test_separate_menger_sponge PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestSeparateMeshes::test_separate_two_cubes PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestSeparateMeshes::test_separate_two_intersecting_cubes PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestNormals::test_cube_has_six_normals PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestNormals::test_all_normals_are_normalized PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestNormals::test_all_normals_are_different PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_concave_mesh_tessellation PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[none] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[x] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[y] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[z] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[xy] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[xz] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[yz] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_check_face_normals_after_transformation[xyz] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_cube_has_uniform_face_normals PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_multiple_disconnected_cubes PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_flipped_cube_faces_are_also_uniform PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_modified_cube_has_not_uniform_face_normals PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_torus_with_uniform_face_normals PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_find_all_backward_oriented_faces PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_detect_reference_face_orientation PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_regular_open_surface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_regular_cube_has_closed_surface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_multiple_cubes_have_closed_surface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_cube_with_reversed_face_has_closed_surface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::TestFaceOrientationDetector::test_non_manifold_cube_has_not_a_closed_surface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_unify_cube_normals_by_reference_face PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_force_unified_cube_normals_pointing_outwards[False] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_force_unified_cube_normals_pointing_outwards[True] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_unify_cube_normals_by_majority PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_unify_torus_normals_by_majority PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_volume6 PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_volume_of_closed_surface PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_volume_of_surface_with_clockwise_oriented_vertices PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_location_of_mesh_is_not_relevant_for_volume_calculation[loc0] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_location_of_mesh_is_not_relevant_for_volume_calculation[loc1] PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_volume_of_an_open_surface_is_null PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_volume_of_two_cubes_in_a_single_mesh_is_invalid PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_torus_volume PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_surface_area_of_a_cube PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_surface_area_of_a_torus PASSED [ 79%] tests/test_07_render/test_703_mesh_builder.py::test_centroid_of_a_cube PASSED [ 79%] tests/test_07_render/test_704_render_linear_dimension.py::test_linear_dimension_with_one_tolerance PASSED [ 79%] tests/test_07_render/test_704_render_linear_dimension.py::test_linear_dimension_with_two_tolerances PASSED [ 79%] tests/test_07_render/test_704_render_linear_dimension.py::test_linear_dimension_with_limits PASSED [ 79%] tests/test_07_render/test_704_render_linear_dimension.py::test_dimension_insert_attribute_translates_the_block_content PASSED [ 79%] tests/test_07_render/test_704_render_linear_dimension.py::test_override_all_colors[1] PASSED [ 79%] tests/test_07_render/test_704_render_linear_dimension.py::test_override_all_colors[7] PASSED [ 79%] tests/test_07_render/test_705_shape.py::test_init PASSED [ 79%] tests/test_07_render/test_705_shape.py::test_translate PASSED [ 80%] tests/test_07_render/test_705_shape.py::test_scale PASSED [ 80%] tests/test_07_render/test_705_shape.py::test_scale_uniform PASSED [ 80%] tests/test_07_render/test_705_shape.py::test_rotate PASSED [ 80%] tests/test_07_render/test_705_shape.py::test_rotate_center PASSED [ 80%] tests/test_07_render/test_706_random_path.py::test_random_2d_path PASSED [ 80%] tests/test_07_render/test_706_random_path.py::test_random_3d_path PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_trace_builder_init PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_add_station_2d PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_add_station_3d PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_add_spline_segment PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_square_face PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_closed_linear_path PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_two_straight_faces PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_two_angled_faces PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_linear_trace_polygon PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_virtual_entities_added_to_entity_database PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_issue_191 PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_nearly_horizontal_parallel_lines_in_linear_trace_builder PASSED [ 80%] tests/test_07_render/test_707_trace.py::test_nearly_vertical_parallel_lines_in_linear_trace_builder PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_init PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_if_path_is_empty PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_if_path_is_not_empty PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_init_start PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_if_path_with_only_a_start_point_is_still_empty PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_line_to PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_path_requires_a_command_to_represent_a_point PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_curve3_to PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_curve4_to PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_user_data_is_none_by_default PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_set_and_get_user_data PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_path_clones_share_user_data PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_reversed_path_preserves_user_data PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_transformed_path_preserves_user_data PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_sub_paths_inherit_parent_user_data PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_add_curves3 PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_add_curves4 PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_add_curves3_with_gap PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_add_curves4_with_gap PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_add_curves3_reverse PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_add_curves4_reverse PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_has_no_sub_paths_by_default PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_first_move_to PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_multiple_first_move_to PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_move_to_creates_a_multi_path_object PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_merge_multiple_move_to_commands_at_the_end PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_clone_multi_path_object PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_cant_detect_orientation_of_multi_path_object PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_cant_convert_multi_path_object_to_clockwise_orientation PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_cant_convert_multi_path_object_to_ccw_orientation PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_approximate_multi_path_object PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_flatten_multi_path_object PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_multi_path_object_to_wcs PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_transform_multi_path_object PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_sub_paths_from_single_path_object PASSED [ 80%] tests/test_07_render/test_708a_path.py::TestSubPath::test_sub_paths_from_multi_path_object PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_add_spline PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_from_spline PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_add_ellipse PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_raises_type_error_for_unsupported_objects PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_from_ellipse PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_from_arc PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_from_circle[1] PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_from_circle[-1] PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_from_circle_with_zero_radius PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_from_line PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_from_quadrilateral_with_4_points[SOLID] PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_from_quadrilateral_with_4_points[TRACE] PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_from_quadrilateral_with_4_points[3DFACE] PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_from_quadrilateral_with_3_points[SOLID] PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_from_quadrilateral_with_3_points[TRACE] PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_from_quadrilateral_with_3_points[3DFACE] PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_lwpolyline_lines PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_make_path_from_lwpolyline_with_bulges PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_make_path_from_full_circle_lwpolyline PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_make_path_from_full_circle_lwpolyline_issue_424 PASSED [ 80%] tests/test_07_render/test_708a_path.py::test_lwpolyline_s_shape PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_polyline_lines PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_polyline_with_bulges PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_3d_polyline PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestPathFromBoundaryWithElevationAndFlippedExtrusion::test_from_hatch_polyline_path PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_approximate_lines PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_approximate_curves PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_path_from_hatch_polyline_path_without_bulge PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_path_from_hatch_polyline_path_with_bulge PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_path_cloning PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_approximate_line_curves PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_transform PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_control_vertices PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_has_clockwise_orientation PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_empty_path PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_one_line PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_one_curve3 PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_one_curve4 PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_path_ctrl_vertices PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_path_approx PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_multi_path PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestReversePath::test_reversing_multi_path_with_a_move_to_cmd_at_the_end PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_cw_and_ccw_orientation PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_edge_path PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_from_edge_path_with_two_closed_loops PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_edge_path_loops_with_gaps_should_be_closed PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e00-e10-e20-e30] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e01-e11-e21-e31] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e02-e12-e22-e32] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e03-e13-e23-e33] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e04-e14-e24-e34] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e05-e15-e25-e35] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e06-e16-e26-e36] PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_edge_path_closed_loop[e07-e17-e27-e37] PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestPathFromEdgePathWithElevationAndFlippedExtrusion::test_line_edge PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestPathFromEdgePathWithElevationAndFlippedExtrusion::test_arc_edge PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestPathFromEdgePathWithElevationAndFlippedExtrusion::test_ellipse_edge PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestPathFromEdgePathWithElevationAndFlippedExtrusion::test_spline_edge PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestPathFromEdgePathWithElevationAndFlippedExtrusion::test_from_complex_edge_path PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_extend_path_by_another_none_empty_path PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_extend_path_by_another_single_path PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_extend_path_by_another_multi_path PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_append_empty_path PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_append_path_without_a_gap PASSED [ 81%] tests/test_07_render/test_708a_path.py::test_append_path_with_a_gap PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestCloseSubPath::test_close_last_sub_path PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestCloseSubPath::test_does_nothing_if_last_sub_path_is_closed PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestCloseSubPath::test_does_nothing_if_last_sub_path_is_empty PASSED [ 81%] tests/test_07_render/test_708a_path.py::TestCloseSubPath::test_close_single_path PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_empty_paths PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_start_point_only_paths PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_transformation_is_executed PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_one_path_line_to PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_one_path_curve3_to PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_one_path_curve4_to PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_one_path_multiple_command PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_two_paths_one_command PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_two_paths_multiple_commands PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_multi_path_objects PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestTransformPaths::test_to_ocs PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestPreciseBoundingBox::test_empty_path PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestPreciseBoundingBox::test_line_to PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestPreciseBoundingBox::test_curve3_to PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestPreciseBoundingBox::test_curve4_to PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestPreciseBoundingBox::test_move_to PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestBoundingBox::test_empty_paths PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestBoundingBox::test_one_path PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestBoundingBox::test_two_path PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestBoundingBox::test_not_precise_box PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestBoundingBox::test_precise_box PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_empty_paths PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_uniform_stretch_paths_limited_by_z PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_uniform_stretch_paths_limited_by_y PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_uniform_stretch_paths_limited_by_x PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_uniform_shrink_paths PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_project_into_xy PASSED [ 81%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_project_into_xz PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_project_into_yz PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxUniformScaling::test_invalid_target_size PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxNonUniformScaling::test_non_uniform_stretch_paths PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxNonUniformScaling::test_non_uniform_shrink_paths PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxNonUniformScaling::test_project_into_xy PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxNonUniformScaling::test_project_into_xz PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestFitPathsIntoBoxNonUniformScaling::test_project_into_yz PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPathToBsplineAndVertices::test_empty_path PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPathToBsplineAndVertices::test_only_vertices PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPathToBsplineAndVertices::test_one_quadratic_bezier PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPathToBsplineAndVertices::test_one_cubic_bezier PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPathToBsplineAndVertices::test_adjacent_cubic_beziers_with_G1_continuity PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPathToBsplineAndVertices::test_adjacent_cubic_beziers_without_G1_continuity PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestPathToBsplineAndVertices::test_multiple_segments PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_empty_to_polylines3d PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_polylines3d PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_empty_to_lines PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_lines PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_empty_to_lwpolyline PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_empty_path_to_lwpolyline PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_lwpolylines PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_lwpolylines_with_wcs_elevation PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_lwpolylines_with_ocs PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_multi_path_to_lwpolylines PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_empty_to_polylines2d PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_polylines2d PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_polylines2d_with_wcs_elevation PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_polylines2d_with_ocs PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_empty_to_hatches PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_poly_path_hatches PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_poly_path_hatches_with_wcs_elevation PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_poly_path_hatches_with_ocs PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_edge_path_hatches PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_splines_and_polylines PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestToEntityConverter::test_to_mpolygons_returns_expected_dxf_type PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::test_to_multi_path PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::test_to_multi_path_ignores_empty_paths PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::test_single_paths_from_a_single_path_object PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::test_single_paths_from_a_multi_path_object PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::test_issue_224_end_points PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::test_issue_494_make_path_from_spline_defined_by_fit_points_and_tangents PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_create_a_curve3_command PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_create_a_curve4_command PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_line_to_curve_creates_a_linear_segment[lines_to_curve3] PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_line_to_curve_creates_a_linear_segment[lines_to_curve4] PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_remove_line_segments_of_zero_length_at_the_start PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_remove_line_segments_of_zero_length_between_commands PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_remove_line_segments_of_zero_length_at_the_end PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_does_not_remove_a_line_representing_a_single_point PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_for_very_short_line_segments[0-1e-11] PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_for_very_short_line_segments[10-1e-08] PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_which_length_is_too_short_to_create_a_curve[0-1e-12] PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestAllLinesToCurveConverter::test_which_length_is_too_short_to_create_a_curve[10-1e-09] PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestIsRectangular::test_empty_path PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestIsRectangular::test_less_than_four_corners PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestIsRectangular::test_open_square PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestIsRectangular::test_closed_square PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestIsRectangular::test_rectangle PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestIsRectangular::test_parallelogram PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::TestIsRectangular::test_non_aligned_square PASSED [ 82%] tests/test_07_render/test_708b_path_tools.py::test_polyline_with_bulge_value_greater_one PASSED [ 82%] tests/test_07_render/test_708c_matplotlib_path_tools.py::TestNumpyPath2dToMatplotlibPath::test_no_paths PASSED [ 82%] tests/test_07_render/test_708c_matplotlib_path_tools.py::TestNumpyPath2dToMatplotlibPath::test_line_to PASSED [ 82%] tests/test_07_render/test_708c_matplotlib_path_tools.py::TestNumpyPath2dToMatplotlibPath::test_curve3_to PASSED [ 82%] tests/test_07_render/test_708c_matplotlib_path_tools.py::TestNumpyPath2dToMatplotlibPath::test_curve4_to PASSED [ 82%] tests/test_07_render/test_708c_matplotlib_path_tools.py::TestNumpyPath2dToMatplotlibPath::test_two_single_paths PASSED [ 82%] tests/test_07_render/test_708c_matplotlib_path_tools.py::TestNumpyPath2dToMatplotlibPath::test_one_multi_path PASSED [ 82%] tests/test_07_render/test_708c_matplotlib_path_tools.py::test_orient_paths PASSED [ 82%] tests/test_07_render/test_708e_path_shapes.py::test_unit_circle PASSED [ 82%] tests/test_07_render/test_708e_path_shapes.py::test_scale_circle PASSED [ 82%] tests/test_07_render/test_708e_path_shapes.py::test_move_circle PASSED [ 82%] tests/test_07_render/test_708e_path_shapes.py::test_wedge PASSED [ 82%] tests/test_07_render/test_708e_path_shapes.py::test_ellipse PASSED [ 82%] tests/test_07_render/test_708e_path_shapes.py::test_rotated_ellipse PASSED [ 82%] tests/test_07_render/test_708e_path_shapes.py::test_invalid_rect_dimensions[0-0] PASSED [ 82%] tests/test_07_render/test_708e_path_shapes.py::test_invalid_rect_dimensions[1-0] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_invalid_rect_dimensions[0-1] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_invalid_rect_dimensions[-1-1] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_invalid_rect_dimensions[1--1] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_rectangle PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_transformed_rectangle PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_ngon PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_star PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_gear PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_helix_positive_pitch_goes_up[True] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_helix_positive_pitch_goes_up[False] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_helix_negative_pitch_goes_down[True] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_helix_negative_pitch_goes_down[False] PASSED [ 83%] tests/test_07_render/test_708e_path_shapes.py::test_triangulate_doughnut PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_fast_bbox_detection[1 path] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_fast_bbox_detection[2 separated paths] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_fast_bbox_detection[1 nested sub-path] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_fast_bbox_detection[2 nested sub-path] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_fast_bbox_detection[2 separated sub-paths] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_winding_deconstruction[1 polygon] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_winding_deconstruction[2 polygons] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_winding_deconstruction[1 polygon 1 nested sub-polygon] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_winding_deconstruction[1 polygon 2 nested sub-polygons] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_winding_deconstruction[1 polygon 2 separated sub-polygons] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_flatten_polygons[1 polygon] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_flatten_polygons[2 polygons] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_flatten_polygons[1 polygon 1 nested sub-polygon] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_flatten_polygons[1 polygon 2 nested sub-polygons] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_flatten_polygons[1 polygon 2 separated sub-polygons] PASSED [ 83%] tests/test_07_render/test_708f_path_nesting.py::test_flatten_polygons[1 polygon 2 separated nested sub-polygons] PASSED [ 83%] tests/test_07_render/test_709_linetype_renderer.py::test_line_type_solid PASSED [ 83%] tests/test_07_render/test_709_linetype_renderer.py::test_line_start_is_end PASSED [ 83%] tests/test_07_render/test_709_linetype_renderer.py::test_dashed_line_2 PASSED [ 83%] tests/test_07_render/test_709_linetype_renderer.py::test_dashed_line_4 PASSED [ 83%] tests/test_07_render/test_709_linetype_renderer.py::test_dash_dot_2x_render_issue PASSED [ 83%] tests/test_07_render/test_711_points.py::test_dimensionless_point PASSED [ 83%] tests/test_07_render/test_711_points.py::test_none_point PASSED [ 83%] tests/test_07_render/test_711_points.py::test_cross_point PASSED [ 83%] tests/test_07_render/test_711_points.py::test_x_cross_point PASSED [ 83%] tests/test_07_render/test_711_points.py::test_tick_point PASSED [ 83%] tests/test_07_render/test_711_points.py::test_square_point PASSED [ 83%] tests/test_07_render/test_711_points.py::test_circle_point PASSED [ 83%] tests/test_07_render/test_711_points.py::test_rotated_cross_point PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0-(+x)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0-(+y)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0-(-x)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0-(-y)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0-angled] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0.5-(+x)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0.5-(+y)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0.5-(-x)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0.5-(-y)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[0.5-angled] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.0-(+x)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.0-(+y)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.0-(-x)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.0-(-y)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.0-angled] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.5-(+x)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.5-(+y)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.5-(-x)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.5-(-y)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[1.5-angled] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[2.0-(+x)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[2.0-(+y)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[2.0-(-x)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[2.0-(-y)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[2.0-angled] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-0.5-(+x)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-0.5-(+y)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-0.5-(-x)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-0.5-(-y)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-0.5-angled] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-1.0-(+x)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-1.0-(+y)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-1.0-(-x)] PASSED [ 83%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-1.0-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-1.0-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-100.0-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-100.0-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-100.0-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-100.0-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p1_is_closer_to_base[-100.0-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[2.5-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[2.5-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[2.5-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[2.5-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[2.5-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[3.0-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[3.0-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[3.0-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[3.0-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[3.0-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[4.0-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[4.0-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[4.0-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[4.0-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[4.0-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[100.0-(+x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[100.0-(+y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[100.0-(-x)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[100.0-(-y)] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::TestDetectCloserDefpoints::test_p2_is_closer_to_base[100.0-angled] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_dimension_line_divided_by_measurement_text[60-120] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_dimension_line_divided_by_measurement_text[300-240] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_dimension_line_divided_by_measurement_text[240-300] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_dimension_line_divided_by_measurement_text[300-30] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_text_and_arrows_fit_between_extension_lines PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_has_outside_text_and_arrows[3] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_has_outside_text_and_arrows[6] PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_has_outside_text_and_arrows_but_not_a_wide_text PASSED [ 84%] tests/test_07_render/test_712_render_curved_dimension.py::test_fixed_length_extension_lines PASSED [ 84%] tests/test_07_render/test_713_mleader_builder.py::TestMultiLeaderMTextBuilder::test_set_content PASSED [ 84%] tests/test_07_render/test_713_mleader_builder.py::TestMultiLeaderBlockBuilder::test_set_content PASSED [ 84%] tests/test_07_render/test_714_mleader_render_engine.py::TestRenderEngine::test_add_mtext_content PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestHatchBaseLine::test_positive_line_distance PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestHatchBaseLine::test_negative_line_distance PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestHatchBaseLine::test_hatch_line_direction_error PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestHatchBaseLine::test_dense_hatching_error PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestHatchBaseLine::test_no_offset_error PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestHatchBaseLine::test_very_small_offset_error PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_intersect_line_collinear PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_intersect_line_start PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_intersect_line_end PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_intersect_line_regular[-2] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_intersect_line_regular[0] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_intersect_line_regular[6] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_cubic_bezier_curve PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestIntersectHatchLine::test_missing_line_in_gear_example PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_polygons[10 l 10 l 10-10] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_polygons[2 l 2 r 2 r 2 l 6 l 10 l 2 l 2 r 2 r 2 l 6-14] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_polygons[2 l 2 r 2 l 2 r 2 r 4 l 4 l 10 l 2 l 2 r 2 l 2 r 2 r 4 l 4-18] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_polygons[2 r 2 l 2 r 2 l 2 l 4 r 4 l 10 l 2 r 2 l 2 r 2 l 2 l 4 r 4-18] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_polygons[2 l 2 r 2 r 2 l 2 l 4 r 2 r 4 l 2 l 10 l 2 r 2 l 2 l 2 r 2 r 4 l 2 l 4 r 2-22] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_polygons[3 @2,2 @2,-2 3 l 10 l @-2,-2 @-2,2 2 @-2,-2 @-2,2-14] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_polygons[3 @1,1 @1,1 @1,-1 @1,-1 3 l 10 l @-1,-1 @-1,-1 @-1,1 @-1,1 2 @-1,-1 @-1,-1 @-1,1 @-1,1-14] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_paths[10 l 10 l 10-10] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_paths[2 l 2 r 2 r 2 l 6 l 10 l 2 l 2 r 2 r 2 l 6-14] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_paths[2 l 2 r 2 l 2 r 2 r 4 l 4 l 10 l 2 l 2 r 2 l 2 r 2 r 4 l 4-18] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_paths[2 r 2 l 2 r 2 l 2 l 4 r 4 l 10 l 2 r 2 l 2 r 2 l 2 l 4 r 4-18] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_paths[2 l 2 r 2 r 2 l 2 l 4 r 2 r 4 l 2 l 10 l 2 r 2 l 2 l 2 r 2 r 4 l 2 l 4 r 2-22] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_paths[3 @2,2 @2,-2 3 l 10 l @-2,-2 @-2,2 2 @-2,-2 @-2,2-14] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_paths[3 @1,1 @1,1 @1,-1 @1,-1 3 l 10 l @-1,-1 @-1,-1 @-1,1 @-1,1 2 @-1,-1 @-1,-1 @-1,1 @-1,1-14] PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_curved_path PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_hatch_path_with_hole PASSED [ 84%] tests/test_07_render/test_715_hatching.py::test_vertical_hatching_with_hole PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestLinePatternRendering::test_pattern_length PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestLinePatternRendering::test_render_full_pattern PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestLinePatternRendering::test_render_start_to_offset PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestLinePatternRendering::test_render_offset_to_end PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestLinePatternRendering::test_render_offset_to_offset PASSED [ 84%] tests/test_07_render/test_715_hatching.py::TestLinePatternRendering::test_hatch_line_full_pattern PASSED [ 85%] tests/test_07_render/test_715_hatching.py::TestLinePatternRendering::test_hatch_line_with_start_and_end_offset PASSED [ 85%] tests/test_07_render/test_715_hatching.py::test_explode_earth1_pattern PASSED [ 85%] tests/test_07_render/test_715_issue_747_explode_3d_dim.py::test_exploded_arrow_blocks PASSED [ 85%] tests/test_07_render/test_715_issue_747_explode_3d_dim.py::test_exploded_arc PASSED [ 85%] tests/test_07_render/test_715_issue_747_explode_3d_dim.py::test_exploded_mtext PASSED [ 85%] tests/test_07_render/test_715_issue_747_explode_3d_dim.py::test_exploded_extension_line_1 PASSED [ 85%] tests/test_07_render/test_715_issue_747_explode_3d_dim.py::test_exploded_extension_line_2 PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_horiz_top PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_horiz_bottom PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_horiz_middle PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_45deg_top PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_45deg_bottom PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_one_liner PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_get_attribute_by_subscript PASSED [ 85%] tests/test_08_addons/test_800_mtext_surrogate.py::test_set_attribute_by_subscript PASSED [ 85%] tests/test_08_addons/test_801_r12spline.py::test_r12_quadratic_spline PASSED [ 85%] tests/test_08_addons/test_801_r12spline.py::test_r12_cubic_spline PASSED [ 85%] tests/test_08_addons/test_801_r12spline.py::test_r12_cubic_spline_closed PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_init PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_setter_methods PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_cell_index PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_default_text_cell PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_text_cell PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_block_cell PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_frame PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_cell_style PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_border_style PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_visibility_map PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_rendering PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_dxf_creation_span PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_span_beyond_table_borders PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_grid_coords PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_grid_coords_span PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_draw_cell_background PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_set_border_status PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::test_set_border_style PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::TestStyle::test_init_default_style PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::TestStyle::test_init_custom_style PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::TestStyle::test_get_attribute_index_operator PASSED [ 85%] tests/test_08_addons/test_802_table_painter.py::TestStyle::test_invalid_attribute_name_raises_key_error PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_fmt_mapping PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_fmt_int_list PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_fmt_float_list PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_fmt_vector_list PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_fmt_api_call PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_fmt_dxf_tags PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_line_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_point_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_circle_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_arc_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_text_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_solid_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_shape_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_ellipse_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_insert_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_attdef_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_mtext_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_lwpolyline_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_polyline_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_spline_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_leader_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_mesh_to_code PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_layer_entry PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_ltype_entry PASSED [ 85%] tests/test_08_addons/test_803_entities_to_code.py::test_block_to_code PASSED [ 85%] tests/test_08_addons/test_804_importer.py::test_import_simple_modelspace[R12] PASSED [ 85%] tests/test_08_addons/test_804_importer.py::test_import_simple_modelspace[R2000] PASSED [ 85%] tests/test_08_addons/test_804_importer.py::test_import_tables_without_conflict[R12] PASSED [ 85%] tests/test_08_addons/test_804_importer.py::test_import_tables_without_conflict[R2000] PASSED [ 85%] tests/test_08_addons/test_804_importer.py::test_import_tables_with_conflict_discard[R12] PASSED [ 85%] tests/test_08_addons/test_804_importer.py::test_import_tables_with_conflict_discard[R2000] PASSED [ 85%] tests/test_08_addons/test_804_importer.py::test_import_tables_with_conflict_replace[R12] PASSED [ 85%] tests/test_08_addons/test_804_importer.py::test_import_tables_with_conflict_replace[R2000] PASSED [ 85%] tests/test_08_addons/test_804_importer.py::test_import_block_without_conflict[R12] PASSED [ 85%] tests/test_08_addons/test_804_importer.py::test_import_block_without_conflict[R2000] PASSED [ 85%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_discard[R12] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_discard[R2000] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_rename[R12] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_rename[R2000] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_rename_resolve_block_ref[R12] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_rename_resolve_block_ref[R2000] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_rename_resolve_block_ref_inside_block_def[R12] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_block_with_conflict_rename_resolve_block_ref_inside_block_def[R2000] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_entities_using_complex_linetypes[R12-BORDER--ltypeshp.shx] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_entities_using_complex_linetypes[R12-GAS-Standard-txt] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_entities_using_complex_linetypes[R2000-BORDER--ltypeshp.shx] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_entities_using_complex_linetypes[R2000-GAS-Standard-txt] PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_polyline PASSED [ 86%] tests/test_08_addons/test_804_importer.py::test_import_insert_with_attribs PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_cube_intersect PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_cube_union PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_cube_subtract PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_sphere_cylinder_intersect PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_sphere_cylinder_union PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_sphere_cylinder_subtract PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_bolt PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_example_simple PASSED [ 86%] tests/test_08_addons/test_805_pycsg.py::test_example_infiniteRecursion PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_init PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_get_set_color PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_object_color PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_dithering PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_grayscale PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_dxf_color_index PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_set_lineweight PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestPlotStyle::test_write PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_set_style PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_get_style PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_get_color PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_get_lineweight PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_get_lineweight_none PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_get_lineweight_index PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_get_table_lineweight PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_set_table_lineweight PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_set_table_lineweight_index_error PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_write_header PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_write_aci_table PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestColorDependentPlotStyles::test_write_lineweights PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_set_style PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_get_style PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_get_color PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_get_lineweight PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_get_lineweight_none PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_get_lineweight_index PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_get_table_lineweight PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_set_table_lineweight PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_set_table_lineweight_index_error PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_write_header PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestNamedPlotStyles::test_write_lineweights PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestCTBImport::test_ctb_attribs PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestCTBImport::test_lineweight_table PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestCTBImport::test_style_1 PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestCTBImport::test_style_3 PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestCTBExport::test_create_ctb PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestSTBImport::test_stb_attribs PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestSTBImport::test_normal PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestSTBImport::test_style_1 PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestSTBImport::test_mozman PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestSTBExport::test_create_ctb PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestFunctions::test_color_name PASSED [ 86%] tests/test_08_addons/test_806_acadctb.py::TestFunctions::test_get_bool PASSED [ 86%] tests/test_08_addons/test_807_dwg_loader_basics.py::test_load_classes PASSED [ 86%] tests/test_08_addons/test_807_dwg_loader_basics.py::test_header_commands PASSED [ 86%] tests/test_08_addons/test_807_dwg_loader_basics.py::test_load_all PASSED [ 86%] tests/test_08_addons/test_807_dwg_loader_basics.py::test_crc8_is_runnable PASSED [ 86%] tests/test_08_addons/test_807_dwg_loader_basics.py::test_crc32_is_runnable PASSED [ 86%] tests/test_08_addons/test_807_dwg_loader_basics.py::test_parse_hex_dump PASSED [ 86%] tests/test_08_addons/test_810_drawing_properties.py::test_load_default_ctb PASSED [ 86%] tests/test_08_addons/test_810_drawing_properties.py::test_new_ctb PASSED [ 86%] tests/test_08_addons/test_810_drawing_properties.py::test_resolve_entity_visibility PASSED [ 86%] tests/test_08_addons/test_810_drawing_properties.py::test_resolve_attrib_visibility PASSED [ 86%] tests/test_08_addons/test_810_drawing_properties.py::test_resolve_entity_color PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_existing_true_color_overrides_any_aci_color PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_resolve_entity_linetype PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_resolve_entity_lineweight PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_resolve_block_entities PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::TestResolveLayerACIColor7::test_dark_background PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::TestResolveLayerACIColor7::test_light_background PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::TestResolveLayerACIColor7::test_switch_layout_colors PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::TestResolveLayerACIColor7::test_color_from_true_color_layer PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color[#012345-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color[#456789-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color[#ABCDEF-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color[#abcdef-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color[#ghijkl-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color[000000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color[ABCDEF-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_invalid_color_value_type[0] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_invalid_color_value_type[1.0] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_invalid_color_value_type[color2] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_transparent_color[#00000000-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_transparent_color[#000000FF-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_transparent_color[#000000ff-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_transparent_color[#000000gh-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#0-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#00-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#0000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#00000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#000000-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#0000000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#00000000-True] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[#000000000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[ #0000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_is_valid_color_value_length[ #000000-False] PASSED [ 87%] tests/test_08_addons/test_810_drawing_properties.py::test_resolve_transparency_from_layer PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_basic_frontend_init PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_backend_default_draw_path PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_draw_layout PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_draw_entities PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_filter_draw_entities PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_point_and_layers PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_line PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_lwpolyline_basic PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_lwpolyline_path PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_banded_lwpolyline PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_polyline_2d PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_banded_polyline_2d PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_polyline_3d_basic PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_polyline_3d_path PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_2d_arc_basic PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_3d_circle_basic PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_3d_circle_path PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_3d_arc_basic PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_3d_arc_path PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_3d_ellipse_basic PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_3d_ellipse_path PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_2d_text PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_ignore_3d_text PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_mtext PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_hatch PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_basic_spline PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_mesh PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_polyface PASSED [ 87%] tests/test_08_addons/test_811a_drawing_frontend.py::test_override_filter PASSED [ 87%] tests/test_08_addons/test_811b_drawing_recorder.py::test_replay_layout PASSED [ 87%] tests/test_08_addons/test_811b_drawing_recorder.py::test_points PASSED [ 87%] tests/test_08_addons/test_811b_drawing_recorder.py::test_line PASSED [ 87%] tests/test_08_addons/test_811b_drawing_recorder.py::test_lwpolyline_as_path PASSED [ 87%] tests/test_08_addons/test_811b_drawing_recorder.py::test_replay_properties PASSED [ 87%] tests/test_08_addons/test_811b_drawing_recorder.py::test_override_properties_at_replay PASSED [ 87%] tests/test_08_addons/test_811b_drawing_recorder.py::test_banded_lwpolyline_as_filled_polygon PASSED [ 87%] tests/test_08_addons/test_811b_drawing_recorder.py::test_2d_text_as_filled_paths PASSED [ 87%] tests/test_08_addons/test_811b_drawing_recorder.py::test_bounding_box PASSED [ 87%] tests/test_08_addons/test_811b_drawing_recorder.py::TestCroppingRecords::test_null_sized_crop_box_removes_everything PASSED [ 87%] tests/test_08_addons/test_811b_drawing_recorder.py::TestCroppingRecords::test_remove_entities_outside PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::TestCroppingRecords::test_entities_inside_crop_box_do_not_change PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::TestCroppingRecords::test_crop_filled_paths PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::TestCroppingRecords::test_does_not_crop_holes_inside_crop_box PASSED [ 88%] tests/test_08_addons/test_811b_drawing_recorder.py::TestCroppingRecords::test_does_remove_holes_outside_crop_box PASSED [ 88%] tests/test_08_addons/test_811c_viewport_processing.py::test_ignore_active_viewport PASSED [ 88%] tests/test_08_addons/test_811c_viewport_processing.py::test_ignore_only_the_first_active_viewport PASSED [ 88%] tests/test_08_addons/test_811c_viewport_processing.py::test_ignore_missing_active_viewport PASSED [ 88%] tests/test_08_addons/test_811c_viewport_processing.py::test_ignore_BricsCAD_off_viewports PASSED [ 88%] tests/test_08_addons/test_811c_viewport_processing.py::test_ignore_off_screen_viewports PASSED [ 88%] tests/test_08_addons/test_811c_viewport_processing.py::test_draw_viewports_in_order_of_status PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::TestDXFGraphicProxy::test_dxf_type PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::TestDXFGraphicProxy::test_get_dxfattribs PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::TestDXFGraphicProxy::test_setting_dxfattribs_does_no_alter_wrapped_entity PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::TestDXFGraphicProxy::test_copy_raises_cpy_not_supported_exception PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::TestDXFGraphicProxy::test_supports_virtual_entities_protocol PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::TestDXFGraphicProxy::test_supports_virtual_entities_method_of_wrapped_entity PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::TestDXFGraphicProxy::test_supports_virtual_entities_protocol_of_wrapped_entity PASSED [ 88%] tests/test_08_addons/test_812_drawing_graphic_proxy.py::test_support_for_proxy_graphic_stored_in_acdb_entity PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_mapping_vertex_count_error[points0] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_mapping_vertex_count_error[points1] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_mapping_vertex_count_error[points2] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_map_dxf_point PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_map_dxf_line PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_map_polyline PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_map_dxf_polygon[HATCH] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_map_dxf_polygon[MPOLYGON] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_map_circle PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_map_arc PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_arc_geo_proxy_wcs_to_crs PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_types[entity0] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_types[entity1] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_types[entity2] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_types[entity3] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_types[entity4] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_types[entity5] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_types[entity6] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parsing_type_error PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parsing_value_error[entity0] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parsing_value_error[entity1] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parsing_value_error[entity2] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parsing_value_error[entity3] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parsing_value_error[entity4] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_polygon_without_holes PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_polygon_1_hole PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_polygon_2_holes PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_geometry_collection PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_feature PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_feature_with_geometry_collection PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_parse_feature_collection PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_iter_feature_with_geometry_collection PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity0] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity1] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity2] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity3] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity4] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity5] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity6] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity7] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity8] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity9] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_geo_interface_builder[entity10] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_point_to_dxf_entity PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_line_string_to_dxf_entity PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_without_holes_to_dxf_polygon[HATCH-1] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_without_holes_to_dxf_polygon[MPOLYGON-4] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_with_holes_to_dxf_polygon[HATCH-1] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_with_holes_to_dxf_polygon[MPOLYGON-4] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_mpolygon_supports_fill_and_border_color PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_geometry_collection_to_dxf_entities PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_feature_to_dxf_entities PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_feature_collection_to_dxf_entities PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_dxf_entities_post_process_properties PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_dxf_entities_from_geometry_collection_post_process_properties PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_common_WGS84_projection[deg0-coords0] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_common_WGS84_projection[deg1-coords1] PASSED [ 88%] tests/test_08_addons/test_813_geo_interface.py::test_common_WGS84_projection[deg2-coords2] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_common_WGS84_projection[deg3-coords3] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_common_WGS84_projection[deg4-coords4] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_single_entity[entity0-Point] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_single_entity[entity1-None] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_single_entity[entity2-None] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_single_entity[entity3-MultiPoint] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_single_entity[entity4-None] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_single_entity[entity5-None] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_single_entity[entity6-None] PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_geometrie_collection PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_filter_function_feature_collection PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_polygon_from_hatch_hole_in_hole PASSED [ 89%] tests/test_08_addons/test_813_geo_interface.py::test_three_polygons_from_one_hatch PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[1-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[2-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[.-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[0-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[a-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[!-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[@-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[8-3] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[\xfc-3] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[&-3] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[\xe4-4] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[\xf6-4] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_make_paths_from_str[%-5] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_chinese_char_paths_from_str[\u4e2d-3] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_chinese_char_paths_from_str[\u56fd-4] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_chinese_char_paths_from_str[\u6587-3] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_chinese_char_paths_from_str[\u5b57-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_one_contour_with_holes[1-0] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_one_contour_with_holes[2-0] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_one_contour_with_holes[.-0] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_one_contour_with_holes[0-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_one_contour_with_holes[a-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_one_contour_with_holes[8-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_two_contours_without_holes[:] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_two_contours_without_holes[!] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_two_contours_without_holes[;] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_two_contours_without_holes[=] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_three_contours_and_ignore_holes[\xdc] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_three_contours_and_ignore_holes[\xf6] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_three_contours_and_ignore_holes[\xe4] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_chinese_chars_and_ignore_holes[\u4e2d-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_chinese_chars_and_ignore_holes[\u56fd-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_chinese_chars_and_ignore_holes[\u6587-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::test_group_chinese_chars_and_ignore_holes[\u5b57-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[0] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[0.05] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[100] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_text_path_height_for_exact_drawing_units[-100] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_positive_size[0.05] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_positive_size[1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_positive_size[2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_positive_size[100] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_negative_size[-0.05] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_negative_size[-1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_negative_size[-2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_path_coordinates_for_negative_size[-100] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_length_for_fit_alignment[0.05] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_length_for_fit_alignment[1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_length_for_fit_alignment[2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_length_for_fit_alignment[100] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_scaled_height_and_length_for_aligned_text[0.05] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_scaled_height_and_length_for_aligned_text[1] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_scaled_height_and_length_for_aligned_text[2] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_scaled_height_and_length_for_aligned_text[100] PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_paths_from_empty_string PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_make_multi_path_object PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakePathFromString::test_make_empty_multi_path_object PASSED [ 89%] tests/test_08_addons/test_814_text2path.py::TestMakeHatchesFromString::test_hatches_from_empty_string PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakeHatchesFromString::test_make_exterior_only_hatches PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakeHatchesFromString::test_make_hatches_with_holes PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakeHatchesFromString::test_total_length_for_fit_alignment PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::test_check_entity_type PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_text_returns_correct_types[make_paths_from_entity-Path] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_text_returns_correct_types[make_hatches_from_entity-Hatch] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_text_height[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_text_height[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_text_height[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_left[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_left[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_left[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_center[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_center[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_center[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_right[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_right[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_right[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_baseline[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_baseline[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_baseline[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_bottom[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_bottom[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_bottom[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_middle[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_middle[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_middle[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_top[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_top[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_top[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_fit[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_fit[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_fit[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_aligned[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_aligned[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_alignment_aligned[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_rotation_90[get_path_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_rotation_90[get_paths_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestMakePathsFromEntity::test_rotation_90[get_hatches_bbox] PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestVirtualEntities::test_virtual_entities_as_hatches PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestVirtualEntities::test_virtual_entities_as_splines_and_polylines PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestVirtualEntities::test_virtual_entities_as_lwpolylines PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestVirtualEntities::test_virtual_entities_to_all_types_at_once PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestExplode::test_source_entity_is_destroyed PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestExplode::test_explode_entity_into_layout PASSED [ 90%] tests/test_08_addons/test_814_text2path.py::TestExplode::test_explode_entity_into_the_void PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_single_bin_single_item PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_single_bin_multiple_items[3-1-1] PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_single_bin_multiple_items[1-3-1] PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_single_bin_multiple_items[1-1-3] PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_single_bin_different_sized_items PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_empty_packer PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_empty_box PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_cannot_create_zero_sized_box PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_forced_zero_sized_box PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestExampleSmallerFirst::test_small_bins[box0] PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestExampleSmallerFirst::test_small_bins[box1] PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestExampleSmallerFirst::test_small_bins[box2] PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestExampleSmallerFirst::test_medium_box PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestExampleSmallerFirst::test_medium_box2 PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestExampleSmallerFirst::test_large_box PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestExampleSmallerFirst::test_large_box2 PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestExampleBiggerFirst::test_small_bins[box0] PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestExampleBiggerFirst::test_small_bins[box1] PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestExampleBiggerFirst::test_small_bins[box2] PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestExampleBiggerFirst::test_medium_box PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestExampleBiggerFirst::test_medium_box2 PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestExampleBiggerFirst::test_large_box PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestExampleBiggerFirst::test_large_box2 PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_copy_item[item0] PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::test_copy_item[item1] PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestItemTransformation::test_whd_rotation PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestItemTransformation::test_hwd_rotation PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestItemTransformation::test_hdw_rotation PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestItemTransformation::test_dhw_rotation PASSED [ 90%] tests/test_08_addons/test_816_bin_packing.py::TestItemTransformation::test_dwh_rotation PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::TestItemTransformation::test_wdh_rotation PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_copy_box PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_copy_packer PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_cannot_copy_packed_packer PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_cannot_copy_packer_with_non_empty_bins PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_cannot_append_bins_to_packed_packer PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_cannot_append_non_empty_bins PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_cannot_append_items_to_packed_packer PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_random_shuffle_interface PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_random_shuffle_raise_exception_for_invalid_attempts PASSED [ 91%] tests/test_08_addons/test_816_bin_packing.py::test_pack_item_subset PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_init_value PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_init_value_is_valid[-0.1] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_init_value_is_valid[1.1] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_flip_mutate_at PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_iter PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_reset_data PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_reset_data_checks_validity[values0] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_reset_data_checks_validity[values1] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_new_random_dna PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestFloatDNAZeroOne::test_subscription_setter PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestBitDNA::test_init_value PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestBitDNA::test_reset_data PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestBitDNA::test_new_random_dna PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestBitDNA::test_subscription_setter PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_init_value PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_init_values PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_init_invalid_values PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_reset_data PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_new_random_dna PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_subscription_setter PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_recombine_dna_ocx1_preserves_order PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_random_recombine_dna_ocx1[0-3] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_random_recombine_dna_ocx1[3-7] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_random_recombine_dna_ocx1[7-9] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_random_recombine_dna_ocx1[0-9] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_recombine_dna_ocx1_without_change[0-0] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_recombine_dna_ocx1_without_change[8-8] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_recombine_dna_ocx1_without_change[9-9] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestUniqueIntDNA::test_recombine_dna_ocx1_without_change[10-11] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestIntegerDNA::test_init_value PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestIntegerDNA::test_init_invalid_data PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestIntegerDNA::test_flip_mutate_at PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestIntegerDNA::test_reset_data PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestIntegerDNA::test_new_random_dna PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestHallOfFame::test_build PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestHallOfFame::test_get_n_best PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestHallOfFame::test_get_n_best_negative_values PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestHallOfFame::test_purge PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::test_reverse_mutate PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::test_scramble_mutate PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::test_tournament_selection PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestRouletteSelection::test_weights[1-10000] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestRouletteSelection::test_weights[-10000--1] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestRankBasedSelection::test_weights[1-10000] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestRankBasedSelection::test_weights[-10000--1] PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::test_two_point_crossover PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestThresholdFilter::test_positive_values PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestThresholdFilter::test_negative_values PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestGeneticOptimizer::test_init PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestGeneticOptimizer::test_init_invalid_max_runs PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestGeneticOptimizer::test_can_only_run_once PASSED [ 91%] tests/test_08_addons/test_817_genetic_algorithm.py::TestGeneticOptimizer::test_execution PASSED [ 91%] tests/test_08_addons/test_818_meshex.py::TestStlLoader::test_empty_file_returns_empty_mesh PASSED [ 91%] tests/test_08_addons/test_818_meshex.py::TestStlLoader::test_load_a_single_face PASSED [ 91%] tests/test_08_addons/test_818_meshex.py::TestStlLoader::test_parsing_error_too_few_axis PASSED [ 91%] tests/test_08_addons/test_818_meshex.py::TestStlLoader::test_parsing_error_invalid_coordinate_format PASSED [ 91%] tests/test_08_addons/test_818_meshex.py::TestStlLoader::test_parsing_error_invalid_floats PASSED [ 91%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_valid_data[OFF\n# just a comment\n8 6 0\n-0.500000 -0.500000 0.500000 # ignor this\n0.500000 -0.500000 0.500000\n-0.500000 0.500000 0.500000\n0.500000 0.500000 0.500000\n-0.500000 0.500000 -0.500000\n0.500000 0.500000 -0.500000\n-0.500000 -0.500000 -0.500000\n0.500000 -0.500000 -0.500000\n4 0 1 3 2 # ignore this\n4 2 3 5 4\n4 4 5 7 6\n4 6 7 1 0\n4 1 7 5 3\n4 6 0 2 4\n] PASSED [ 91%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_valid_data[OFF 8 6 0 # ignore this\n-0.500000 -0.500000 0.500000 # ignore this\n0.500000 -0.500000 0.500000\n-0.500000 0.500000 0.500000\n0.500000 0.500000 0.500000\n-0.500000 0.500000 -0.500000\n0.500000 0.500000 -0.500000\n-0.500000 -0.500000 -0.500000\n0.500000 -0.500000 -0.500000\n4 0 1 3 2 # ignore this\n4 2 3 5 4\n4 4 5 7 6\n4 6 7 1 0\n4 1 7 5 3\n4 6 0 2 4\n\n\n# ignore this\n] PASSED [ 91%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_minimal_data PASSED [ 91%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[] PASSED [ 91%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[OFF] PASSED [ 91%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[OFF 8 6 0] PASSED [ 91%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[OFF 8 6 0\n1 2 3] PASSED [ 91%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[OFF 3 1 0\n0 0 0\n 0 0 0\n0 0 Z\n3 0 1 2\n ] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[OFF 3 1 0\n0 0 0\n 0 0 0\n0 0\n3 0 1 2\n ] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[OFF 3 1 0\n0 0 0\n 0 0 0\n0 0 0\n3 0 1\n ] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFLoader::test_parsing_error_invalid_data_raises_parsing_error[OFF 3 1 0\n0 0 0\n 0 0 0\n0 0 0\n3 0 1 z\n ] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJLoader::test_empty_file_returns_empty_mesh PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJLoader::test_load_a_single_face[v 0 0 0\nv 1 0 0\nv 1 1 0\nf 1 2 3\n] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJLoader::test_load_a_single_face[g\nv 0 0 0\nv 1 0 0\nv 1 1 0\ng\nf 1 2 3\n] PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJLoader::test_parsing_error_too_few_axis PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJLoader::test_parsing_error_invalid_coordinate_format PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJLoader::test_parsing_error_invalid_floats PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestSTLDumpString::test_single_face PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestSTLDumpString::test_dump_and_load_cube_ascii PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestSTLDumpString::test_dump_and_load_cube_binary PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFDumpString::test_single_face PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOFFDumpString::test_dump_and_load_cube PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJDumpString::test_single_face PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOBJDumpString::test_dump_and_load_cube PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOpenSCADDumpString::test_single_face PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestOpenSCADDumpString::test_inverted_cube PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::test_ifc_guid_compression PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestRecords::test_add_record_returns_record_number PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestRecords::test_add_record_check_expected_record_number PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestRecords::test_update_one_tag PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestRecords::test_update_multiple_tags PASSED [ 92%] tests/test_08_addons/test_818_meshex.py::TestRecords::test_dumps PASSED [ 92%] tests/test_08_addons/test_819_menger_sponge.py::test_euler_characteristic_for_menger_sponge PASSED [ 92%] tests/test_08_addons/test_819_menger_sponge.py::test_edge_balance_for_menger_sponge PASSED [ 92%] tests/test_08_addons/test_819_menger_sponge.py::test_menger_sponge_is_non_manifold PASSED [ 92%] tests/test_08_addons/test_819_menger_sponge.py::test_menger_sponge_face_count PASSED [ 92%] tests/test_08_addons/test_819_menger_sponge.py::test_menger_sponge_edge_count PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::test_matrix44_to_multmatrix_str PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_build_boolean_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_build_all_operations[Operation.union-union()] PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_build_all_operations[Operation.difference-difference()] PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_build_all_operations[Operation.intersection-intersection()] PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_multmatrix_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_translation_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_rotation_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_rotation_about_axis_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_scale_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_resize_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_auto_resize_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_multi_auto_resize_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::TestScriptBuilder::test_add_mirror_operation PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::test_str_polygon PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::test_str_polygon_is_automatically_closed PASSED [ 92%] tests/test_08_addons/test_820_openscad.py::test_str_polygon_with_holes PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::test_parse_hpgl_commands PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::test_skip_all_pcl5_commands PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_pen_absolute[PD;PA2000,8000;] PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_pen_absolute[PU;PA2000,8000;] PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_select_pen PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_set_pen_width PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_set_current_pen_width PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_set_pen_color PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_set_fill_type_hatching PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_set_fill_type_shading PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_pen_relative PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_polyline PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_cubic_bezier_curve_pen_down PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_cubic_bezier_curve_pen_up PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_circle PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_abs_arc PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_rel_arc PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_abs_arc_three_points_clockwise PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_abs_arc_three_points_counter_clockwise PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_rel_arc_three_points_clockwise PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestRenderEngine::test_polyline_encoded PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_escape[\x1b%-1BBP;] PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_escape[\x1b%0BBP;] PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_escape[\x1b%1BBP;] PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_escape[\x1b%2BBP;] PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_escape[\x1b%3BBP;] PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_short_commands[IN;PU;PD;] PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_short_commands[IN;PU;PD] PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_short_commands[INPUPD] PASSED [ 92%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_short_commands[IN PU PD] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_short_commands[ INPU PD] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_pe_command[PETEST-0] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_pe_command[PUPETEST;PD-1] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_pe_command[PUPUPETEST;PD-2] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_001 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_002 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_filter_non_printable_chars_from_pe_command PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_no_hpgl2_data PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_label_with_terminator[LB MY label \x03PA381,0SI0.125,0.25DI0,1;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_label_with_terminator[LBMY label \x03PA381,0SI0.125,0.25DI0,1;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_label_with_custom_terminator[DT\x04LB Tue Dec 18 16:20:05 2001 \x04PA381,0SI0.125,0.25DI0,1;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_label_with_custom_terminator[DT\x04,0LB Tue Dec 18 16:20:05 2001 \x04PA381,0SI0.125,0.25DI0,1;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_label_with_custom_terminator[DT\x04,1;LB Tue Dec 18 16:20:05 2001 \x04PA381,0SI0.125,0.25DI0,1;] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_reset_custom_terminator[DT\x04LB MY label\x04DTLB My other label \x03] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestTokenizer::test_reset_custom_terminator[DT\x04LB MY label\x04DT;LB My other label \x03] PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageCoordinates::test_user_to_page_coordinates PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageCoordinates::test_user_vector_to_page_vector PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageAnisotropicScaling::test_isotropic_scaling PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageAnisotropicScaling::test_anisotropic_scaling PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageAnisotropicScaling::test_reverse_anisotropic_scaling PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageIsotropicScaling::test_isotropic_bottom_window_50 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageIsotropicScaling::test_isotropic_bottom_window_0 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageIsotropicScaling::test_isotropic_bottom_window_100 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageIsotropicScaling::test_isotropic_left_window_50 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageIsotropicScaling::test_isotropic_left_window_0 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPageIsotropicScaling::test_isotropic_left_window_100 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::test_arc_angles PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::test_sweeping_angle PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPlacementMatrix::test_shift_to_origin_Q1 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPlacementMatrix::test_shift_to_origin_Q3 PASSED [ 93%] tests/test_08_addons/test_821_hpgl2.py::TestPlacementMatrix::test_rotate PASSED [ 93%] tests/test_08_addons/test_821_hpgl2_polygon_encoded.py::TestPolylineEncoding::test_8_bit PASSED [ 93%] tests/test_08_addons/test_821_hpgl2_polygon_encoded.py::TestPolylineEncoding::test_7_bit PASSED [ 93%] tests/test_08_addons/test_821_hpgl2_polygon_encoded.py::TestPolylineDecoding::test_8_bit PASSED [ 93%] tests/test_08_addons/test_821_hpgl2_polygon_encoded.py::TestPolylineDecoding::test_7_bit PASSED [ 93%] tests/test_08_addons/test_821_hpgl2_polygon_encoded.py::TestPolylineDecoding::test_8_bit_float PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestPage::test_ISO_A0 PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestPage::test_ANSI_A PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestPage::test_screen_size_in_pixels PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestDetectFinalPage::test_page_size_scale_1 PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestDetectFinalPage::test_page_size_scale_50 PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestDetectFinalPage::test_page_size_includes_margins_sc1 PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestDetectFinalPage::test_page_size_includes_margins_sc50 PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestDetectFinalPage::test_page_size_limited_page_height PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestDetectFinalPage::test_page_size_limited_page_width PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_stretch_width PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_stretch_height PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_shrink_width PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_shrink_height PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_stretch_width_margins PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_stretch_height_margins PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_shrink_width_margins PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestFitToPage::test_shrink_height_margins PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestSettings::test_rotate_content PASSED [ 93%] tests/test_08_addons/test_823_drawing_layout.py::TestSettings::test_invalid_rotate_content_angle_raises_exception PASSED [ 93%] tests/test_08_addons/test_824_svg_drawing_backend.py::TestStyles::test_create_stroke_style PASSED [ 93%] tests/test_08_addons/test_824_svg_drawing_backend.py::TestStyles::test_style_string PASSED [ 93%] tests/test_08_addons/test_824_svg_drawing_backend.py::TestStrokeWidthMapping::test_min_stroke_width PASSED [ 93%] tests/test_08_addons/test_824_svg_drawing_backend.py::TestStrokeWidthMapping::test_max_stroke_width PASSED [ 93%] tests/test_08_addons/test_824_svg_drawing_backend.py::TestStrokeWidthMapping::test_interpolation PASSED [ 93%] tests/test_08_addons/test_824_svg_drawing_backend.py::TestSVGBackend::test_get_xml_root_element PASSED [ 93%] tests/test_08_addons/test_824_svg_drawing_backend.py::TestSVGBackend::test_get_string PASSED [ 93%] tests/test_08_addons/test_824_svg_drawing_backend.py::test_empty_page PASSED [ 93%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::test_empty_page PASSED [ 93%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::TestPlotterBackend::test_enter_hpgl2_mode_prefix PASSED [ 93%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::TestPlotterBackend::test_init_commands_exist PASSED [ 93%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::TestPlotterBackend::test_pen_color_setup_exist PASSED [ 93%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::TestPlotterBackend::test_set_pen_command_exist PASSED [ 93%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::TestPlotterBackend::test_pen_width_command_exist PASSED [ 93%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::TestPlotterBackend::test_lines_are_7_bit_int_base_32_polyline_encoded PASSED [ 93%] tests/test_08_addons/test_825_hpgl2_drawing_backend.py::TestPlotterBackend::test_curves_are_ascii_encoded_relative_bezier_curves PASSED [ 93%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_default_constructor PASSED [ 93%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_is_immutable PASSED [ 93%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_init_x_y PASSED [ 93%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_init_2_tuple PASSED [ 93%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_init_vec2 PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_init_3_tuple PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_init_vec3 PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_init_type_error PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_compare PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_lower_than PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_is_null PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_bool PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_does_not_support_slicing PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[90] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[-90] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[600] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[-600] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[0.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[360.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[-360.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[720.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_deg_angle[-720.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[3.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[-3.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[10.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[-10.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[0.0] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[6.283185307179586] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[-6.283185307179586] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[12.566370614359172] PASSED [ 94%] tests/test_09_cython_acceleration/test_901_acc_vec2.py::test_normalize_rad_angle[-12.566370614359172] PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_default_constructor PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_is_immutable PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_init_x_y PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_init_2_tuple PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_init_vec2 PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_init_3_tuple PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_init_vec3 PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_init_type_error PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_is_null PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_bool PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_compare PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_lower_than PASSED [ 94%] tests/test_09_cython_acceleration/test_902_acc_vec3.py::test_does_not_support_slicing PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_default_constructor PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_16_numbers_constructor PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_4_rows_constructor PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_set_item PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_set_row_4_values PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_set_row_1_value PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_set_col_4_values PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_set_col_1_value PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_copy PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_get_origin PASSED [ 94%] tests/test_09_cython_acceleration/test_903_acc_matrix44.py::test_array_inplace_transformation PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_default_constructor PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_point PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_tangent PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_approximate PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_flattening PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_approximated_length PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_reverse PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_transform PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_arc_parameters[0-3.141592653589793] PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_arc_parameters[3.141592653589793-6.283185307179586] PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_arc_parameters[0-6.283185307179586] PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_bezier_from_arc[0-180] PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_bezier_from_arc[180-360] PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_bezier_from_arc[0-360] PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_bezier_from_ellipse[0-3.141592653589793] PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_bezier_from_ellipse[3.141592653589793-6.283185307179586] PASSED [ 94%] tests/test_09_cython_acceleration/test_904_acc_bezier4p.py::test_correctness_bezier_from_ellipse[0-6.283185307179586] PASSED [ 94%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_default_constructor PASSED [ 94%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_point PASSED [ 94%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_tangent PASSED [ 94%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_approximate PASSED [ 94%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_flattening PASSED [ 94%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_approximated_length PASSED [ 94%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_reverse PASSED [ 94%] tests/test_09_cython_acceleration/test_905_acc_bezier3p.py::test_transform PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_find_span PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_cython_knots PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_basis_funcs PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_basis_vector PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_weighted_basis_vector PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_basis_funcs_derivatives PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_weighted_basis_funcs_derivatives PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_point_evaluator PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_derivative_evaluator PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_weighted_point_evaluator PASSED [ 95%] tests/test_09_cython_acceleration/test_906_acc_bspline.py::test_weighted_derivative_evaluator PASSED [ 95%] tests/test_10_issues/test_issue_414_bbox_calculation.py::TestMakePath::test_WCS_calculation PASSED [ 95%] tests/test_10_issues/test_issue_414_bbox_calculation.py::TestMakePath::test_make_path PASSED [ 95%] tests/test_10_issues/test_issue_414_bbox_calculation.py::TestMakePath::test_bounding_box_calculation PASSED [ 95%] tests/test_10_issues/test_issue_414_bbox_calculation.py::TestMakePrimitive::test_make_primitive PASSED [ 95%] tests/test_10_issues/test_issue_414_bbox_calculation.py::TestMakePrimitive::test_bounding_box_calculation PASSED [ 95%] tests/test_10_issues/test_issue_557_reload_dimension_text_style.py::test_export_dimtxsty PASSED [ 95%] tests/test_10_issues/test_issue_557_reload_dimension_text_style.py::test_reload_dimtxsty PASSED [ 95%] tests/test_10_issues/test_issue_574_flattening_error.py::test_flattening_by_arc PASSED [ 95%] tests/test_10_issues/test_issue_574_flattening_error.py::test_flattening_by_ellipse PASSED [ 95%] tests/test_10_issues/test_issue_574_flattening_error.py::test_flattening_by_path PASSED [ 95%] tests/test_10_issues/test_issue_574_flattening_error.py::test_flattening_ellipse PASSED [ 95%] tests/test_10_issues/test_issue_589_incorrect_virtual_face3d.py::test_is_poly_face_mesh PASSED [ 95%] tests/test_10_issues/test_issue_589_incorrect_virtual_face3d.py::test_virtual_3dface_has_only_3_vertices PASSED [ 95%] tests/test_10_issues/test_issue_589_incorrect_virtual_face3d.py::test_virtual_3dface_does_not_include_NULLVEC PASSED [ 95%] tests/test_10_issues/test_issue_589_incorrect_virtual_face3d.py::test_mesh_builder PASSED [ 95%] tests/test_10_issues/test_issue_749_text_layout.py::test_parse_text PASSED [ 95%] tests/test_10_issues/test_issue_749_text_layout.py::test_explode_mtext PASSED [ 95%] tests/test_10_issues/test_issue_873_circle_inverted_normal.py::test_loaded_data PASSED [ 95%] tests/test_10_issues/test_issue_873_circle_inverted_normal.py::test_circle_with_inverted_normal PASSED [ 95%] integration_tests/test_acad_table.py::test_virtual_entities_from_block PASSED [ 95%] integration_tests/test_acad_table.py::test_virtual_entities_from_proxy_graphic PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_linear_dimline_all_arrow_style[AC1009] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_linear_dimline_all_arrow_style[AC1015] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_linear_dimline_all_arrow_style[AC1018] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_linear_dimline_all_arrow_style[AC1021] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_linear_dimline_all_arrow_style[AC1024] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_linear_dimline_all_arrow_style[AC1027] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_linear_dimline_all_arrow_style[AC1032] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_random_multi_point_linear_dimension PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_draw_all_arrows[AC1009] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_draw_all_arrows[AC1015] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_draw_all_arrows[AC1018] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_draw_all_arrows[AC1021] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_draw_all_arrows[AC1024] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_draw_all_arrows[AC1027] PASSED [ 95%] integration_tests/test_all_dimline_styles.py::test_draw_all_arrows[AC1032] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793-2-2-2] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--1-1-1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793-1--1-1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793-1-1--1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--2--2-2] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793-2--2--2] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--2-2--2] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--3--3--3] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--1-2-3] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793-1--2-3] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793-1-2--3] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--3--2-1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793-3--2--1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--3-2--1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0-3.141592653589793--3--2--1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-2-2-2] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--1-1-1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1--1-1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1-1--1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--2--2-2] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-2--2--2] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--2-2--2] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3--3--3] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--1-2-3] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1--2-3] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-1-2--3] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3--2-1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287-3--2--1] PASSED [ 95%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3-2--1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[0.5235987755982988-5.759586531581287--3--2--1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-2-2-2] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--1-1-1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1--1-1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1-1--1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--2--2-2] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-2--2--2] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--2-2--2] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3--3--3] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--1-2-3] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1--2-3] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-1-2--3] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3--2-1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988-3--2--1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3-2--1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_random_ellipse_transformations[5.759586531581287-0.5235987755982988--3--2--1] PASSED [ 96%] integration_tests/test_all_ellipse_transformations.py::test_error_config[config0] PASSED [ 96%] integration_tests/test_anonymous_blocks.py::test_create_anonymous_block[AC1009] PASSED [ 96%] integration_tests/test_anonymous_blocks.py::test_create_anonymous_block[AC1015] PASSED [ 96%] integration_tests/test_anonymous_blocks.py::test_create_anonymous_block[AC1018] PASSED [ 96%] integration_tests/test_anonymous_blocks.py::test_create_anonymous_block[AC1021] PASSED [ 96%] integration_tests/test_anonymous_blocks.py::test_create_anonymous_block[AC1024] PASSED [ 96%] integration_tests/test_anonymous_blocks.py::test_create_anonymous_block[AC1027] PASSED [ 96%] integration_tests/test_anonymous_blocks.py::test_create_anonymous_block[AC1032] PASSED [ 96%] integration_tests/test_appsettings.py::test_update_extents PASSED [ 96%] integration_tests/test_audit_critical_dxf_files.py::test_kit_dev_coldfire SKIPPED [ 96%] integration_tests/test_audit_critical_dxf_files.py::test_leica_disto_r12[Leica_Disto_S910.dxf] PASSED [ 96%] integration_tests/test_audit_layouts.py::test_find_orphaned_layouts PASSED [ 96%] integration_tests/test_audit_layouts.py::test_find_orphaned_block_record PASSED [ 96%] integration_tests/test_audit_layouts.py::test_load_MODEL PASSED [ 96%] integration_tests/test_complex_line_type_2.py::test_complex_line_type PASSED [ 96%] integration_tests/test_create_basic_graphics.py::test_basic_graphics[AC1009] PASSED [ 96%] integration_tests/test_create_basic_graphics.py::test_basic_graphics[AC1015] PASSED [ 96%] integration_tests/test_create_basic_graphics.py::test_basic_graphics[AC1018] PASSED [ 96%] integration_tests/test_create_basic_graphics.py::test_basic_graphics[AC1021] PASSED [ 96%] integration_tests/test_create_basic_graphics.py::test_basic_graphics[AC1024] PASSED [ 96%] integration_tests/test_create_basic_graphics.py::test_basic_graphics[AC1027] PASSED [ 96%] integration_tests/test_create_basic_graphics.py::test_basic_graphics[AC1032] PASSED [ 96%] integration_tests/test_document_guid.py::test_guids_are_created_for_new_docs PASSED [ 96%] integration_tests/test_document_guid.py::test_guids_are_preserved_at_loading PASSED [ 96%] integration_tests/test_document_guid.py::test_fingerprint_guid_is_preserved_at_export PASSED [ 96%] integration_tests/test_document_guid.py::test_version_guid_changes_at_export PASSED [ 96%] integration_tests/test_document_page_setup.py::test_simple_page_setup_is_not_supported_for_DXF_R12 PASSED [ 96%] integration_tests/test_document_page_setup.py::test_reset_layout1_landscape PASSED [ 96%] integration_tests/test_document_page_setup.py::test_invalid_paper_format_returns_A3 PASSED [ 96%] integration_tests/test_document_page_setup.py::test_reset_layout1_portrait PASSED [ 96%] integration_tests/test_document_page_setup.py::test_resetting_layout1_creates_a_new_main_viewport PASSED [ 96%] integration_tests/test_document_page_setup.py::test_resetting_layout1_does_not_delete_entities PASSED [ 96%] integration_tests/test_document_page_setup.py::test_new_layout2 PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1009-asc] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1009-bin] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1015-asc] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1015-bin] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1018-asc] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1018-bin] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1021-asc] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1021-bin] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1024-asc] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1024-bin] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1027-asc] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1027-bin] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1032-asc] PASSED [ 96%] integration_tests/test_dxf_info_scanning.py::test_dxf_info_scanning[AC1032-bin] PASSED [ 96%] integration_tests/test_dynblkhelper.py::test_direct_dynamic_block_references PASSED [ 96%] integration_tests/test_dynblkhelper.py::test_indirect_dynamic_block_references PASSED [ 96%] integration_tests/test_entities_iterator.py::test_entities_iterator[AC1009] PASSED [ 96%] integration_tests/test_entities_iterator.py::test_entities_iterator[AC1015] PASSED [ 96%] integration_tests/test_fix_dulicate_handles.py::test_recover_duplicate_handles[duplicate_handles.dxf] PASSED [ 96%] integration_tests/test_groups.py::test_load_dxf_with_groups PASSED [ 96%] integration_tests/test_groups.py::test_delete_group_content_and_export_dxf PASSED [ 96%] integration_tests/test_groups.py::test_reload_dxf_with_empty_group_content PASSED [ 96%] integration_tests/test_hpgl2_addon.py::test_svg_was_created PASSED [ 96%] integration_tests/test_hpgl2_addon.py::test_basic_svg_attributes PASSED [ 96%] integration_tests/test_ignore_junk_beyond_EOF.py::test_recover_ignores_junk_beyond_EOF PASSED [ 96%] integration_tests/test_ignore_junk_beyond_EOF.py::test_readfile_ignores_junk_beyond_EOF PASSED [ 96%] integration_tests/test_launcher.py::test_version PASSED [ 97%] integration_tests/test_launcher.py::test_audit_existing_file PASSED [ 97%] integration_tests/test_launcher.py::test_audit_file_not_found PASSED [ 97%] integration_tests/test_leica_disto_r12.py::test_leica_disto_r12[Leica_Disto_S910.dxf] PASSED [ 97%] integration_tests/test_load_dxf_unicode_notation.py::test_load_special_dxf_unicode_notation[ASCII_R12.dxf] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water3b-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water3b-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[eberly-6-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[eberly-6-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[boxy-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[boxy-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue149-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue149-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[building-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[building-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[rain-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[rain-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[eberly-3-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[eberly-3-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[dude-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[dude-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[bad-diagonals-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[bad-diagonals-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[degenerate-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[degenerate-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[infinite-loop-jhl-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[infinite-loop-jhl-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[filtered-bridge-jhl-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[filtered-bridge-jhl-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water3-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water3-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue16-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue16-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[collinear-diagonal-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[collinear-diagonal-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[touching-holes-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[touching-holes-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water4-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water4-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[touching2-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[touching2-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[hilbert-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[hilbert-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue52-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue52-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[shared-points-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[shared-points-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[empty-square-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[empty-square-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[self-touching-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[self-touching-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[outside-ring-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[outside-ring-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[bad-hole-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[bad-hole-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue29-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue29-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[steiner-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[steiner-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue119-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue119-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue35-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue35-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue131-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue131-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water2-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[water2-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue34-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue34-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue45-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue45-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue107-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue107-Cython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[simplified-us-border-CPython] PASSED [ 97%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[simplified-us-border-Cython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[touching3-CPython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[touching3-Cython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue83-CPython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue83-Cython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue17-CPython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[issue17-Cython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[hole-touching-outer-CPython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[hole-touching-outer-Cython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[hourglass-CPython] PASSED [ 98%] integration_tests/test_mapbox_earcut.py::test_mapbox_earcut[hourglass-Cython] PASSED [ 98%] integration_tests/test_mtext_columns.py::test_load_mtext_columns_from_dxf_r2007[load] PASSED [ 98%] integration_tests/test_mtext_columns.py::test_load_mtext_columns_from_dxf_r2007[recover] PASSED [ 98%] integration_tests/test_mtext_columns.py::test_load_mtext_columns_from_dxf_r2018[load] PASSED [ 98%] integration_tests/test_mtext_columns.py::test_load_mtext_columns_from_dxf_r2018[recover] PASSED [ 98%] integration_tests/test_mtext_explode_addon.py::test_created_text_styles_exists PASSED [ 98%] integration_tests/test_mtext_explode_addon.py::test_addon_is_still_working PASSED [ 98%] integration_tests/test_mtext_text_frame.py::test_remove_mtext_text_frame_at_loading_stage[load] PASSED [ 98%] integration_tests/test_mtext_text_frame.py::test_remove_mtext_text_frame_at_loading_stage[recover] PASSED [ 98%] integration_tests/test_mtext_text_frame.py::test_remove_column_text_frames_at_loading_stage PASSED [ 98%] integration_tests/test_mtext_text_frame.py::test_do_not_export_mtext_text_borders PASSED [ 98%] integration_tests/test_new_table_entries.py::test_adding_table_entries[AC1009] PASSED [ 98%] integration_tests/test_new_table_entries.py::test_adding_table_entries[AC1015] PASSED [ 98%] integration_tests/test_new_table_entries.py::test_adding_table_entries[AC1018] PASSED [ 98%] integration_tests/test_new_table_entries.py::test_adding_table_entries[AC1021] PASSED [ 98%] integration_tests/test_new_table_entries.py::test_adding_table_entries[AC1024] PASSED [ 98%] integration_tests/test_new_table_entries.py::test_adding_table_entries[AC1027] PASSED [ 98%] integration_tests/test_new_table_entries.py::test_adding_table_entries[AC1032] PASSED [ 98%] integration_tests/test_none_ascii_read_write.py::test_write_and_read_unicode[AC1009] PASSED [ 98%] integration_tests/test_none_ascii_read_write.py::test_write_and_read_unicode[AC1015] PASSED [ 98%] integration_tests/test_none_ascii_read_write.py::test_write_and_read_unicode[AC1018] PASSED [ 98%] integration_tests/test_none_ascii_read_write.py::test_write_and_read_unicode[AC1021] PASSED [ 98%] integration_tests/test_none_ascii_read_write.py::test_write_and_read_unicode[AC1024] PASSED [ 98%] integration_tests/test_none_ascii_read_write.py::test_write_and_read_unicode[AC1027] PASSED [ 98%] integration_tests/test_none_ascii_read_write.py::test_write_and_read_unicode[AC1032] PASSED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Not_Required::test_source_does_not_exist PASSED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Not_Required::test_source_has_unsupported_extension PASSED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Not_Required::test_destination_already_exist PASSED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Not_Required::test_destination_folder_does_not_exist PASSED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Not_Required::test_destination_has_unsupported_extension PASSED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Not_Required::test_invalid_DXF_version PASSED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Required::test_dxf_to_dwg_same_stem SKIPPED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Required::test_dxf_to_dwg_new_stem SKIPPED [ 98%] integration_tests/test_odafc.py::Test_Convert_ODAFC_Required::test_upgrade_dxf_to_r2013 SKIPPED [ 98%] integration_tests/test_odafc.py::Test_Export_And_Load_DWG::test_export_dwg SKIPPED [ 98%] integration_tests/test_odafc.py::Test_Export_And_Load_DWG::test_read_dwg SKIPPED [ 98%] integration_tests/test_open_R13_R14.py::test_open_R13_R14[small_r13.dxf] PASSED [ 98%] integration_tests/test_open_R13_R14.py::test_open_R13_R14[small_r14.dxf] PASSED [ 98%] integration_tests/test_open_R13_R14.py::test_open_R13_R14[no_layouts.dxf] PASSED [ 98%] integration_tests/test_open_binary_DXF_files.py::test_open_R13_R14[bin_dxf_r14.dxf] PASSED [ 98%] integration_tests/test_open_binary_DXF_files.py::test_open_R13_R14[bin_dxf_r13.dxf] PASSED [ 98%] integration_tests/test_open_binary_DXF_files.py::test_open_R2000_with_xdata PASSED [ 98%] integration_tests/test_open_binary_DXF_files.py::test_open_R12 PASSED [ 98%] integration_tests/test_open_coord_order_issue.py::test_coordinate_order_problem[AC1003_LINE_Example.dxf] PASSED [ 98%] integration_tests/test_open_exotic_dxf_files.py::test_read_plain_cp936_chinese SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::test_read_from_zip SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::TestProE::test_read_ProE_file SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::TestProE::test_recover_ProE_file SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::TestCorruptCivil3D::test_readfile_and_preserve_errors_by_surrogate_escape SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::TestCorruptCivil3D::test_readfile_and_ignore_errors SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::TestCorruptCivil3D::test_readfile_and_raise_exception SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::TestCorruptCivil3D::test_recover SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::test_read_map_3d SKIPPED [ 98%] integration_tests/test_open_exotic_dxf_files.py::test_read_gerber_file SKIPPED [ 98%] integration_tests/test_polyline_entity.py::test_create_polyline_entities[AC1009] PASSED [ 98%] integration_tests/test_polyline_entity.py::test_create_polyline_entities[AC1015] PASSED [ 98%] integration_tests/test_polyline_entity.py::test_create_polyline_entities[AC1018] PASSED [ 98%] integration_tests/test_polyline_entity.py::test_create_polyline_entities[AC1021] PASSED [ 98%] integration_tests/test_polyline_entity.py::test_create_polyline_entities[AC1024] PASSED [ 98%] integration_tests/test_polyline_entity.py::test_create_polyline_entities[AC1027] PASSED [ 98%] integration_tests/test_polyline_entity.py::test_create_polyline_entities[AC1032] PASSED [ 98%] integration_tests/test_preserve_binary_data_in_xrecords.py::test_civil_3d_preserves_binary_data_in_xrecords[22C1] SKIPPED [ 98%] integration_tests/test_preserve_binary_data_in_xrecords.py::test_civil_3d_preserves_binary_data_in_xrecords[22C4] SKIPPED [ 98%] integration_tests/test_preserve_binary_data_in_xrecords.py::test_civil_3d_preserves_binary_data_in_xrecords[22C7] SKIPPED [ 98%] integration_tests/test_preserve_binary_data_in_xrecords.py::test_dxf_export_xrecords_with_binary_data[22C1-0] SKIPPED [ 98%] integration_tests/test_preserve_binary_data_in_xrecords.py::test_dxf_export_xrecords_with_binary_data[22C4-1] SKIPPED [ 98%] integration_tests/test_preserve_binary_data_in_xrecords.py::test_dxf_export_xrecords_with_binary_data[22C7-2] SKIPPED [ 99%] integration_tests/test_r12export.py::test_export_empty_doc PASSED [ 99%] integration_tests/test_r12export.py::test_export_dxf_primitives PASSED [ 99%] integration_tests/test_r12export.py::test_export_lwpolyline_as_polyline PASSED [ 99%] integration_tests/test_r12export.py::test_export_mesh_as_polyface_mesh PASSED [ 99%] integration_tests/test_r12export.py::test_export_ellipse_as_3d_polyline PASSED [ 99%] integration_tests/test_r12export.py::test_export_spline_as_3d_polyline PASSED [ 99%] integration_tests/test_r12export.py::test_export_proxy_graphic PASSED [ 99%] integration_tests/test_r12export.py::test_export_mtext PASSED [ 99%] integration_tests/test_r12export.py::test_export_virtual_entities PASSED [ 99%] integration_tests/test_r12export.py::test_export_hatch_pattern_fill PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_header_vars PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_appid PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_ltype PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_layer PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_text_style PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_dimstyle PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_ucs PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_view PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_vport PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_common_attributes PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_text_attributes PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_text_xdata PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_dimension_attributes PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_block_reference_attributes PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_modelspace_xdata PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_block_layout_names[MY_BLOCK_00] PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_block_layout_names[MY_BLOCK_1] PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_block_layout_names[MY_BLOCK_01] PASSED [ 99%] integration_tests/test_r12strict.py::test_translated_block_content_attributes PASSED [ 99%] integration_tests/test_r12strict.py::test_clean_xdata_from_table_entries PASSED [ 99%] integration_tests/test_r12strict.py::test_remove_legacy_blocks PASSED [ 99%] integration_tests/test_r12writer.py::test_if_exists PASSED [ 99%] integration_tests/test_r12writer.py::test_write_r12 PASSED [ 99%] integration_tests/test_r12writer.py::test_read_r12 PASSED [ 99%] integration_tests/test_r12writer.py::test_context_manager PASSED [ 99%] integration_tests/test_r12writer.py::test_write_and_read_binary_dxf PASSED [ 99%] integration_tests/test_read_file_without_handles.py::test_read_file_without_handles PASSED [ 99%] integration_tests/test_read_write_modern_entites.py::test_lwpolyline PASSED [ 99%] integration_tests/test_recover.py::test_bytes_loader PASSED [ 99%] integration_tests/test_recover.py::test_safe_tag_loader PASSED [ 99%] integration_tests/test_recover.py::test_rebuild_sections PASSED [ 99%] integration_tests/test_recover.py::test_build_section_dict PASSED [ 99%] integration_tests/test_recover.py::test_readfile_recover01_dxf PASSED [ 99%] integration_tests/test_recover.py::test_rebuild_tables PASSED [ 99%] integration_tests/test_recover.py::test_readfile_recover02_dxf PASSED [ 99%] integration_tests/test_recover.py::test_read_cc_dxflib_file PASSED [ 99%] integration_tests/test_recover.py::test_readfile_empty_handles_dxf PASSED [ 99%] integration_tests/test_recover.py::test_decode_dxf_unicode_automatically PASSED [ 99%] integration_tests/test_recover.py::test_recover_layout_broken_links_1 PASSED [ 99%] integration_tests/test_recover.py::test_recover_layout_broken_links_2 PASSED [ 99%] integration_tests/test_recover.py::test_recover_layout_missing_block_record PASSED [ 99%] integration_tests/test_recover.py::test_recover_layout_missing_block_definition PASSED [ 99%] integration_tests/test_redraw_order.py::test_unset_redraw_order_returns_empty_tuple PASSED [ 99%] integration_tests/test_redraw_order.py::test_set_redraw_order PASSED [ 99%] integration_tests/test_redraw_order.py::test_store_and_load_redraw_order PASSED [ 99%] integration_tests/test_rotated_block_attributes.py::test_rotated_block[AC1009] PASSED [ 99%] integration_tests/test_rotated_block_attributes.py::test_rotated_block[AC1015] PASSED [ 99%] integration_tests/test_rotated_block_attributes.py::test_rotated_block[AC1018] PASSED [ 99%] integration_tests/test_rotated_block_attributes.py::test_rotated_block[AC1021] PASSED [ 99%] integration_tests/test_rotated_block_attributes.py::test_rotated_block[AC1024] PASSED [ 99%] integration_tests/test_rotated_block_attributes.py::test_rotated_block[AC1027] PASSED [ 99%] integration_tests/test_rotated_block_attributes.py::test_rotated_block[AC1032] PASSED [ 99%] integration_tests/test_surface_entities.py::test_get_acis_data_from_surfaces SKIPPED [ 99%] integration_tests/test_write_fixed_meta_data.py::test_fixed_meta_data[R12] PASSED [ 99%] integration_tests/test_write_fixed_meta_data.py::test_fixed_meta_data[R2000] PASSED [ 99%] integration_tests/test_write_fixed_meta_data.py::test_fixed_meta_data[R2018] PASSED [ 99%] integration_tests/test_write_fixed_meta_data.py::test_meta_data_is_different[R12] PASSED [ 99%] integration_tests/test_write_fixed_meta_data.py::test_meta_data_is_different[R2000] PASSED [ 99%] integration_tests/test_write_fixed_meta_data.py::test_meta_data_is_different[R2018] PASSED [ 99%] integration_tests/test_write_without_handles.py::test_check_R12_has_handles[POLI-ALL210_12.DXF] PASSED [ 99%] integration_tests/test_write_without_handles.py::test_write_R12_without_handles[POLI-ALL210_12.DXF] PASSED [ 99%] integration_tests/test_xref_detach.py::test_xref_doc_has_required_properties PASSED [ 99%] integration_tests/test_xref_detach.py::test_detached_dxf_contains_all_block_entities PASSED [ 99%] integration_tests/test_xref_detach.py::test_xref_doc_has_required_resources PASSED [ 99%] integration_tests/test_xref_detach.py::test_source_block_is_empty PASSED [100%] =========== 7495 passed, 88 skipped, 1 xfailed in 610.01s (0:10:10) ============ + find /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64 -type f '(' -name '*.tt[fc]' -o -name '*.otf' -o -name '*.woff' -o -name '*.woff2' -o -name '*.eof' -o -name '*.sh[xp]' -o name '*.lff' ')' find: paths must precede expression: `name' + RPM_EC=0 ++ jobs -p + exit 0 Processing files: python3-ezdxf-1.2.0-21.fc40.riscv64 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.RInh3q + umask 022 + cd /builddir/build/BUILD + cd ezdxf-1.2.0 + DOCDIR=/builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/doc/python3-ezdxf + export LC_ALL= + LC_ALL= + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/doc/python3-ezdxf + cp -pr /builddir/build/BUILD/ezdxf-1.2.0/README.md /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/doc/python3-ezdxf + RPM_EC=0 ++ jobs -p + exit 0 Provides: bundled(python3dist(py3dbp)) python-ezdxf = 1.2.0-21.fc40 python3-ezdxf = 1.2.0-21.fc40 python3-ezdxf(riscv-64) = 1.2.0-21.fc40 python3.12-ezdxf = 1.2.0-21.fc40 python3.12dist(ezdxf) = 1.2 python3dist(ezdxf) = 1.2 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /usr/bin/python3 ld-linux-riscv64-lp64d.so.1()(64bit) ld-linux-riscv64-lp64d.so.1(GLIBC_2.27)(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.27)(64bit) python(abi) = 3.12 python3.12dist(fonttools) python3.12dist(numpy) python3.12dist(pyparsing) >= 2.0.1 python3.12dist(typing-extensions) >= 4.6 rtld(GNU_HASH) Obsoletes: python3-ezdxf+all < 0.17.2-7 Processing files: python3-ezdxf+draw5-1.2.0-21.fc40.riscv64 Provides: python-ezdxf+draw5 = 1.2.0-21.fc40 python3-ezdxf+draw5 = 1.2.0-21.fc40 python3-ezdxf+draw5(riscv-64) = 1.2.0-21.fc40 python3.12-ezdxf+draw5 = 1.2.0-21.fc40 python3.12dist(ezdxf[draw5]) = 1.2 python3dist(ezdxf[draw5]) = 1.2 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 3.12 python3.12dist(matplotlib) python3.12dist(pillow) python3.12dist(pymupdf) >= 1.20 python3.12dist(pyqt5) Processing files: python-ezdxf-doc-1.2.0-21.fc40.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.AqfJc4 + umask 022 + cd /builddir/build/BUILD + cd ezdxf-1.2.0 + DOCDIR=/builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/doc/python-ezdxf-doc + export LC_ALL= + LC_ALL= + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/doc/python-ezdxf-doc + cp -pr /builddir/build/BUILD/ezdxf-1.2.0/README.md /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/doc/python-ezdxf-doc + cp -pr /builddir/build/BUILD/ezdxf-1.2.0/autolisp /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/doc/python-ezdxf-doc + cp -pr /builddir/build/BUILD/ezdxf-1.2.0/examples /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/doc/python-ezdxf-doc + cp -pr /builddir/build/BUILD/ezdxf-1.2.0/examples_dxf /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/doc/python-ezdxf-doc + cp -pr /builddir/build/BUILD/ezdxf-1.2.0/examples_hpgl2 /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/doc/python-ezdxf-doc + cp -pr /builddir/build/BUILD/ezdxf-1.2.0/exploration /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/doc/python-ezdxf-doc + cp -pr /builddir/build/BUILD/ezdxf-1.2.0/docs/build/latex/ezdxf.pdf /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/doc/python-ezdxf-doc + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.AnWTC5 + umask 022 + cd /builddir/build/BUILD + cd ezdxf-1.2.0 + LICENSEDIR=/builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/licenses/python-ezdxf-doc + export LC_ALL= + LC_ALL= + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/licenses/python-ezdxf-doc + cp -pr /builddir/build/BUILD/ezdxf-1.2.0/LICENSE /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64/usr/share/licenses/python-ezdxf-doc + RPM_EC=0 ++ jobs -p + exit 0 Provides: python-ezdxf-doc = 1.2.0-21.fc40 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Processing files: python-ezdxf-debugsource-1.2.0-21.fc40.riscv64 Provides: python-ezdxf-debugsource = 1.2.0-21.fc40 python-ezdxf-debugsource(riscv-64) = 1.2.0-21.fc40 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Processing files: python3-ezdxf-debuginfo-1.2.0-21.fc40.riscv64 Provides: debuginfo(build-id) = 13190a081fcbcd70fad3ad1d893e1aaae6cefb7e debuginfo(build-id) = 278f5e7fa9a48109c569b4cae352354e48d77c7e debuginfo(build-id) = 47847353408b135c6b1bbb0655ee1e511473d38b debuginfo(build-id) = 756d91102482857733ea139b954f2dd1fa54af8b debuginfo(build-id) = 9988aed4f9c8fcd31b0a40b1c7cb62be5cfda73f debuginfo(build-id) = 9ba76c5dfe0dff77bde2e271c30247693e76f15f debuginfo(build-id) = ae918a3156f7d2574265aae4274c385364c77a3e debuginfo(build-id) = dd5f2f4f80f97e0b1fd151a933d16aba77162607 debuginfo(build-id) = fabbf03fa6db92c32f0f69ee9b56a2a51e22f81e python-ezdxf-debuginfo = 1.2.0-21.fc40 python3-ezdxf-debuginfo = 1.2.0-21.fc40 python3-ezdxf-debuginfo(riscv-64) = 1.2.0-21.fc40 python3.12-ezdxf-debuginfo = 1.2.0-21.fc40 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: python-ezdxf-debugsource(riscv-64) = 1.2.0-21.fc40 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64 Wrote: /builddir/build/SRPMS/python-ezdxf-1.2.0-21.fc40.src.rpm Wrote: /builddir/build/RPMS/python3-ezdxf-debuginfo-1.2.0-21.fc40.riscv64.rpm Wrote: /builddir/build/RPMS/python3-ezdxf+draw5-1.2.0-21.fc40.riscv64.rpm Wrote: /builddir/build/RPMS/python-ezdxf-debugsource-1.2.0-21.fc40.riscv64.rpm Wrote: /builddir/build/RPMS/python-ezdxf-doc-1.2.0-21.fc40.noarch.rpm Wrote: /builddir/build/RPMS/python3-ezdxf-1.2.0-21.fc40.riscv64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.olml9Z + umask 022 + cd /builddir/build/BUILD + cd ezdxf-1.2.0 + /usr/bin/rm -rf /builddir/build/BUILDROOT/python-ezdxf-1.2.0-21.fc40.riscv64 + RPM_EC=0 ++ jobs -p + exit 0 Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.yrMljy + umask 022 + cd /builddir/build/BUILD + rm -rf /builddir/build/BUILD/ezdxf-1.2.0-SPECPARTS + rm -rf ezdxf-1.2.0 ezdxf-1.2.0.gemspec + RPM_EC=0 ++ jobs -p + exit 0 RPM build warnings: The %{pyproject_build_lib} macro is deprecated. It only works with setuptools and is not build-backend-agnostic. The macro is not scheduled for removal, but there is a possibility of incompatibilities with future versions of setuptools. As a replacement for the macro for the setuptools backend on Fedora 37+, you can use $PWD/build/lib for pure Python packages, or $PWD/build/lib.%{python3_platform}-cpython-%{python3_version_nodots} for packages with extension modules. Other build backends and older distributions may need different paths. See https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/HMLOPAU3RZLXD4BOJHTIPKI3I4U6U7OE/ for details. Child return code was: 0