| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #include <gtest/gtest.h>
- #include"vregion.h"
- #include"vdebug.h"
- #include"vpoint.h"
- class VRegionTest : public ::testing::Test {
- public:
- VRegionTest():rgn1(-10, -10, 20, 20)
- {
- }
- void SetUp()
- {
- rect1 = VRect(-10, -10, 20, 20);
- rect2 = VRect(-15, 5, 10, 10);
- rgn2 += rect2;
- rgn3 = rgn1;
- }
- void TearDown()
- {
- }
- public:
- VRegion emptyRgn;
- VRegion rgn1;
- VRegion rgn2;
- VRegion rgn3;
- VRect rect1;
- VRect rect2;
- VRect rect3;
- };
- TEST_F(VRegionTest, constructor) {
- ASSERT_EQ(rgn1.rectCount() , 1);
- ASSERT_TRUE(rgn1.rectAt(0) == rect1);
- ASSERT_TRUE(rgn1==rgn3);
- ASSERT_TRUE(rgn1!=rgn2);
- }
- TEST_F(VRegionTest, moveSemantics) {
- // move assignment
- rgn1 = rect1;
- VRegion tmp;
- tmp = std::move(rgn1);
- ASSERT_TRUE(rgn1.empty());
- // move construction
- rgn1 = rect1;
- VRegion mvrgn = std::move(rgn1);
- ASSERT_TRUE(rgn1.empty());
- ASSERT_TRUE(mvrgn == rect1);
- }
- TEST_F(VRegionTest, isEmpty) {
- ASSERT_TRUE(emptyRgn.empty());
- ASSERT_TRUE(emptyRgn == VRegion());
- ASSERT_TRUE(emptyRgn.rectCount() == 0);
- ASSERT_TRUE(emptyRgn.boundingRect() == VRect());
- }
- TEST_F(VRegionTest, boundingRect) {
- {
- VRect rect;
- VRegion region(rect);
- ASSERT_TRUE(region.boundingRect() == rect);
- }
- {
- VRect rect(10, -20, 30, 40);
- VRegion region(rect);
- ASSERT_TRUE(region.boundingRect() == rect);
- }
- {
- VRect rect(15,25,10,10);
- VRegion region(rect);
- ASSERT_TRUE(region.boundingRect() == rect);
- }
- }
- TEST_F(VRegionTest, swap) {
- VRegion r1(VRect(0, 0,10,10));
- VRegion r2(VRect(10,10,10,10));
- std::swap(r1 ,r2);
- ASSERT_TRUE(r1.rectAt(0) == VRect(10,10,10,10));
- ASSERT_TRUE(r2.rectAt(0) == VRect(0, 0,10,10));
- }
- TEST_F(VRegionTest, substracted) {
- VRegion r1(VRect(0, 0,20,20));
- VRegion r2 = r1.subtracted(VRect(5,5,5,5));
- VRegion expected;
- expected += VRect(0,0,20,5);
- expected += VRect(0,5,5,5);
- expected += VRect(10,5,10,5);
- expected += VRect(0,10,20,10);
- ASSERT_TRUE(r2.rectCount() == expected.rectCount());
- ASSERT_TRUE(r2 == expected);
- r2 += VRect(5,5,5,5);
- ASSERT_TRUE(r2 == r1);
- }
- TEST_F(VRegionTest, translate) {
- VRegion r1(VRect(0, 0,20,20));
- VPoint offset(10,10);
- VRegion r2 = r1.translated(offset);
- r1.translate(offset);
- ASSERT_TRUE(r2 == r2);
- }
- TEST_F(VRegionTest, intersects) {
- VRegion r1(VRect(0, 0,20,20));
- VRegion r2(VRect(20, 20,10,10));
- ASSERT_FALSE(r1.intersects(r2));
- r2 += VRect(5, 0,20,20);
- ASSERT_TRUE(r1.intersects(r2));
- }
- TEST_F(VRegionTest, contains) {
- VRegion r1(VRect(0, 0,20,20));
- ASSERT_TRUE(r1.contains(VRect(5,5,10,10)));
- ASSERT_FALSE(r1.contains(VRect(11,5,10,10)));
- }
|