def METHOD_NAME(self):
    # Ensure that FCL is importable
    if fcl is None:
        g.log.warning('skipping FCL tests: not installed')
        return
    cube = g.get_mesh('unit_cube.STL')
    tf1 = g.np.eye(4)
    tf1[:3, 3] = g.np.array([5, 0, 0])
    tf2 = g.np.eye(4)
    tf2[:3, 3] = g.np.array([-5, 0, 0])
    # Test one-to-many collision checking
    m = g.trimesh.collision.CollisionManager()
    m.add_object('cube0', cube)
    m.add_object('cube1', cube, tf1)
    ret = m.in_collision_single(cube)
    assert ret is True
    ret, names, data = m.in_collision_single(
        cube,
        tf1,
        return_names=True,
        return_data=True)
    assert ret is True
    for c in data:
        assert g.np.allclose(c.point, g.np.array([5.0, -0.5, 0.5]))
        assert g.np.isclose(c.depth, 1.0)
        assert g.np.allclose(c.normal, g.np.array([-1.0, 0.0, 0.0]))
    if 'cube1' not in names:
        g.log.debug('\n\n', m._objs.keys(), names)
    assert 'cube1' in names
    ret, names, data = m.in_collision_single(cube,
                                             tf2,
                                             return_names=True,
                                             return_data=True)
    assert ret is False
    assert len(names) == 0
    assert all(len(i.point) == 3 for i in data)
    # Test internal collision checking and object
    # addition/removal/modification
    ret = m.in_collision_internal()
    assert ret is False
    m.add_object('cube2', cube, tf1)
    ret, names = m.in_collision_internal(return_names=True)
    assert ret is True
    assert ('cube1', 'cube2') in names
    assert ('cube0', 'cube1') not in names
    assert ('cube2', 'cube1') not in names
    m.set_transform('cube2', tf2)
    ret = m.in_collision_internal()
    assert ret is False
    m.set_transform('cube2', tf1)
    ret = m.in_collision_internal()
    assert ret is True
    m.remove_object('cube2')
    ret = m.in_collision_internal()
    assert ret is False
    # Test manager-to-manager collision checking
    m = g.trimesh.collision.CollisionManager()
    m.add_object('cube0', cube)
    m.add_object('cube1', cube, tf1)
    n = g.trimesh.collision.CollisionManager()
    n.add_object('cube0', cube, tf2)
    ret = m.in_collision_other(n)
    assert ret is False
    n.add_object('cube3', cube, tf1)
    ret = m.in_collision_other(n)
    assert ret is True
    ret, names = m.in_collision_other(n, return_names=True)
    assert ret is True
    assert ('cube1', 'cube3') in names
    assert ('cube3', 'cube1') not in names