Skip to content

Commit

Permalink
revert #329
Browse files Browse the repository at this point in the history
  • Loading branch information
facontidavide committed Dec 1, 2022
1 parent c53f569 commit ac72e9a
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 141 deletions.
2 changes: 1 addition & 1 deletion src/controls/sequence_star_node.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ NodeStatus SequenceStarNode::tick()

void SequenceStarNode::halt()
{
// DO NOT reset current_child_idx_ on halt
current_child_idx_ = 0;
ControlNode::halt();
}

Expand Down
140 changes: 0 additions & 140 deletions tests/gtest_sequence.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -386,143 +386,3 @@ TEST_F(ComplexSequenceWithMemoryTest, Conditions1ToFalse)
ASSERT_EQ(NodeStatus::IDLE, action_2.status());
}

TEST_F(ComplexSequenceWithMemoryTest, Conditions2ToFalse)
{
BT::NodeStatus state = root.executeTick();

condition_2.setExpectedResult(NodeStatus::FAILURE);
state = root.executeTick();
// change in condition_2 does not affect the state of the tree,
// since the seq_conditions was executed already
ASSERT_EQ(NodeStatus::RUNNING, state);
ASSERT_EQ(NodeStatus::SUCCESS, seq_conditions.status());
ASSERT_EQ(NodeStatus::IDLE, condition_1.status());
ASSERT_EQ(NodeStatus::IDLE, condition_2.status());
ASSERT_EQ(NodeStatus::RUNNING, seq_actions.status());
ASSERT_EQ(NodeStatus::RUNNING, action_1.status());
ASSERT_EQ(NodeStatus::IDLE, action_2.status());
}

TEST_F(ComplexSequenceWithMemoryTest, Action1DoneSeq)
{
root.executeTick();

condition_2.setExpectedResult(NodeStatus::FAILURE);
root.executeTick();

// change in condition_2 does not affect the state of the tree,
// since the seq_conditions was executed already
ASSERT_EQ(NodeStatus::SUCCESS, seq_conditions.status());
ASSERT_EQ(NodeStatus::IDLE, condition_1.status());
ASSERT_EQ(NodeStatus::IDLE, condition_2.status());
ASSERT_EQ(NodeStatus::RUNNING, seq_actions.status());
ASSERT_EQ(NodeStatus::RUNNING, action_1.status());
ASSERT_EQ(NodeStatus::IDLE, action_2.status());

std::this_thread::sleep_for(milliseconds(150));
root.executeTick();

ASSERT_EQ(NodeStatus::SUCCESS, seq_conditions.status());
ASSERT_EQ(NodeStatus::IDLE, condition_1.status());
ASSERT_EQ(NodeStatus::IDLE, condition_2.status());
ASSERT_EQ(NodeStatus::RUNNING, seq_actions.status());
ASSERT_EQ(NodeStatus::SUCCESS, action_1.status());
ASSERT_EQ(NodeStatus::RUNNING, action_2.status());

std::this_thread::sleep_for(milliseconds(150));
root.executeTick();

ASSERT_EQ(NodeStatus::SUCCESS, root.status());
ASSERT_EQ(NodeStatus::IDLE, seq_conditions.status());
ASSERT_EQ(NodeStatus::IDLE, condition_1.status());
ASSERT_EQ(NodeStatus::IDLE, condition_2.status());
ASSERT_EQ(NodeStatus::IDLE, seq_actions.status());
ASSERT_EQ(NodeStatus::IDLE, action_1.status());
ASSERT_EQ(NodeStatus::IDLE, action_2.status());
}

