wxWidgets/tests/testimage.h
Vadim Zeitlin a25b5bbfc9 Make it easier to compare wxImages in the unit tests.
Instead of forcing the tests to manually use memcmp(), specialize
CppUnit::assertion_traits<> for wxImage. This allows to simply use
CPPUNIT_ASSERT_EQUAL() and related macros with wxImage objects.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67616 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-26 22:57:16 +00:00

44 lines
1.2 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: tests/testimage.h
// Purpose: Unit test helpers for dealing with wxImage.
// Author: Vadim Zeitlin
// RCS-ID: $Id$
// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_TESTS_TESTIMAGE_H_
#define _WX_TESTS_TESTIMAGE_H_
#include "wx/image.h"
CPPUNIT_NS_BEGIN
template <>
struct assertion_traits<wxImage>
{
static bool equal(const wxImage& i1, const wxImage& i2)
{
if ( i1.GetWidth() != i2.GetWidth() )
return false;
if ( i1.GetHeight() != i2.GetHeight() )
return false;
return memcmp(i1.GetData(), i2.GetData(),
i1.GetWidth()*i1.GetHeight()*3) == 0;
}
static std::string toString(const wxImage& image)
{
return wxString::Format("image of size %d*%d",
image.GetWidth(),
image.GetHeight())
.ToStdString();
}
};
CPPUNIT_NS_END
#endif // _WX_TESTS_TESTIMAGE_H_