@@ -43,47 +43,46 @@ TEST(GraphColouringNumberOfConflictingNodes, SimpleGraph) {
43
43
TEST (GraphColouring, parallelSchedule) {
44
44
45
45
46
- auto invalidColoring = std::make_shared<FixedKColouringStrategy>();
47
- invalidColoring->initOperators .emplace_back ([](const graph_access &graph,
48
- const size_t colors) {
46
+ std::vector<std::unique_ptr<ColouringStrategy>> strategies;
47
+ strategies.emplace_back (new FixedKColouringStrategy ());
48
+ strategies[0 ]->initOperators .emplace_back ([](const graph_access &graph,
49
+ const size_t colors) {
49
50
Colouring dummy (colors);
50
51
return dummy;
51
52
});
52
- invalidColoring ->initOperators .emplace_back ([](const graph_access &graph,
53
- const size_t colors) {
53
+ strategies[ 0 ] ->initOperators .emplace_back ([](const graph_access &graph,
54
+ const size_t colors) {
54
55
Colouring dummy (colors);
55
56
return dummy;
56
57
});
57
- invalidColoring ->initOperators .emplace_back ([](const graph_access &graph,
58
- const size_t colors) {
58
+ strategies[ 0 ] ->initOperators .emplace_back ([](const graph_access &graph,
59
+ const size_t colors) {
59
60
Colouring dummy (colors);
60
61
return dummy;
61
62
});
62
- invalidColoring ->crossoverOperators .emplace_back ([](const Colouring &s1,
63
- const Colouring &s2,
64
- const graph_access &graph) {
63
+ strategies[ 0 ] ->crossoverOperators .emplace_back ([](const Colouring &s1,
64
+ const Colouring &s2,
65
+ const graph_access &graph) {
65
66
return s1;
66
67
});
67
- invalidColoring ->crossoverOperators .emplace_back ([](const Colouring &s1,
68
- const Colouring &s2,
69
- const graph_access &graph) {
68
+ strategies[ 0 ] ->crossoverOperators .emplace_back ([](const Colouring &s1,
69
+ const Colouring &s2,
70
+ const graph_access &graph) {
70
71
return s1;
71
72
});
72
- invalidColoring ->lsOperators .emplace_back ([](const Colouring &s,
73
- const graph_access &graph) {
73
+ strategies[ 0 ] ->lsOperators .emplace_back ([](const Colouring &s,
74
+ const graph_access &graph) {
74
75
return s;
75
76
});
76
77
77
- auto validColoring = std::make_shared<VariableColouringStrategy>();
78
-
79
- validColoring->initOperators .emplace_back ([](const graph_access &graph,
78
+ strategies.emplace_back (new VariableColouringStrategy ());
79
+ strategies[1 ]->initOperators .emplace_back ([](const graph_access &graph,
80
80
const size_t colors) {
81
81
Colouring dummy (colors);
82
82
return dummy;
83
83
});
84
-
85
84
size_t executionCounter = 0 ;
86
- validColoring ->crossoverOperators .emplace_back ([&executionCounter](
85
+ strategies[ 1 ] ->crossoverOperators .emplace_back ([&executionCounter](
87
86
const Colouring &s1,
88
87
const Colouring &s2,
89
88
const graph_access &graph) {
@@ -97,7 +96,7 @@ TEST(GraphColouring, parallelSchedule) {
97
96
}
98
97
return s1;
99
98
});
100
- validColoring ->lsOperators .emplace_back ([](const Colouring &s,
99
+ strategies[ 1 ] ->lsOperators .emplace_back ([](const Colouring &s,
101
100
const graph_access &graph) {
102
101
return s;
103
102
});
@@ -110,7 +109,7 @@ TEST(GraphColouring, parallelSchedule) {
110
109
const size_t populationSize = 20 ;
111
110
const size_t maxItr = 100 ;
112
111
113
- ColouringAlgorithm ().perform ({invalidColoring, validColoring} ,
112
+ ColouringAlgorithm ().perform (strategies ,
114
113
G,
115
114
k,
116
115
populationSize,
0 commit comments