| | |
| | | self.assertEqual(result["name"], "corridor.las") |
| | | self.assertEqual(staged.read_bytes(), b"las-bytes") |
| | | |
| | | def test_model_inference_rejects_empty_and_incomplete_las_uploads(self) -> None: |
| | | with tempfile.TemporaryDirectory() as temp_dir: |
| | | root = Path(temp_dir) |
| | | empty = root / "empty.ply" |
| | | empty.write_bytes(b"") |
| | | with self.assertRaisesRegex(MODULE.ApiError, "文件为空"): |
| | | MODULE.validate_pointcloud_model_input(empty) |
| | | |
| | | incomplete = root / "tile_000_000.las" |
| | | incomplete.write_bytes(b"las-bytes") |
| | | with self.assertRaisesRegex(MODULE.ApiError, "文件不完整"): |
| | | MODULE.validate_pointcloud_model_input(incomplete) |
| | | |
| | | empty_las = root / "empty.las" |
| | | header = bytearray(227) |
| | | header[:4] = b"LASF" |
| | | header[24:26] = bytes((1, 2)) |
| | | header[94:96] = (227).to_bytes(2, "little") |
| | | empty_las.write_bytes(header) |
| | | with self.assertRaisesRegex(MODULE.ApiError, "没有点记录"): |
| | | MODULE.validate_pointcloud_model_input(empty_las) |
| | | |
| | | def test_photo_reconstruction_request_requires_three_to_thirty_photos(self) -> None: |
| | | handler = self.make_handler() |
| | | with self.assertRaisesRegex(MODULE.ApiError, "at least three"): |