Improve test for BTRandomSequence
This commit is contained in:
parent
3fdcb0b753
commit
f7159123c6
|
@ -35,6 +35,8 @@ protected:
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
bool is_status_either(int p_status1, int p_status2) { return (get_status() == p_status1 || get_status() == p_status2); }
|
||||||
|
|
||||||
BTTestAction(int p_return_status) { ret_status = p_return_status; }
|
BTTestAction(int p_return_status) { ret_status = p_return_status; }
|
||||||
BTTestAction() {}
|
BTTestAction() {}
|
||||||
};
|
};
|
||||||
|
|
|
@ -37,13 +37,24 @@ TEST_CASE("[Modules][LimboAI] BTRandomSequence") {
|
||||||
task3->ret_status = BTTask::SUCCESS;
|
task3->ret_status = BTTask::SUCCESS;
|
||||||
|
|
||||||
CHECK(seq->execute(0.01666) == BTTask::RUNNING);
|
CHECK(seq->execute(0.01666) == BTTask::RUNNING);
|
||||||
|
|
||||||
|
CHECK(task1->is_status_either(BTTask::SUCCESS, BTTask::FRESH));
|
||||||
|
CHECK(task2->get_status() == BTTask::RUNNING);
|
||||||
|
CHECK(task3->is_status_either(BTTask::SUCCESS, BTTask::FRESH));
|
||||||
|
|
||||||
CHECK_ENTRIES_TICKS_EXITS_UP_TO(task1, 1, 1, 1); // * ran no more than once
|
CHECK_ENTRIES_TICKS_EXITS_UP_TO(task1, 1, 1, 1); // * ran no more than once
|
||||||
CHECK_ENTRIES_TICKS_EXITS(task2, 1, 1, 0); // * running - enters and ticks
|
CHECK_ENTRIES_TICKS_EXITS(task2, 1, 1, 0); // * running - enters and ticks
|
||||||
CHECK_ENTRIES_TICKS_EXITS_UP_TO(task3, 1, 1, 1); // * ran no more than once
|
CHECK_ENTRIES_TICKS_EXITS_UP_TO(task3, 1, 1, 1); // * ran no more than once
|
||||||
|
|
||||||
SUBCASE("Resuming and succeeding when all tasks succeed") {
|
SUBCASE("Resuming and succeeding when all tasks succeed") {
|
||||||
task2->ret_status = BTTask::SUCCESS;
|
task2->ret_status = BTTask::SUCCESS;
|
||||||
|
|
||||||
CHECK(seq->execute(0.01666) == BTTask::SUCCESS);
|
CHECK(seq->execute(0.01666) == BTTask::SUCCESS);
|
||||||
|
|
||||||
|
CHECK(task1->get_status() == BTTask::SUCCESS);
|
||||||
|
CHECK(task2->get_status() == BTTask::SUCCESS);
|
||||||
|
CHECK(task3->get_status() == BTTask::SUCCESS);
|
||||||
|
|
||||||
CHECK_ENTRIES_TICKS_EXITS(task1, 1, 1, 1); // * ran once
|
CHECK_ENTRIES_TICKS_EXITS(task1, 1, 1, 1); // * ran once
|
||||||
CHECK_ENTRIES_TICKS_EXITS(task2, 1, 2, 1); // * finishes - ticks and exits with SUCCESS
|
CHECK_ENTRIES_TICKS_EXITS(task2, 1, 2, 1); // * finishes - ticks and exits with SUCCESS
|
||||||
CHECK_ENTRIES_TICKS_EXITS(task3, 1, 1, 1); // * ran once
|
CHECK_ENTRIES_TICKS_EXITS(task3, 1, 1, 1); // * ran once
|
||||||
|
@ -51,7 +62,13 @@ TEST_CASE("[Modules][LimboAI] BTRandomSequence") {
|
||||||
|
|
||||||
SUBCASE("Resuming and failing when a child task fails") {
|
SUBCASE("Resuming and failing when a child task fails") {
|
||||||
task2->ret_status = BTTask::FAILURE;
|
task2->ret_status = BTTask::FAILURE;
|
||||||
|
|
||||||
CHECK(seq->execute(0.01666) == BTTask::FAILURE);
|
CHECK(seq->execute(0.01666) == BTTask::FAILURE);
|
||||||
|
|
||||||
|
CHECK(task1->is_status_either(BTTask::SUCCESS, BTTask::FRESH));
|
||||||
|
CHECK(task2->get_status() == BTTask::FAILURE);
|
||||||
|
CHECK(task3->is_status_either(BTTask::SUCCESS, BTTask::FRESH));
|
||||||
|
|
||||||
CHECK_ENTRIES_TICKS_EXITS_UP_TO(task1, 1, 1, 1); // * ran no more than once
|
CHECK_ENTRIES_TICKS_EXITS_UP_TO(task1, 1, 1, 1); // * ran no more than once
|
||||||
CHECK_ENTRIES_TICKS_EXITS(task2, 1, 2, 1); // * finishes - ticks and exits with FAILURE
|
CHECK_ENTRIES_TICKS_EXITS(task2, 1, 2, 1); // * finishes - ticks and exits with FAILURE
|
||||||
CHECK_ENTRIES_TICKS_EXITS_UP_TO(task3, 1, 1, 1); // * ran no more than once
|
CHECK_ENTRIES_TICKS_EXITS_UP_TO(task3, 1, 1, 1); // * ran no more than once
|
||||||
|
|
Loading…
Reference in New Issue