Files
Aislo/tests/test_b04_surface_structurize.py
T
2026-07-05 21:27:23 +09:00

41 lines
1.8 KiB
Python

import tempfile
import unittest
from pathlib import Path
import laspy
import numpy as np
from B04_wf1_Surface.B04_wf1_Surface_Engine_Structurize import structurize_las
class StructurizeLasTest(unittest.TestCase):
def test_structurize_las(self) -> None:
with tempfile.TemporaryDirectory() as temporary_directory:
source = Path(temporary_directory) / "source.las"
output_dir = Path(temporary_directory) / "processed"
las = laspy.LasData(laspy.LasHeader(point_format=3, version="1.2"))
las.x = np.array([100.0, 102.0])
las.y = np.array([200.0, 204.0])
las.z = np.array([10.0, 14.0])
las.intensity = np.array([7, 9], dtype=np.uint16)
las.red = np.array([65535, 256], dtype=np.uint16)
las.green = np.array([32768, 512], dtype=np.uint16)
las.blue = np.array([0, 768], dtype=np.uint16)
las.classification = np.array([2, 5], dtype=np.uint8)
las.write(source)
progress: list[int] = []
target = structurize_las(source, output_dir, progress.append)
self.assertEqual(target, output_dir / "structured.npz")
self.assertEqual(progress[-1], 100)
with np.load(target) as structured:
np.testing.assert_allclose(
structured["xyz"],
np.array([[100.0, 200.0, 10.0], [102.0, 204.0, 14.0]]),
)
np.testing.assert_array_equal(structured["intensity"], [7, 9])
np.testing.assert_array_equal(structured["rgb"], [[255, 128, 0], [1, 2, 3]])
np.testing.assert_array_equal(structured["classification"], [2, 5])
np.testing.assert_array_equal(structured["total_points"], [2])