|
28 | 28 | //qgis includes...
|
29 | 29 | #include <qgsapplication.h>
|
30 | 30 | #include <qgsgeometry.h>
|
| 31 | +#include "qgsgeometryutils.h" |
31 | 32 | #include <qgspoint.h>
|
32 | 33 | #include "qgspointv2.h"
|
33 | 34 | #include "qgslinestringv2.h"
|
@@ -56,6 +57,7 @@ class TestQgsGeometry : public QObject
|
56 | 57 | void isEmpty();
|
57 | 58 | void pointV2(); //test QgsPointV2
|
58 | 59 | void lineStringV2(); //test QgsLineStringV2
|
| 60 | + void utils(); //test QgsGeometryUtils |
59 | 61 |
|
60 | 62 | void fromQgsPoint();
|
61 | 63 | void fromQPoint();
|
@@ -1842,6 +1844,49 @@ void TestQgsGeometry::lineStringV2()
|
1842 | 1844 |
|
1843 | 1845 | }
|
1844 | 1846 |
|
| 1847 | +void TestQgsGeometry::utils() |
| 1848 | +{ |
| 1849 | + //test normalizedAngle |
| 1850 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::normalizedAngle( 0.0 ), 0.0, 0.0001 ) ); |
| 1851 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::normalizedAngle( 1.5708 ), 1.5708, 0.0001 ) ); |
| 1852 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::normalizedAngle( 3.1416 ), 3.1416, 0.0001 ) ); |
| 1853 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::normalizedAngle( 4.7124 ), 4.7124, 0.0001 ) ); |
| 1854 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::normalizedAngle( 2 * M_PI ), 0.0, 0.0001 ) ); |
| 1855 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::normalizedAngle( 6.80678 ), 0.5236, 0.0001 ) ); |
| 1856 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::normalizedAngle( 12.5664 ), 0.0, 0.0001 ) ); |
| 1857 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::normalizedAngle( 12.7409 ), 0.174533, 0.0001 ) ); |
| 1858 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::normalizedAngle( -0.174533 ), 6.10865, 0.0001 ) ); |
| 1859 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::normalizedAngle( -6.28318 ), 0.0, 0.0001 ) ); |
| 1860 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::normalizedAngle( -6.45772 ), 6.10865, 0.0001 ) ); |
| 1861 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::normalizedAngle( -13.2645 ), 5.58505, 0.0001 ) ); |
| 1862 | + |
| 1863 | + //test lineAngle |
| 1864 | + ( void )QgsGeometryUtils::lineAngle( 0.0, 0.0, 0.0, 0.0 ); //undefined, but don't want a crash |
| 1865 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::lineAngle( 0.0, 0.0, 0.0, 1.0 ), 0.0, 0.0001 ) ); |
| 1866 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::lineAngle( 0.0, 0.0, 1.0, 1.0 ), 0.7854, 0.0001 ) ); |
| 1867 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::lineAngle( 0.0, 0.0, 1.0, 0.0 ), 1.5708, 0.0001 ) ); |
| 1868 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::lineAngle( 0.0, 0.0, 0.0, -1.0 ), 3.1416, 0.0001 ) ); |
| 1869 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::lineAngle( 0.0, 0.0, -1.0, 0.0 ), 4.7124, 0.0001 ) ); |
| 1870 | + |
| 1871 | + //test linePerpendicularAngle |
| 1872 | + ( void )QgsGeometryUtils::linePerpendicularAngle( 0.0, 0.0, 0.0, 0.0 ); //undefined, but don't want a crash |
| 1873 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::linePerpendicularAngle( 0.0, 0.0, 0.0, 1.0 ), 1.5708, 0.0001 ) ); |
| 1874 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::linePerpendicularAngle( 0.0, 0.0, 1.0, 1.0 ), 2.3562, 0.0001 ) ); |
| 1875 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::linePerpendicularAngle( 0.0, 0.0, 1.0, 0.0 ), 3.1416, 0.0001 ) ); |
| 1876 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::linePerpendicularAngle( 0.0, 0.0, 0.0, -1.0 ), 4.7124, 0.0001 ) ); |
| 1877 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::linePerpendicularAngle( 0.0, 0.0, -1.0, 0.0 ), 0.0, 0.0001 ) ); |
| 1878 | + |
| 1879 | + //test averageAngle |
| 1880 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::averageAngle( 0.0, 0.0 ), 0.0, 0.0001 ) ); |
| 1881 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::averageAngle( 0.0, 6.28319 ), 0.0, 0.0001 ) ); |
| 1882 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::averageAngle( 0.0, 12.5664 ), 0.0, 0.0001 ) ); |
| 1883 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::averageAngle( 6.28319, 0.0 ), 0.0, 0.0001 ) ); |
| 1884 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::averageAngle( -6.28318, 0.0 ), 0.0, 0.0001 ) ); |
| 1885 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::averageAngle( -6.28318, -6.28318 ), 0.0, 0.0001 ) ); |
| 1886 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::averageAngle( 0.0, 3.141592 ), 1.5708, 0.0001 ) ); |
| 1887 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::averageAngle( 0.0, -3.141592 ), 4.71239, 0.0001 ) ); |
| 1888 | + QVERIFY( qgsDoubleNear( QgsGeometryUtils::averageAngle( 5.49779, 4.71239 ), 5.1051, 0.0001 ) ); |
| 1889 | +} |
1845 | 1890 |
|
1846 | 1891 | void TestQgsGeometry::fromQgsPoint()
|
1847 | 1892 | {
|
|
0 commit comments