@@ -110,6 +110,26 @@ std::string genGlobAtBothSides(const std::vector<std::string> &Files) {
110110 return S;
111111}
112112
113+ std::string genGlobAtBothSidesAndMid (const std::vector<std::string> &Files) {
114+ std::string S;
115+ std::minstd_rand Rng (RNG_SEED);
116+ for (std::string F : Files) {
117+ std::uniform_int_distribution<> PosDistrib (0 , F.size () - 1 );
118+ F[PosDistrib (Rng)] = ' *' ;
119+
120+ std::uniform_int_distribution<> Ends (0 , 1 );
121+ if (Ends (Rng)) {
122+ F.back () = ' *' ;
123+ F.front () = ' *' ;
124+ }
125+
126+ S += " src:" ;
127+ S += F;
128+ S += " \n " ;
129+ }
130+ return S;
131+ }
132+
113133void BM_Make_ (
114134 benchmark::State &state,
115135 std::string (*GenerateCaseList)(const std::vector<std::string> &Files)) {
@@ -171,6 +191,9 @@ BENCHMARK_CAPTURE(BM_Make_, Mid__, genGlobInMid)
171191BENCHMARK_CAPTURE (BM_Make_, Both_, genGlobAtBothSides)
172192 ->RangeMultiplier(MAX_LIST_MUL)
173193 ->Range(MAX_LIST_MIN, MAX_LIST_MAX);
194+ BENCHMARK_CAPTURE (BM_Make_, Mix__, genGlobAtBothSidesAndMid)
195+ ->RangeMultiplier(MAX_LIST_MUL)
196+ ->Range(MAX_LIST_MIN, MAX_LIST_MAX);
174197
175198BENCHMARK_CAPTURE (BM_True_, None_, genGlobNone)
176199 ->RangeMultiplier(MAX_LIST_MUL)
@@ -187,6 +210,9 @@ BENCHMARK_CAPTURE(BM_True_, Mid__, genGlobInMid)
187210BENCHMARK_CAPTURE (BM_True_, Both_, genGlobAtBothSides)
188211 ->RangeMultiplier(MAX_LIST_MUL)
189212 ->Range(MAX_LIST_MIN, MAX_LIST_MAX);
213+ BENCHMARK_CAPTURE (BM_True_, Mix__, genGlobAtBothSidesAndMid)
214+ ->RangeMultiplier(MAX_LIST_MUL)
215+ ->Range(MAX_LIST_MIN, MAX_LIST_MAX);
190216
191217BENCHMARK_CAPTURE (BM_False, None_, genGlobNone)
192218 ->RangeMultiplier(MAX_LIST_MUL)
@@ -203,5 +229,8 @@ BENCHMARK_CAPTURE(BM_False, Mid__, genGlobInMid)
203229BENCHMARK_CAPTURE (BM_False, Both_, genGlobAtBothSides)
204230 ->RangeMultiplier(MAX_LIST_MUL)
205231 ->Range(MAX_LIST_MIN, MAX_LIST_MAX);
232+ BENCHMARK_CAPTURE (BM_False, Mix__, genGlobAtBothSidesAndMid)
233+ ->RangeMultiplier(MAX_LIST_MUL)
234+ ->Range(MAX_LIST_MIN, MAX_LIST_MAX);
206235
207236BENCHMARK_MAIN ();
0 commit comments