MCPcopy Create free account
hub / github.com/Kitware/VTK / TestTreeBFSIterator

Function TestTreeBFSIterator

Common/DataModel/Testing/Cxx/TestTreeBFSIterator.cxx:13–79  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11#include <iostream>
12
13int TestTreeBFSIterator(int, char*[])
14{
15 vtkNew<vtkMutableDirectedGraph> g;
16
17 // Create vertices:
18 // Level 0
19 vtkIdType v0 = g->AddVertex();
20 // Level 1
21 vtkIdType v1 = g->AddVertex();
22 vtkIdType v2 = g->AddVertex();
23 // Level 2
24 vtkIdType v3 = g->AddVertex();
25 vtkIdType v4 = g->AddVertex();
26 vtkIdType v5 = g->AddVertex();
27 // Level 3
28 vtkIdType v6 = g->AddVertex();
29 vtkIdType v7 = g->AddVertex();
30 vtkIdType v8 = g->AddVertex();
31
32 // create a fully connected graph
33 g->AddEdge(v0, v1);
34 g->AddEdge(v0, v2);
35 g->AddEdge(v1, v3);
36 g->AddEdge(v2, v4);
37 g->AddEdge(v2, v5);
38 g->AddEdge(v4, v6);
39 g->AddEdge(v4, v7);
40 g->AddEdge(v5, v8);
41
42 vtkNew<vtkTree> tree;
43 tree->CheckedShallowCopy(g);
44
45 std::vector<int> correctSequence;
46 for (int i = 0; i <= 8; i++)
47 {
48 correctSequence.push_back(i);
49 }
50
51 vtkNew<vtkTreeBFSIterator> bfsIterator;
52 bfsIterator->SetTree(tree);
53
54 if (bfsIterator->GetStartVertex() != tree->GetRoot())
55 {
56 std::cout << "StartVertex is not defaulting to root" << std::endl;
57 return EXIT_FAILURE;
58 }
59
60 // traverse the tree in a depth first fashion
61 for (size_t i = 0; i < correctSequence.size(); i++)
62 {
63 if (!bfsIterator->HasNext())
64 {
65 std::cout << "HasNext() returned false before the end of the tree" << std::endl;
66 return EXIT_FAILURE;
67 }
68
69 vtkIdType nextVertex = bfsIterator->Next();
70 if (nextVertex != correctSequence[i])

Callers

nothing calls this directly

Calls 9

AddVertexMethod · 0.45
AddEdgeMethod · 0.45
CheckedShallowCopyMethod · 0.45
push_backMethod · 0.45
SetTreeMethod · 0.45
GetRootMethod · 0.45
sizeMethod · 0.45
HasNextMethod · 0.45
NextMethod · 0.45

Tested by

no test coverage detected