return result;
}
-TextTable::Cell::Cell(const std::string& text) : m_text(text)
+TextTable::Cell::Cell(const std::string& text)
+ : m_text(text),
+ m_right_align(false)
{
}
+TextTable::Cell::Cell(const uint64_t number)
+ : m_text(fmt::format("{}", number)),
+ m_right_align(true)
+{
+}
+
+TextTable::Cell&
+TextTable::Cell::left_align()
+{
+ m_right_align = false;
+ return *this;
+}
+
TextTable::Cell&
TextTable::Cell::right_align()
{
SUBCASE("1x2")
{
table.add_row({{"a"}});
- table.add_row({{"b"}});
- CHECK(table.render() == "a\nb\n");
+ table.add_row({1});
+ CHECK(table.render() == "a\n1\n");
}
SUBCASE("3 + 2")
"aa bbb\n"));
}
+ SUBCASE("strings and numbers")
+ {
+ table.add_row({{"a"}, 123, {"cc"}});
+ table.add_row({{"aa"}, 4, {"ccc"}});
+ table.add_row({{"aaa"}, 56, {"c"}});
+ CHECK(table.render()
+ == ("a 123 cc\n"
+ "aa 4 ccc\n"
+ "aaa 56 c\n"));
+ }
+
+ SUBCASE("left align")
+ {
+ table.add_row({{"a"}, 123, {"cc"}});
+ table.add_row({{"aa"}, C(4).left_align(), {"ccc"}});
+ table.add_row({{"aaa"}, 56, {"c"}});
+ CHECK(table.render()
+ == ("a 123 cc\n"
+ "aa 4 ccc\n"
+ "aaa 56 c\n"));
+ }
+
SUBCASE("right align")
{
table.add_row({{"a"}, {"bbb"}, {"cc"}});