添加测试用例

This commit is contained in:
邹晓航
2014-12-30 10:15:14 +08:00
parent c6c84ec3bf
commit 60b1ff8ee1
2 changed files with 81 additions and 1 deletions

View File

@@ -2,6 +2,78 @@
namespace TinySTL{
namespace PriorityQueueTest{
void testCase1(){
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -1, -2, -3 };
stdPQ<int> pq1(std::begin(arr), std::end(arr));
tsPQ<int> pq2(std::begin(arr), std::end(arr));
while (!pq1.empty() && !pq2.empty()){
assert(pq1.top() == pq2.top());
pq1.pop(); pq2.pop();
}
assert(pq1.empty() && pq2.empty());
}
void testCase2(){
tsPQ<std::string> pq;
assert(pq.empty());
pq.push("zxh");
assert(!pq.empty());
}
void testCase3(){
tsPQ<int> pq;
auto i = 1;
for (; i != 10; ++i){
pq.push(i);
assert(pq.size() == i);
}
for (i = pq.size(); i != 0; --i){
pq.pop();
assert(pq.size() == (i - 1));
}
}
void testCase4(){
stdPQ<int> pq1;
tsPQ<int> pq2;
pq1.push(30);
pq1.push(100);
pq1.push(25);
pq1.push(40);
pq2.push(30);
pq2.push(100);
pq2.push(25);
pq2.push(40);
while (!pq1.empty() && !pq2.empty()){
assert(pq1.top() == pq2.top());
pq1.pop();
pq2.pop();
}
}
void testCase5(){
tsPQ<int> foo, bar;
foo.push(15); foo.push(30); foo.push(10);
bar.push(101); bar.push(202);
assert(foo.size() == 3 && bar.size() == 2);
foo.swap(bar);
assert(foo.size() == 2 && bar.size() == 3);
TinySTL::swap(foo, bar);
assert(foo.size() == 3 && bar.size() == 2);
}
}
}
}
//using namespace TinySTL::PriorityQueueTest;
//int main(){
// testCase1();
// testCase2();
// testCase3();
// testCase4();
// testCase5();
// system("pause");
// return 0;
//}

View File

@@ -6,7 +6,9 @@
#include "../Queue.h"
#include <queue>
#include <algorithm>
#include <cassert>
#include <string>
namespace TinySTL{
namespace PriorityQueueTest{
@@ -14,6 +16,12 @@ namespace TinySTL{
using stdPQ = std::priority_queue < T > ;
template<class T>
using tsPQ = TinySTL::priority_queue < T > ;
void testCase1();
void testCase2();
void testCase3();
void testCase4();
void testCase5();
}
}