shuishen
10 hours ago 385be2eca72eb3833efa4be0a0088b34e764788a
capabilities/05-3d-pointcloud/tests/test_cpu_dense_reconstruction.py
@@ -55,6 +55,26 @@
class ReliableTexturePreviewTests(unittest.TestCase):
    def test_cuda_dense_log_requires_explicit_cuda_or_gpu_evidence(self) -> None:
        MODULE.verify_cuda_dense_log("OpenMVS CUDA device 0 initialized")
        MODULE.verify_cuda_dense_log("GPU depth maps are enabled")
        with self.assertRaisesRegex(RuntimeError, "did not report"):
            MODULE.verify_cuda_dense_log("OpenMVS x64 v2.4.0")
    def test_openmvs_tool_log_uses_the_latest_timestamped_log(self) -> None:
        with tempfile.TemporaryDirectory() as temporary:
            directory = Path(temporary)
            (directory / "DensifyPointCloud-older.log").write_text("CPU", encoding="utf-8")
            (directory / "DensifyPointCloud-newer.log").write_text("CUDA device 0", encoding="utf-8")
            self.assertEqual(MODULE.openmvs_tool_log(directory, "DensifyPointCloud"), "CUDA device 0")
    def test_openmvs_failure_includes_native_log(self) -> None:
        with tempfile.TemporaryDirectory() as temporary:
            directory = Path(temporary)
            (directory / "DensifyPointCloud-native.log").write_text("CUDA error (code 801)", encoding="utf-8")
            error = MODULE.with_openmvs_log(RuntimeError("DensifyPointCloud.exe failed"), directory, "DensifyPointCloud")
            self.assertIn("CUDA error (code 801)", str(error))
    def test_external_tool_paths_are_absolute(self) -> None:
        args = Namespace(input=Path("images"), sparse_model=Path("sparse"), output=Path("output"), openmvs_bin=Path("tools"))
        MODULE.resolve_external_tool_paths(args)