toaster / tests /test_point_cloud.py
SmaugC137's picture
Deploy Toaster demo to HF Space
16760fa
Raw
History Blame Contribute Delete
846 Bytes
from __future__ import annotations
import numpy as np
import pytest
from toaster.core import PointCloud
def test_n_and_dtype():
cloud = PointCloud(xyz=np.zeros((5, 3), dtype=np.float64))
assert cloud.n == 5
assert cloud.xyz.dtype == np.float32
def test_ensure_labels_allocates_with_fill():
cloud = PointCloud(xyz=np.zeros((3, 3), np.float32))
labels = cloud.ensure_labels(unlabeled_id=7)
assert labels.tolist() == [7, 7, 7]
# Returns the same array on subsequent calls (mutable in place).
assert cloud.ensure_labels() is labels
def test_bad_xyz_shape_raises():
with pytest.raises(ValueError):
PointCloud(xyz=np.zeros((3, 2), np.float32))
def test_label_shape_validation():
with pytest.raises(ValueError):
PointCloud(xyz=np.zeros((3, 3), np.float32), labels=np.zeros(2, np.int32))