BTRunLimit: Update unit tests

This commit is contained in:
Serhii Snitsaruk 2024-02-10 20:14:49 +01:00
parent e6e2f5595d
commit 55dfd55645
1 changed files with 16 additions and 2 deletions

View File

@ -40,26 +40,40 @@ TEST_CASE("[Modules][LimboAI] BTRunLimit") {
SUBCASE("When the child task succeeds") { SUBCASE("When the child task succeeds") {
task->ret_status = BTTask::SUCCESS; task->ret_status = BTTask::SUCCESS;
lim->set_count_policy(BTRunLimit::COUNT_FAILED);
CHECK(lim->execute(0.01666) == BTTask::SUCCESS); CHECK(lim->execute(0.01666) == BTTask::SUCCESS);
CHECK_STATUS_ENTRIES_TICKS_EXITS(task, BTTask::SUCCESS, 2, 2, 2); // * task executed CHECK_STATUS_ENTRIES_TICKS_EXITS(task, BTTask::SUCCESS, 2, 2, 2); // * task executed
lim->set_count_policy(BTRunLimit::COUNT_SUCCESSFUL);
CHECK(lim->execute(0.01666) == BTTask::SUCCESS);
CHECK_STATUS_ENTRIES_TICKS_EXITS(task, BTTask::SUCCESS, 3, 3, 3); // * task executed
} }
SUBCASE("When the child task fails") { SUBCASE("When the child task fails") {
task->ret_status = BTTask::FAILURE; task->ret_status = BTTask::FAILURE;
lim->set_count_policy(BTRunLimit::COUNT_SUCCESSFUL);
CHECK(lim->execute(0.01666) == BTTask::FAILURE); CHECK(lim->execute(0.01666) == BTTask::FAILURE);
CHECK_STATUS_ENTRIES_TICKS_EXITS(task, BTTask::FAILURE, 2, 2, 2); // * task executed CHECK_STATUS_ENTRIES_TICKS_EXITS(task, BTTask::FAILURE, 2, 2, 2); // * task executed
lim->set_count_policy(BTRunLimit::COUNT_FAILED);
CHECK(lim->execute(0.01666) == BTTask::FAILURE);
CHECK_STATUS_ENTRIES_TICKS_EXITS(task, BTTask::FAILURE, 3, 3, 3); // * task executed
} }
task->ret_status = BTTask::SUCCESS; task->ret_status = BTTask::SUCCESS;
lim->set_count_policy(BTRunLimit::COUNT_SUCCESSFUL);
CHECK(lim->execute(0.01666) == BTTask::FAILURE); CHECK(lim->execute(0.01666) == BTTask::FAILURE);
CHECK_ENTRIES_TICKS_EXITS(task, 2, 2, 2); // * task not executed CHECK_ENTRIES_TICKS_EXITS(task, 3, 3, 3); // * task not executed
CHECK(lim->execute(0.01666) == BTTask::FAILURE); CHECK(lim->execute(0.01666) == BTTask::FAILURE);
CHECK_ENTRIES_TICKS_EXITS(task, 2, 2, 2); // * task not executed CHECK_ENTRIES_TICKS_EXITS(task, 3, 3, 3); // * task not executed
} }
SUBCASE("When the child task takes more than one tick to finish") { SUBCASE("When the child task takes more than one tick to finish") {
lim->set_run_limit(2); lim->set_run_limit(2);
lim->set_count_policy(BTRunLimit::COUNT_ALL);
task->ret_status = BTTask::RUNNING; task->ret_status = BTTask::RUNNING;
CHECK(lim->execute(0.01666) == BTTask::RUNNING); CHECK(lim->execute(0.01666) == BTTask::RUNNING);