Skip to content

Commit 1e02d53

Browse files
committed
test(mesh-io): add test_read_write_point_set_async
1 parent 4061f50 commit 1e02d53

File tree

13 files changed

+139
-20
lines changed

13 files changed

+139
-20
lines changed

packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/__init__.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@
2727
from .wasm_zstd_read_mesh_async import wasm_zstd_read_mesh_async
2828
from .wasm_zstd_write_mesh_async import wasm_zstd_write_mesh_async
2929

30-
from .obj_read_mesh_async import obj_read_mesh_async
31-
from .obj_write_mesh_async import obj_write_mesh_async
32-
from .off_read_mesh_async import off_read_mesh_async
33-
from .off_write_mesh_async import off_write_mesh_async
34-
from .vtk_poly_data_read_mesh_async import vtk_poly_data_read_mesh_async
35-
from .vtk_poly_data_write_mesh_async import vtk_poly_data_write_mesh_async
36-
from .wasm_read_mesh_async import wasm_read_mesh_async
37-
from .wasm_write_mesh_async import wasm_write_mesh_async
38-
from .wasm_zstd_read_mesh_async import wasm_zstd_read_mesh_async
39-
from .wasm_zstd_write_mesh_async import wasm_zstd_write_mesh_async
30+
from .obj_read_point_set_async import obj_read_point_set_async
31+
from .obj_write_point_set_async import obj_write_point_set_async
32+
from .off_read_point_set_async import off_read_point_set_async
33+
from .off_write_point_set_async import off_write_point_set_async
34+
from .vtk_poly_data_read_point_set_async import vtk_poly_data_read_point_set_async
35+
from .vtk_poly_data_write_point_set_async import vtk_poly_data_write_point_set_async
36+
from .wasm_read_point_set_async import wasm_read_point_set_async
37+
from .wasm_write_point_set_async import wasm_write_point_set_async
38+
from .wasm_zstd_read_point_set_async import wasm_zstd_read_point_set_async
39+
from .wasm_zstd_write_point_set_async import wasm_zstd_write_point_set_async
4040

4141
from ._version import __version__

packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/read_point_set_async.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ async def read_point_set_async(
5656
js_resources.web_worker = web_worker
5757
could_read = to_py(outputs_object_map['couldRead'])
5858
if could_read:
59-
point_set = to_py(outputs_object_map['point_set'])
59+
point_set = to_py(outputs_object_map['pointSet'])
6060
return point_set
6161

6262
if io is None:
@@ -72,7 +72,7 @@ async def read_point_set_async(
7272

7373
js_resources.web_worker = web_worker
7474

75-
point_set = to_py(outputs_object_map['point_set'])
75+
point_set = to_py(outputs_object_map['pointSet'])
7676

7777
return point_set
7878

packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/write_point_set_async.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,14 @@ async def write_point_set_async(
8181

8282
to_py(outputs_object_map['serializedPointSet'])
8383

84-
async def point_setwrite_async(
84+
async def pointsetwrite_async(
8585
point_set: PointSet,
8686
serialized_point_set: os.PathLike,
8787
information_only: bool = False,
8888
use_compression: bool = False,
8989
) -> None:
9090
return write_point_set_async(point_set, serialized_point_set, information_only=information_only, use_compression=use_compression)
9191

92-
point_setwrite_async.__doc__ = f"""{write_point_set_async.__doc__}
92+
pointsetwrite_async.__doc__ = f"""{write_point_set_async.__doc__}
9393
Alias for write_point_set.
9494
"""

packages/mesh-io/python/itkwasm-mesh-io-emscripten/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ path = "itkwasm_mesh_io_emscripten/_version.py"
4343
dependencies = [
4444
"pytest",
4545
"pytest-pyodide",
46+
"pyodide-py",
4647
]
4748

4849
[project.urls]

packages/mesh-io/python/itkwasm-mesh-io-emscripten/test/fixtures.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ def input_data():
1818
input_base_path = Path('..', '..', 'test', 'data')
1919
test_files = [
2020
Path('input') / 'cow.vtk',
21+
Path('input') / 'box-points.obj',
2122
]
2223
data = {}
2324
for f in test_files:
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import sys
2+
3+
if sys.version_info < (3,10):
4+
pytest.skip("Skipping pyodide tests on older Python", allow_module_level=True)
5+
6+
import pytest
7+
from pytest_pyodide import run_in_pyodide
8+
from .fixtures import package_wheel, input_data
9+
10+
@pytest.mark.driver_timeout(30)
11+
@run_in_pyodide(packages=['micropip', 'numpy'])
12+
async def test_read_write_point_set_async(selenium, package_wheel, input_data):
13+
import micropip
14+
await micropip.install(package_wheel)
15+
def write_input_data_to_fs(input_data, filename):
16+
with open(filename, 'wb') as fp:
17+
fp.write(input_data[filename])
18+
19+
from pathlib import Path
20+
21+
from itkwasm import FloatTypes, IntTypes
22+
import numpy as np
23+
24+
from itkwasm_mesh_io_emscripten import read_point_set_async, write_point_set_async
25+
26+
27+
def verify_point_set(point_set):
28+
assert point_set.pointSetType.dimension == 3
29+
assert point_set.pointSetType.pointComponentType == FloatTypes.Float32
30+
assert point_set.pointSetType.pointPixelComponentType == FloatTypes.Float32
31+
assert point_set.numberOfPoints == 8
32+
33+
test_input_file_path = 'box-points.obj'
34+
test_output_file_path = "read-write-box-points-python.obj"
35+
write_input_data_to_fs(input_data, test_input_file_path)
36+
37+
assert Path(test_input_file_path).exists()
38+
39+
40+
point_set = await read_point_set_async(test_input_file_path)
41+
verify_point_set(point_set)
42+
43+
use_compression = False
44+
await write_point_set_async(point_set, test_output_file_path, use_compression=use_compression)
45+
46+
point_set = await read_point_set_async(test_output_file_path)
47+
verify_point_set(point_set)

packages/mesh-io/python/itkwasm-mesh-io/itkwasm_mesh_io/__init__.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,25 @@
5151
from .wasm_zstd_write_mesh_async import wasm_zstd_write_mesh_async
5252
from .wasm_zstd_write_mesh import wasm_zstd_write_mesh
5353

54+
from .obj_read_point_set_async import obj_read_point_set_async
55+
from .obj_write_point_set_async import obj_write_point_set_async
56+
from .off_read_point_set_async import off_read_point_set_async
57+
from .off_write_point_set_async import off_write_point_set_async
58+
from .vtk_poly_data_read_point_set_async import vtk_poly_data_read_point_set_async
59+
from .vtk_poly_data_write_point_set_async import vtk_poly_data_write_point_set_async
60+
from .wasm_read_point_set_async import wasm_read_point_set_async
61+
from .wasm_write_point_set_async import wasm_write_point_set_async
62+
from .wasm_zstd_read_point_set_async import wasm_zstd_read_point_set_async
63+
from .wasm_zstd_write_point_set_async import wasm_zstd_write_point_set_async
64+
from .obj_read_point_set import obj_read_point_set
65+
from .obj_write_point_set import obj_write_point_set
66+
from .off_read_point_set import off_read_point_set
67+
from .off_write_point_set import off_write_point_set
68+
from .vtk_poly_data_read_point_set import vtk_poly_data_read_point_set
69+
from .vtk_poly_data_write_point_set import vtk_poly_data_write_point_set
70+
from .wasm_read_point_set import wasm_read_point_set
71+
from .wasm_write_point_set import wasm_write_point_set
72+
from .wasm_zstd_read_point_set import wasm_zstd_read_point_set
73+
from .wasm_zstd_write_point_set import wasm_zstd_write_point_set
74+
5475
from ._version import __version__

packages/mesh-io/python/itkwasm-mesh-io/itkwasm_mesh_io/read_point_set_async.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ async def read_point_set_async(
1010
serialized_point_set: os.PathLike,
1111
information_only: bool = False,
1212
) -> PointSet:
13-
"""Read n point set file format and convert it to the ITK-Wasm file format.
13+
"""Read a point set file format and convert it to the ITK-Wasm file format.
1414
1515
:param serialized_point_set: Input point_set serialized in the file format
1616
:type serialized_point_set: os.PathLike
@@ -21,7 +21,7 @@ async def read_point_set_async(
2121
:return: Output point_set
2222
:rtype: PointSet
2323
"""
24-
func = environment_dispatch("itkwasm_point_set_io", "read_point_set_async")
24+
func = environment_dispatch("itkwasm_mesh_io", "read_point_set_async")
2525
output = await func(serialized_point_set, information_only=information_only)
2626
return output
2727

packages/mesh-io/python/itkwasm-mesh-io/itkwasm_mesh_io/write_point_set_async.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ async def write_point_set_async(
2626
:param use_compression: Use compression in the written file
2727
:type use_compression: bool
2828
"""
29-
func = environment_dispatch("itkwasm_point_set_io", "write_point_set_async")
29+
func = environment_dispatch("itkwasm_mesh_io", "write_point_set_async")
3030
await func(point_set, serialized_point_set, information_only=information_only, use_compression=use_compression)
3131
return
3232

packages/mesh-io/python/itkwasm-mesh-io/pyproject.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ keywords = [
3434

3535
requires-python = ">=3.8"
3636
dependencies = [
37-
"itkwasm >= 1.0.b145",
37+
"itkwasm >= 1.0.b179",
3838
"itkwasm-mesh-io-wasi; sys_platform != \"emscripten\"",
3939
"itkwasm-mesh-io-emscripten; sys_platform == \"emscripten\"",
4040

@@ -47,6 +47,7 @@ path = "itkwasm_mesh_io/_version.py"
4747
dependencies = [
4848
"pytest",
4949
"pytest-pyodide",
50+
"pyodide-py",
5051
]
5152

5253
[project.urls]
@@ -59,7 +60,7 @@ test = [
5960
"pytest --dist-dir=./dist/pyodide --rt=chrome",
6061
]
6162
download-pyodide = [
62-
"curl -L https://github.com/pyodide/pyodide/releases/download/0.25.1/pyodide-0.25.1.tar.bz2 -o pyodide.tar.bz2",
63+
"curl -L https://github.com/pyodide/pyodide/releases/download/0.26.2/pyodide-0.26.2.tar.bz2 -o pyodide.tar.bz2",
6364
"tar xjf pyodide.tar.bz2",
6465
"rm -rf dist/pyodide pyodide.tar.bz2",
6566
"mkdir -p dist",

0 commit comments

Comments
 (0)