diff options
Diffstat (limited to 'test/source/TestFixedSet.cpp')
-rw-r--r-- | test/source/TestFixedSet.cpp | 207 |
1 files changed, 0 insertions, 207 deletions
diff --git a/test/source/TestFixedSet.cpp b/test/source/TestFixedSet.cpp deleted file mode 100644 index 8bfbe90..0000000 --- a/test/source/TestFixedSet.cpp +++ /dev/null @@ -1,207 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Copyright (c) Electronic Arts Inc. All rights reserved. -///////////////////////////////////////////////////////////////////////////// - - -#include "EASTLTest.h" -#include "TestSet.h" -#include <EASTL/fixed_set.h> - -EA_DISABLE_ALL_VC_WARNINGS() -#ifndef EA_COMPILER_NO_STANDARD_CPP_LIBRARY - #include <set> -#endif -EA_RESTORE_ALL_VC_WARNINGS() - -using namespace eastl; - - -// Template instantations. -// These tell the compiler to compile all the functions for the given class. -template class eastl::fixed_set <int, 1>; -template class eastl::fixed_multiset<float, 1>; -template class eastl::fixed_set <Align64, 1>; -template class eastl::fixed_multiset<TestObject, 1>; - - -template class eastl::fixed_set <int, 1, true, eastl::less<int>, MallocAllocator>; -template class eastl::fixed_multiset<float, 1, true, eastl::less<float>, MallocAllocator>; -template class eastl::fixed_set <Align64, 1, true, eastl::less<Align64>, MallocAllocator>; -template class eastl::fixed_multiset<TestObject, 1, true, eastl::less<TestObject>, MallocAllocator>; - - -/////////////////////////////////////////////////////////////////////////////// -// typedefs -// -const eastl_size_t kContainerSize = 1000; - -typedef eastl::fixed_set<int, kContainerSize> VS1; -typedef eastl::fixed_set<TestObject, kContainerSize> VS4; -typedef eastl::fixed_multiset<int, kContainerSize> VMS1; -typedef eastl::fixed_multiset<TestObject, kContainerSize> VMS4; - -#ifndef EA_COMPILER_NO_STANDARD_CPP_LIBRARY - typedef std::set<int> VS3; - typedef std::set<TestObject> VS6; - typedef std::multiset<int> VMS3; - typedef std::multiset<TestObject> VMS6; -#endif - -/////////////////////////////////////////////////////////////////////////////// - - -EA_DISABLE_VC_WARNING(6262) -int TestFixedSet() -{ - int nErrorCount = 0; - - #ifndef EA_COMPILER_NO_STANDARD_CPP_LIBRARY - { // Test construction - nErrorCount += TestSetConstruction<VS1, VS3, false>(); - nErrorCount += TestSetConstruction<VS4, VS6, false>(); - - nErrorCount += TestSetConstruction<VMS1, VMS3, true>(); - nErrorCount += TestSetConstruction<VMS4, VMS6, true>(); - } - - - { // Test mutating functionality. - nErrorCount += TestSetMutation<VS1, VS3, false>(); - nErrorCount += TestSetMutation<VS4, VS6, false>(); - - nErrorCount += TestSetMutation<VMS1, VMS3, true>(); - nErrorCount += TestSetMutation<VMS4, VMS6, true>(); - } - #endif // EA_COMPILER_NO_STANDARD_CPP_LIBRARY - - - { // Test searching functionality. - nErrorCount += TestSetSearch<VS1, false>(); - nErrorCount += TestSetSearch<VS4, false>(); - - nErrorCount += TestSetSearch<VMS1, true>(); - nErrorCount += TestSetSearch<VMS4, true>(); - } - - - { - // C++11 emplace and related functionality - nErrorCount += TestSetCpp11<eastl::fixed_set<TestObject, 32> >(); - - nErrorCount += TestMultisetCpp11<eastl::fixed_multiset<TestObject, 32> >(); - } - - - { // Test functionality specific to fixed size containers. - - VS1 vs1; - VMS1 vms1; - - VERIFY(vs1.max_size() == kContainerSize); - VERIFY(vms1.max_size() == kContainerSize); - } - - - { - // Test version *without* pool overflow. - typedef eastl::fixed_set<int, 100, false> FixedSetFalse; - FixedSetFalse fixedSet; - - fixedSet.insert(FixedSetFalse::value_type(0)); - VERIFY(fixedSet.size() == 1); - - fixedSet.clear(); - VERIFY(fixedSet.size() == 0); - - for(int i = 0; fixedSet.size() < 100; i++) - fixedSet.insert(FixedSetFalse::value_type(i)); - VERIFY(fixedSet.size() == 100); - - // Verify that we allocated enough space for exactly N items. - // It's possible that due to alignments, there might be room for N + 1. - FixedSetFalse::allocator_type& allocator = fixedSet.get_allocator(); - void* pResult = allocator.allocate(sizeof(FixedSetFalse::node_type)); - if(pResult) - { - pResult = allocator.allocate(sizeof(FixedSetFalse::node_type)); - VERIFY(pResult == NULL); - } - } - - - { - // Test version *with* pool overflow. - typedef eastl::fixed_set<int, 100, true> FixedSetTrue; - FixedSetTrue fixedSet; - - fixedSet.insert(FixedSetTrue::value_type(0)); - VERIFY(fixedSet.size() == 1); - - fixedSet.clear(); - VERIFY(fixedSet.size() == 0); - - for(int i = 0; fixedSet.size() < 100; i++) - fixedSet.insert(FixedSetTrue::value_type(i)); - VERIFY(fixedSet.size() == 100); - - FixedSetTrue::allocator_type& allocator = fixedSet.get_allocator(); - void* pResult = allocator.allocate(sizeof(FixedSetTrue::node_type)); - VERIFY(pResult != NULL); - allocator.deallocate(pResult, sizeof(FixedSetTrue::node_type)); - - // get_overflow_allocator / set_overflow_allocator - // This is a weak test which should be improved. - EASTLAllocatorType a = fixedSet.get_allocator().get_overflow_allocator(); - fixedSet.get_allocator().set_overflow_allocator(a); - } - - { - // Test fixed set with overflow and alignment requirements. - typedef fixed_set<Align64, 1, true> FixedSetWithAlignment; - typedef fixed_multiset<Align64, 1, true> FixedMultiSetWithAlignment; - - FixedSetWithAlignment fs; - FixedMultiSetWithAlignment fms; - - Align64 a; a.mX = 1; - Align64 b; b.mX = 2; - Align64 c; c.mX = 3; - Align64 d; d.mX = 4; - Align64 e; e.mX = 5; - - fs.insert(a); - fs.insert(b); - fs.insert(c); - fs.insert(d); - fs.insert(e); - for (FixedSetWithAlignment::const_iterator it = fs.begin(); it != fs.end(); ++it) - { - const Align64* ptr = &(*it); - EATEST_VERIFY((uint64_t)ptr % EASTL_ALIGN_OF(Align64) == 0); - } - fms.insert(a); - fms.insert(b); - fms.insert(c); - fms.insert(d); - fms.insert(e); - for (FixedMultiSetWithAlignment::const_iterator it = fms.begin(); it != fms.end(); ++it) - { - const Align64* ptr = &(*it); - EATEST_VERIFY((uint64_t)ptr % EASTL_ALIGN_OF(Align64) == 0); - } - } - return nErrorCount; -} -EA_RESTORE_VC_WARNING() - - - - - - - - - - - - |