#include "RegionOffsetBy.h"
#include <Region.h>
#include <Rect.h>
#include <assert.h>
RegionOffsetBy::RegionOffsetBy(std::string name) :
RegionTestcase(name)
{
}
RegionOffsetBy::~RegionOffsetBy()
{
}
void RegionOffsetBy::testOneRegion(BRegion *testRegion)
{
BRegion tempRegion1(*testRegion);
CheckFrame(&tempRegion1);
tempRegion1.OffsetBy(10.0, 20.0);
if (RegionIsEmpty(testRegion)) {
assert(RegionsAreEqual(&tempRegion1, testRegion));
} else {
assert(!RegionsAreEqual(&tempRegion1, testRegion));
}
BRegion tempRegion2;
CheckFrame(&tempRegion2);
assert(RegionIsEmpty(&tempRegion2));
for(int i = testRegion->CountRects() - 1; i >= 0; i--) {
BRect tempRect = testRegion->RectAt(i);
tempRect.OffsetBy(10.0, 20.0);
tempRegion2.Include(tempRect);
CheckFrame(&tempRegion2);
assert(!RegionIsEmpty(&tempRegion2));
}
assert(RegionsAreEqual(&tempRegion1, &tempRegion2));
if (RegionIsEmpty(testRegion)) {
assert(RegionsAreEqual(&tempRegion2, testRegion));
} else {
assert(!RegionsAreEqual(&tempRegion2, testRegion));
}
tempRegion1.OffsetBy(-10.0, -20.0);
CheckFrame(&tempRegion1);
if (RegionIsEmpty(testRegion)) {
assert(RegionsAreEqual(&tempRegion1, testRegion));
assert(RegionsAreEqual(&tempRegion1, &tempRegion2));
} else {
assert(RegionsAreEqual(&tempRegion1, testRegion));
assert(!RegionsAreEqual(&tempRegion1, &tempRegion2));
}
tempRegion2.OffsetBy(-10.0, -20.0);
CheckFrame(&tempRegion2);
assert(RegionsAreEqual(&tempRegion1, testRegion));
assert(RegionsAreEqual(&tempRegion2, testRegion));
assert(RegionsAreEqual(&tempRegion1, &tempRegion2));
}
void RegionOffsetBy::testTwoRegions(BRegion *testRegionA, BRegion *testRegionB)
{
}
Test *RegionOffsetBy::suite(void)
{
typedef CppUnit::TestCaller<RegionOffsetBy>
RegionOffsetByCaller;
return(new RegionOffsetByCaller("BRegion::OffsetBy Test", &RegionOffsetBy::PerformTest));
}