1# Copyright (c) 2020, Manfred Moitzi 2# License: MIT License 3 4import pytest 5from ezdxf.render.linetypes import LineTypeRenderer 6 7 8def test_line_type_solid(): 9 ltr = LineTypeRenderer(dashes=tuple()) 10 assert ltr.is_solid is True 11 assert list(ltr.line_segment((0, 0), (5, 0))) == [((0, 0), (5, 0))] 12 13 14def test_line_start_is_end(): 15 ltr = LineTypeRenderer(dashes=tuple()) 16 assert list(ltr.line_segment((0, 0), (0, 0))) == [((0, 0), (0, 0))] 17 18 19def test_dashed_line_2(): 20 ltr = LineTypeRenderer(dashes=(1, 1)) 21 result = list(ltr.line_segment((0, 0), (2, 0))) 22 assert len(result) == 1 23 assert result[0] == ((0, 0), (1, 0)) 24 25 26def test_dashed_line_4(): 27 ltr = LineTypeRenderer(dashes=(1, 1)) 28 result = list(ltr.line_segment((0, 0), (4, 0))) 29 assert len(result) == 2 30 assert result[0] == ((0, 0), (1, 0)) 31 # 1,0 -> 2,0 is a gap 32 assert result[1] == ((2, 0), (3, 0)) 33 34 35def test_dash_dot_2x_render_issue(): 36 # DASHDOTX2 (0, 0) -> (20, 0) 37 ltr = LineTypeRenderer(dashes=(2.0, 0.2, 0.1, 0.2)) 38 result = list(ltr.line_segment((0, 0), (20, 0))) 39 last_segment = result[-1] 40 # Last segment is very very short: 41 assert last_segment[0].isclose(last_segment[1]) 42 43 44if __name__ == '__main__': 45 pytest.main([__file__]) 46