feat: add termcolor in carton.
- add termcolor and its testbench - add integer() in flag_enum and update its testbench according to the requirements in termcolor.
This commit is contained in:
44
testbench/yycc/carton/termcolor.cpp
Normal file
44
testbench/yycc/carton/termcolor.cpp
Normal file
@ -0,0 +1,44 @@
|
||||
#include <gtest/gtest.h>
|
||||
#include <yycc.hpp>
|
||||
#include <yycc/carton/termcolor.hpp>
|
||||
#include <yycc/flag_enum.hpp>
|
||||
|
||||
#define TERMCOLOR ::yycc::carton::termcolor
|
||||
#define FLAG_ENUM ::yycc::flag_enum
|
||||
|
||||
using namespace std::literals::string_view_literals;
|
||||
using Color = TERMCOLOR::Color;
|
||||
using Attribute = TERMCOLOR::Attribute;
|
||||
|
||||
namespace yycctest::carton::termcolor {
|
||||
|
||||
TEST(CartonTermcolor, Lowlevel) {
|
||||
EXPECT_EQ(TERMCOLOR::foreground(Color::Default), u8"");
|
||||
EXPECT_EQ(TERMCOLOR::foreground(Color::Red), u8"\033[31m");
|
||||
EXPECT_EQ(TERMCOLOR::foreground(Color::LightRed), u8"\033[91m");
|
||||
|
||||
EXPECT_EQ(TERMCOLOR::background(Color::Default), u8"");
|
||||
EXPECT_EQ(TERMCOLOR::background(Color::Red), u8"\033[41m");
|
||||
EXPECT_EQ(TERMCOLOR::background(Color::LightRed), u8"\033[101m");
|
||||
|
||||
EXPECT_EQ(TERMCOLOR::style(Attribute::Default), u8"");
|
||||
EXPECT_EQ(TERMCOLOR::style(Attribute::Italic), u8"\033[3m");
|
||||
EXPECT_EQ(TERMCOLOR::styles(FLAG_ENUM::merge(Attribute::Italic, Attribute::Bold)),
|
||||
u8"\033[1m"
|
||||
"\033[3m");
|
||||
|
||||
EXPECT_EQ(TERMCOLOR::reset(), u8"\033[0m"sv);
|
||||
}
|
||||
|
||||
TEST(CartonTermcolor, Highlevel) {
|
||||
EXPECT_EQ(TERMCOLOR::colored(u8"hello"sv), u8"hello\033[0m");
|
||||
EXPECT_EQ(TERMCOLOR::colored(u8"hello"sv, Color::LightWhite, Color::Red, FLAG_ENUM::merge(Attribute::Italic, Attribute::Bold)),
|
||||
u8"\033[97m"
|
||||
"\033[41m"
|
||||
"\033[1m"
|
||||
"\033[3m"
|
||||
"hello"
|
||||
"\033[0m");
|
||||
}
|
||||
|
||||
} // namespace yycctest::carton::termcolor
|
@ -1,6 +1,7 @@
|
||||
#include <gtest/gtest.h>
|
||||
#include <yycc.hpp>
|
||||
#include <yycc/flag_enum.hpp>
|
||||
#include <cinttypes>
|
||||
|
||||
#include <yycc/rust/prelude.hpp>
|
||||
|
||||
@ -74,4 +75,9 @@ namespace yycctest::flag_enum {
|
||||
EXPECT_TRUE(FLAG_ENUM::boolean(TestEnum::MergedBit247));
|
||||
}
|
||||
|
||||
TEST(FlagEnum, Integer) {
|
||||
EXPECT_EQ(FLAG_ENUM::integer(TestEnum::Empty), UINT8_C(0));
|
||||
EXPECT_EQ(FLAG_ENUM::integer(TestEnum::Bit1), UINT8_C(1));
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user