def test_target_position_amax_I(self):
        """Doesn't reach v_max, but does reach a_max"""
        solver = TrajectorySolver(60, 5, 2.5)

        # zero endpoints
        spline = solver.target_position_amax(Knot(0,0,0,0), Knot(200,0,0,0))
##        self.plot_it(spline, solver)
        self.validate_spline(spline, solver)
        self.assertAlmostEqual(spline.q[-1], 200, self.PLACES)
        self.assertAlmostEqual(spline.v[-1], 0, self.PLACES)
        self.assertAlmostEqual(spline.a[-1], 0, self.PLACES)
        self.assertAlmostEqual(spline.t[-1], 14.8062484748, self.PLACES)

        # non-zero endpoints
        spline = solver.target_position_amax(Knot(0,1,-1,0), Knot(200,2,1,0))
#        self.plot_it(spline, solver)
        self.validate_spline(spline, solver)
        self.assertAlmostEqual(spline.q[-1], 200, self.PLACES)
        self.assertAlmostEqual(spline.v[-1], 2, self.PLACES)
        self.assertAlmostEqual(spline.a[-1], 1, self.PLACES)
        self.assertAlmostEqual(spline.t[-1], 14.98258766288, self.PLACES)
    def test_target_position_amax_II(self):
        """Travelling in reverse"""
        solver = TrajectorySolver(60, 5, 2.5, -60, -5, -2.5)

        # zero endpoints
        spline = solver.target_position_amax(Knot(200,0,0,0), Knot(0,0,0,0))
##        self.plot_it(spline, solver)
        self.validate_spline(spline, solver)
        self.assertAlmostEqual(spline.q[-1], 0, self.PLACES)
        self.assertAlmostEqual(spline.v[-1], 0, self.PLACES)
        self.assertAlmostEqual(spline.a[-1], 0, self.PLACES)
        self.assertAlmostEqual(spline.t[-1], 14.8062484748, self.PLACES)

        solver = TrajectorySolver(60, 5, 2.5)

        # non-zero endpoints
        spline = solver.target_position_amax(Knot(200,2,1,0), Knot(0,1,-1,0))
#        self.plot_it(spline, solver)
        self.validate_spline(spline, solver)
        self.assertAlmostEqual(spline.q[-1], 0, self.PLACES)
        self.assertAlmostEqual(spline.v[-1], 1, self.PLACES)
        self.assertAlmostEqual(spline.a[-1], -1, self.PLACES)
        self.assertAlmostEqual(spline.t[-1], 16.451805322, self.PLACES)