Files
Pier_v1/pierzainer_ground/tests/test_survey_polyline.py
T
CopilotandCopilot 06e1b97a62
ITAM Code Check / build-and-config-check (push) Failing after 37s
ITAM Docker Build Check / docker-build-check (push) Failing after 1m0s
교각 프로그램 초기 버전
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-02 15:55:01 +09:00

29 lines
1.4 KiB
Python

import tempfile
from pathlib import Path
import unittest
import ezdxf
import numpy as np
from pierzainer_ground.survey_terrain import read_survey_block
class SurveyPolylineTests(unittest.TestCase):
def options(self):
return dict(terrain_block='*Model_Space',z_min=-200,z_max=200,exclude_zero=True,
contour_step_m=2,dedup_m=.001,cad_axes='YX')
def test_2d_header_height_not_zero_vertices(self):
doc=ezdxf.new();doc.modelspace().add_polyline2d([(100,200),(104,200),(104,204)],dxfattribs={'elevation':(0,0,45)})
points,counts,_=read_survey_block(Path('unused.dxf'),self.options(),doc=doc)
self.assertTrue(np.all(points[:,2]==45));self.assertEqual(counts['constant_height_polylines'],1)
self.assertTrue(any(np.array_equal(p,[200,100,45]) for p in points))
def test_ocs_axes_and_height_are_applied(self):
doc=ezdxf.new();doc.modelspace().add_lwpolyline([(100,200),(104,200),(104,204)],dxfattribs={'elevation':45,'extrusion':(0,0,-1)})
points,_,_=read_survey_block(Path('unused.dxf'),self.options(),doc=doc)
self.assertTrue(any(np.array_equal(p,[200,-100,-45]) for p in points))
def test_varying_3d_structure_is_not_a_contour(self):
doc=ezdxf.new();doc.modelspace().add_polyline3d([(1,1,20),(2,2,30),(3,3,40)])
with self.assertRaises(ValueError):read_survey_block(Path('unused.dxf'),self.options(),doc=doc)
if __name__=='__main__':unittest.main()