完成bitmap的测试
This commit is contained in:
94
TinySTL/Test/BitmapTest.cpp
Normal file
94
TinySTL/Test/BitmapTest.cpp
Normal file
@@ -0,0 +1,94 @@
|
||||
#include "BitmapTest.h"
|
||||
|
||||
namespace TinySTL{
|
||||
namespace BitmapTest{
|
||||
void testCase1(){
|
||||
bitmap<1> bt1;
|
||||
assert(bt1.size() == 8);
|
||||
|
||||
bitmap<7> bt2;
|
||||
assert(bt2.size() == 8);
|
||||
|
||||
bitmap<127> bt3;
|
||||
assert(bt3.size() == 128);
|
||||
}
|
||||
void testCase2(){
|
||||
bitmap<8> bt1, bt2;
|
||||
bt1.set();
|
||||
cout << bt1 << endl;
|
||||
bt1.reset();
|
||||
cout << bt1 << endl;
|
||||
|
||||
bt2.set(0); bt2.set(2); bt2.set(4);
|
||||
cout << bt2 << endl;
|
||||
bt2.reset(0); bt2.reset(2); bt2.reset(4);
|
||||
cout << bt2 << endl;
|
||||
}
|
||||
void testCase3(){
|
||||
bitmap<8> bt;
|
||||
bt.flip();
|
||||
cout << bt << endl;
|
||||
|
||||
bt.flip(0);
|
||||
cout << bt << endl;
|
||||
}
|
||||
void testCase4(){
|
||||
bitmap<8> bt;
|
||||
bt.set();
|
||||
assert(bt.count() == 8);
|
||||
|
||||
bt.flip();
|
||||
assert(bt.count() == 0);
|
||||
|
||||
bt.set(0);
|
||||
assert(bt.count() == 1);
|
||||
}
|
||||
void testCase5(){
|
||||
bitmap<8> bt;
|
||||
assert(!bt.test(0));
|
||||
|
||||
bt.set(0);
|
||||
assert(bt.test(0));
|
||||
}
|
||||
void testCase6(){
|
||||
bitmap<8> bt;
|
||||
assert(!bt.any());
|
||||
assert(bt.none());
|
||||
assert(!bt.all());
|
||||
|
||||
bt.set(0);
|
||||
assert(bt.any());
|
||||
assert(!bt.none());
|
||||
assert(!bt.all());
|
||||
|
||||
bt.set();
|
||||
assert(bt.any());
|
||||
assert(!bt.none());
|
||||
assert(bt.all());
|
||||
|
||||
bt.reset();
|
||||
assert(!bt.any());
|
||||
assert(bt.none());
|
||||
assert(!bt.all());
|
||||
}
|
||||
void testCase7(){
|
||||
bitmap<8> bt;
|
||||
bt.set(0); bt.set(2); bt.set(4); bt.set(6);
|
||||
assert(bt.to_string() == TinySTL::string("10101010"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
using namespace TinySTL::BitmapTest;
|
||||
int main(){
|
||||
//testCase1();
|
||||
//testCase2();
|
||||
//testCase3();
|
||||
//testCase4();
|
||||
//testCase5();
|
||||
//testCase6();
|
||||
//testCase7();
|
||||
|
||||
system("pause");
|
||||
return 0;
|
||||
}
|
||||
26
TinySTL/Test/BitmapTest.h
Normal file
26
TinySTL/Test/BitmapTest.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#ifndef _BITMAP_TEST_H_
|
||||
#define _BITMAP_TEST_H_
|
||||
|
||||
#include "TestUtil.h"
|
||||
|
||||
#include "../Bitmap.h"
|
||||
|
||||
#include <cassert>
|
||||
#include <iostream>
|
||||
|
||||
namespace TinySTL{
|
||||
namespace BitmapTest{
|
||||
using std::cout;
|
||||
using std::endl;
|
||||
|
||||
void testCase1();
|
||||
void testCase2();
|
||||
void testCase3();
|
||||
void testCase4();
|
||||
void testCase5();
|
||||
void testCase6();
|
||||
void testCase7();
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user