feat(containers): add TArray and the corresponding testing
This commit is contained in:
parent
febffc453a
commit
05e62e1381
122
Redcraft.Utility/Source/Private/Testing/ContainersTesting.cpp
Normal file
122
Redcraft.Utility/Source/Private/Testing/ContainersTesting.cpp
Normal file
@ -0,0 +1,122 @@
|
||||
#include "Testing/ContainersTesting.h"
|
||||
|
||||
#include "Containers/Containers.h"
|
||||
#include "Miscellaneous/AssertionMacros.h"
|
||||
|
||||
NAMESPACE_REDCRAFT_BEGIN
|
||||
NAMESPACE_MODULE_BEGIN(Redcraft)
|
||||
NAMESPACE_MODULE_BEGIN(Utility)
|
||||
|
||||
NAMESPACE_BEGIN(Testing)
|
||||
|
||||
void TestContainers()
|
||||
{
|
||||
TestArray();
|
||||
}
|
||||
|
||||
void TestArray()
|
||||
{
|
||||
{
|
||||
TArray<int32> ArrayA;
|
||||
TArray<int32> ArrayB(4);
|
||||
TArray<int32> ArrayC(4, 4);
|
||||
TArray<int32> ArrayD(ArrayC);
|
||||
TArray<int32> ArrayE(MoveTemp(ArrayB));
|
||||
TArray<int32> ArrayF({ 0, 1, 2, 3 });
|
||||
|
||||
TArray<int32> ArrayG;
|
||||
TArray<int32> ArrayH;
|
||||
TArray<int32> ArrayI;
|
||||
|
||||
ArrayG = ArrayD;
|
||||
ArrayH = MoveTemp(ArrayE);
|
||||
ArrayI = { 0, 1, 2, 3 };
|
||||
|
||||
always_check((ArrayC == TArray<int32>({ 4, 4, 4, 4 })));
|
||||
always_check((ArrayD == TArray<int32>({ 4, 4, 4, 4 })));
|
||||
always_check((ArrayG == TArray<int32>({ 4, 4, 4, 4 })));
|
||||
always_check((ArrayF == TArray<int32>({ 0, 1, 2, 3 })));
|
||||
always_check((ArrayI == TArray<int32>({ 0, 1, 2, 3 })));
|
||||
}
|
||||
|
||||
{
|
||||
TArray<int32> ArrayA = { 1, 2, 3 };
|
||||
TArray<int32> ArrayB = { 7, 8, 9, 10 };
|
||||
TArray<int32> ArrayC = { 1, 2, 3 };
|
||||
|
||||
always_check((!(ArrayA == ArrayB)));
|
||||
always_check(( (ArrayA != ArrayB)));
|
||||
always_check(( (ArrayA < ArrayB)));
|
||||
always_check(( (ArrayA <= ArrayB)));
|
||||
always_check((!(ArrayA > ArrayB)));
|
||||
always_check((!(ArrayA >= ArrayB)));
|
||||
|
||||
always_check(( (ArrayA == ArrayC)));
|
||||
always_check((!(ArrayA != ArrayC)));
|
||||
always_check((!(ArrayA < ArrayC)));
|
||||
always_check(( (ArrayA <= ArrayC)));
|
||||
always_check((!(ArrayA > ArrayC)));
|
||||
always_check(( (ArrayA >= ArrayC)));
|
||||
}
|
||||
|
||||
{
|
||||
TArray<int32> Array = { 1, 2, 3 };
|
||||
|
||||
Array.Insert(Array.Begin() + 1, 2);
|
||||
always_check((Array == TArray<int32>({ 1, 2, 2, 3 })));
|
||||
|
||||
Array.Insert(Array.End(), 2, 4);
|
||||
always_check((Array == TArray<int32>({ 1, 2, 2, 3, 4, 4 })));
|
||||
|
||||
Array.Insert(Array.Begin(), { 1, 1, 4, 5, 1, 4 });
|
||||
always_check((Array == TArray<int32>({ 1, 1, 4, 5, 1, 4, 1, 2, 2, 3, 4, 4 })));
|
||||
|
||||
Array.Emplace(Array.End(), 5);
|
||||
always_check((Array == TArray<int32>({ 1, 1, 4, 5, 1, 4, 1, 2, 2, 3, 4, 4, 5 })));
|
||||
|
||||
Array.StableErase(Array.End() - 1);
|
||||
always_check((Array == TArray<int32>({ 1, 1, 4, 5, 1, 4, 1, 2, 2, 3, 4, 4 })));
|
||||
|
||||
Array.StableErase(Array.End() - 2, Array.End());
|
||||
always_check((Array == TArray<int32>({ 1, 1, 4, 5, 1, 4, 1, 2, 2, 3 })));
|
||||
|
||||
Array.Erase(Array.End() - 2);
|
||||
always_check((Array.Num() == 9));
|
||||
|
||||
Array.Erase(Array.Begin(), Array.Begin() + 6);
|
||||
always_check((Array.Num() == 3));
|
||||
}
|
||||
|
||||
{
|
||||
TArray<int32> Array = { 1, 2, 3 };
|
||||
|
||||
Array.PushBack(4);
|
||||
always_check((Array == TArray<int32>({ 1, 2, 3, 4 })));
|
||||
|
||||
Array.EmplaceBack(5);
|
||||
always_check((Array == TArray<int32>({ 1, 2, 3, 4, 5 })));
|
||||
|
||||
Array.EmplaceBack(5) = 6;
|
||||
always_check((Array == TArray<int32>({ 1, 2, 3, 4, 5, 6 })));
|
||||
|
||||
Array.PopBack();
|
||||
always_check((Array == TArray<int32>({ 1, 2, 3, 4, 5 })));
|
||||
|
||||
Array.SetNum(4);
|
||||
always_check((Array == TArray<int32>({ 1, 2, 3, 4 })));
|
||||
|
||||
Array.Reserve(64);
|
||||
always_check((Array.Num() == 4));
|
||||
always_check((Array.Max() == 64));
|
||||
|
||||
Array.Shrink();
|
||||
always_check((Array.Num() == 4));
|
||||
always_check((Array.Max() == 4));
|
||||
}
|
||||
}
|
||||
|
||||
NAMESPACE_END(Testing)
|
||||
|
||||
NAMESPACE_MODULE_END(Utility)
|
||||
NAMESPACE_MODULE_END(Redcraft)
|
||||
NAMESPACE_REDCRAFT_END
|
1185
Redcraft.Utility/Source/Public/Containers/Array.h
Normal file
1185
Redcraft.Utility/Source/Public/Containers/Array.h
Normal file
File diff suppressed because it is too large
Load Diff
4
Redcraft.Utility/Source/Public/Containers/Containers.h
Normal file
4
Redcraft.Utility/Source/Public/Containers/Containers.h
Normal file
@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
|
||||
#include "CoreTypes.h"
|
||||
#include "Containers/Array.h"
|
18
Redcraft.Utility/Source/Public/Testing/ContainersTesting.h
Normal file
18
Redcraft.Utility/Source/Public/Testing/ContainersTesting.h
Normal file
@ -0,0 +1,18 @@
|
||||
#pragma once
|
||||
|
||||
#include "CoreTypes.h"
|
||||
|
||||
NAMESPACE_REDCRAFT_BEGIN
|
||||
NAMESPACE_MODULE_BEGIN(Redcraft)
|
||||
NAMESPACE_MODULE_BEGIN(Utility)
|
||||
|
||||
NAMESPACE_BEGIN(Testing)
|
||||
|
||||
REDCRAFTUTILITY_API void TestContainers();
|
||||
REDCRAFTUTILITY_API void TestArray();
|
||||
|
||||
NAMESPACE_END(Testing)
|
||||
|
||||
NAMESPACE_MODULE_END(Utility)
|
||||
NAMESPACE_MODULE_END(Redcraft)
|
||||
NAMESPACE_REDCRAFT_END
|
Loading…
Reference in New Issue
Block a user