diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 5a419baf6749912bedada57e6df641575561ba02..16fb181e673ef53388d98ffa23070056e2edc08b 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -49,4 +49,3 @@ IF (TEST_UR5)
   ADD_TESTCASE (test-constraintgraph FALSE)
   SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTEST_UR5")
 ENDIF ()
-# ADD_TESTCASE (path-projection FALSE) # moved in hpp-core
diff --git a/tests/path-projection.cc b/tests/path-projection.cc
deleted file mode 100644
index fdb17625d810ff5bfe38454f1b56fd183c64b977..0000000000000000000000000000000000000000
--- a/tests/path-projection.cc
+++ /dev/null
@@ -1,218 +0,0 @@
-// Copyright (c) 2014, LAAS-CNRS
-// Authors: Joseph Mirabel (joseph.mirabel@laas.fr)
-//
-// This file is part of hpp-manipulation.
-// hpp-manipulation is free software: you can redistribute it
-// and/or modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation, either version
-// 3 of the License, or (at your option) any later version.
-//
-// hpp-manipulation is distributed in the hope that it will be
-// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
-// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// General Lesser Public License for more details.  You should have
-// received a copy of the GNU Lesser General Public License along with
-// hpp-manipulation. If not, see <http://www.gnu.org/licenses/>.
-
-#define ARM_LENGTH 1
-#define FOREARM_LENGTH 1
-#define STEP_PATH (value_type)0.01
-
-#include <math.h>
-
-#include <boost/assign/list_of.hpp>
-
-#include <pinocchio/multibody/model.hpp>
-
-#include <hpp/pinocchio/device.hh>
-#include <hpp/pinocchio/joint.hh>
-#include <hpp/pinocchio/configuration.hh>
-
-#include <hpp/core/path-projector/progressive.hh>
-#include <hpp/core/steering-method-straight.hh>
-#include <hpp/core/numerical-constraint.hh>
-#include <hpp/core/weighed-distance.hh>
-#include <hpp/core/config-projector.hh>
-#include <hpp/core/constraint-set.hh>
-#include <hpp/core/problem.hh>
-
-#include <hpp/constraints/generic-transformation.hh>
-
-#define REQUIRE_MESSAGE(b,m) do {\
-  if (!b) {\
-    std::cout << m << std::endl;\
-    exit(1);\
-  }}\
-  while (0)
-
-using hpp::pinocchio::Device;
-using hpp::pinocchio::DevicePtr_t;
-using hpp::pinocchio::JointPtr_t;
-using hpp::pinocchio::BodyPtr_t;
-using hpp::pinocchio::Configuration_t;
-using hpp::pinocchio::value_type;
-using hpp::pinocchio::Transform3f;
-
-using hpp::constraints::Position;
-using hpp::constraints::PositionPtr_t;
-using hpp::constraints::matrix3_t;
-using hpp::constraints::vector3_t;
-
-using hpp::core::StraightPath;
-using hpp::core::StraightPathPtr_t;
-using hpp::core::Path;
-using hpp::core::PathPtr_t;
-using hpp::core::WeighedDistance;
-using hpp::core::WeighedDistancePtr_t;
-using hpp::core::SteeringMethodStraight;
-using hpp::core::SteeringMethodPtr_t;
-using hpp::core::ConstraintSet;
-using hpp::core::ConstraintSetPtr_t;
-using hpp::core::ConfigProjector;
-using hpp::core::ConfigProjectorPtr_t;
-using hpp::constraints::Implicit;
-
-using boost::assign::list_of;
-
-using hpp::core::pathProjector::ProgressivePtr_t;
-using hpp::core::pathProjector::Progressive;
-
-using hpp::core::Problem;
-using hpp::core::ProblemPtr_t;
-
-const matrix3_t I3 (matrix3_t::Identity());
-
-namespace hpp_test {
-
-  template<typename JointModel>
-    static void addJointAndBody(se3::Model & model,
-        const se3::JointModelBase<JointModel> & joint,
-        const vector3_t shift,
-        const se3::JointIndex & parent,
-        const std::string & name)
-    {
-      typedef typename JointModel::ConfigVector_t CV;
-      typedef typename JointModel::TangentVector_t TV;
-
-      se3::JointIndex idx;
-
-      idx = model.addJoint(parent, joint, se3::SE3 (I3, shift), name,
-          TV::Random() + TV::Constant(1),
-          TV::Random() + TV::Constant(1),
-          CV::Random() - CV::Constant(1),
-          CV::Random() + CV::Constant(1));
-      model.addJointFrame (idx);
-
-      model.appendBodyToJoint(idx,se3::Inertia::Random(),se3::SE3::Identity());
-      model.addBodyFrame(name + "_BODY", idx);
-    }
-
-  DevicePtr_t createRobot ()
-  {
-    DevicePtr_t robot = Device::create ("test");
-    se3::Model& model = robot->model();
-
-    // lleg
-    addJointAndBody(model,se3::JointModelRX(),vector3_t::Zero(), 0, "ARM");
-    addJointAndBody(model,se3::JointModelRX(),vector3_t(0, ARM_LENGTH, 0), 1, "FOREARM");
-    model.addFrame(se3::Frame("EE", 2, model.getFrameId("FOREARM"), se3::SE3::Identity(), se3::FIXED_JOINT));
-
-    robot->createData();
-    robot->controlComputation((Device::Computation_t) (Device::JOINT_POSITION | Device::JACOBIAN));
-    robot->currentConfiguration(robot->neutralConfiguration());
-    robot->computeForwardKinematics();
-    return robot;
-  }
-
-  std::ostream& print (std::ostream& os, const Configuration_t& c)
-  {
-    os << "[ \t";
-    for (int i = 0; i < c.size () - 1; i++)
-      os << c[i] << ",\t";
-    return os << c[c.size() - 1] << "]";
-  }
-
-  std::ostream& printpath (std::ostream& os, const Path& p)
-  {
-    value_type t = p.timeRange ().first;
-    bool noWarning;
-    while (t < p.timeRange().second) {
-      print (os, p (t, noWarning)) << ",";
-      t += STEP_PATH;
-    }
-    return print (os, p (p.timeRange ().second, noWarning));
-  }
-
-  namespace pythonscript {
-    std::ostream& start (std::ostream& os)
-    {
-      os << "import numpy as np\n"
-        << "import matplotlib.pyplot as plt\n";
-      return os;
-    }
-
-    std::ostream& pathToVar (std::ostream& os, const Path& p, const std::string& var)
-    {
-      os << var << " = np.array ([\n";
-      return printpath (os, p) << "\n])\n";
-    }
-
-    std::ostream& plot (std::ostream& os, const std::string& var)
-    {
-      os << "fig = plt.figure ()\n"
-        << "axes = fig.gca ()\n"
-        << "axes.plot (" << var << "[:,0], " << var << "[:,1], '-.', marker='+', markeredgecolor='r', markersize=5)\n"
-        << "axes.set_xlabel ('Theta 1')\n"
-        << "axes.set_ylabel ('Theta 2')\n"
-        << "axes.set_title ('" << var << "')\n"
-        << "plt.show ()\n";
-      return os;
-    }
-  }
-}
-
-int main (int , char**) {
-  DevicePtr_t r = hpp_test::createRobot ();
-  JointPtr_t ee = r->getJointByName ("FOREARM");
-  vector3_t target (0, (ARM_LENGTH + FOREARM_LENGTH ) / 2, 0),
-            origin (0, FOREARM_LENGTH, 0);
-  PositionPtr_t c = Position::create ("Pos", r, ee,
-      Transform3f(I3, origin), Transform3f(I3, target),
-      list_of (false)(true)(false).convert_to_container<std::vector<bool> >());
-  ConstraintSetPtr_t cs = ConstraintSet::create (r, "test-cs");
-  ConfigProjectorPtr_t proj = ConfigProjector::create (r, "test", 1e-4, 20);
-  proj->add (Implicit::create (c));
-  cs->addConstraint (proj);
-  ProblemPtr_t problem (new Problem (r));
-  WeighedDistancePtr_t dist = WeighedDistance::createWithWeight
-    (r, list_of (1)(1));
-  problem->distance (dist);
-  SteeringMethodPtr_t sm (SteeringMethodStraight::create (problem));
-  const WeighedDistance& d = *dist;
-  ProgressivePtr_t pp_ptr = Progressive::create (dist, sm, 0.1);
-  Progressive pp = *pp_ptr;
-
-  Configuration_t qinit (2), qgoal (2);
-  qinit[0] =  M_PI / 3; qinit[1] = -M_PI / 3;
-  qgoal[0] = -M_PI / 3; qgoal[1] =  M_PI / 3;
-  Configuration_t qinitp = qinit,
-                  qgoalp = qgoal;
-  REQUIRE_MESSAGE (cs->apply (qinitp), "Could not project " << qinit);
-  REQUIRE_MESSAGE (cs->apply (qgoalp), "Could not project " << qgoal);
-  value_type l = d (qinitp, qgoalp);
-  StraightPathPtr_t sp = StraightPath::create (r, qinitp, qgoalp, l);
-  std::ostream& out = std::cout;
-  hpp_test::pythonscript::start (out);
-  std::string n = "direct_path";
-  hpp_test::pythonscript::pathToVar (out, *sp, n);
-  hpp_test::pythonscript::plot (out, n);
-  sp = HPP_STATIC_PTR_CAST (StraightPath, sp->copy (cs));
-  n = "naive_projection";
-  hpp_test::pythonscript::pathToVar (out, *sp, n);
-  hpp_test::pythonscript::plot (out, n);
-  PathPtr_t pProj;
-  pp.apply (sp, pProj);
-  n = "proj_progressive";
-  hpp_test::pythonscript::pathToVar (out, *pProj, n);
-  hpp_test::pythonscript::plot (out, n);
-}