TEST_F(ComplexSequenceWithMemoryTest, Action2FailureSeq)
{
root.executeTick();
std::this_thread::sleep_for(milliseconds(150));
root.executeTick();

ASSERT_EQ(NodeStatus::SUCCESS, seq_conditions.status());
ASSERT_EQ(NodeStatus::IDLE, condition_1.status());
ASSERT_EQ(NodeStatus::IDLE, condition_2.status());
ASSERT_EQ(NodeStatus::RUNNING, seq_actions.status());
ASSERT_EQ(NodeStatus::SUCCESS, action_1.status());
ASSERT_EQ(NodeStatus::RUNNING, action_2.status());

action_2.setExpectedResult(NodeStatus::FAILURE);
std::this_thread::sleep_for(milliseconds(150));
root.executeTick();

// failure in action_2 does not affect the state of already
// executed nodes (seq_conditions and action_1)
ASSERT_EQ(NodeStatus::FAILURE, root.status());
ASSERT_EQ(NodeStatus::SUCCESS, seq_conditions.status());
ASSERT_EQ(NodeStatus::IDLE, condition_1.status());
ASSERT_EQ(NodeStatus::IDLE, condition_2.status());
ASSERT_EQ(NodeStatus::IDLE, seq_actions.status());
ASSERT_EQ(NodeStatus::SUCCESS, action_1.status());
ASSERT_EQ(NodeStatus::IDLE, action_2.status());

action_2.setExpectedResult(NodeStatus::SUCCESS);
root.executeTick();

ASSERT_EQ(NodeStatus::SUCCESS, seq_conditions.status());
ASSERT_EQ(NodeStatus::IDLE, condition_1.status());
ASSERT_EQ(NodeStatus::IDLE, condition_2.status());
ASSERT_EQ(NodeStatus::RUNNING, seq_actions.status());
ASSERT_EQ(NodeStatus::SUCCESS, action_1.status());
ASSERT_EQ(NodeStatus::RUNNING, action_2.status());

std::this_thread::sleep_for(milliseconds(150));
root.executeTick();

ASSERT_EQ(NodeStatus::SUCCESS, root.status());
ASSERT_EQ(NodeStatus::IDLE, seq_conditions.status());
ASSERT_EQ(NodeStatus::IDLE, condition_1.status());
ASSERT_EQ(NodeStatus::IDLE, condition_2.status());
ASSERT_EQ(NodeStatus::IDLE, seq_actions.status());
ASSERT_EQ(NodeStatus::IDLE, action_1.status());
ASSERT_EQ(NodeStatus::IDLE, action_2.status());
}

TEST_F(ComplexSequenceWithMemoryTest, Action2HaltSeq)
{
root.executeTick();
std::this_thread::sleep_for(milliseconds(150));
root.executeTick();

root.halt();

ASSERT_EQ(NodeStatus::IDLE, seq_conditions.status());
ASSERT_EQ(NodeStatus::IDLE, condition_1.status());
ASSERT_EQ(NodeStatus::IDLE, condition_2.status());
ASSERT_EQ(NodeStatus::IDLE, seq_actions.status());
ASSERT_EQ(NodeStatus::IDLE, action_1.status());
ASSERT_EQ(NodeStatus::IDLE, action_2.status());

root.executeTick();

// tree retakes execution from action_2
ASSERT_EQ(NodeStatus::IDLE, seq_conditions.status());
ASSERT_EQ(NodeStatus::IDLE, condition_1.status());
ASSERT_EQ(NodeStatus::IDLE, condition_2.status());
ASSERT_EQ(NodeStatus::RUNNING, seq_actions.status());
ASSERT_EQ(NodeStatus::IDLE, action_1.status());
ASSERT_EQ(NodeStatus::RUNNING, action_2.status());

std::this_thread::sleep_for(milliseconds(150));
root.executeTick();

ASSERT_EQ(NodeStatus::SUCCESS, root.status());
ASSERT_EQ(NodeStatus::IDLE, seq_conditions.status());
ASSERT_EQ(NodeStatus::IDLE, condition_1.status());
ASSERT_EQ(NodeStatus::IDLE, condition_2.status());
ASSERT_EQ(NodeStatus::IDLE, seq_actions.status());
ASSERT_EQ(NodeStatus::IDLE, action_1.status());
ASSERT_EQ(NodeStatus::IDLE, action_2.status());
}

0 comments on commit ac72e9a

Please sign in to comment.