From 5cc17c344e97d5b926536bc8cf3f03dc8c004bdc Mon Sep 17 00:00:00 2001 From: Pierre Fernbach <pierre.fernbach@laas.fr> Date: Thu, 15 Mar 2018 14:30:28 +0100 Subject: [PATCH] [test] test both flatground with varying constraints --- tests/test-transition.cc | 160 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 159 insertions(+), 1 deletion(-) diff --git a/tests/test-transition.cc b/tests/test-transition.cc index 2660d66..e5456fe 100644 --- a/tests/test-transition.cc +++ b/tests/test-transition.cc @@ -55,7 +55,7 @@ bool check_constraints(const bezier_com_traj::ContactData& contactPhase, Vector3 } -void check_transition(bezier_com_traj::ProblemData& pData, VectorX Ts){ +void check_transition(bezier_com_traj::ProblemData& pData, VectorX Ts,bool shouldFail=false){ BOOST_CHECK_EQUAL(pData.contacts_.size(),Ts.size()); double t_total = 0; @@ -67,6 +67,11 @@ void check_transition(bezier_com_traj::ProblemData& pData, VectorX Ts){ // check if transition is feasible (should be) bezier_com_traj::ResultDataCOMTraj res = bezier_com_traj::solveOnestep(pData,Ts,init,pointsPerPhase); + if(shouldFail){ + BOOST_CHECK(!res.success_); + return; + } + BOOST_CHECK(res.success_); if(res.success_){ @@ -225,6 +230,159 @@ BOOST_AUTO_TEST_CASE(transition){ } +BOOST_AUTO_TEST_CASE(transition_noDc1){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.dc1_ = false; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts); +} + +BOOST_AUTO_TEST_CASE(transition_ddc0){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.ddc0_ = true; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts); +} + +BOOST_AUTO_TEST_CASE(transition_ddc0_ddc1){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.ddc0_ = true; + pData.constraints_.ddc1_ = true; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts); +} + +BOOST_AUTO_TEST_CASE(transition_noAcc){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.constraintAcceleration_ = false; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts); +} + +BOOST_AUTO_TEST_CASE(transition_noDc1_noAcc){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.dc1_ = false; + pData.constraints_.constraintAcceleration_ = false; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts); +} +BOOST_AUTO_TEST_CASE(transition_ddc0_noAcc){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.ddc0_ = true; + pData.constraints_.constraintAcceleration_ = false; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts); +} + +BOOST_AUTO_TEST_CASE(transition_ddc0_ddc1_noAcc){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.ddc0_ = true; + pData.constraints_.ddc1_ = true; + pData.constraints_.constraintAcceleration_ = false; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts); +} + + +BOOST_AUTO_TEST_CASE(transition_Acc1){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.maxAcceleration_=1.; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts); +} + +BOOST_AUTO_TEST_CASE(transition_noDc1_Acc1){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.dc1_ = false; + pData.constraints_.maxAcceleration_=1.; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts); +} +BOOST_AUTO_TEST_CASE(transition_ddc0_Acc2){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.ddc0_ = true; + pData.constraints_.maxAcceleration_=2.; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts); +} + +BOOST_AUTO_TEST_CASE(transition_ddc0_ddc1_Acc2){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.ddc0_ = true; + pData.constraints_.ddc1_ = true; + pData.constraints_.maxAcceleration_=2.; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts); +} + +BOOST_AUTO_TEST_CASE(transition_ddc0_ddc1_Acc05){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.ddc0_ = true; + pData.constraints_.ddc1_ = true; + pData.constraints_.maxAcceleration_=0.5; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts); +} + +BOOST_AUTO_TEST_CASE(transition_Acc05){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.maxAcceleration_=0.5; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts); +} + +// constraints that should fails : + +BOOST_AUTO_TEST_CASE(transition_Acc02){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.maxAcceleration_=0.2; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts,true); +} + +BOOST_AUTO_TEST_CASE(transition_noDc1_Acc05){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.dc1_ = false; + pData.constraints_.maxAcceleration_=0.5; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts,true); +} + + +BOOST_AUTO_TEST_CASE(transition_ddc0_Acc1){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.ddc0_ = true; + pData.constraints_.maxAcceleration_=1.; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts,true); +} + +BOOST_AUTO_TEST_CASE(transition_ddc0_ddc1_Acc02){ + bezier_com_traj::ProblemData pData = gen_problem_data_flat(); + pData.constraints_.ddc0_ = true; + pData.constraints_.ddc1_ = true; + pData.constraints_.maxAcceleration_=0.2; + VectorX Ts(3); + Ts<<0.6,0.6,0.6; + check_transition(pData,Ts,true); +} + BOOST_AUTO_TEST_SUITE_END() -- GitLab