Avoid some nan with new caches

master
Tomasz Golinski 2021-05-10 22:17:03 +02:00
rodzic c62045492b
commit 38d0003f06
1 zmienionych plików z 10 dodań i 4 usunięć

Wyświetl plik

@ -867,7 +867,7 @@ int main(int argc, char** argv) {
std::cout << "Number of caches created: <span class=\"value\">" << cc.size() << "</span><br>\n";
std::cout << "Number of caches that are disabled: <span class=\"value\">" << std::count_if(cc.begin(), cc.end(), [&](const auto& a) { return a.status == disabled; }) << "</span><br>\n";
std::cout << "Number of caches that are archived: <span class=\"value\">" << std::count_if(cc.begin(), cc.end(), [&](const auto& a) { return a.status == archived; }) << "</span><br>\n";
std::cout << "Average finds per cache per day: <span class=\"value\">" << std::setprecision(3) << std::accumulate(cc.begin(), cc.end(), 0., [&](const float& a, const Cache& b) { return std::move(a) + 1.0 * b.founds / b.age_now; }) / cc.size() << "</span><br>\n";
std::cout << "Average finds per cache per day: <span class=\"value\">" << std::setprecision(3) << std::accumulate(cc.begin(), cc.end(), 0., [&](const float& a, const Cache& b) { return std::move(a) + 1.0 * b.founds / std::max(b.age_now, 1); }) / cc.size() << "</span><br>\n";
std::cout << std::resetiosflags(std::cout.flags());
std::cout << "</div>\n";
@ -947,7 +947,10 @@ int main(int argc, char** argv) {
std::cout << "<td>" << i->type << "</td>";
std::cout << "<td>" << i->fav << "</td>";
std::cout << "<td>" << i->founds << "</td>";
std::cout << "<td>" << std::setprecision(3) << 100.0 * i->fav / i->founds << "%</td>";
if (i->founds > 0)
std::cout << "<td>" << std::setprecision(3) << 100.0 * i->fav / i->founds << "%</td>";
else
std::cout << "<td>&ndash;</td>";
std::cout << "</tr>\n";
n++;
if (n > LIST_MAX) break;
@ -975,7 +978,10 @@ int main(int argc, char** argv) {
std::cout << "<td>" << i->type << "</td>";
std::cout << "<td>" << i->fav << "</td>";
std::cout << "<td>" << i->founds << "</td>";
std::cout << "<td>" << std::setprecision(3) << 100.0 * i->fav / i->founds << "%</td>";
if (i->founds > 0)
std::cout << "<td>" << std::setprecision(3) << 100.0 * i->fav / i->founds << "%</td>";
else
std::cout << "<td>&ndash;</td>";
std::cout << "</tr>\n";
n++;
if (n > LIST_MAX) break;
@ -1083,7 +1089,7 @@ int main(int argc, char** argv) {
std::cout << "</table>\n";
std::cout << "<div class=\"basic_stats\">\n";
std::cout << "Total <span class=\"value\">" << n << "</span> combinations found out of 81 (" << std::setprecision(3) << n / 0.81 << "%).<br>\n";
std::cout << "Total <span class=\"value\">" << n << "</span> combinations created out of 81 (" << std::setprecision(3) << n / 0.81 << "%).<br>\n";
std::cout << "Average difficulty: <span class=\"value\">" << average(cc, &Cache::diff) << "</span><br>\n";
std::cout << "Average terrain: <span class=\"value\">" << average(cc, &Cache::terr) << "</span><br>\n";
std::cout << "</div>\n";