26#define DL_TESTER_CHECK(cond) if(!(cond))return false
32 t.
AddTest(
"Parse", [](
size_t i,
float)
35 std::vector<int> vec = j;
36 return vec.size() == 3 && vec[0] == 1 && vec[1] == 2 && vec[2] == 3;
38 t.AddTest(
"Dump", [](
size_t i,
float)
41 return j.dump() ==
"[1,2,3]";
43 t.AddTest(
"DumpUtf8", [](
size_t i,
float)
45 std::string str = R
"({ "键": 123 })";
60 t.
AddTest(
"TestSplit", [](
size_t i,
float)
62 std::string str0 =
"0,1,2,,3";
63 std::string str1 =
",0,1,2,,3,";
64 std::string str2 =
",,0,1,2,,3,";
66 using namespace std::literals;
68 std::vector<std::string_view> vec0 = String::SplitView(str0,
","sv);
69 std::vector<std::string_view> vec1 = String::SplitView(str1,
","sv);
70 std::vector<std::string_view> vec2 = String::SplitView(str2,
","sv);
72 DL_TESTER_CHECK(vec0[0] ==
"0" && vec0[1] ==
"1" && vec0[2] ==
"2" && vec0[3] ==
"" && vec0[4] ==
"3");
73 DL_TESTER_CHECK(vec1[0] ==
"" && vec1[1] ==
"0" && vec1[2] ==
"1" && vec1[3] ==
"2" && vec1[4] ==
""
74 && vec1[5] ==
"3" && vec1[6] ==
"");
75 DL_TESTER_CHECK(vec2[0] ==
"" && vec2[1] ==
"" && vec2[2] ==
"0" && vec2[3] ==
"1" && vec2[4] ==
"2"
76 && vec2[5] ==
"" && vec2[6] ==
"3" && vec2[7] ==
"");
81 std::vector<std::string_view> vec0 = String::SplitViewNoEmpty(str0,
","sv);
82 std::vector<std::string_view> vec1 = String::SplitViewNoEmpty(str1,
","sv);
83 std::vector<std::string_view> vec2 = String::SplitViewNoEmpty(str2,
","sv);
85 DL_TESTER_CHECK(vec0[0] ==
"0" && vec0[1] ==
"1" && vec0[2] ==
"2" && vec0[3] ==
"3");
86 DL_TESTER_CHECK(vec1[0] ==
"0" && vec1[1] ==
"1" && vec1[2] ==
"2" && vec1[3] ==
"3");
87 DL_TESTER_CHECK(vec2[0] ==
"0" && vec2[1] ==
"1" && vec2[2] ==
"2" && vec2[3] ==
"3");
91 t.AddTest(
"TestReplace", [](
size_t i,
float) {
92 std::string str0 =
"元宝数量增加10,元宝增加9";
93 std::string str1 =
"元宝";
94 std::string str2 =
"元宝数量";
97 if (str !=
"元宝数量数量增加10,元宝数量增加9")
112 req.
SetUrl(
"https://httpbin.org/get");
113 if (
g_http->SendRequest(req))
127 t.
AddTest(
"TestLz4", [](
size_t i,
float)
129 std::string str(
"abcabcabcabcabc");
139 t.AddTest(
"TestZip", [](
size_t i,
float)
141 std::string str(
"abcabcabcabcabc");
237 log_test(
"完成dl测试,失败数量:{}", error_count);
void SetUrl(std::string_view url)
void AddTestOnce(std::string_view name, F func)
单次执行测试
void AddTest(std::string_view name, F func)
时间内执行
#define DL_TESTER_CHECK(cond)
bool CreateFolder(std::string_view path)
创建目录
std::string PathStorage()
返回存储路径 rw
json ParseString(std::string_view str)
从 字符串 构建json对象
bool Get(const json &j, const std::string &name, T &t)
从json返回子元素值,不存在则返回false,打印日志
Buffer CompressLz4(BufferView src)
压缩数据,使用lz4算法
Buffer DecompressLz4(BufferView src, size_t size_origin=0)
解压缩数据,使用lz4算法
Buffer DecompressZip(BufferView src, size_t size_origin=0)
解压缩数据,使用libz
Buffer CompressZip(BufferView src)
压缩数据,使用libz
T ReplaceAll(const T &a, const T &sub, const T &tar)
子串替换
std::string to_string(T v)
to_string包装
BufferView CreateBufferView(const Buffer &buf)
创建buffer视图(右值不能默认转换)