// Copyright (c) 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 TEST_CASE("LargeWorlds") { SECTION("UpdateOrigin") { LargeWorlds::Enable = true; Vector3 origin = Vector3::Zero; LargeWorlds::UpdateOrigin(origin, Vector3::Zero); CHECK(origin == Vector3::Zero); LargeWorlds::UpdateOrigin(origin, Vector3(LargeWorlds::ChunkSize * 0.5, LargeWorlds::ChunkSize * 1.0001, LargeWorlds::ChunkSize * 1.5)); CHECK(origin == Vector3(0, 0, LargeWorlds::ChunkSize * 1)); } } TEST_CASE("Tags") { SECTION("Tag") { auto prevTags = Tags::List; Tags::List = Array({ 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 == 1); CHECK(a1.Index == 2); CHECK(b.Index == 3); CHECK(b1.Index == 4); CHECK(c.Index == 5); Tags::List = prevTags; } SECTION("Tags") { auto prevTags = Tags::List; Tags::List = Array({ 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 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; } }