Add utility api for Tags usage
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
// Copyright (c) 2012-2022 Wojciech Figat. All rights reserved.
|
||||
|
||||
#include "Engine/Core/Math/Vector3.h"
|
||||
#include "Engine/Core/Types/String.h"
|
||||
#include "Engine/Core/Types/StringView.h"
|
||||
#include "Engine/Level/LargeWorlds.h"
|
||||
#include "Engine/Level/Tags.h"
|
||||
#include <ThirdParty/catch2/catch.hpp>
|
||||
|
||||
TEST_CASE("LargeWorlds")
|
||||
@@ -16,3 +19,52 @@ TEST_CASE("LargeWorlds")
|
||||
CHECK(origin == Vector3(0, 0, LargeWorlds::ChunkSize * 1));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("Tags")
|
||||
{
|
||||
SECTION("Tag")
|
||||
{
|
||||
auto prevTags = Tags::List;
|
||||
|
||||
Tags::List = Array<String>({ TEXT("A"), TEXT("A.1"), TEXT("B"), TEXT("B.1"), });
|
||||
|
||||
auto a = Tags::Get(TEXT("A"));
|
||||
auto a1 = Tags::Get(TEXT("A.1"));
|
||||
auto b = Tags::Get(TEXT("B"));
|
||||
auto b1 = Tags::Get(TEXT("B.1"));
|
||||
auto c = Tags::Get(TEXT("C"));
|
||||
CHECK(a.Index == 0);
|
||||
CHECK(a1.Index == 1);
|
||||
CHECK(b.Index == 2);
|
||||
CHECK(b1.Index == 3);
|
||||
CHECK(c.Index == 4);
|
||||
|
||||
Tags::List = prevTags;
|
||||
}
|
||||
|
||||
SECTION("Tags")
|
||||
{
|
||||
auto prevTags = Tags::List;
|
||||
|
||||
Tags::List = Array<String>({ TEXT("A"), TEXT("A.1"), TEXT("B"), TEXT("B.1"), });
|
||||
|
||||
auto a = Tags::Get(TEXT("A"));
|
||||
auto a1 = Tags::Get(TEXT("A.1"));
|
||||
auto b = Tags::Get(TEXT("B"));
|
||||
auto b1 = Tags::Get(TEXT("B.1"));
|
||||
auto c = Tags::Get(TEXT("C"));
|
||||
|
||||
Array<Tag> list = { a1, b1 };
|
||||
|
||||
CHECK(Tags::HasTag(list, Tag()) == false);
|
||||
CHECK(Tags::HasTag(list, a1) == true);
|
||||
CHECK(Tags::HasTag(list, a) == true);
|
||||
CHECK(Tags::HasTag(list, c) == false);
|
||||
|
||||
CHECK(Tags::HasTagExact(list, a1) == true);
|
||||
CHECK(Tags::HasTagExact(list, a) == false);
|
||||
CHECK(Tags::HasTagExact(list, c) == false);
|
||||
|
||||
Tags::List = prevTags;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user