36 (*graph)[0]->dependsOn((*graph)[1].get());
37 (*graph)[0]->dependsOn((*graph)[2].get());
38 (*graph)[1]->dependsOn((*graph)[3].get());
39 (*graph)[2]->dependsOn((*graph)[3].get());
45 for (
int i = 0; i < n - 1; ++i) {
46 (*graph)[i+1]->dependsOn((*graph)[i].get());
76 (*graph)[0]->dependsOn((*graph)[1].get());
77 (*graph)[1]->dependsOn((*graph)[2].get());
78 (*graph)[2]->dependsOn((*graph)[0].get());
99 (*graph)[0]->dependsOn((*graph)[1].get());
100 (*graph)[0]->dependsOn((*graph)[2].get());
101 (*graph)[1]->dependsOn((*graph)[3].get());
102 (*graph)[2]->dependsOn((*graph)[3].get());
104 (*graph)[3]->dependsOn((*graph)[4].get());
105 (*graph)[3]->dependsOn((*graph)[5].get());
106 (*graph)[4]->dependsOn((*graph)[6].get());
107 (*graph)[5]->dependsOn((*graph)[6].get());
122 (*graph)[0]->dependsOn((*graph)[1].get());
123 (*graph)[0]->dependsOn((*graph)[2].get());
124 (*graph)[1]->dependsOn((*graph)[3].get());
125 (*graph)[2]->dependsOn((*graph)[3].get());
127 (*graph)[4]->dependsOn((*graph)[5].get());
128 (*graph)[4]->dependsOn((*graph)[6].get());
129 (*graph)[5]->dependsOn((*graph)[7].get());
130 (*graph)[6]->dependsOn((*graph)[7].get());
145 (*graph)[0]->dependsOn((*graph)[3].get());
146 (*graph)[1]->dependsOn((*graph)[3].get());
147 (*graph)[2]->dependsOn((*graph)[0].get());
148 (*graph)[3]->dependsOn((*graph)[5].get());
149 (*graph)[3]->dependsOn((*graph)[6].get());
150 (*graph)[4]->dependsOn((*graph)[1].get());
151 (*graph)[5]->dependsOn((*graph)[2].get());
152 (*graph)[6]->dependsOn((*graph)[4].get());
165 (*graph)[0]->dependsOn((*graph)[1].get());
166 (*graph)[1]->dependsOn((*graph)[2].get());
167 (*graph)[2]->dependsOn((*graph)[0].get());
169 (*graph)[3]->dependsOn((*graph)[4].get());
170 (*graph)[4]->dependsOn((*graph)[5].get());
171 (*graph)[5]->dependsOn((*graph)[3].get());
179 bool fExpectedResult;
190 for (
size_t i = 0; i < std::size(
tests); ++i) {
193 (
tests[i].fCreate)(&graph);
195 const int numNodes = graph.
size();
199 bool actualResult = GrTTopoSort<ToolUtils::TopoTestNode>(graph);
203 if (
tests[i].fExpectedResult) {
204 for (
const auto& node : graph) {
210 std::vector<bool> seen(numNodes,
false);
212 for (
const auto& node : graph) {
215 seen[node->id()] =
true;
224 for (
int n = 2; n < 6; ++n) {
225 for (
int split = 1; split < n; ++split) {
238 for (
const auto& node : spanB) {
246 for (
const auto& node : graph) {
bool GrTTopoSort(SkSpan< sk_sp< T > > graph, uint32_t offset=0)
#define DEF_TEST(name, reporter)
#define REPORTER_ASSERT(r, cond,...)
static void create_graph1(TArray< sk_sp< ToolUtils::TopoTestNode > > *graph)
static void create_graph5(TArray< sk_sp< ToolUtils::TopoTestNode > > *graph)
static void create_graph4(TArray< sk_sp< ToolUtils::TopoTestNode > > *graph)
static void create_simple_chain(TArray< sk_sp< ToolUtils::TopoTestNode > > *graph, int n)
void(* CreateGraphPF)(TArray< sk_sp< ToolUtils::TopoTestNode > > *graph)
static void create_graph6(TArray< sk_sp< ToolUtils::TopoTestNode > > *graph)
static void create_graph0(TArray< sk_sp< ToolUtils::TopoTestNode > > *graph)
static void create_graph3(TArray< sk_sp< ToolUtils::TopoTestNode > > *graph)
static void create_graph2(TArray< sk_sp< ToolUtils::TopoTestNode > > *graph)