添加shared_ptr的测试
This commit is contained in:
40
TinySTL/Test/SharedPtrTest.cpp
Normal file
40
TinySTL/Test/SharedPtrTest.cpp
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
#include "SharedPtrTest.h"
|
||||||
|
|
||||||
|
#include "../String.h"
|
||||||
|
|
||||||
|
namespace TinySTL{
|
||||||
|
namespace SharedPtrTest{
|
||||||
|
void testCase1(){
|
||||||
|
shared_ptr<int> sp1(new int(10));
|
||||||
|
assert(*(sp1.get()) == 10);
|
||||||
|
|
||||||
|
shared_ptr<int> sp2(new int(1), default_delete<int>());
|
||||||
|
assert(sp2.use_count() == 1);
|
||||||
|
|
||||||
|
auto sp3(sp2);
|
||||||
|
assert(sp3.use_count() == 2);
|
||||||
|
|
||||||
|
auto sp4 = sp2;
|
||||||
|
assert(sp4.use_count() == 3);
|
||||||
|
|
||||||
|
assert(sp2.get() == sp3.get() && sp2.get() == sp4.get());
|
||||||
|
assert(sp2 == sp3 && !(sp2 != sp4));
|
||||||
|
|
||||||
|
shared_ptr<string> sp5(new string("hello"));
|
||||||
|
assert(*sp5 == "hello");
|
||||||
|
sp5->append(" world");
|
||||||
|
assert(*sp5 == "hello world");
|
||||||
|
|
||||||
|
auto sp6 = make_shared<string>(10, '0');
|
||||||
|
assert(*sp6 == "0000000000");
|
||||||
|
|
||||||
|
shared_ptr<int> spp;
|
||||||
|
assert(spp == nullptr);
|
||||||
|
assert(!(spp != nullptr));
|
||||||
|
}
|
||||||
|
|
||||||
|
void testAllCases(){
|
||||||
|
testCase1();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
16
TinySTL/Test/SharedPtrTest.h
Normal file
16
TinySTL/Test/SharedPtrTest.h
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
#ifndef _SHARED_PTR_TEST_H_
|
||||||
|
#define _SHARED_PTR_TEST_H_
|
||||||
|
|
||||||
|
#include "../Memory.h"
|
||||||
|
|
||||||
|
#include <cassert>
|
||||||
|
|
||||||
|
namespace TinySTL{
|
||||||
|
namespace SharedPtrTest{
|
||||||
|
void testCase1();
|
||||||
|
|
||||||
|
void testAllCases();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -97,6 +97,7 @@
|
|||||||
<ClCompile Include="Test\PriorityQueueTest.cpp" />
|
<ClCompile Include="Test\PriorityQueueTest.cpp" />
|
||||||
<ClCompile Include="Test\QueueTest.cpp" />
|
<ClCompile Include="Test\QueueTest.cpp" />
|
||||||
<ClCompile Include="Test\RefTest.cpp" />
|
<ClCompile Include="Test\RefTest.cpp" />
|
||||||
|
<ClCompile Include="Test\SharedPtrTest.cpp" />
|
||||||
<ClCompile Include="Test\StackTest.cpp" />
|
<ClCompile Include="Test\StackTest.cpp" />
|
||||||
<ClCompile Include="Test\StringTest.cpp" />
|
<ClCompile Include="Test\StringTest.cpp" />
|
||||||
<ClCompile Include="Test\SuffixArrayTest.cpp" />
|
<ClCompile Include="Test\SuffixArrayTest.cpp" />
|
||||||
@@ -148,6 +149,7 @@
|
|||||||
<ClInclude Include="Test\PriorityQueueTest.h" />
|
<ClInclude Include="Test\PriorityQueueTest.h" />
|
||||||
<ClInclude Include="Test\QueueTest.h" />
|
<ClInclude Include="Test\QueueTest.h" />
|
||||||
<ClInclude Include="Test\RefTest.h" />
|
<ClInclude Include="Test\RefTest.h" />
|
||||||
|
<ClInclude Include="Test\SharedPtrTest.h" />
|
||||||
<ClInclude Include="Test\StackTest.h" />
|
<ClInclude Include="Test\StackTest.h" />
|
||||||
<ClInclude Include="Test\StringTest.h" />
|
<ClInclude Include="Test\StringTest.h" />
|
||||||
<ClInclude Include="Test\SuffixArrayTest.h" />
|
<ClInclude Include="Test\SuffixArrayTest.h" />
|
||||||
|
|||||||
@@ -102,6 +102,9 @@
|
|||||||
<ClCompile Include="Test\RefTest.cpp">
|
<ClCompile Include="Test\RefTest.cpp">
|
||||||
<Filter>Test</Filter>
|
<Filter>Test</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="Test\SharedPtrTest.cpp">
|
||||||
|
<Filter>Test</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="TypeTraits.h">
|
<ClInclude Include="TypeTraits.h">
|
||||||
@@ -272,6 +275,9 @@
|
|||||||
<ClInclude Include="Test\RefTest.h">
|
<ClInclude Include="Test\RefTest.h">
|
||||||
<Filter>Test</Filter>
|
<Filter>Test</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="Test\SharedPtrTest.h">
|
||||||
|
<Filter>Test</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="..\README.md" />
|
<None Include="..\README.md" />
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
#include "Test\PriorityQueueTest.h"
|
#include "Test\PriorityQueueTest.h"
|
||||||
#include "Test\QueueTest.h"
|
#include "Test\QueueTest.h"
|
||||||
#include "Test\RefTest.h"
|
#include "Test\RefTest.h"
|
||||||
|
#include "Test\SharedPtrTest.h"
|
||||||
#include "Test\StackTest.h"
|
#include "Test\StackTest.h"
|
||||||
#include "Test\StringTest.h"
|
#include "Test\StringTest.h"
|
||||||
#include "Test\SuffixArrayTest.h"
|
#include "Test\SuffixArrayTest.h"
|
||||||
@@ -38,6 +39,7 @@ int main(){
|
|||||||
TinySTL::PriorityQueueTest::testAllCases();
|
TinySTL::PriorityQueueTest::testAllCases();
|
||||||
TinySTL::QueueTest::testAllCases();
|
TinySTL::QueueTest::testAllCases();
|
||||||
TinySTL::RefTest::testAllCases();
|
TinySTL::RefTest::testAllCases();
|
||||||
|
TinySTL::SharedPtrTest::testAllCases();
|
||||||
TinySTL::StackTest::testAllCases();
|
TinySTL::StackTest::testAllCases();
|
||||||
TinySTL::StringTest::testAllCases();
|
TinySTL::StringTest::testAllCases();
|
||||||
TinySTL::SuffixArrayTest::testAllCases();
|
TinySTL::SuffixArrayTest::testAllCases();
|
||||||
|
|||||||
Reference in New Issue
Block a user