Skip to content

Commit 01563df

Browse files
committed
Added better statistics to Mapcode tool
1 parent 54dc5d3 commit 01563df

File tree

1 file changed

+33
-8
lines changed

1 file changed

+33
-8
lines changed

mapcode.c

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@
99

1010
static const double PI = 3.14159265358979323846;
1111
static const int RESULTS_MAX = 64;
12-
static const int SHOW_PROGRESS = 250;
12+
static const int SHOW_PROGRESS = 125;
13+
14+
static int largestNrOfResults = 0;
15+
static double latLargestNrOfResults = 0.0;
16+
static double lonLargestNrOfResults = 0.0;
17+
static int totalNrOfResults = 0;
1318

1419
static void usage(const char* appName) {
1520
printf("MAPCODE (C library version %s)\n", mapcode_cversion);
@@ -109,6 +114,13 @@ static int printMapcodes(double lat, double lon, int iShowError) {
109114
printf("%s %s\n", results[(j * 2) + 1], results[(j * 2)]);
110115
}
111116
printf("\n");
117+
118+
if (nrResults > largestNrOfResults) {
119+
largestNrOfResults = nrResults;
120+
latLargestNrOfResults = lat;
121+
lonLargestNrOfResults = lon;
122+
}
123+
totalNrOfResults += nrResults;
112124
return nrResults;
113125
}
114126

@@ -185,7 +197,15 @@ int main(const int argc, const char** argv)
185197
usage(appName);
186198
return -1;
187199
}
188-
for (int i = 0; i < NR_RECS; ++i) {
200+
201+
// Statistics.
202+
largestNrOfResults = 0;
203+
latLargestNrOfResults = 0.0;
204+
lonLargestNrOfResults = 0.0;
205+
totalNrOfResults = 0;
206+
207+
int nrPoints = NR_RECS;
208+
for (int i = 0; i < nrPoints; ++i) {
189209
long minLonE6;
190210
long maxLonE6;
191211
long minLatE6;
@@ -241,9 +261,14 @@ int main(const int argc, const char** argv)
241261
printMapcodes(maxLat + 22, (maxLon - minLon) / 2, 0);
242262

243263
if ((i % SHOW_PROGRESS) == 0) {
244-
fprintf(stderr, "Processed %d of %d regions...\r", i, NR_RECS);
264+
fprintf(stderr, "Processed %d of %d regions (generated %d Mapcodes)...\r", i, nrPoints, totalNrOfResults);
245265
}
246266
}
267+
fprintf(stderr, "\nStatistics:\n");
268+
fprintf(stderr, "Total number of 3D points generated = %d\n", nrPoints);
269+
fprintf(stderr, "Total number of Mapcodes generated = %d\n", totalNrOfResults);
270+
fprintf(stderr, "Average number of Mapcodes per 3D point = %f\n", ((float) totalNrOfResults) / ((float) nrPoints));
271+
fprintf(stderr, "Largest number of results for 1 Mapcode = %d at (%f, %f)\n", largestNrOfResults, latLargestNrOfResults, lonLargestNrOfResults);
247272
}
248273
else if ((strcmp(cmd, "-g") == 0) || (strcmp(cmd, "--grid") == 0) ||
249274
(strcmp(cmd, "-r") == 0) || (strcmp(cmd, "--random") == 0)) {
@@ -282,10 +307,10 @@ int main(const int argc, const char** argv)
282307
}
283308

284309
// Statistics.
285-
int largestNrOfResults = 0;
286-
double latLargestNrOfResults = 0.0;
287-
double lonLargestNrOfResults = 0.0;
288-
int totalNrOfResults = 0;
310+
largestNrOfResults = 0;
311+
latLargestNrOfResults = 0.0;
312+
lonLargestNrOfResults = 0.0;
313+
totalNrOfResults = 0;
289314

290315
int gridX = 0;
291316
int gridY = 0;
@@ -322,7 +347,7 @@ int main(const int argc, const char** argv)
322347
}
323348
totalNrOfResults += nrResults;
324349
if ((i % SHOW_PROGRESS) == 0) {
325-
fprintf(stderr, "Created %d of %d 3D %s data points...\r", i, nrPoints, random ? "random" : "grid");
350+
fprintf(stderr, "Created %d of %d 3D %s data points (generated %d Mapcodes)...\r", i, nrPoints, random ? "random" : "grid", totalNrOfResults);
326351
}
327352
}
328353
fprintf(stderr, "\nStatistics:\n");

0 commit comments

Comments
 (0)