Пример #1
0
 def test_GetPointCloudPoint(self):
     """ Should not raise exception. """
     pc = test_tools.generate_tiny_test_point_cloud()
     x, y, z = utils.get_point(pc, 1)
     self.assertEqual(2, x)
     self.assertEqual(3, y)
     self.assertEqual(4, z)
Пример #2
0
    def test_CopyEmptyPointCloud(self):
        """ Should not raise exception. """
        pc = test_tools.generate_tiny_test_point_cloud()
        pc[keys.point]["x"]["data"] = np.array([])
        pc[keys.point]["y"]["data"] = np.array([])
        pc[keys.point]["z"]["data"] = np.array([])

        copypc = utils.copy_point_cloud(pc)
        self.assertEqual(0, len(copypc[keys.point]["x"]["data"]))
Пример #3
0
 def test_GetPointCloudPointFeature(self):
     """ Should not raise exception. """
     pc = test_tools.generate_tiny_test_point_cloud()
     cols = 0.5 * (pc[keys.point]["x"]["data"] +
                   pc[keys.point]["y"]["data"])
     pc[keys.point]["color"] = {"type": "double", "data": cols}
     x, y, z = utils.get_point(pc, 1)
     c = utils.get_attribute_value(pc, 1, "color")
     self.assertEqual(c, 0.5 * (x + y))
Пример #4
0
    def test_CopyNonEmptyPointCloud(self):
        """ Test whether coordinates are copied """
        pc = test_tools.generate_tiny_test_point_cloud()
        x = pc[keys.point]["x"]["data"]
        y = pc[keys.point]["y"]["data"]
        z = pc[keys.point]["z"]["data"]

        copypc = utils.copy_point_cloud(pc)
        self.assertTrue(all(x == copypc[keys.point]["x"]["data"]))
        self.assertTrue(all(y == copypc[keys.point]["y"]["data"]))
        self.assertTrue(all(z == copypc[keys.point]["z"]["data"]))
Пример #5
0
 def test_AddToPointCloudEmpty(self):
     pc_1 = utils.create_point_cloud([], [], [])
     pc_2 = test_tools.generate_tiny_test_point_cloud()
     utils.add_to_point_cloud(pc_1, pc_2)
     for attr in pc_2[keys.point].keys():
         self.assertIn(attr, pc_1[keys.point])
         self.assertEqual(pc_1[keys.point][attr]['type'],
                          pc_2[keys.point][attr]['type'])
         self.assertTrue(
             all(pc_1[keys.point][attr]['data'] == pc_2[keys.point][attr]
                 ['data']))
Пример #6
0
    def test_CopyNonEmptyPointCloudBoolMask(self):
        """ Test whether coordinates are copied with boolean mask """
        pc = test_tools.generate_tiny_test_point_cloud()
        x = pc[keys.point]["x"]["data"][2]
        y = pc[keys.point]["y"]["data"][2]
        z = pc[keys.point]["z"]["data"][2]

        copypc = utils.copy_point_cloud(pc,
                                        array_mask=np.array(
                                            [False, False, True]))
        self.assertTrue(all(np.array([x]) == copypc[keys.point]["x"]["data"]))
        self.assertTrue(all(np.array([y]) == copypc[keys.point]["y"]["data"]))
        self.assertTrue(all(np.array([z]) == copypc[keys.point]["z"]["data"]))
Пример #7
0
 def test_GetPointCloudPointFeatures(self):
     """ Should not raise exception. """
     pc = test_tools.generate_tiny_test_point_cloud()
     cols = 0.5 * (pc[keys.point]["x"]["data"] +
                   pc[keys.point]["y"]["data"])
     flavs = 0.5 * (pc[keys.point]["x"]["data"] -
                    pc[keys.point]["y"]["data"])
     pc[keys.point]["color"] = {"type": "double", "data": cols}
     pc[keys.point]["flavor"] = {"type": "double", "data": flavs}
     x, y, z = utils.get_point(pc, 2)
     c, f = utils.get_features(pc, ("color", "flavor"), 2)
     self.assertEqual(c, 0.5 * (x + y))
     self.assertEqual(f, 0.5 * (x - y))
Пример #8
0
    def test_CopyNonEmptyPointCloudIntMask(self):
        """ Test whether coordinates are copied with array indexing """
        pc = test_tools.generate_tiny_test_point_cloud()
        x0, x1 = pc[keys.point]["x"]["data"][0], pc[keys.point]["x"]["data"][1]
        y0, y1 = pc[keys.point]["y"]["data"][0], pc[keys.point]["y"]["data"][1]
        z0, z1 = pc[keys.point]["z"]["data"][0], pc[keys.point]["z"]["data"][1]

        copypc = utils.copy_point_cloud(pc, array_mask=np.array([1, 0]))
        self.assertTrue(
            all(np.array([x1, x0]) == copypc[keys.point]["x"]["data"]))
        self.assertTrue(
            all(np.array([y1, y0]) == copypc[keys.point]["y"]["data"]))
        self.assertTrue(
            all(np.array([z1, z0]) == copypc[keys.point]["z"]["data"]))
Пример #9
0
    def test_CopyPointCloudMetaData(self):
        """ Test whether metadata are copied """
        pc = test_tools.generate_tiny_test_point_cloud()
        pc["log"] = [{
            "time": datetime.datetime(2018, 1, 23, 12, 15, 59),
            "module": "filter",
            "parameters": [("z", "gt", 0.5)]
        }]

        copypc = utils.copy_point_cloud(pc)
        self.assertEqual(datetime.datetime(2018, 1, 23, 12, 15, 59),
                         copypc["log"][0]["time"])
        self.assertEqual("filter", copypc["log"][0]["module"])
        self.assertEqual([("z", "gt", 0.5)], copypc["log"][0]["parameters"])
Пример #10
0
 def test_AddMetaDataToPointCloud(self):
     """ Test adding info to the point cloud for test module """
     pc = test_tools.generate_tiny_test_point_cloud()
     from laserchicken import select as somemodule
     utils.add_metadata(pc, somemodule, params=(0.5, "cylinder", 4))
     self.assertEqual(len(pc[keys.provenance]), 1)