From 5bfee588e3baa364184928766cc721d4e33dd6b6 Mon Sep 17 00:00:00 2001 From: Nathan Hughes Date: Wed, 22 Jan 2025 16:01:15 +0000 Subject: [PATCH] test labelspace bindings --- python/bindings/src/spark_dsg_bindings.cpp | 1 + python/tests/test_bindings.py | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/python/bindings/src/spark_dsg_bindings.cpp b/python/bindings/src/spark_dsg_bindings.cpp index 9881b57..be76b5d 100644 --- a/python/bindings/src/spark_dsg_bindings.cpp +++ b/python/bindings/src/spark_dsg_bindings.cpp @@ -268,6 +268,7 @@ PYBIND11_MODULE(_dsg_bindings, module) { }, "node"_a, "unknown_name"_a = "UNKNOWN") + .def("__bool__", [](const Labelspace& labelspace) { return static_cast(labelspace); }) .def_property_readonly("labels_to_names", &Labelspace::labels_to_names) .def_property_readonly("names_to_labels", &Labelspace::names_to_labels); diff --git a/python/tests/test_bindings.py b/python/tests/test_bindings.py index 9bde148..684d3cf 100644 --- a/python/tests/test_bindings.py +++ b/python/tests/test_bindings.py @@ -333,3 +333,16 @@ def test_attribute_metadata(tmp_path): G_new = dsg.DynamicSceneGraph.load(graph_path) new_attrs = G_new.get_node(dsg.NodeSymbol("O", 1)).attributes assert new_attrs.metadata.get() == {"test": {"a": 6, "b": 42.0, "c": "hello"}} + + +def test_labelspace(): + labelspace = dsg.Labelspace({0: "wall", 1: "floor", 2: "ceiling", 4: "desk"}) + assert labelspace.get_category(1) == "floor" + assert labelspace.get_category(3) is None + assert labelspace.get_label("wall") == 0 + assert labelspace.get_label("lamp") is None + + G = dsg.DynamicSceneGraph() + G.set_labelspace(labelspace, 0, 1) + assert not G.get_labelspace(0, 0) + assert G.get_labelspace(0, 1).labels_to_names == labelspace.labels_to_names