TEST_F(PrinterTests, test_generate_row) { std::map<std::string, size_t> lengths; for (const auto& row : q) { computeRowLengths(row, lengths); } auto results = generateRow(q.front(), lengths, order); auto expected = "| Mike Jones | 39 | mac and cheese | 1 |\n"; EXPECT_EQ(results, expected); }
void prettyPrint(const QueryData& results, const std::vector<std::string>& columns, std::map<std::string, size_t>& lengths) { if (results.size() == 0) { return; } // Call a final compute using the column names as minimum lengths. computeRowLengths(results.front(), lengths, true); // Output a nice header wrapping the column names. auto separator = generateToken(lengths, columns); auto header = separator + generateHeader(lengths, columns) + separator; printf("%s", header.c_str()); // Iterate each row and pretty print. for (const auto& row : results) { printf("%s", generateRow(row, lengths, columns).c_str()); } printf("%s", separator.c_str()); }
std::string beautify(const QueryData& q, const std::vector<std::string>& order) { auto lengths = computeQueryDataLengths(q); if (q.size() == 0) { return std::string(); } auto separator = generateSeparator(lengths, order); std::ostringstream results; results << "\n"; results << separator; results << generateHeader(lengths, order); results << separator; for (const auto& r : q) { results << generateRow(r, lengths, order); } results << separator; return results.str(); }
void GameMapRecrusive::generate(int rs, int cs, int re, int ce) { int ro = generateRow(rs, cs, re, ce); int co = generateCol(rs, cs, re, ce); if(ro==co && ro==-1) return; bool allowTrap = (m_vLevel>1); if(ro!=-1 && co==-1) { int cm = rand(cs, ce); setMouth(ro, cm, allowTrap); generate(rs, cs, ro, ce); generate(ro+1, cs, re, ce); } else if(ro==-1 && co!=-1) { int rm = rand(rs, re); setMouth(rm, co, allowTrap); generate(rs, cs, re, co); generate(rs, co+1, re, ce); } else { int candy[] = {0, 1, 2, 3}; std::random_shuffle(candy, candy+4); for(int i=0; i<3; ++i) { int r,c; switch(candy[i]) { case 0: r = rand(rs, ro); c = co; break; case 1: r = ro; c = rand(co+1, ce); break; case 2: r = rand(ro+1, re); c = co; break; case 3: r = ro; c = rand(cs+1, co); break; default: break; } setMouth(r, c, allowTrap); } generate(rs, cs, ro, co); generate(rs, co+1, ro, ce); generate(ro+1, co+1, re, ce); generate(ro+1, cs, re, co); } }