diff options
Diffstat (limited to 'test/source/TestVectorMap.cpp')
-rw-r--r-- | test/source/TestVectorMap.cpp | 235 |
1 files changed, 0 insertions, 235 deletions
diff --git a/test/source/TestVectorMap.cpp b/test/source/TestVectorMap.cpp deleted file mode 100644 index ca400ed..0000000 --- a/test/source/TestVectorMap.cpp +++ /dev/null @@ -1,235 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Copyright (c) Electronic Arts Inc. All rights reserved. -///////////////////////////////////////////////////////////////////////////// - - -#include "TestMap.h" -#include "EASTLTest.h" -#include <EASTL/vector_map.h> -#include <EASTL/vector_multimap.h> -#include <EASTL/vector.h> -#include <EASTL/deque.h> -#include <EASTL/string.h> -#include <EASTL/fixed_string.h> -#include <EASTL/fixed_vector.h> -#include <EASTL/utility.h> - -EA_DISABLE_ALL_VC_WARNINGS() -#ifndef EA_COMPILER_NO_STANDARD_CPP_LIBRARY - #include <map> -#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::vector_map<int, int>; -template class eastl::vector_multimap<float, int>; -template class eastl::vector_map<TestObject, TestObject>; -template class eastl::vector_multimap<TestObject, TestObject>; - - -/////////////////////////////////////////////////////////////////////////////// -// typedefs -// -typedef eastl::vector_map<int, int> VM1; -typedef eastl::vector_map<int, int, eastl::less<int>, EASTLAllocatorType, eastl::deque<eastl::pair<int, int> > > VM2; - -typedef eastl::vector_map<TestObject, TestObject> VM4; -typedef eastl::vector_map<TestObject, TestObject, eastl::less<TestObject>, EASTLAllocatorType, eastl::deque<eastl::pair<TestObject, TestObject> > > VM5; - -typedef eastl::vector_multimap<int, int> VMM1; -typedef eastl::vector_multimap<int, int, eastl::less<int>, EASTLAllocatorType, eastl::deque<eastl::pair<int, int> > > VMM2; - -typedef eastl::vector_multimap<TestObject, TestObject> VMM4; -typedef eastl::vector_multimap<TestObject, TestObject, eastl::less<TestObject>, EASTLAllocatorType, eastl::deque<eastl::pair<TestObject, TestObject> > > VMM5; - -#ifndef EA_COMPILER_NO_STANDARD_CPP_LIBRARY - typedef std::map<int, int> VM3; - typedef std::map<TestObject, TestObject> VM6; - typedef std::multimap<int, int> VMM3; - typedef std::multimap<TestObject, TestObject> VMM6; -#endif -/////////////////////////////////////////////////////////////////////////////// - - - -int TestVectorMap() -{ - int nErrorCount = 0; - - #ifndef EA_COMPILER_NO_STANDARD_CPP_LIBRARY - { // Test construction - nErrorCount += TestMapConstruction<VM1, VM3, false>(); - nErrorCount += TestMapConstruction<VM2, VM3, false>(); - nErrorCount += TestMapConstruction<VM4, VM6, false>(); - nErrorCount += TestMapConstruction<VM5, VM6, false>(); - - nErrorCount += TestMapConstruction<VMM1, VMM3, true>(); - nErrorCount += TestMapConstruction<VMM2, VMM3, true>(); - nErrorCount += TestMapConstruction<VMM4, VMM6, true>(); - nErrorCount += TestMapConstruction<VMM5, VMM6, true>(); - } - - - { // Test mutating functionality. - nErrorCount += TestMapMutation<VM1, VM3, false>(); - nErrorCount += TestMapMutation<VM2, VM3, false>(); - nErrorCount += TestMapMutation<VM4, VM6, false>(); - nErrorCount += TestMapMutation<VM5, VM6, false>(); - - nErrorCount += TestMapMutation<VMM1, VMM3, true>(); - nErrorCount += TestMapMutation<VMM2, VMM3, true>(); - nErrorCount += TestMapMutation<VMM4, VMM6, true>(); - nErrorCount += TestMapMutation<VMM5, VMM6, true>(); - } - #endif // EA_COMPILER_NO_STANDARD_CPP_LIBRARY - - - { // Test search functionality. - nErrorCount += TestMapSearch<VM1, false>(); - nErrorCount += TestMapSearch<VM2, false>(); - nErrorCount += TestMapSearch<VM4, false>(); - nErrorCount += TestMapSearch<VM5, false>(); - - nErrorCount += TestMapSearch<VMM1, true>(); - nErrorCount += TestMapSearch<VMM2, true>(); - nErrorCount += TestMapSearch<VMM4, true>(); - nErrorCount += TestMapSearch<VMM5, true>(); - } - - - { - // C++11 emplace and related functionality - nErrorCount += TestMapCpp11<eastl::vector_map<int, TestObject> >(); - nErrorCount += TestMapCpp11<eastl::vector_map<int, TestObject, eastl::less<int>, EASTLAllocatorType, eastl::deque<eastl::pair<int, TestObject> > > >(); - - nErrorCount += TestMultimapCpp11<eastl::vector_multimap<int, TestObject> >(); - nErrorCount += TestMultimapCpp11<eastl::vector_multimap<int, TestObject, eastl::less<int>, EASTLAllocatorType, eastl::deque<eastl::pair<int, TestObject> > > >(); - } - - - { - // insert at the upper bound of a range - VMM1 vmm = {{0, 0}}; - VERIFY(vmm.emplace(0, 0) != vmm.begin()); - } - - - { // Misc tests - - // const key_compare& key_comp() const; - // key_compare& key_comp(); - VM2 vm; - const VM2 vmc; - - const VM2::key_compare& kc = vmc.key_comp(); - vm.key_comp() = kc; - - // ensure count can be called from a const object - vmc.count(0); - } - - { - const VMM1 vmm; - - // ensure count can be called from a const object - vmm.count(0); - } - - { - // Misc testing - typedef eastl::fixed_vector<eastl::pair<int, float>, 8> FV; - typedef eastl::vector_map<int, float, eastl::less<int>, FV::allocator_type, FV> FixedVectorMap; - - FixedVectorMap fvm; - - for(int i = FV::kMaxSize - 1; i >= 0; i--) - fvm.insert(eastl::pair<int, float>(i, (float)i)); - - FixedVectorMap::iterator it = fvm.find(3); - EATEST_VERIFY(it != fvm.end()); - } - - { - // Misc testing - typedef eastl::fixed_string<char, 16> KeyStringType; - typedef eastl::fixed_string<char, 24> ValueStringType; - typedef eastl::pair<ValueStringType, bool> StringMapValueType; - - typedef eastl::vector_map<KeyStringType, StringMapValueType> StringMapType; - StringMapType stringMap; - - stringMap.reserve(20); - EATEST_VERIFY(stringMap.capacity() == 20); - - StringMapValueType& v1 = stringMap["abc"]; - EATEST_VERIFY(strlen(v1.first.c_str()) == 0); - v1.first.clear(); - EATEST_VERIFY(strlen(v1.first.c_str()) == 0); - - StringMapValueType& v2 = stringMap["def"]; - EATEST_VERIFY(strlen(v2.first.c_str()) == 0); - v2.first = "def"; - EATEST_VERIFY(strlen(v2.first.c_str()) == 3); - } - - { - // Regression for problem observed in EAWebKit - typedef eastl::vector_map<eastl::string, void*> TestVectorMap; - - TestVectorMap tvm; - - tvm["Parameters"] = NULL; - tvm["ThemeParameters"] = NULL; - tvm["CookieInfo"] = NULL; - tvm["DiskCacheInfo"] = NULL; - tvm["RamCacheInfo"] = NULL; - tvm["SSLCert"] = NULL; - tvm["AllowedDomain"] = NULL; - } - - { // find_as predicate - { // vector_map - eastl::vector_map<string, int> vss = {{"abc", 11}, {"def", 22}, {"ghi", 33}, {"jklmnop", 44}, - {"qrstu", 55}, {"vw", 66}, {"x", 77}, {"yz", 88}}; - VERIFY(vss.find_as("GHI", TestStrCmpI_2()) != vss.end()); - } - - { // const vector_map - const eastl::vector_map<string, int> vss = {{"abc", 11}, {"def", 22}, {"ghi", 33}, {"jklmnop", 44}, - {"qrstu", 55}, {"vw", 66}, {"x", 77}, {"yz", 88}}; - VERIFY(vss.find_as("GHI", TestStrCmpI_2()) != vss.end()); - } - - // vector_multimap - { - eastl::vector_multimap<string, int> vss = {{"abc", 11}, {"def", 22}, {"ghi", 33}, {"jklmnop", 44}, - {"qrstu", 55}, {"vw", 66}, {"x", 77}, {"yz", 88}}; - VERIFY(vss.find_as("GHI", TestStrCmpI_2()) != vss.end()); - } - - // const vector_multimap - { - const eastl::vector_multimap<string, int> vss = {{"abc", 11}, {"def", 22}, {"ghi", 33}, {"jklmnop", 44}, - {"qrstu", 55}, {"vw", 66}, {"x", 77}, {"yz", 88}}; - VERIFY(vss.find_as("GHI", TestStrCmpI_2()) != vss.end()); - } - } - - return nErrorCount; -} - - - - - - - - - - - - |