/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/UnitTests/ToolsFoundationTest/Object/ObjectMetaDataTest.cpp
113 строк
2 KB
Jan Krassnigg
Migrate code to use Make* functions (#1022)
03 авг 2023, 08:07
Не верифицирован
03 авг 2023, 08:07
c42cf1d
Код
Авторство
О чём код?
#include <ToolsFoundationTest/ToolsFoundationTestPCH.h> #include <Foundation/Types/Uuid.h> #include <ToolsFoundation/Object/ObjectMetaData.h> EZ_CREATE_SIMPLE_TEST(DocumentObject, ObjectMetaData) { EZ_TEST_BLOCK(ezTestBlock::Enabled, "Pointers / int") { ezObjectMetaData<void*, ezInt32> meta; int a = 0, b = 1, c = 2, d = 3; EZ_TEST_BOOL(!meta.HasMetaData(&a)); EZ_TEST_BOOL(!meta.HasMetaData(&b)); EZ_TEST_BOOL(!meta.HasMetaData(&c)); EZ_TEST_BOOL(!meta.HasMetaData(&d)); { auto pData = meta.BeginModifyMetaData(&a); *pData = a; meta.EndModifyMetaData(); pData = meta.BeginModifyMetaData(&b); *pData = b; meta.EndModifyMetaData(); pData = meta.BeginModifyMetaData(&c); *pData = c; meta.EndModifyMetaData(); } EZ_TEST_BOOL(meta.HasMetaData(&a)); EZ_TEST_BOOL(meta.HasMetaData(&b)); EZ_TEST_BOOL(meta.HasMetaData(&c)); EZ_TEST_BOOL(!meta.HasMetaData(&d)); { auto pDataR = meta.BeginReadMetaData(&a); EZ_TEST_INT(*pDataR, a); meta.EndReadMetaData(); pDataR = meta.BeginReadMetaData(&b); EZ_TEST_INT(*pDataR, b); meta.EndReadMetaData(); pDataR = meta.BeginReadMetaData(&c); EZ_TEST_INT(*pDataR, c); meta.EndReadMetaData(); pDataR = meta.BeginReadMetaData(&d); EZ_TEST_INT(*pDataR, 0); meta.EndReadMetaData(); } } struct md { md() { b = false; } ezString s; bool b; }; EZ_TEST_BLOCK(ezTestBlock::Enabled, "UUID / struct") { ezObjectMetaData<ezUuid, md> meta; const int num = 100; ezDynamicArray<ezUuid> obj; obj.SetCount(num); for (ezUInt32 i = 0; i < num; ++i) { ezUuid& uid = obj[i]; uid = ezUuid::MakeUuid(); if (ezMath::IsEven(i)) { auto d1 = meta.BeginModifyMetaData(uid); d1->b = true; d1->s = "test"; meta.EndModifyMetaData(); } EZ_TEST_BOOL(meta.HasMetaData(uid) == ezMath::IsEven(i)); } for (ezUInt32 i = 0; i < num; ++i) { const ezUuid& uid = obj[i]; auto p = meta.BeginReadMetaData(uid); EZ_TEST_BOOL(p->b == ezMath::IsEven(i)); if (ezMath::IsEven(i)) { EZ_TEST_STRING(p->s, "test"); } else { EZ_TEST_BOOL(p->s.IsEmpty()); } meta.EndReadMetaData(); EZ_TEST_BOOL(meta.HasMetaData(uid) == ezMath::IsEven(i)); } } }