Skip to content

Commit 729338e

Browse files
generatedunixname537391475639613facebook-github-bot
authored andcommitted
xplat/sparta/test/WeakPartialOrderingTest.cpp
Reviewed By: xuhdev Differential Revision: D81471675 fbshipit-source-id: 86d30cb973fc1c9f2eebde50430645040f68b4a1
1 parent 58512a7 commit 729338e

1 file changed

Lines changed: 127 additions & 78 deletions

File tree

sparta/test/WeakPartialOrderingTest.cpp

Lines changed: 127 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
#include <sparta/WeakPartialOrdering.h>
99

10+
#include <array>
1011
#include <gtest/gtest.h>
1112
#include <set>
1213
#include <sstream>
@@ -109,13 +110,18 @@ TEST(WeakPartialOrderingTest, exampleFromWtoPaper) {
109110

110111
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
111112
// Notice that forward edges are not considered.
112-
Answer lst[] = {
113-
{"1", true, false, false, 1, 0, 0}, {"2", true, false, false, 1, 1, 0},
114-
{"3", false, true, false, 1, 1, 0}, {"4", true, false, false, 1, 1, 0},
115-
{"5", false, true, false, 1, 1, 0}, {"6", true, false, false, 1, 1, 0},
116-
{"5", false, false, true, 1, 1, 1}, {"7", true, false, false, 1, 1, 0},
117-
{"3", false, false, true, 1, 1, 1}, {"8", true, false, false, 0, 1, 0},
118-
};
113+
auto lst = std::to_array<Answer>({
114+
{"1", true, false, false, 1, 0, 0},
115+
{"2", true, false, false, 1, 1, 0},
116+
{"3", false, true, false, 1, 1, 0},
117+
{"4", true, false, false, 1, 1, 0},
118+
{"5", false, true, false, 1, 1, 0},
119+
{"6", true, false, false, 1, 1, 0},
120+
{"5", false, false, true, 1, 1, 1},
121+
{"7", true, false, false, 1, 1, 0},
122+
{"3", false, false, true, 1, 1, 1},
123+
{"8", true, false, false, 0, 1, 0},
124+
});
119125

120126
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
121127
std::stack<WpoIdx> wl;
@@ -193,11 +199,11 @@ TEST(WeakPartialOrderingTest, SingletonSccAtEnd) {
193199
EXPECT_EQ(3, wpo.size());
194200

195201
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
196-
Answer lst[] = {
202+
auto lst = std::to_array<Answer>({
197203
{"1", true, false, false, 1, 0, 0},
198204
{"2", false, true, false, 1, 1, 0},
199205
{"2", false, false, true, 0, 1, 1},
200-
};
206+
});
201207

202208
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
203209
std::stack<WpoIdx> wl;
@@ -273,11 +279,13 @@ TEST(WeakPartialOrderingTest, SingletonSccAtEnd) {
273279
EXPECT_EQ(5, wpo.size());
274280

275281
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
276-
Answer lst[] = {
277-
{"1", false, true, false, 1, 0, 0}, {"2", false, true, false, 1, 1, 0},
278-
{"2", false, false, true, 1, 1, 1}, {"1", false, false, true, 1, 1, 0},
282+
auto lst = std::to_array<Answer>({
283+
{"1", false, true, false, 1, 0, 0},
284+
{"2", false, true, false, 1, 1, 0},
285+
{"2", false, false, true, 1, 1, 1},
286+
{"1", false, false, true, 1, 1, 0},
279287
{"3", true, false, false, 0, 1, 0},
280-
};
288+
});
281289

282290
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
283291
std::stack<WpoIdx> wl;
@@ -357,12 +365,12 @@ TEST(WeakPartialOrderingTest, SccAtEnd) {
357365
EXPECT_EQ(4, wpo.size());
358366

359367
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
360-
Answer lst[] = {
368+
auto lst = std::to_array<Answer>({
361369
{"1", true, false, false, 1, 0, 0},
362370
{"2", false, true, false, 1, 1, 0},
363371
{"3", true, false, false, 1, 1, 0},
364372
{"2", false, false, true, 0, 1, 1},
365-
};
373+
});
366374

367375
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
368376
std::stack<WpoIdx> wl;
@@ -440,11 +448,14 @@ TEST(WeakPartialOrderingTest, SccAtEnd) {
440448
EXPECT_EQ(6, wpo.size());
441449

442450
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
443-
Answer lst[] = {
444-
{"1", false, true, false, 1, 0, 0}, {"2", false, true, false, 1, 1, 0},
445-
{"3", true, false, false, 1, 1, 0}, {"2", false, false, true, 1, 1, 1},
446-
{"1", false, false, true, 1, 1, 0}, {"4", true, false, false, 0, 1, 0},
447-
};
451+
auto lst = std::to_array<Answer>({
452+
{"1", false, true, false, 1, 0, 0},
453+
{"2", false, true, false, 1, 1, 0},
454+
{"3", true, false, false, 1, 1, 0},
455+
{"2", false, false, true, 1, 1, 1},
456+
{"1", false, false, true, 1, 1, 0},
457+
{"4", true, false, false, 0, 1, 0},
458+
});
448459

449460
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
450461
std::stack<WpoIdx> wl;
@@ -510,9 +521,9 @@ TEST(WeakPartialOrderingTest, SingleNode) {
510521
EXPECT_EQ(1, wpo.size());
511522

512523
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
513-
Answer lst[] = {
524+
auto lst = std::to_array<Answer>({
514525
{"1", true, false, false, 0, 0, 0},
515-
};
526+
});
516527

517528
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
518529
std::stack<WpoIdx> wl;
@@ -590,15 +601,21 @@ TEST(WeakPartialOrderingTest, exampleFromWpoPaper) {
590601
EXPECT_EQ(13, wpo.size());
591602

592603
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
593-
Answer lst[] = {
594-
{"1", true, false, false, 1, 0, 0}, {"2", false, true, false, 2, 1, 0},
595-
{"3", false, true, false, 1, 1, 0}, {"4", true, false, false, 1, 1, 0},
596-
{"3", false, false, true, 1, 1, 1}, {"6", false, true, false, 2, 1, 0},
597-
{"7", true, false, false, 1, 1, 0}, {"9", true, false, false, 1, 1, 0},
598-
{"8", true, false, false, 1, 2, 0}, {"6", false, false, true, 1, 1, 1},
599-
{"5", true, false, false, 1, 2, 0}, {"2", false, false, true, 1, 1, 1},
604+
auto lst = std::to_array<Answer>({
605+
{"1", true, false, false, 1, 0, 0},
606+
{"2", false, true, false, 2, 1, 0},
607+
{"3", false, true, false, 1, 1, 0},
608+
{"4", true, false, false, 1, 1, 0},
609+
{"3", false, false, true, 1, 1, 1},
610+
{"6", false, true, false, 2, 1, 0},
611+
{"7", true, false, false, 1, 1, 0},
612+
{"9", true, false, false, 1, 1, 0},
613+
{"8", true, false, false, 1, 2, 0},
614+
{"6", false, false, true, 1, 1, 1},
615+
{"5", true, false, false, 1, 2, 0},
616+
{"2", false, false, true, 1, 1, 1},
600617
{"10", true, false, false, 0, 1, 0},
601-
};
618+
});
602619

603620
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
604621
std::stack<WpoIdx> wl;
@@ -684,12 +701,16 @@ TEST(WeakPartialOrderingTest, exampleFromWpoPaperIrreducible) {
684701
EXPECT_EQ(8, wpo.size());
685702

686703
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
687-
Answer lst[] = {
688-
{"1", true, false, false, 2, 0, 0}, {"2", false, true, false, 2, 1, 0},
689-
{"3", false, true, false, 1, 1, 0}, {"5", true, false, false, 1, 1, 0},
690-
{"6", true, false, false, 1, 1, 0}, {"4", true, false, false, 1, 3, 0},
691-
{"3", false, false, true, 1, 1, 2}, {"2", false, false, true, 0, 1, 2},
692-
};
704+
auto lst = std::to_array<Answer>({
705+
{"1", true, false, false, 2, 0, 0},
706+
{"2", false, true, false, 2, 1, 0},
707+
{"3", false, true, false, 1, 1, 0},
708+
{"5", true, false, false, 1, 1, 0},
709+
{"6", true, false, false, 1, 1, 0},
710+
{"4", true, false, false, 1, 3, 0},
711+
{"3", false, false, true, 1, 1, 2},
712+
{"2", false, false, true, 0, 1, 2},
713+
});
693714

694715
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
695716
std::stack<WpoIdx> wl;
@@ -766,12 +787,16 @@ TEST(WeakPartialOrderingTest, exampleFromWpoPaperIrreducible) {
766787
EXPECT_EQ(8, wpo.size());
767788

768789
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
769-
Answer lst[] = {
770-
{"1", true, false, false, 2, 0, 0}, {"6", true, false, false, 1, 1, 0},
771-
{"2", false, true, false, 2, 2, 0}, {"5", true, false, false, 1, 1, 0},
772-
{"3", false, true, false, 1, 2, 0}, {"4", true, false, false, 1, 1, 0},
773-
{"3", false, false, true, 1, 1, 1}, {"2", false, false, true, 0, 1, 1},
774-
};
790+
auto lst = std::to_array<Answer>({
791+
{"1", true, false, false, 2, 0, 0},
792+
{"6", true, false, false, 1, 1, 0},
793+
{"2", false, true, false, 2, 2, 0},
794+
{"5", true, false, false, 1, 1, 0},
795+
{"3", false, true, false, 1, 2, 0},
796+
{"4", true, false, false, 1, 1, 0},
797+
{"3", false, false, true, 1, 1, 1},
798+
{"2", false, false, true, 0, 1, 1},
799+
});
775800

776801
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
777802
std::stack<WpoIdx> wl;
@@ -860,7 +885,7 @@ TEST(WeakPartialOrderingTest, handlingOuterPreds) {
860885
EXPECT_EQ(16, wpo.size());
861886

862887
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
863-
Answer lst[] = {
888+
auto lst = std::to_array<Answer>({
864889
{"1", true, false, false, 4, 0, 0},
865890
{"12", true, false, false, 1, 1, 0},
866891
{"16", true, false, false, 2, 1, 0},
@@ -877,7 +902,7 @@ TEST(WeakPartialOrderingTest, handlingOuterPreds) {
877902
{"46", false, false, true, 1, 1, 2},
878903
{"75", true, false, false, 1, 2, 0},
879904
{"45", false, false, true, 0, 1, 4},
880-
};
905+
});
881906

882907
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
883908
std::stack<WpoIdx> wl;
@@ -965,13 +990,18 @@ TEST(WeakPartialOrderingTest, handlingOuterPreds) {
965990
EXPECT_EQ(10, wpo.size());
966991

967992
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
968-
Answer lst[] = {
969-
{"1", true, false, false, 2, 0, 0}, {"2", false, true, false, 1, 1, 0},
970-
{"3", false, true, false, 1, 1, 0}, {"8", true, false, false, 1, 1, 0},
971-
{"4", true, false, false, 1, 2, 0}, {"5", true, false, false, 1, 1, 0},
972-
{"3", false, false, true, 1, 1, 2}, {"6", true, false, false, 1, 1, 0},
973-
{"2", false, false, true, 1, 1, 2}, {"7", true, false, false, 0, 1, 0},
974-
};
993+
auto lst = std::to_array<Answer>({
994+
{"1", true, false, false, 2, 0, 0},
995+
{"2", false, true, false, 1, 1, 0},
996+
{"3", false, true, false, 1, 1, 0},
997+
{"8", true, false, false, 1, 1, 0},
998+
{"4", true, false, false, 1, 2, 0},
999+
{"5", true, false, false, 1, 1, 0},
1000+
{"3", false, false, true, 1, 1, 2},
1001+
{"6", true, false, false, 1, 1, 0},
1002+
{"2", false, false, true, 1, 1, 2},
1003+
{"7", true, false, false, 0, 1, 0},
1004+
});
9751005

9761006
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
9771007
std::stack<WpoIdx> wl;
@@ -1041,13 +1071,18 @@ TEST(WeakPartialOrderingTest, handlingOuterPreds) {
10411071
EXPECT_EQ(10, wpo.size());
10421072

10431073
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
1044-
Answer lst[] = {
1045-
{"1", true, false, false, 2, 0, 0}, {"2", false, true, false, 1, 1, 0},
1046-
{"8", true, false, false, 1, 1, 0}, {"3", false, true, false, 1, 2, 0},
1047-
{"4", true, false, false, 1, 1, 0}, {"5", true, false, false, 1, 1, 0},
1048-
{"3", false, false, true, 1, 1, 1}, {"6", true, false, false, 1, 1, 0},
1049-
{"2", false, false, true, 1, 1, 2}, {"7", true, false, false, 0, 1, 0},
1050-
};
1074+
auto lst = std::to_array<Answer>({
1075+
{"1", true, false, false, 2, 0, 0},
1076+
{"2", false, true, false, 1, 1, 0},
1077+
{"8", true, false, false, 1, 1, 0},
1078+
{"3", false, true, false, 1, 2, 0},
1079+
{"4", true, false, false, 1, 1, 0},
1080+
{"5", true, false, false, 1, 1, 0},
1081+
{"3", false, false, true, 1, 1, 1},
1082+
{"6", true, false, false, 1, 1, 0},
1083+
{"2", false, false, true, 1, 1, 2},
1084+
{"7", true, false, false, 0, 1, 0},
1085+
});
10511086

10521087
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
10531088
std::stack<WpoIdx> wl;
@@ -1118,14 +1153,19 @@ TEST(WeakPartialOrderingTest, handlingOuterPreds) {
11181153
EXPECT_EQ(11, wpo.size());
11191154

11201155
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
1121-
Answer lst[] = {
1122-
{"1", false, true, false, 2, 0, 0}, {"2", false, true, false, 1, 1, 0},
1123-
{"3", false, true, false, 1, 1, 0}, {"8", true, false, false, 1, 1, 0},
1124-
{"4", true, false, false, 1, 2, 0}, {"5", true, false, false, 1, 1, 0},
1125-
{"3", false, false, true, 1, 1, 2}, {"6", true, false, false, 1, 1, 0},
1126-
{"2", false, false, true, 1, 1, 2}, {"7", true, false, false, 1, 1, 0},
1156+
auto lst = std::to_array<Answer>({
1157+
{"1", false, true, false, 2, 0, 0},
1158+
{"2", false, true, false, 1, 1, 0},
1159+
{"3", false, true, false, 1, 1, 0},
1160+
{"8", true, false, false, 1, 1, 0},
1161+
{"4", true, false, false, 1, 2, 0},
1162+
{"5", true, false, false, 1, 1, 0},
1163+
{"3", false, false, true, 1, 1, 2},
1164+
{"6", true, false, false, 1, 1, 0},
1165+
{"2", false, false, true, 1, 1, 2},
1166+
{"7", true, false, false, 1, 1, 0},
11271167
{"1", false, false, true, 0, 1, 0},
1128-
};
1168+
});
11291169

11301170
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
11311171
std::stack<WpoIdx> wl;
@@ -1198,15 +1238,21 @@ TEST(WeakPartialOrderingTest, handlingOuterPreds) {
11981238
EXPECT_EQ(13, wpo.size());
11991239

12001240
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
1201-
Answer lst[] = {
1202-
{"0", true, false, false, 1, 0, 0}, {"1", false, true, false, 2, 1, 0},
1203-
{"2", false, true, false, 1, 1, 0}, {"3", false, true, false, 1, 1, 0},
1204-
{"8", true, false, false, 1, 1, 0}, {"4", true, false, false, 1, 2, 0},
1205-
{"5", true, false, false, 1, 1, 0}, {"3", false, false, true, 1, 1, 2},
1206-
{"6", true, false, false, 1, 1, 0}, {"2", false, false, true, 1, 1, 2},
1207-
{"7", true, false, false, 1, 1, 0}, {"1", false, false, true, 1, 1, 1},
1241+
auto lst = std::to_array<Answer>({
1242+
{"0", true, false, false, 1, 0, 0},
1243+
{"1", false, true, false, 2, 1, 0},
1244+
{"2", false, true, false, 1, 1, 0},
1245+
{"3", false, true, false, 1, 1, 0},
1246+
{"8", true, false, false, 1, 1, 0},
1247+
{"4", true, false, false, 1, 2, 0},
1248+
{"5", true, false, false, 1, 1, 0},
1249+
{"3", false, false, true, 1, 1, 2},
1250+
{"6", true, false, false, 1, 1, 0},
1251+
{"2", false, false, true, 1, 1, 2},
1252+
{"7", true, false, false, 1, 1, 0},
1253+
{"1", false, false, true, 1, 1, 1},
12081254
{"9", true, false, false, 0, 1, 0},
1209-
};
1255+
});
12101256

12111257
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
12121258
std::stack<WpoIdx> wl;
@@ -1276,12 +1322,15 @@ TEST(WeakPartialOrderingTest, handleNestedLoopsWithBranch) {
12761322
EXPECT_EQ(7, wpo.size());
12771323

12781324
// node, plain, head, exit, num_succs, num_preds, num_outer_preds
1279-
Answer lst[] = {
1280-
{"1", false, true, false, 2, 0, 0}, {"2", false, true, false, 1, 1, 0},
1281-
{"3", true, false, false, 1, 1, 0}, {"2", false, false, true, 1, 1, 1},
1282-
{"4", true, false, false, 1, 1, 0}, {"5", true, false, false, 1, 2, 0},
1325+
auto lst = std::to_array<Answer>({
1326+
{"1", false, true, false, 2, 0, 0},
1327+
{"2", false, true, false, 1, 1, 0},
1328+
{"3", true, false, false, 1, 1, 0},
1329+
{"2", false, false, true, 1, 1, 1},
1330+
{"4", true, false, false, 1, 1, 0},
1331+
{"5", true, false, false, 1, 2, 0},
12831332
{"1", false, false, true, 0, 1, 0},
1284-
};
1333+
});
12851334

12861335
std::unordered_map<WpoIdx, uint32_t> count(wpo.size());
12871336
std::stack<WpoIdx> wl;

0 commit comments

Comments
 (0)