Пример #1
0
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);
}
Пример #2
0
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());
}
Пример #3
0
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();
}
Пример #4
0
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);
    }
}