def METHOD_NAME(self):
    conical_surface3 = conical_surfaces.conical_surface3
    control_points = [volmdlr.Point3D(-0.00235270234694772, 0.004075, 0.000502294734194974),
                      volmdlr.Point3D(-0.00158643061573795, 0.004075, 0.000281091139051792),
                      volmdlr.Point3D(-1.38558964783719e-06, 0.004075, -4.49804036433251e-06),
                      volmdlr.Point3D(0.00158690018976903, 0.004075, 0.000281226693398416),
                      volmdlr.Point3D(0.00235270234694773, 0.004075, 0.000502294734194975)]
    bspline_curve = vme.BSplineCurve3D(3, control_points, [4, 1, 4], knots=[0.0, 0.5, 1.0])
    bspline_curve2d = conical_surface3.METHOD_NAME(bspline_curve)
    bspline_curve3d = conical_surface3.bsplinecurve2d_to_3d(bspline_curve2d)
    original_length = bspline_curve.length()
    length_after_transformation = bspline_curve3d.length()
    point = bspline_curve.point_at_abscissa(0.5*original_length)
    point_test = bspline_curve3d.point_at_abscissa(0.5 * length_after_transformation)
    self.assertAlmostEqual(original_length, length_after_transformation, places=6)
    self.assertTrue(point.is_close(point_test, 1e-6))