Skip to content

Commit

Permalink
Add tests. Thanks to @agiudiceandrea
Browse files Browse the repository at this point in the history
  • Loading branch information
lbartoletti committed Dec 5, 2021
1 parent 23b8287 commit 9246081
Showing 1 changed file with 43 additions and 6 deletions.
49 changes: 43 additions & 6 deletions tests/src/core/geometry/testqgstriangle.cpp
Expand Up @@ -818,7 +818,7 @@ void TestQgsTriangle::types()
tr = QgsTriangle( QgsPoint( 7.2825, 4.2368 ), QgsPoint( 13.0058, 3.3218 ),
QgsPoint( 9.2145, 6.5242 ) );
// angles in radians 58.8978;31.1036;89.9985
// length 5.79598;4.96279;2.99413
// length 4.96279;2.99413;5.79598
QVERIFY( !tr.isDegenerate() );
QVERIFY( tr.isRight() );
QVERIFY( !tr.isIsocele() );
Expand Down Expand Up @@ -857,17 +857,54 @@ void TestQgsTriangle::angles()
{
QgsTriangle tr( QgsPoint( 0, 0 ), QgsPoint( 0, 5 ), QgsPoint( 5, 5 ) );

QVector<double> a_tested, a_t7 = tr.angles();
QVector<double> a_tested;
QVector<double> angles = tr.angles();
a_tested.append( M_PI / 4.0 );
a_tested.append( M_PI / 2.0 );
a_tested.append( M_PI / 4.0 );

QGSCOMPARENEAR( a_tested.at( 0 ), a_t7.at( 0 ), 0.0001 );
QGSCOMPARENEAR( a_tested.at( 1 ), a_t7.at( 1 ), 0.0001 );
QGSCOMPARENEAR( a_tested.at( 2 ), a_t7.at( 2 ), 0.0001 );
QGSCOMPARENEAR( a_tested.at( 0 ), angles.at( 0 ), 0.0001 );
QGSCOMPARENEAR( a_tested.at( 1 ), angles.at( 1 ), 0.0001 );
QGSCOMPARENEAR( a_tested.at( 2 ), angles.at( 2 ), 0.0001 );

QVector<double> a_empty = QgsTriangle().angles();
QVERIFY( a_empty.isEmpty() );

// From issue #46370
tr = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 1, sqrt( 3 ) ), QgsPoint( 2, 0 ) );
angles = tr.angles();
QGSCOMPARENEAR( angles.at( 0 ), M_PI / 3.0, 0.0001 );
QGSCOMPARENEAR( angles.at( 1 ), M_PI / 3.0, 0.0001 );
QGSCOMPARENEAR( angles.at( 2 ), M_PI / 3.0, 0.0001 );

tr = QgsTriangle( QgsPoint( 2, 0 ), QgsPoint( 1, sqrt( 3 ) ), QgsPoint( 0, 0 ) );
angles = tr.angles();
QGSCOMPARENEAR( angles.at( 0 ), M_PI / 3.0, 0.0001 );
QGSCOMPARENEAR( angles.at( 1 ), M_PI / 3.0, 0.0001 );
QGSCOMPARENEAR( angles.at( 2 ), M_PI / 3.0, 0.0001 );

tr = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 0, 3 ), QgsPoint( 4, 0 ) );
angles = tr.angles();
QGSCOMPARENEAR( angles.at( 0 ), M_PI / 2.0, 0.0001 );
QGSCOMPARENEAR( angles.at( 1 ), 0.9272952, 0.0001 );
QGSCOMPARENEAR( angles.at( 2 ), 0.6435011, 0.0001 );
tr = QgsTriangle( QgsPoint( 4, 0 ), QgsPoint( 0, 3 ), QgsPoint( 0, 0 ) );
angles = tr.angles();
QGSCOMPARENEAR( angles.at( 0 ), 0.6435011, 0.0001 );
QGSCOMPARENEAR( angles.at( 1 ), 0.9272952, 0.0001 );
QGSCOMPARENEAR( angles.at( 2 ), M_PI / 2.0, 0.0001 );

tr = QgsTriangle( QgsPoint( 0, 0 ), QgsPoint( 1, 3 ), QgsPoint( 3, 0 ) );
angles = tr.angles();
QGSCOMPARENEAR( angles.at( 0 ), 1.2490457, 0.0001 );
QGSCOMPARENEAR( angles.at( 1 ), 0.9097531, 0.0001 );
QGSCOMPARENEAR( angles.at( 2 ), 0.9827937, 0.0001 );
tr = QgsTriangle( QgsPoint( 3, 0 ), QgsPoint( 1, 3 ), QgsPoint( 0, 0 ) );
angles = tr.angles();
QGSCOMPARENEAR( angles.at( 0 ), 0.9827937, 0.0001 );
QGSCOMPARENEAR( angles.at( 1 ), 0.9097531, 0.0001 );
QGSCOMPARENEAR( angles.at( 2 ), 1.2490457, 0.0001 );

}

void TestQgsTriangle::lengths()
Expand All @@ -876,8 +913,8 @@ void TestQgsTriangle::lengths()

QVector<double> l_tested, l_t7 = tr.lengths();
l_tested.append( 5 );
l_tested.append( 5 );
l_tested.append( std::sqrt( 5 * 5 + 5 * 5 ) );
l_tested.append( 5 );

QGSCOMPARENEAR( l_tested.at( 0 ), l_t7.at( 0 ), 0.0001 );
QGSCOMPARENEAR( l_tested.at( 1 ), l_t7.at( 1 ), 0.0001 );
Expand Down

0 comments on commit 9246081

Please sign in to comment.