| | |
| | | |
| | | |
| | | 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) |