Added unit test for FRect
This commit is contained in:
parent
d2a688fdc2
commit
380d3d625c
|
@ -51,3 +51,5 @@ examples/ui
|
|||
src/test/.deps/
|
||||
src/test/.libs/
|
||||
src/test/fstring_test
|
||||
src/test/fpoint_test
|
||||
src/test/frect_test
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
2017-03-13 Markus Gans <guru.mail@muenster.de>
|
||||
* Added unit test for FRect
|
||||
|
||||
2017-03-11 Markus Gans <guru.mail@muenster.de>
|
||||
* Added unit test for FPoint
|
||||
|
||||
|
|
|
@ -210,6 +210,9 @@ class FString
|
|||
friend std::wostream& operator << (std::wostream& outstr, const FString& s);
|
||||
friend std::wistream& operator >> (std::wistream& instr, FString& s);
|
||||
|
||||
// Accessor
|
||||
virtual const char* getClassName();
|
||||
|
||||
// inquiries
|
||||
bool isNull() const;
|
||||
bool isEmpty() const;
|
||||
|
@ -390,6 +393,10 @@ class FString
|
|||
|
||||
|
||||
// FString inline functions
|
||||
//----------------------------------------------------------------------
|
||||
inline const char* FString::getClassName()
|
||||
{ return "FString"; }
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
inline bool FString::isNull() const
|
||||
{ return ! string; }
|
||||
|
|
|
@ -8,13 +8,16 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -Wall -Werror
|
|||
|
||||
noinst_PROGRAMS = \
|
||||
fstring_test \
|
||||
fpoint_test
|
||||
fpoint_test \
|
||||
frect_test
|
||||
|
||||
fstring_test_SOURCES = fstring-test.cpp
|
||||
fpoint_test_SOURCES = fpoint-test.cpp
|
||||
frect_test_SOURCES = frect-test.cpp
|
||||
|
||||
TESTS = fstring_test \
|
||||
fpoint_test
|
||||
fpoint_test \
|
||||
frect_test
|
||||
|
||||
check_PROGRAMS = $(TESTS)
|
||||
|
||||
|
|
|
@ -83,8 +83,9 @@ POST_UNINSTALL = :
|
|||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
@CPPUNIT_TEST_TRUE@noinst_PROGRAMS = fstring_test$(EXEEXT) \
|
||||
@CPPUNIT_TEST_TRUE@ fpoint_test$(EXEEXT)
|
||||
@CPPUNIT_TEST_TRUE@TESTS = fstring_test$(EXEEXT) fpoint_test$(EXEEXT)
|
||||
@CPPUNIT_TEST_TRUE@ fpoint_test$(EXEEXT) frect_test$(EXEEXT)
|
||||
@CPPUNIT_TEST_TRUE@TESTS = fstring_test$(EXEEXT) fpoint_test$(EXEEXT) \
|
||||
@CPPUNIT_TEST_TRUE@ frect_test$(EXEEXT)
|
||||
@CPPUNIT_TEST_TRUE@check_PROGRAMS = $(am__EXEEXT_1)
|
||||
subdir = src/test
|
||||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||
|
@ -102,7 +103,7 @@ CONFIG_HEADER = $(top_builddir)/config.h
|
|||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
@CPPUNIT_TEST_TRUE@am__EXEEXT_1 = fstring_test$(EXEEXT) \
|
||||
@CPPUNIT_TEST_TRUE@ fpoint_test$(EXEEXT)
|
||||
@CPPUNIT_TEST_TRUE@ fpoint_test$(EXEEXT) frect_test$(EXEEXT)
|
||||
PROGRAMS = $(noinst_PROGRAMS)
|
||||
am__fpoint_test_SOURCES_DIST = fpoint-test.cpp
|
||||
@CPPUNIT_TEST_TRUE@am_fpoint_test_OBJECTS = fpoint-test.$(OBJEXT)
|
||||
|
@ -112,6 +113,10 @@ AM_V_lt = $(am__v_lt_@AM_V@)
|
|||
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
|
||||
am__v_lt_0 = --silent
|
||||
am__v_lt_1 =
|
||||
am__frect_test_SOURCES_DIST = frect-test.cpp
|
||||
@CPPUNIT_TEST_TRUE@am_frect_test_OBJECTS = frect-test.$(OBJEXT)
|
||||
frect_test_OBJECTS = $(am_frect_test_OBJECTS)
|
||||
frect_test_LDADD = $(LDADD)
|
||||
am__fstring_test_SOURCES_DIST = fstring-test.cpp
|
||||
@CPPUNIT_TEST_TRUE@am_fstring_test_OBJECTS = fstring-test.$(OBJEXT)
|
||||
fstring_test_OBJECTS = $(am_fstring_test_OBJECTS)
|
||||
|
@ -150,8 +155,10 @@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
|
|||
am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
|
||||
am__v_CXXLD_0 = @echo " CXXLD " $@;
|
||||
am__v_CXXLD_1 =
|
||||
SOURCES = $(fpoint_test_SOURCES) $(fstring_test_SOURCES)
|
||||
SOURCES = $(fpoint_test_SOURCES) $(frect_test_SOURCES) \
|
||||
$(fstring_test_SOURCES)
|
||||
DIST_SOURCES = $(am__fpoint_test_SOURCES_DIST) \
|
||||
$(am__frect_test_SOURCES_DIST) \
|
||||
$(am__fstring_test_SOURCES_DIST)
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
|
@ -512,6 +519,7 @@ top_srcdir = @top_srcdir@
|
|||
@CPPUNIT_TEST_TRUE@AM_CPPFLAGS = -I$(top_srcdir)/include -Wall -Werror
|
||||
@CPPUNIT_TEST_TRUE@fstring_test_SOURCES = fstring-test.cpp
|
||||
@CPPUNIT_TEST_TRUE@fpoint_test_SOURCES = fpoint-test.cpp
|
||||
@CPPUNIT_TEST_TRUE@frect_test_SOURCES = frect-test.cpp
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
|
@ -569,6 +577,10 @@ fpoint_test$(EXEEXT): $(fpoint_test_OBJECTS) $(fpoint_test_DEPENDENCIES) $(EXTRA
|
|||
@rm -f fpoint_test$(EXEEXT)
|
||||
$(AM_V_CXXLD)$(CXXLINK) $(fpoint_test_OBJECTS) $(fpoint_test_LDADD) $(LIBS)
|
||||
|
||||
frect_test$(EXEEXT): $(frect_test_OBJECTS) $(frect_test_DEPENDENCIES) $(EXTRA_frect_test_DEPENDENCIES)
|
||||
@rm -f frect_test$(EXEEXT)
|
||||
$(AM_V_CXXLD)$(CXXLINK) $(frect_test_OBJECTS) $(frect_test_LDADD) $(LIBS)
|
||||
|
||||
fstring_test$(EXEEXT): $(fstring_test_OBJECTS) $(fstring_test_DEPENDENCIES) $(EXTRA_fstring_test_DEPENDENCIES)
|
||||
@rm -f fstring_test$(EXEEXT)
|
||||
$(AM_V_CXXLD)$(CXXLINK) $(fstring_test_OBJECTS) $(fstring_test_LDADD) $(LIBS)
|
||||
|
@ -580,6 +592,7 @@ distclean-compile:
|
|||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpoint-test.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/frect-test.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstring-test.Po@am__quote@
|
||||
|
||||
.cpp.o:
|
||||
|
@ -816,6 +829,13 @@ fpoint_test.log: fpoint_test$(EXEEXT)
|
|||
--log-file $$b.log --trs-file $$b.trs \
|
||||
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
|
||||
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
||||
frect_test.log: frect_test$(EXEEXT)
|
||||
@p='frect_test$(EXEEXT)'; \
|
||||
b='frect_test'; \
|
||||
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
|
||||
--log-file $$b.log --trs-file $$b.trs \
|
||||
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
|
||||
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
||||
.test.log:
|
||||
@p='$<'; \
|
||||
$(am__set_b); \
|
||||
|
|
|
@ -44,6 +44,7 @@ class FPointTest : public CPPUNIT_NS::TestFixture
|
|||
{ }
|
||||
|
||||
protected:
|
||||
void classNameTest();
|
||||
void NoArgumentTest();
|
||||
void copyConstructorTest();
|
||||
void assignmentTest();
|
||||
|
@ -60,6 +61,7 @@ class FPointTest : public CPPUNIT_NS::TestFixture
|
|||
CPPUNIT_TEST_SUITE (FPointTest);
|
||||
|
||||
// Add a methods to the test suite
|
||||
CPPUNIT_TEST (classNameTest);
|
||||
CPPUNIT_TEST (NoArgumentTest);
|
||||
CPPUNIT_TEST (copyConstructorTest);
|
||||
CPPUNIT_TEST (assignmentTest);
|
||||
|
@ -76,6 +78,14 @@ class FPointTest : public CPPUNIT_NS::TestFixture
|
|||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FPointTest::classNameTest()
|
||||
{
|
||||
FPoint p;
|
||||
const char* const classname = p.getClassName();
|
||||
CPPUNIT_ASSERT ( std::strcmp(classname, "FPoint") == 0 );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FPointTest::NoArgumentTest()
|
||||
{
|
||||
|
|
|
@ -0,0 +1,480 @@
|
|||
/***********************************************************************
|
||||
* frect-test.cpp - FRect unit tests *
|
||||
* *
|
||||
* This file is part of the Final Cut widget toolkit *
|
||||
* *
|
||||
* Copyright 2018 Markus Gans *
|
||||
* *
|
||||
* The Final Cut is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Lesser General Public License *
|
||||
* as published by the Free Software Foundation; either version 3 of *
|
||||
* the License, or (at your option) any later version. *
|
||||
* *
|
||||
* The Final Cut is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Lesser General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Lesser General Public *
|
||||
* License along with this program. If not, see *
|
||||
* <http://www.gnu.org/licenses/>. *
|
||||
***********************************************************************/
|
||||
|
||||
#include <cppunit/BriefTestProgressListener.h>
|
||||
#include <cppunit/CompilerOutputter.h>
|
||||
#include <cppunit/extensions/HelperMacros.h>
|
||||
#include <cppunit/TestFixture.h>
|
||||
#include <cppunit/TestResult.h>
|
||||
#include <cppunit/TestResultCollector.h>
|
||||
#include <cppunit/TestRunner.h>
|
||||
|
||||
#include <final/final.h>
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// class FRectTest
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
#pragma pack(push)
|
||||
#pragma pack(1)
|
||||
|
||||
class FRectTest : public CPPUNIT_NS::TestFixture
|
||||
{
|
||||
public:
|
||||
FRectTest()
|
||||
{ }
|
||||
|
||||
protected:
|
||||
void classNameTest();
|
||||
void NoArgumentTest();
|
||||
void copyConstructorTest();
|
||||
void assignmentTest();
|
||||
void equalTest();
|
||||
void notEqualTest();
|
||||
void additionTest();
|
||||
void subtractionTest();
|
||||
void referenceTest();
|
||||
void moveTest();
|
||||
void containsTest();
|
||||
void overlapTest();
|
||||
void intersectTest();
|
||||
void combinedTest();
|
||||
|
||||
private:
|
||||
// Adds code needed to register the test suite
|
||||
CPPUNIT_TEST_SUITE (FRectTest);
|
||||
|
||||
// Add a methods to the test suite
|
||||
CPPUNIT_TEST (classNameTest);
|
||||
CPPUNIT_TEST (NoArgumentTest);
|
||||
CPPUNIT_TEST (copyConstructorTest);
|
||||
CPPUNIT_TEST (assignmentTest);
|
||||
CPPUNIT_TEST (equalTest);
|
||||
CPPUNIT_TEST (notEqualTest);
|
||||
CPPUNIT_TEST (additionTest);
|
||||
CPPUNIT_TEST (subtractionTest);
|
||||
CPPUNIT_TEST (referenceTest);
|
||||
CPPUNIT_TEST (moveTest);
|
||||
CPPUNIT_TEST (containsTest);
|
||||
CPPUNIT_TEST (overlapTest);
|
||||
CPPUNIT_TEST (intersectTest);
|
||||
CPPUNIT_TEST (combinedTest);
|
||||
|
||||
// End of test suite definition
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FRectTest::classNameTest()
|
||||
{
|
||||
FRect r;
|
||||
const char* const classname = r.getClassName();
|
||||
CPPUNIT_ASSERT ( std::strcmp(classname, "FRect") == 0 );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FRectTest::NoArgumentTest()
|
||||
{
|
||||
const FRect rectangle;
|
||||
CPPUNIT_ASSERT ( rectangle.getX1() == 0 );
|
||||
CPPUNIT_ASSERT ( rectangle.getY1() == 0 );
|
||||
CPPUNIT_ASSERT ( rectangle.getX2() == -1 );
|
||||
CPPUNIT_ASSERT ( rectangle.getY2() == -1 );
|
||||
CPPUNIT_ASSERT ( rectangle.isNull() );
|
||||
CPPUNIT_ASSERT ( rectangle.getWidth() == 0 );
|
||||
CPPUNIT_ASSERT ( rectangle.getHeight() == 0 );
|
||||
CPPUNIT_ASSERT ( rectangle.getPos() == FPoint(0, 0) );
|
||||
CPPUNIT_ASSERT ( rectangle.getUpperLeftPos() == FPoint(0, 0) );
|
||||
CPPUNIT_ASSERT ( rectangle.getUpperRightPos() == FPoint(-1, 0) );
|
||||
CPPUNIT_ASSERT ( rectangle.getLowerLeftPos() == FPoint(0, -1) );
|
||||
CPPUNIT_ASSERT ( rectangle.getLowerRightPos() == FPoint(-1, -1) );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FRectTest::copyConstructorTest()
|
||||
{
|
||||
const FRect r1(1, 1, 20, 10);
|
||||
const FRect r2 (r1);
|
||||
CPPUNIT_ASSERT ( r2.getX() == 1 );
|
||||
CPPUNIT_ASSERT ( r2.getY() == 1 );
|
||||
CPPUNIT_ASSERT ( ! r2.isNull() );
|
||||
CPPUNIT_ASSERT ( r2.getWidth() == 20 );
|
||||
CPPUNIT_ASSERT ( r2.getHeight() == 10 );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FRectTest::assignmentTest()
|
||||
{
|
||||
const FRect r1(3, 5, 45, 14);
|
||||
CPPUNIT_ASSERT ( r1.getX1() == 3 );
|
||||
CPPUNIT_ASSERT ( r1.getY1() == 5 );
|
||||
CPPUNIT_ASSERT ( r1.getX2() == 47 );
|
||||
CPPUNIT_ASSERT ( r1.getY2() == 18 );
|
||||
CPPUNIT_ASSERT ( r1.getWidth() == 45 );
|
||||
CPPUNIT_ASSERT ( r1.getHeight() == 14 );
|
||||
|
||||
FRect r2 (r1);
|
||||
CPPUNIT_ASSERT ( r2 == r1 );
|
||||
CPPUNIT_ASSERT ( r2.getX1() == 3 );
|
||||
CPPUNIT_ASSERT ( r2.getY1() == 5 );
|
||||
CPPUNIT_ASSERT ( r2.getX2() == 47 );
|
||||
CPPUNIT_ASSERT ( r2.getY2() == 18 );
|
||||
CPPUNIT_ASSERT ( r2.getWidth() == 45 );
|
||||
CPPUNIT_ASSERT ( r2.getHeight() == 14 );
|
||||
|
||||
FRect r3(3, 3, 10, 10);
|
||||
r3 = r2;
|
||||
CPPUNIT_ASSERT ( r3 == r2 );
|
||||
CPPUNIT_ASSERT ( r3.getX1() == 3 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == 5 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 47 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 18 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 45 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 14 );
|
||||
|
||||
r3.setPos(FPoint(1, 1));
|
||||
CPPUNIT_ASSERT ( r3 != r2 );
|
||||
CPPUNIT_ASSERT ( r3.getX1() == 1 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == 1 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 45 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 14 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 45 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 14 );
|
||||
|
||||
r3.setPos(-5, -5);
|
||||
CPPUNIT_ASSERT ( r3 != r2 );
|
||||
CPPUNIT_ASSERT ( r3.getX1() == -5 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == -5 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 39 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 8 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 45 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 14 );
|
||||
|
||||
r3.setRect(-3, -3, 6, 6);
|
||||
CPPUNIT_ASSERT ( r3.getX1() == -3 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == -3 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 6 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 6 );
|
||||
|
||||
r3.setRect(r1);
|
||||
CPPUNIT_ASSERT ( r3 == r1 );
|
||||
CPPUNIT_ASSERT ( r3.getX1() == 3 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == 5 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 47 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 18 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 45 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 14 );
|
||||
|
||||
r3.setX1(1);
|
||||
CPPUNIT_ASSERT ( r3 != r1 );
|
||||
CPPUNIT_ASSERT ( r3.getX1() == 1 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == 5 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 47 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 18 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 47 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 14 );
|
||||
|
||||
r3.setY1(1);
|
||||
CPPUNIT_ASSERT ( r3.getX1() == 1 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == 1 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 47 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 18 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 47 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 18 );
|
||||
|
||||
r3.setX2(10);
|
||||
CPPUNIT_ASSERT ( r3.getX1() == 1 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == 1 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 10 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 18 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 10 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 18 );
|
||||
|
||||
r3.setY2(10);
|
||||
CPPUNIT_ASSERT ( r3.getX1() == 1 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == 1 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 10 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 10 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 10 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 10 );
|
||||
|
||||
r3.setX(2);
|
||||
CPPUNIT_ASSERT ( r3.getX1() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == 1 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 11 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 10 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 10 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 10 );
|
||||
|
||||
r3.setY(2);
|
||||
CPPUNIT_ASSERT ( r3.getX1() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 11 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 11 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 10 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 10 );
|
||||
|
||||
r3.setWidth(8);
|
||||
CPPUNIT_ASSERT ( r3.getX1() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 9 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 11 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 8 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 10 );
|
||||
|
||||
r3.setHeight(8);
|
||||
CPPUNIT_ASSERT ( r3.getX1() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 9 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 9 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 8 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 8 );
|
||||
|
||||
r3.setSize(5, 5);
|
||||
CPPUNIT_ASSERT ( r3.getX1() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 6 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 6 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 5 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 5 );
|
||||
|
||||
const FPoint p1(3, 3);
|
||||
const FPoint p2(30, 10);
|
||||
r3.setCoordinates (p1, p2);
|
||||
CPPUNIT_ASSERT ( r3.getX1() == 3 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == 3 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 30 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 10 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 28 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 8 );
|
||||
|
||||
r3.setCoordinates (10, 12, 40, 50);
|
||||
CPPUNIT_ASSERT ( r3.getX1() == 10 );
|
||||
CPPUNIT_ASSERT ( r3.getY1() == 12 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 40 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 50 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 31 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 39 );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FRectTest::equalTest()
|
||||
{
|
||||
const FRect r1 (1, 2, 10, 20);
|
||||
const FRect r2 (1, 2, 10, 20);
|
||||
CPPUNIT_ASSERT ( r1 == r2 );
|
||||
CPPUNIT_ASSERT ( FRect(1, 2, 10, 20) == r2 );
|
||||
CPPUNIT_ASSERT ( r1 == FRect(1, 2, 10, 20) );
|
||||
CPPUNIT_ASSERT ( FRect() == FRect() );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FRectTest::notEqualTest()
|
||||
{
|
||||
const FRect r1 (1, 2, 10, 20);
|
||||
const FRect r2 (1, 2, 15, 25);
|
||||
CPPUNIT_ASSERT ( r1 != r2 );
|
||||
CPPUNIT_ASSERT ( FRect(1, 2, 10, 20) != r2 );
|
||||
CPPUNIT_ASSERT ( r1 != FRect(3, 4, 10, 20) );
|
||||
CPPUNIT_ASSERT ( FRect() != r2 );
|
||||
CPPUNIT_ASSERT ( r1 != FRect() );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FRectTest::additionTest()
|
||||
{
|
||||
const FRect r1 (1, 2, 10, 10);
|
||||
const FPoint p (3, 5);
|
||||
const FRect r2 = r1 + p;
|
||||
CPPUNIT_ASSERT ( r2.getX1() == 1 );
|
||||
CPPUNIT_ASSERT ( r2.getY1() == 2 );
|
||||
CPPUNIT_ASSERT ( r2.getX2() == 13 );
|
||||
CPPUNIT_ASSERT ( r2.getY2() == 16 );
|
||||
CPPUNIT_ASSERT ( r2.getWidth() == 13 );
|
||||
CPPUNIT_ASSERT ( r2.getHeight() == 15 );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FRectTest::subtractionTest()
|
||||
{
|
||||
const FRect r1 (2, 2, 12, 12);
|
||||
const FPoint p (5, 5);
|
||||
const FRect r2 = r1 - p;
|
||||
CPPUNIT_ASSERT ( r2.getX1() == 2 );
|
||||
CPPUNIT_ASSERT ( r2.getY1() == 2 );
|
||||
CPPUNIT_ASSERT ( r2.getX2() == 8 );
|
||||
CPPUNIT_ASSERT ( r2.getY2() == 8 );
|
||||
CPPUNIT_ASSERT ( r2.getWidth() == 7 );
|
||||
CPPUNIT_ASSERT ( r2.getHeight() == 7 );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FRectTest::referenceTest()
|
||||
{
|
||||
FRect r1 (1, 1, 10, 20);
|
||||
CPPUNIT_ASSERT ( r1.getX1() == 1 );
|
||||
CPPUNIT_ASSERT ( r1.getY1() == 1 );
|
||||
CPPUNIT_ASSERT ( r1.getX2() == 10 );
|
||||
CPPUNIT_ASSERT ( r1.getY2() == 20 );
|
||||
|
||||
// Use references to coordinates
|
||||
r1.x1_ref()++;
|
||||
r1.y1_ref()++;
|
||||
r1.x2_ref()--;
|
||||
r1.y2_ref()--;
|
||||
CPPUNIT_ASSERT ( r1.getX1() == 2 );
|
||||
CPPUNIT_ASSERT ( r1.getY1() == 2 );
|
||||
CPPUNIT_ASSERT ( r1.getX2() == 9 );
|
||||
CPPUNIT_ASSERT ( r1.getY2() == 19 );
|
||||
|
||||
short& x1 = r1.x1_ref();
|
||||
short& y1 = r1.y1_ref();
|
||||
short& x2 = r1.x2_ref();
|
||||
short& y2 = r1.y2_ref();
|
||||
x1 += 2;
|
||||
y1 -= 2;
|
||||
x2 -= 3;
|
||||
y2 += 4;
|
||||
CPPUNIT_ASSERT ( r1.getX1() == 4 );
|
||||
CPPUNIT_ASSERT ( r1.getY1() == 0 );
|
||||
CPPUNIT_ASSERT ( r1.getX2() == 6 );
|
||||
CPPUNIT_ASSERT ( r1.getY2() == 23 );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FRectTest::moveTest()
|
||||
{
|
||||
FRect r1 (1, 2, 10, 20);
|
||||
CPPUNIT_ASSERT ( r1.getX() == 1 );
|
||||
CPPUNIT_ASSERT ( r1.getY() == 2 );
|
||||
CPPUNIT_ASSERT ( r1.getWidth() == 10 );
|
||||
CPPUNIT_ASSERT ( r1.getHeight() == 20 );
|
||||
CPPUNIT_ASSERT ( r1.getX2() == 10 );
|
||||
CPPUNIT_ASSERT ( r1.getY2() == 21 );
|
||||
|
||||
const FPoint p1 (2,3);
|
||||
r1.move(p1);
|
||||
CPPUNIT_ASSERT ( r1.getX() == 3 );
|
||||
CPPUNIT_ASSERT ( r1.getY() == 5 );
|
||||
CPPUNIT_ASSERT ( r1.getWidth() == 10 );
|
||||
CPPUNIT_ASSERT ( r1.getHeight() == 20 );
|
||||
CPPUNIT_ASSERT ( r1.getX2() == 12 );
|
||||
CPPUNIT_ASSERT ( r1.getY2() == 24 );
|
||||
|
||||
r1.move (-5, -5);
|
||||
CPPUNIT_ASSERT ( r1.getX() == -2 );
|
||||
CPPUNIT_ASSERT ( r1.getY() == 0 );
|
||||
CPPUNIT_ASSERT ( r1.getWidth() == 10 );
|
||||
CPPUNIT_ASSERT ( r1.getHeight() == 20 );
|
||||
CPPUNIT_ASSERT ( r1.getX2() == 7 );
|
||||
CPPUNIT_ASSERT ( r1.getY2() == 19 );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FRectTest::containsTest()
|
||||
{
|
||||
const FRect r1 (1, 2, 10, 20);
|
||||
CPPUNIT_ASSERT ( r1.contains(5, 5) );
|
||||
CPPUNIT_ASSERT ( ! r1.contains(0, 1) );
|
||||
|
||||
const FPoint p1 (3, 4);
|
||||
const FPoint p2 (3, 25);
|
||||
CPPUNIT_ASSERT ( r1.contains(p1) );
|
||||
CPPUNIT_ASSERT ( ! r1.contains(p2) );
|
||||
|
||||
const FRect r2 (5, 5, 10, 20);
|
||||
const FRect r3 (2, 3, 9, 19);
|
||||
CPPUNIT_ASSERT ( !r1.contains(r2) );
|
||||
CPPUNIT_ASSERT ( r1.contains(r3) );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FRectTest::overlapTest()
|
||||
{
|
||||
const FRect r1 (1, 2, 10, 20);
|
||||
const FRect r2 (5, 5, 10, 20);
|
||||
const FRect r3 (2, 3, 9, 19);
|
||||
const FRect r4 (10, 20, 10, 20);
|
||||
const FRect r5 (11, 21, 10, 20);
|
||||
const FRect r6 (-5, -3, 2, 3);
|
||||
CPPUNIT_ASSERT ( r1.overlap(r2) );
|
||||
CPPUNIT_ASSERT ( r1.overlap(r3) );
|
||||
CPPUNIT_ASSERT ( r1.overlap(r4) );
|
||||
CPPUNIT_ASSERT ( ! r1.overlap(r5) );
|
||||
CPPUNIT_ASSERT ( ! r1.overlap(r6) );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FRectTest::intersectTest()
|
||||
{
|
||||
const FRect r1 (1, 2, 5, 5);
|
||||
const FRect r2 (1, 2, 5, 5);
|
||||
FRect r3 = r1.intersect(r2);
|
||||
CPPUNIT_ASSERT ( r3.getX() == 1 );
|
||||
CPPUNIT_ASSERT ( r3.getY() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 5 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 5 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 5 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 6 );
|
||||
|
||||
const FRect r4 (4, 2, 5, 6);
|
||||
r3 = r1.intersect(r4);
|
||||
CPPUNIT_ASSERT ( r3.getX() == 4 );
|
||||
CPPUNIT_ASSERT ( r3.getY() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 5 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 5 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 6 );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FRectTest::combinedTest()
|
||||
{
|
||||
const FRect r1 (1, 2, 5, 5);
|
||||
const FRect r2 (1, 2, 5, 5);
|
||||
FRect r3 = r1.combined(r2);
|
||||
CPPUNIT_ASSERT ( r3.getX() == 1 );
|
||||
CPPUNIT_ASSERT ( r3.getY() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 5 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 5 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 5 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 6 );
|
||||
|
||||
const FRect r4 (4, 2, 5, 6);
|
||||
r3 = r1.combined(r4);
|
||||
CPPUNIT_ASSERT ( r3.getX() == 1 );
|
||||
CPPUNIT_ASSERT ( r3.getY() == 2 );
|
||||
CPPUNIT_ASSERT ( r3.getWidth() == 8 );
|
||||
CPPUNIT_ASSERT ( r3.getHeight() == 6 );
|
||||
CPPUNIT_ASSERT ( r3.getX2() == 8 );
|
||||
CPPUNIT_ASSERT ( r3.getY2() == 7 );
|
||||
}
|
||||
|
||||
// Put the test suite in the registry
|
||||
CPPUNIT_TEST_SUITE_REGISTRATION (FRectTest);
|
||||
|
||||
// The general unit test main part
|
||||
#include <main-test.inc>
|
||||
|
|
@ -58,6 +58,7 @@ class FStringTest : public CPPUNIT_NS::TestFixture
|
|||
void tearDown();
|
||||
|
||||
protected:
|
||||
void classNameTest();
|
||||
void NoArgumentTest();
|
||||
void initLengthTest();
|
||||
void copyConstructorTest();
|
||||
|
@ -96,6 +97,7 @@ class FStringTest : public CPPUNIT_NS::TestFixture
|
|||
CPPUNIT_TEST_SUITE (FStringTest);
|
||||
|
||||
// Add a methods to the test suite
|
||||
CPPUNIT_TEST (classNameTest);
|
||||
CPPUNIT_TEST (NoArgumentTest);
|
||||
CPPUNIT_TEST (initLengthTest);
|
||||
CPPUNIT_TEST (copyConstructorTest);
|
||||
|
@ -145,6 +147,14 @@ void FStringTest::tearDown()
|
|||
delete s;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FStringTest::classNameTest()
|
||||
{
|
||||
FString s;
|
||||
const char* const classname = s.getClassName();
|
||||
CPPUNIT_ASSERT ( std::strcmp(classname, "FString") == 0 );
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FStringTest::NoArgumentTest()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue