QGIS API Documentation  2.18.21-Las Palmas (9fba24a)
qgstestutils.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgstestutils.h
3  ---------------------
4  begin : June 2016
5  copyright : (C) 2016 by Nyall Dawson
6  email : nyalld dot dawson at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 #ifndef QGSTESTUTILS_H
16 #define QGSTESTUTILS_H
17 
18 #include "qgis.h"
19 #include "QtTest/qtestcase.h"
20 
26 #define QGSCOMPARENEAR(value,expected,epsilon) { \
27  bool _xxxresult = qgsDoubleNear( value, expected, epsilon ); \
28  if ( !_xxxresult ) \
29  { \
30  qDebug( "Expecting %f got %f (diff %f > %f)", static_cast< double >( expected ), static_cast< double >( value ), qAbs( static_cast< double >( expected ) - value ), static_cast< double >( epsilon ) ); \
31  } \
32  QVERIFY( qgsDoubleNear( value, expected, epsilon ) ); \
33  }
34 
35 #define QGSCOMPARENEARPOINT(point1,point2,epsilon) { \
36  QGSCOMPARENEAR( point1.x(), point2.x(), epsilon ); \
37  QGSCOMPARENEAR( point1.y(), point2.y(), epsilon ); \
38  }
39 
40 #define QGSCOMPARENEARRECTANGLE(rectangle1,rectangle2,epsilon) { \
41  QGSCOMPARENEAR( rectangle1.xMinimum(), rectangle2.xMinimum(), epsilon ); \
42  QGSCOMPARENEAR( rectangle1.xMaximum(), rectangle2.xMaximum(), epsilon ); \
43  QGSCOMPARENEAR( rectangle1.yMinimum(), rectangle2.yMinimum(), epsilon ); \
44  QGSCOMPARENEAR( rectangle1.yMaximum(), rectangle2.yMaximum(), epsilon ); \
45  }
46 
47 #endif // QGSTESTUTILS_H