补充测试用例

This commit is contained in:
2026-09-04 10:55:28 +08:00
parent a7d4670e78
commit 77d7fd4e00
5 changed files with 175 additions and 0 deletions
+1
View File
@@ -19,6 +19,7 @@
#include <map>
#include "dl_type.h"
#include "dl_align.h"
//! 纹理打包算法
namespace dl::TexturePack
+31
View File
@@ -502,3 +502,34 @@ TEST(EraseTest, First)
EXPECT_EQ(v[1], 3);
EXPECT_EQ(v[2], 2);
}
//------------------------------Any------------------------------
TEST(AnyTest, Equal)
{
std::vector<int> v = { 1, 2, 3 };
EXPECT_TRUE(dl::Any::Equal(v, 2));
EXPECT_FALSE(dl::Any::Equal(v, 5));
}
TEST(AnyTest, Zero)
{
std::vector<int> v = { 1, 0, 3 };
EXPECT_TRUE(dl::Any::Zero(v));
std::vector<int> v2 = { 1, 2, 3 };
EXPECT_FALSE(dl::Any::Zero(v2));
}
TEST(AnyTest, Yes)
{
std::vector<int> v = { 1, 3, 5, 8 };
EXPECT_TRUE(dl::Any::Yes(v, [](int x) { return x % 2 == 0; }));
EXPECT_FALSE(dl::Any::Yes(v, [](int x) { return x > 100; }));
}
TEST(AnyTest, Less)
{
std::vector<int> v = { 5, 10, 15 };
EXPECT_TRUE(dl::Any::Less(v, 10));
EXPECT_FALSE(dl::Any::Less(v, 5));
}
+65
View File
@@ -14,6 +14,7 @@
#include "io/dl_json.h"
#include "io/dl_file.h"
#include "memory/dl_code_cvt.h"
#include "render/dl_factory.h"
TEST(JsonTest, ParseArray)
{
@@ -63,6 +64,26 @@ TEST(JsonTest, ParseInvalid)
EXPECT_TRUE(j.is_null());
}
TEST(JsonTest, SaveFileDump)
{
json j = dl::Json::ParseString(R"({"a": 1, "b": "hello"})");
// Dump 成字符串
std::string dump = dl::Json::Dump(j);
EXPECT_NE(dump.find("\"a\""), std::string::npos);
EXPECT_NE(dump.find("1"), std::string::npos);
// SaveFile + ParseFile 往返
std::string path = dl::g_factory->GetPathTemp() + "dl_json_save_test.json";
ASSERT_TRUE(dl::Json::SaveFile(j, path));
json j2 = dl::Json::ParseFile(path);
EXPECT_EQ(j2["a"], 1);
EXPECT_EQ(j2["b"], "hello");
dl::File::Delete(path);
}
//------------------------------File------------------------------
TEST(FileTest, GetExtension)
{
@@ -124,3 +145,47 @@ TEST(CodeCvtTest, Utf32Roundtrip)
std::string back = dl::CodeCvt::Utf32ToUtf8(u32);
EXPECT_EQ(back, u8);
}
//------------------------------File 文件操作------------------------------
TEST(FileTest, CreateReadDelete)
{
std::string dir = dl::g_factory->GetPathTemp() + "dl_file_test/";
dl::File::Delete(dir, true);
ASSERT_TRUE(dl::File::CreateFolder(dir));
EXPECT_TRUE(dl::File::IsExist(dir));
std::string file = dir + "a.txt";
ASSERT_TRUE(dl::File::SaveString("hello", file));
EXPECT_TRUE(dl::File::IsExist(file));
EXPECT_FALSE(dl::File::IsExist(dir + "none.txt"));
EXPECT_EQ(dl::File::GetString(file), "hello");
EXPECT_TRUE(dl::File::Delete(file));
EXPECT_FALSE(dl::File::IsExist(file));
dl::File::Delete(dir, true);
}
TEST(FileTest, CopyRename)
{
std::string dir = dl::g_factory->GetPathTemp() + "dl_file_test/";
dl::File::Delete(dir, true);
ASSERT_TRUE(dl::File::CreateFolder(dir));
std::string src = dir + "src.txt";
std::string dst = dir + "dst.txt";
ASSERT_TRUE(dl::File::SaveString("data", src));
EXPECT_TRUE(dl::File::Copy(src, dst));
EXPECT_TRUE(dl::File::IsExist(dst));
EXPECT_EQ(dl::File::GetString(dst), "data");
std::string dst2 = dir + "dst2.txt";
EXPECT_TRUE(dl::File::Rename(dst, dst2));
EXPECT_TRUE(dl::File::IsExist(dst2));
EXPECT_FALSE(dl::File::IsExist(dst));
dl::File::Delete(dir, true);
}
+46
View File
@@ -13,6 +13,7 @@
#include "math/dl_math.h"
#include "math/dl_random.h"
#include "math/dl_texture_pack.h"
TEST(MathTest, Pow)
{
@@ -189,3 +190,48 @@ TEST(RandomTest, Select)
EXPECT_GE(sel, 1);
EXPECT_LE(sel, 5);
}
//------------------------------TexturePack------------------------------
TEST(TexturePackTest, Dynamic)
{
dl::TexturePack::Dynamic<2> pack;
pack.Reset({ 100, 100 });
dl::RectU r1;
EXPECT_TRUE(pack.Add({ 30, 30 }, r1));
EXPECT_EQ(r1[0], 0u);
EXPECT_EQ(r1[1], 0u);
EXPECT_EQ(r1[2], 30u);
EXPECT_EQ(r1[3], 30u);
dl::RectU r2;
EXPECT_TRUE(pack.Add({ 30, 30 }, r2));
EXPECT_EQ(r2[0], 30u); // 同一行,x 偏移
EXPECT_EQ(r2[1], 0u);
dl::RectU r3;
EXPECT_TRUE(pack.Add({ 30, 30 }, r3));
EXPECT_EQ(r3[0], 60u);
EXPECT_EQ(r3[1], 0u);
dl::RectU r4;
EXPECT_TRUE(pack.Add({ 30, 30 }, r4));
EXPECT_EQ(r4[0], 0u); // 换行
EXPECT_EQ(r4[1], 30u);
}
TEST(TexturePackTest, Static)
{
dl::TexturePack::Static pack;
pack.SetSize({ 100, 100 });
std::list<dl::Size> boxes = { {50, 50}, {50, 50}, {100, 50} };
std::vector<dl::PointU> results;
pack.Calc(boxes,
[](const dl::Size& s) { return s; },
[&](const dl::Size& s, const dl::PointU& lt) { results.push_back(lt); });
// 3 个箱子总面积 10000 = 100*100,能全部放下
EXPECT_TRUE(boxes.empty());
EXPECT_EQ(results.size(), 3u);
}
+32
View File
@@ -164,3 +164,35 @@ TEST(StreamTest, WriteReadUnorderedMap)
EXPECT_EQ(m2["x"], 10);
EXPECT_EQ(m2["y"], 20);
}
//------------------------------Buffer------------------------------
TEST(BufferTest, Hex)
{
// "Hello" 的十六进制
dl::Buffer buf = dl::CreateBufferHex("48656c6c6f");
ASSERT_EQ(buf.size(), 5u);
EXPECT_EQ(dl::to_string(buf), "Hello");
EXPECT_EQ(dl::to_string_hex(buf), "48656c6c6f");
EXPECT_EQ(dl::to_string_hex(buf, false, true), "0x48656c6c6f");
}
TEST(BufferTest, Append)
{
dl::Buffer buf = dl::CreateBuffer(dl::CreateBufferView(std::string("hello")));
dl::BufferAppend(buf, dl::CreateBufferView(std::string(" world")));
EXPECT_EQ(dl::to_string(buf), "hello world");
}
TEST(BufferTest, Basic)
{
dl::Buffer buf;
EXPECT_TRUE(buf.empty());
buf.resize(10);
EXPECT_EQ(buf.size(), 10u);
EXPECT_FALSE(buf.empty());
buf.clear();
EXPECT_TRUE(buf.empty());
EXPECT_EQ(buf.size(), 0u);
}