补充测试用例
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
#include <map>
|
||||
|
||||
#include "dl_type.h"
|
||||
#include "dl_align.h"
|
||||
|
||||
//! 纹理打包算法
|
||||
namespace dl::TexturePack
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user