MCPcopy Create free account
hub / github.com/OSGeo/gdal / CreateRandomStrategyRequests

Function CreateRandomStrategyRequests

autotest/cpp/testblockcache.cpp:233–263  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

231}
232
233static int CreateRandomStrategyRequests(GDALDataset *poDS, int nMaxRequests,
234 Request *&psRequestList,
235 Request *&psRequestLast)
236{
237 unsigned long seed = 1;
238 int nXSize = poDS->GetRasterXSize();
239 int nYSize = poDS->GetRasterYSize();
240 int nMaxXWin = std::min(1000, nXSize / 10 + 1);
241 int nMaxYWin = std::min(1000, nYSize / 10 + 1);
242 int nQueriedBands = std::min(4, poDS->GetRasterCount());
243 int nAverageIterationsToReadWholeFile =
244 ((nXSize + nMaxXWin / 2 - 1) / (nMaxXWin / 2)) *
245 ((nYSize + nMaxYWin / 2 - 1) / (nMaxYWin / 2));
246 int nLocalLoops = nLoops * nAverageIterationsToReadWholeFile;
247 for (int iLoop = 0; iLoop < nLocalLoops; iLoop++)
248 {
249 if (nMaxRequests > 0 && iLoop == nMaxRequests)
250 break;
251 int nXOff = (int)((GIntBig)myrand_r(&seed) * (nXSize - 1) / MYRAND_MAX);
252 int nYOff = (int)((GIntBig)myrand_r(&seed) * (nYSize - 1) / MYRAND_MAX);
253 int nXWin = 1 + (int)((GIntBig)myrand_r(&seed) * nMaxXWin / MYRAND_MAX);
254 int nYWin = 1 + (int)((GIntBig)myrand_r(&seed) * nMaxYWin / MYRAND_MAX);
255 if (nXOff + nXWin > nXSize)
256 nXWin = nXSize - nXOff;
257 if (nYOff + nYWin > nYSize)
258 nYWin = nYSize - nYOff;
259 AddRequest(psRequestList, psRequestLast, nXOff, nYOff, nXWin, nYWin,
260 nQueriedBands);
261 }
262 return nQueriedBands * nMaxXWin * nMaxYWin;
263}
264
265static int CreateLineStrategyRequests(GDALDataset *poDS, int nMaxRequests,
266 Request *&psRequestList,

Callers 1

TESTFunction · 0.85

Calls 6

myrand_rFunction · 0.85
AddRequestFunction · 0.85
minFunction · 0.50
GetRasterXSizeMethod · 0.45
GetRasterYSizeMethod · 0.45
GetRasterCountMethod · 0.45

Tested by

no test coverage detected