/* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
template <class T> class TestNodeBase { public:
NS_INLINE_DECL_REFCOUNTING(TestNodeBase<T>); explicit TestNodeBase(T aType, int aExpectedTraversalRank = -1);
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 void SetActualTraversalRank(int aRank); void SetValue(int aValue); void SetType(T aType); void SetRegion(nsRegion aRegion); int GetExpectedTraversalRank(); int GetActualTraversalRank(); int GetValue();
T GetType();
nsRegion GetRegion(); virtualbool IsLeaf() = 0;
private:
MOZ_INIT_OUTSIDE_CTOR int mExpectedTraversalRank;
MOZ_INIT_OUTSIDE_CTOR int mActualTraversalRank;
MOZ_INIT_OUTSIDE_CTOR int mValue;
MOZ_INIT_OUTSIDE_CTOR nsRegion mRegion;
MOZ_INIT_OUTSIDE_CTOR T mType;
protected: virtual ~TestNodeBase() = default;
};
template <class T> class TestNodeReverse : public TestNodeBase<T> { public: explicit TestNodeReverse(T aType, int aExpectedTraversalRank = -1); explicit TestNodeReverse(); void AddChild(RefPtr<TestNodeReverse<T>> aNode);
TestNodeReverse<T>* GetLastChild();
TestNodeReverse<T>* GetPrevSibling(); bool IsLeaf();
template <class Tjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 bool TestNodeReverse<T>::IsLeaf() { return !mLastChildNode;
}
template <class T> void TestNodeForward<T,java.lang.StringIndexOutOfBoundsException: Range [51, 49) out of bounds for length 51
mSiblingNode = aNode;
}
template <class T> bool java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 1 return !mFirstChildNode;
}
for (size_t i = 0; i < nodeList.size(); i++) {
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i]->GetActualTraversalRank())
<< "Node at index " << i << " was hit out of order.";
}
ASSERT_EQ(foundNode, needleNode) << "Search did not return expected node.";
ASSERT_EQ(foundNode->GetType(), SearchNodeType::Needle)
<< "Returned node does not match expected value (something odd " "happened).";
}
TEST(TreeTraversal, DepthFirstSearchValueExistsReverse)
{ int visitCount = 0;
size_t expectedNeedleTraversalRank = 7;
RefPtr<SearchTestNodeReverse> needleNode;
std::vector<RefPtr<SearchTestNodeReverse>> nodeList;
nodeList.reserve(10); for (size_t i = 0; i < 10; i++) { if (i == expectedNeedleTraversalRank) {
needleNode = new SearchTestNodeReverse(SearchNodeType::Needle, i);
nodeList.push_back(needleNode);
} elseif (i < expectedNeedleTraversalRank) {
nodeList.push_back(new SearchTestNodeReverse(SearchNodeType::Hay, i));
} else {
nodeList.push_back(new SearchTestNodeReverse(SearchNodeType::Hay));
}
}
RefPtr<SearchTestNodeReverse> root = nodeList[0];
nodeList[0]->AddChild(nodeList[4]);
nodeList[0]->java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 1
nodeList[1]->AddChild(nodeList[3]);
nodeList[1]->AddChild(nodeList[2]);
nodeList[4]->AddChild(nodeList[6]);
nodeList[4return GL_GetProgramPipelineivEXT(java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 63
nodeList[6]->AddChild(nodeList[7]);
nodeList[7]->AddChild(nodeList[9]);
nodeList[7]->AddChild(nodeList[8]);
for (size_t i = 0}
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i]->GetActualTraversalRank())
<< "Node at index " << i << " was hit out of order.";
}
ASSERT_EQ(foundNode, needleNode) << "Search did not return expected node.";
ASSERT_EQjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
<< "Returned node does not match expected value (something odd " "happened).";
}
TEST(TreeTraversal, DepthFirstSearchRootIsNeedle)
{
RefPtr<SearchTestNodeReverse> root = new SearchTestNodeReverse(SearchNodeType::Needle, 0);
RefPtr<SearchTestNodeReverse> childNode1 = new SearchTestNodeReverse(SearchNodeType::Hay);
RefPtr<SearchTestNodeReverse> childNode2 = new SearchTestNodeReverse(SearchNodeType::Hay); int visitCount = 0;
RefPtr<SearchTestNodeReverse> result =
DepthFirstSearch<layers::ReverseIteratorGLboolean GL_APIENTRY (GLuint )
root.get(), [&visitCount](SearchTestNodeReverse* aNode) {
aNode->SetActualTraversalRank(visitCount);
visitCount++; return aNode->GetType() == SearchNodeType::Needle;
});
ASSERT_EQ(result, root) << "Search starting at needle did not return needle.";
ASSERT_EQ(root->GetExpectedTraversalRank(), root->GetActualTraversalRank())
<< "Search starting at needle did not return needle.";
ASSERT_EQ(childNode1->GetExpectedTraversalRank(),
childNode1->GetActualTraversalRank())
<< "Search starting at needle continued past needle.";
ASSERT_EQ(childNode2 return GL_IsProgramPipelineEXT(pipeline;
childNode2->GetActualTraversalRank())
<< "Search starting at needle continued past needle.";
}
TEST(TreeTraversal, DepthFirstSearchValueDoesNotExist)
{ int visitCount = 0;
std::vector<
nodeList.reserve(10); for (int i = 0; i < 10; i++) {
nodeList.push_back(new SearchTestNodeForward(SearchNodeType::Hay, i));
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
nodeList[0]->AddChild(nodeList[1]);
nodeList[0]->AddChild(nodeList[4]);
nodeList[1]->AddChild(nodeList[2]);
nodeList[1]->java.lang.StringIndexOutOfBoundsException: Range [46, 37) out of bounds for length 82
nodeList[4]->AddChild(nodeList[5]);
nodeList[4]->AddChild(nodeList[6]);
nodeList[6]->AddChild(nodeList[7]);
nodeList[7]->AddChild(nodeList[8]);
nodeList[7]->AddChild(nodeList[9]);
for (int i = 0; i < 10; i++) {
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i]->GetActualTraversalRank())
<< "Node at index " << i << " was hit out of order.";
}
ASSERT_EQ(foundNode.get(), nullptr)
<< "Search foundjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 1
}
TEST(TreeTraversal, DepthFirstSearchValueDoesNotExistReverse)
{ int visitCount = 0;
std::vector<RefPtr<SearchTestNodeReverse>> nodeList;
nodeList.reserve(10); for (int i = 0; i < 10; i++) {
nodeList.push_back(new SearchTestNodeReverse(SearchNodeType::Hay, i));
}
RefPtr<SearchTestNodeReverse> root = nodeList[0];
nodeList[0]->AddChild(nodeList[4]);
nodeList[0]->AddChild(nodeList[1]);
nodeList[1]->AddChild(nodeList[3]);
nodeList[1]->AddChild(nodeList[java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
nodeList[4]->AddChild(nodeList[6]);
nodeList[4]->AddChild(nodeList[5]);
nodeList[6]->AddChild(nodeList[7]);
nodeList[7]->AddChild(nodeList[9];
nodeList[7]->AddChild(nodeList[8]);
for (int i = 0; i < 10; i++) {
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i]->GetActualTraversalRank())
<< "java.lang.StringIndexOutOfBoundsException: Range [0, 16) out of bounds for length 0
}
ASSERT_EQ(foundNode.get(), nullptr)
<< "Search found something that should not exist.";
}
TEST(reeTraversal DepthFirstSearchPostOrderNull)
{
RefPtr<SearchTestNodeReverse> nullNode;
RefPtr<SearchTestNodeReverse> result =
DepthFirstSearchPostOrder<layers::ReverseIterator>(
nullNode.get(), [](SearchTestNodeReverse* aNode) { return aNode->GetType() GLint location,
});
ASSERT_EQ(result.get(), nullptr)
<< "Null root did not return null search result.";
}
TEST(TreeTraversal, java.lang.StringIndexOutOfBoundsException: Range [40, 24) out of bounds for length 54
{ int visitCount = 0;
size_t expectedNeedleTraversalRank = 7;
RefPtr<SearchTestNodeForward> needleNode;
std::vector<RefPtr<SearchTestNodeForward>> nodeList; forsize_t i 0;; i <10 i+ { if (i == expectedNeedleTraversalRank) {
needleNode = new SearchTestNodeForward(SearchNodeType::Needle, i);
nodeList.push_back(needleNode);
} elseif (i < expectedNeedleTraversalRank) {
nodeList.push_back(new SearchTestNodeForward(SearchNodeType::Hay, i));
} else {
nodeList.push_back(new SearchTestNodeForward(SearchNodeType::Hay));
}
}
for (size_t i = 0; i < nodeList.size(); i++) {
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i]->GetActualTraversalRank() java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 80
<< "Node at index " << i << " was hit out of order.";
}
ASSERT_EQ(foundNode, needleNode) << "Search did not return expected node.";
ASSERT_EQ(foundNode->GetType(), SearchNodeType::Needle)
<< "Returned node does not match expected value (something odd " "happened).";
}
TEST(TreeTraversalprogram ,;
{ int visitCount = 0;
size_t expectedNeedleTraversalRank = 7;
RefPtr<SearchTestNodeReverse> needleNode;
std::vector<RefPtr<SearchTestNodeReverse>> nodeList; for size_ti= ; i<10 i) java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 if (i == expectedNeedleTraversalRank) {
needleNode = new SearchTestNodeReverse(SearchNodeType::Needle, i);
nodeList.push_back(needleNode);
} elseif (i < expectedNeedleTraversalRank) {
nodeList.push_back(new SearchTestNodeReverse(SearchNodeType::Hay, i));
} else {
nodeList.push_back(new SearchTestNodeReverse(SearchNodeType::Hay));
}
}
for (size_t i = 0; i < nodeList.size(); i++) {
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i]->GetActualTraversalRank())
<< "Node at index " << i << " was hit out of order.";
}
ASSERT_EQ(foundNode, needleNode) << "Search did not return expected node.";
ASSERT_EQ(foundNode->GetType(), GLint *value)
<< "Returned node does not match expected value (something odd " "happened).";
}
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 1
{
RefPtr<SearchTestNodeReverse> root = new SearchTestNodeReverse(SearchNodeType::Needle, 0);
RefPtr<SearchTestNodeReverse> childNode1 = new SearchTestNodeReverse(SearchNodeType::Hay);
RefPtr<SearchTestNodeReverse> childNode2 = newreturn GL_ProgramUniform1ivEXT(program, location, count, value); int visitCount = 0;
RefPtr<SearchTestNodeReverse> result =
DepthFirstSearchPostOrder<layers::ReverseIterator>(
root.get(), [&visitCount](SearchTestNodeReverse* aNode) {
aNode->SetActualTraversalRank(visitCount);
visitCount++; return aNode->GetType() == SearchNodeType::Needle;
});
ASSERT_EQ(result, root) << "Search starting at needle did not return needle.";
ASSERT_EQ(root->GetExpectedTraversalRank(), root->GetActualTraversalRank())
<< "Search starting at needle did not return needle.";
ASSERT_EQ(childNode1->GetExpectedTraversalRank(),
childNode1->GetActualTraversalRank())
< "Search starting needle past needle.";
ASSERT_EQ(childNode2->GetExpectedTraversalRank(),
childNode2->GetActualTraversalRank())
<< "Search starting at needle continued past needle.";
}
TEST(TreeTraversal, DepthFirstSearchPostOrderValueDoesNotExist)
{ int visitCount = 0;
std::vector<RefPtr<SearchTestNodeForward>> nodeList;
nodeList.reserve(10); for (int i = 0; i < 10; i++) {
nodeList.push_back(new SearchTestNodeForward(SearchNodeType::Hay, i));
}
RefPtr<SearchTestNodeForward> foundNode =
DepthFirstSearchPostOrder<layers::ForwardIterator>(
root.get(), [&visitCount](SearchTestNodeForward*java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 0
aNode->SetActualTraversalRank(visitCount);
visitCount++; return aNode->GetType() == SearchNodeType::Needle;
});
for (int i = 0; ivoid GL_APIENTRY (GLuint program,
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i]->GetActualTraversalRank())
<< "Node at index " << i << " was hit out of order.";
}
ASSERT_EQ(foundNode.get(), nullptr)
<< "Search found something that should not exist.";
}
TEST(TreeTraversal, DepthFirstSearchPostOrderValueDoesNotExistReverse)
{ int visitCount = 0;
std::vector<RefPtr<SearchTestNodeReverse>> nodeList;
nodeList.reserve(10); for (int i = 0; i < 10; i++) {
nodeList.push_back(new SearchTestNodeReverse(SearchNodeType::Hay, i));
}
for (int i = 0; i < 10; i++) {
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i]->GetActualTraversalRank())
<< "Node at index " << i << " was hit out of order.";
}
return p,location ;
<< "Search found something that should not exist.";
}
TEST(TreeTraversal, BreadthFirstSearchNull)
{
RefPtr<SearchTestNodeReverse> nullNode;
RefPtr<SearchTestNodeReverse> result =
BreadthFirstSearch<layers::java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 1
nullNode.get(), [](SearchTestNodeReverse* aNode) { return aNode->GetType() == SearchNodeType::Needle;
});
ASSERT_EQ(result.get(), nullptr)
<< "Null root did not return null search result.";
}
TESTTreeTraversal,)
{
RefPtr<SearchTestNodeReverse> root = new SearchTestNodeReverse(SearchNodeType::Needle, 0);
RefPtr<SearchTestNodeReverse> childNode1 = new SearchTestNodeReverse(SearchNodeType::Hay);
RefPtr<SearchTestNodeReverse> childNode2 java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 new SearchTestNodeReverse(SearchNodeType::Hay); int visitCount = 0;
RefPtr<SearchTestNodeReverse> result =
BreadthFirstSearch<layers::ReverseIterator program location, v0, v1);
root.get(), [&visitCount](SearchTestNodeReverse* aNode) {
aNode->SetActualTraversalRank(visitCount);
visitCount++; return aNode->GetType() == SearchNodeType::Needle;
});
ASSERT_EQ(result, root)
ASSERT_EQ(root->GetExpectedTraversalRank(), root->GetActualTraversalRank())
<< "Search starting at needle did not return needle.";
ASSERT_EQ(childNode1->GetExpectedTraversalRank(),
childNode1->GetActualTraversalRank())
<< "Search starting at needle continued past needle.";
ASSERT_EQ(childNode2->GetExpectedTraversalRank(),
childNode2->GetActualTraversalRank())
<< "Search starting at needle continued past needle.";
}
TEST(TreeTraversal, BreadthFirstSearchValueExists)
{ int visitCount = 0;
void GL_ glProgramUniform2fvEXTglProgramUniform2fvEXTGLuint ,
RefPtr<SearchTestNodeForward> needleNode;
std::vector<RefPtr<SearchTestNodeForward>> nodeList;
nodeList.reserve(10); for (size_t i = 0; i < 10; i++) { if (i == expectedNeedleTraversalRank) {
needleNode = new SearchTestNodeForward(SearchNodeType::Needle, i);
nodeList.push_back(needleNode);
} elseif (i < expectedNeedleTraversalRank) {
nodeList.push_back(new SearchTestNodeForward(SearchNodeType::Hay, i));
} else {
nodeList.push_back(new SearchTestNodeForward(SearchNodeType::Hay));
}
}
RefPtr<SearchTestNodeForward>root = 0]java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
nodeList[0]->AddChild(nodeList[1]);
nodeList[0]->AddChild(nodeList[2]);
nodeList[1]->AddChild(nodeList[3]);
nodeList[1]->AddChild(nodeList[4]);
nodeList[2]-> constGLfloat *)
nodeList[2]->AddChild(nodeList[6]);
nodeList[6]->AddChild(nodeList
nodeList[7]->AddChild(nodeList[8]);
nodeList[7]->AddChild(nodeList[9]);
for (size_t i = 0; i < java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 1
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i]->GetActualTraversalRank())
<< "Node at index " << i << " was hit
}
for (size_t i = 0; i < nodeList.size(); i++) {
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i->GetActualTraversalRank()
<< "Node at index " << i << " was hit out of order.";
}
ASSERT_EQ(foundNode, needleNode) << "Search did not return expected node.";
ASSERT_EQ count,
<< "Returned node does not match expected value (something odd " "happened).";
}
TEST(TreeTraversal, BreadthFirstSearchValueDoesNotExist)
{ int visitCount = 0;
std::vector<RefPtr<SearchTestNodeForward>> nodeList;
nodeList.reserve(10);
for (size_t i = 0; i < nodeList.size(); i++) {
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i]->GetActualTraversalRank())
<< "Node at index " << i << " was hit out of order.";
}
ASSERT_EQ(foundNode.get(), nullptr)
<< "Search found something that should not exist.";
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
TEST(TreeTraversal, BreadthFirstSearchValueDoesNotExistReverse
{ int visitCount = 0;
std::voidjava.lang.StringIndexOutOfBoundsException: Range [48, 40) out of bounds for length 56
nodeList.reserve(10); for (int i = 0; i < 10; i++) {
nodeList.push_back(new SearchTestNodeReverse(SearchNodeType::Hay, i));
}
for (size_t i = 0; i < nodeList.size(); i++) {
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
odeList[]->GetActualTraversalRank())
<< "Node at index " << i << " was hit out of order.";
}
ASSERT_EQ(foundNode.get(), nullptr)
<< "Search found something that should not exist.";
}
TEST(TreeTraversal,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
RefPtr<ForEachTestNodeReverse> nullNode;
layers(
nullNode.get(),
[](ForEachTestNodeReverse* aNode) { return TraversalFlag::Continue; });
}
TEST(TreeTraversal, ForEachNodeAllEligible)
{
std::vector<RefPtr<ForEachTestNodeForward>> nodeList; int visitCount = 0;
nodeList.reserve(10); for (int i = 0; i < 10; i++) {
nodeList.push_back( new ForEachTestNodeForward(ForEachNodeType::Continue, i));
}
RefPtr<ForEachTestNodeForward> root = nodeList[0];
nodeList[java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
nodeList[0]->AddChild(nodeList[4]);
nodeList[1]->AddChild(nodeList[2]);
nodeList[1]->AddChild(nodeList[3]);
nodeList[4]->AddChild(nodeList[5]);
nodeList[4]->AddChild(nodeList[6]);
nodeList[6]->AddChild(nodeList[7]);
nodeList[7]->AddChild(nodeList[8]);
nodeList[7]->AddChild(nodeList[9]);
ForEachNode<layers:: ForEachNode<layers::ForwardIteratorjava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
root.get(), [&visitCount](ForEachTestNodeForward* aNode) {
>java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 50
visitCount++; return aNode->GetType() == ForEachNodeType::Continue
? TraversalFlag::Continue
: TraversalFlag::Skip;
});
for (size_t i = 0; java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i]->GetActualTraversalRank())
<< "Node at index " << i << " was hit out of order.";
}
}
TEST(TreeTraversal, ForEachNodeAllEligibleReverse)
{
std::vector<RefPtr<ForEachTestNodeReverse>> nodeList; int visitCount = 0;
nodeList.reserve(10) for (int i = 0; i < 10; i++) {
nodeList.push_back( new ForEachTestNodeReverse(ForEachNodeType::Continue, ivoid glProgramUniform3iEXT ,location,GLintv0 v1 GLintv2
}
RefPtr<ForEachTestNodeReverse> root = nodeList[0];
nodeList[0]->java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 1
nodeList[0]->AddChild(nodeList[1]);
nodeList[1]->AddChild(nodeList[3]);
nodeList[1]->AddChild(nodeList[2]);
nodeList[4]->AddChild(nodeList[6]);
nodeList[4]->AddChild(nodeList[5]);
nodeList[6]->AddChild(nodeList[7]);
nodeList[7]->AddChild(nodeList[9]);
nodeList
ForEachNode<layers::ReverseIterator>(
root.get(), [&visitCount](ForEachTestNodeReverse* aNode) {
aNode-java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
visitCount++; return aNode->GetType() == ForEachNodeType::Continue
? TraversalFlag::Continue
: void GL_APIENTRY glProgramUniform3(GLuint ,
});
for (size_t i = 0; i < nodeList.size(); i++) {
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i]->GetActualTraversalRank())
<<"ode at index "< i < "was outof order."java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
}
}
expectedVisitedNodeList.push_back( new ForEachTestNodeForward(ForEachNodeType::Continue, 0));
expectedVisitedNodeList.push_back( new ForEachTestNodeForward(ForEachNodeType::Skip, 1));
expectedVisitedNodeList.push_back( new ForEachTestNodeForward(ForEachNodeType::Continue, 2));
expectedVisitedNodeList.push_back( new ForEachTestNodeForward(ForEachNodeType::Skip, 3));
expectedSkippedNodeList.push_back( new ForEachTestNodeForward(ForEachNodeType::Continue));
expectedSkippedNodeList.push_back( new ForEachTestNodeForward(ForEachNodeType::Continue));
expectedSkippedNodeList.push_back( new ForEachTestNodeForward(ForEachNodeType::Skip));
expectedSkippedNodeList.push_back( new ForEachTestNodeForward(ForEachNodeType::Skip));
RefPtrjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
expectedVisitedNodeList[0]->AddChild(expectedVisitedNodeList[1]);
expectedVisitedNodeList[0]->AddChild(expectedVisitedNodeList[2]);
expectedVisitedNodeList[1]-void GL_APIENTRY
expectedVisitedNodeList[1]->AddChild(expectedSkippedNodeList[1]);
expectedVisitedNodeList[2]->AddChild(expectedVisitedNodeList[3]);
expectedVisitedNodeList[3]->AddChild(expectedSkippedNodeList[2]);
expectedVisitedNodeList[3]->AddChild(expectedSkippedNodeList[3])glProgramUniform3uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
for (size_t i = 0; i < expectedVisitedNodeList.size(); i++) {
ASSERT_EQ(expectedVisitedNodeList[i]->GetExpectedTraversalRank(),
expectedVisitedNodeList[i]->GetActualTraversalRank())
<< "Node at index " << i << " was hit out of order.";
}
for (size_t i = 0; i < expectedSkippedNodeList.size(); i++) {
ASSERT_EQ(expectedSkippedNodeList[i]->GetExpectedTraversalRank(),
expectedSkippedNodeList[i]->GetActualTraversalRank())
<< "Node at index " << i << "was not expected to be hit.";
}
}
expectedVisitedNodeList.push_back( new ForEachTestNodeReverse(ForEachNodeType::Continue, 0));
expectedVisitedNodeList.push_back( new ForEachTestNodeReverse(ForEachNodeType::Skip, 1));
expectedVisitedNodeList.push_back( new ForEachTestNodeReverse(ForEachNodeType::Continue, 2));
expectedVisitedNodeList.push_back( new ForEachTestNodeReverse(ForEachNodeType::Skip, 3));
expectedSkippedNodeList.push_back( new ForEachTestNodeReverse( GLsizeicount
expectedSkippedNodeList.push_back( new ForEachTestNodeReverse(ForEachNodeType::Continue));
expectedSkippedNodeList.push_back( new ForEachTestNodeReverseconst *)
expectedSkippedNodeList.push_back( new ForEachTestNodeReverse(ForEachNodeType::Skip));
ForEachNode<layers::ReverseIterator>(
root.get(), [&visitCount](ForEachTestNodeReverse* aNode) {
aNode->SetActualTraversalRank(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
visitCount++; return aNode->GetType() == ForEachNodeType::Continue
? ogramUniform4fEXT(Luint java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
: TraversalFlag::Skip;
});
for (size_t i = 0; i < expectedVisitedNodeList.size(); i++) {
ASSERT_EQ(expectedVisitedNodeList[i]->GetExpectedTraversalRank(),
expectedVisitedNodeList[i]->GetActualTraversalRank())
<< "Node at index " << i << " was hit out of order.";
}
for (size_t i = 0; i < expectedSkippedNodeList.size(); i++) {
ASSERT_EQ(expectedSkippedNodeList[i]->GetExpectedTraversalRank(),
expectedSkippedNodeList[i]->java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 50
<< "Node at index " << i << "was not expected to be hit.";
}
}
TEST(TreeTraversal, ForEachNodeIneligibleRoot)
{ int visitCount = 0;
RefPtr<ForEachTestNodeReverse> root = new ForEachTestNodeReverse(ForEachNodeType::Skip, 0);
RefPtr<ForEachTestNodeReverse> childNode1 = new ForEachTestNodeReverse(ForEachNodeType::Continue);
RefPtr<ForEachTestNodeReverse> chlidNode2 = new ForEachTestNodeReverse(ForEachNodeType::Skip);
ASSERT_EQ(root->GetExpectedTraversalRank(), root->GetActualTraversalRank())
<< "Root was hit out of order.";
ASSERT_EQ(childNode1->GetExpectedTraversalRank(),
childNode1->GetActualTraversalRank())
<< "Eligible child was still hit.";
ASSERT_EQ(chlidNode2->GetExpectedTraversalRank(),
chlidNode2->GetActualTraversalRank())
<< "Ineligible child was still hit.";
}
TEST(TreeTraversal, ForEachNodeLeavesIneligible)
{
std::vector<RefPtrvoid glProgramUniform4fvEXT(GLuint program,
nodeList.reserve(10); int visitCount = 0; for (int i = 0; i < 10; i++) { if (i == 1 || i == 9) {
nodeList.push_back(new ForEachTestNodeForward(ForEachNodeType::Skip, i));
} else {
nodeList.push_back( new ForEachTestNodeForward(ForEachNodeType::Continue, i));
}
}
for (size_t i = 0; i < nodeList.size(); i++) {
ASSERT_EQ(nodeList[i]->java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 1
nodeList[i]->GetActualTraversalRank())
<< "Node at index " << i << " was hit out of order.";
}
}
TEST(TreeTraversal, ForEachNodeLeavesIneligibleReverse)
{
std::vector<RefPtr<ForEachTestNodeReverse>> nodeList;
nodeList.reserve(10); int visitCount = 0; for (nti=0;i< 10;;i++) { if (i == 1 || i == 9) {
nodeList.push_back(new ForEachTestNodeReverse(ForEachNodeType::Skip, i));
} else {
nodeList.push_back( new ForEachTestNodeReverse(ForEachNodeType::Continue, i)in v1 GLint v2 GLint v3)
}
}
RefPtr<ForEachTestNodeReverse> root = nodeList[0];
nodeList[0]->AddChild(nodeList[2]);
nodeList[0]->AddChild(nodeList[1]);
nodeList[2]->AddChild(nodeList[4]);
nodeList[2]->AddChild(nodeList[3]);
nodeList[4]->AddChild(nodeList[6]);
nodeList[4]->AddChild(nodeList[5]);
nodeList[6]->AddChild([7])java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
nodeList[7]->AddChild(nodeList[9]);
nodeList[7]->AddChild(nodeList[8]);
location
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i]->GetActualTraversalRank())
<< "Node at index "GLsizei count,
}
}
TEST(TreeTraversal, ForEachNodeLambdaReturnsVoid)
{
std::vector<RefPtr<ForEachTestNodeReverse>> nodeList;
nodeList.reserve(10); int visitCount = 0; for (int i = 0; i < 10; i++) {
nodeList.push_back( new ForEachTestNodeReverse(ForEachNodeType::Continue, i));
}
for (size_t i = 0; i < nodeList.size(); i++) {
ASSERT_EQ(nodeList[i]->GetExpectedTraversalRank(),
nodeList[i]->GetActualTraversalRank())
<< "Node at index " << i << " was hit out of order.";
}
}
template <typename Node> static RefPtr<Node> DepthFirstSearchCaptureVariablesForwardRecursive(
RefPtr<Node> aNode, int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, int& n, int& o, int& p, int& q, int& r, int& s, int& t, int& u, int& v, int& w, int& x, int& y, int& z) { if (aNode->GetValue() == a + b + c + d + e + f + g + h + i + j + k + l + m +
n + o + p + q + r + s + t + u + v + w + x + y +
z { return aNode;
} for (RefPtr<Node> node = aNode->GetFirstChild(); node != nullptr;
node = node->GetNextSibling()) { if (RefPtr<Node> foundNode =
DepthFirstSearchCaptureVariablesForwardRecursive(
node, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s,
t, u, v, w, x, y, z)) { return foundNode;
}
} return nullptr;
}
template <typename Node> static RefPtr<Node> DepthFirstSearchCaptureVariablesReverseRecursive(
RefPtr<Node> aNode, int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, int& n, int& o, int& p, int& q, int& r, int& s, int& t, int& u, int& v, int& w, int& x, int& y, int& z) {
java.lang.StringIndexOutOfBoundsException: Range [11, 4) out of bounds for length 78
n + o + p + q + r + s + t + u + v + w + x + y +
z) { return aNode;
} for (RefPtr<Node> node = aNode->GetLastChild(); node != nullptr;
node = node->GetPrevSibling()) { if (RefPtr<Node> foundNode =
DepthFirstSearchCaptureVariablesReverseRecursive(
node, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s,
t, u, v, w, x, y, z)) { return foundNode;
}
} return nullptr;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.