Skip to content

Commit

Permalink
Add tests for octile_dist_exact.
Browse files Browse the repository at this point in the history
  • Loading branch information
CLIDragon committed Nov 9, 2024
1 parent 3758efa commit 0dc33d6
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions tests/line_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -465,3 +465,52 @@ TEST_CASE( "coord_point_line_to_consistency", "[point][coords][line]" )
CHECK( raw_line[i] == coord_line[i].raw() );
}
}

TEST_CASE( "octile_dist_exact_tripoints" )
{
constexpr int one_axis = 1;
constexpr float two_axis = M_SQRT2;
constexpr float three_axis = 1.73205f;
constexpr float eps = 0.05f;

// Check that unit distances are all correct.
CHECK( octile_dist_exact( tripoint{ 0, 0, 0 }, tripoint{ 0, 0, 0 } ) == 0 );

Check failure on line 477 in tests/line_test.cpp

View workflow job for this annotation

GitHub Actions / build (other)

Prefer constructing 'tripoint' from named constant 'tripoint_zero' rather than explicit integer arguments. [cata-use-named-point-constants,-warnings-as-errors]

Check failure on line 477 in tests/line_test.cpp

View workflow job for this annotation

GitHub Actions / build (other)

Prefer constructing 'tripoint' from named constant 'tripoint_zero' rather than explicit integer arguments. [cata-use-named-point-constants,-warnings-as-errors]
CHECK_THAT( octile_dist_exact( tripoint{ 0, 0, 0 }, tripoint{ 0, 0, 1 } ),

Check failure on line 478 in tests/line_test.cpp

View workflow job for this annotation

GitHub Actions / build (other)

Prefer constructing 'tripoint' from named constant 'tripoint_zero' rather than explicit integer arguments. [cata-use-named-point-constants,-warnings-as-errors]

Check failure on line 478 in tests/line_test.cpp

View workflow job for this annotation

GitHub Actions / build (other)

Prefer constructing 'tripoint' from named constant 'tripoint_above' rather than explicit integer arguments. [cata-use-named-point-constants,-warnings-as-errors]
Catch::Matchers::WithinRel( one_axis, eps ) );
CHECK_THAT( octile_dist_exact( tripoint{ 0, 0, 0 }, tripoint{ 0, 1, 0 } ),

Check failure on line 480 in tests/line_test.cpp

View workflow job for this annotation

GitHub Actions / build (other)

Prefer constructing 'tripoint' from named constant 'tripoint_zero' rather than explicit integer arguments. [cata-use-named-point-constants,-warnings-as-errors]

Check failure on line 480 in tests/line_test.cpp

View workflow job for this annotation

GitHub Actions / build (other)

Prefer constructing 'tripoint' from named constant 'tripoint_south' rather than explicit integer arguments. [cata-use-named-point-constants,-warnings-as-errors]
Catch::Matchers::WithinRel( one_axis, eps ) );
CHECK_THAT( octile_dist_exact( tripoint{ 0, 0, 0 }, tripoint{ 1, 0, 0 } ),

Check failure on line 482 in tests/line_test.cpp

View workflow job for this annotation

GitHub Actions / build (other)

Prefer constructing 'tripoint' from named constant 'tripoint_zero' rather than explicit integer arguments. [cata-use-named-point-constants,-warnings-as-errors]

Check failure on line 482 in tests/line_test.cpp

View workflow job for this annotation

GitHub Actions / build (other)

Prefer constructing 'tripoint' from named constant 'tripoint_east' rather than explicit integer arguments. [cata-use-named-point-constants,-warnings-as-errors]
Catch::Matchers::WithinRel( one_axis, eps ) );
CHECK_THAT( octile_dist_exact( tripoint{ 10, 30, 20 }, tripoint{ 11, 30, 20 } ),
Catch::Matchers::WithinRel( 1, eps ) );
CHECK_THAT( octile_dist_exact( tripoint{ 10, 30, 20 }, tripoint{ 10, 31, 20 } ),
Catch::Matchers::WithinRel( 1, eps ) );
CHECK_THAT( octile_dist_exact( tripoint{ 10, 30, 21 }, tripoint{ 10, 30, 21 } ),
Catch::Matchers::WithinRel( 1, eps ) );

Check failure on line 489 in tests/line_test.cpp

View workflow job for this annotation

GitHub Actions / Basic Build and Test (Clang 10, Ubuntu, Curses)

0.0f and 1 are within 5% of each other

// Check that 2d unit distances are correct.
CHECK_THAT( octile_dist_exact( tripoint{ 0, 0, 0 }, tripoint{ 0, 1, 1 } ),

Check failure on line 492 in tests/line_test.cpp

View workflow job for this annotation

GitHub Actions / build (other)

Prefer constructing 'tripoint' from named constant 'tripoint_zero' rather than explicit integer arguments. [cata-use-named-point-constants,-warnings-as-errors]
Catch::Matchers::WithinRel( two_axis, eps ) );
CHECK_THAT( octile_dist_exact( tripoint{ 0, 0, 0 }, tripoint{ 1, 0, 1 } ),

Check failure on line 494 in tests/line_test.cpp

View workflow job for this annotation

GitHub Actions / build (other)

Prefer constructing 'tripoint' from named constant 'tripoint_zero' rather than explicit integer arguments. [cata-use-named-point-constants,-warnings-as-errors]
Catch::Matchers::WithinRel( two_axis, eps ) );
CHECK_THAT( octile_dist_exact( tripoint{ 0, 0, 0 }, tripoint{ 1, 1, 0 } ),
Catch::Matchers::WithinRel( two_axis, eps ) );

// Check that 3d unit distances are correct.
CHECK_THAT( octile_dist_exact( tripoint{ 0, 0, 0 }, tripoint{ 1, 1, 1 } ),
Catch::Matchers::WithinRel( three_axis, eps ) );
CHECK_THAT( octile_dist_exact( tripoint{ 2, 4, 6 }, tripoint{ 3, 5, 7 } ),
Catch::Matchers::WithinRel( three_axis, eps ) );
CHECK_THAT( octile_dist_exact( tripoint{ 26, 32, 75 }, tripoint{ 27, 33, 76 } ),
Catch::Matchers::WithinRel( three_axis, eps ) );

// Check a few non-unit distances.
CHECK_THAT( octile_dist_exact( tripoint{ 0, 0, 0 }, tripoint{ 2, 2, 0 } ),
Catch::Matchers::WithinRel( 2 * two_axis, eps ) );
CHECK_THAT( octile_dist_exact( tripoint{ 1, 2, 3 }, tripoint{ 4, 1, 2 } ),
Catch::Matchers::WithinRel( 3.316f, eps ) );

Check failure on line 511 in tests/line_test.cpp

View workflow job for this annotation

GitHub Actions / Basic Build and Test (Clang 10, Ubuntu, Curses)

3.73205f and 3.316 are within 5% of each other
CHECK_THAT( octile_dist_exact( tripoint{ 6, 9, 4 }, tripoint{ 8, 1, 1 } ),
Catch::Matchers::WithinRel( 8.775f, eps ) );

Check failure on line 513 in tests/line_test.cpp

View workflow job for this annotation

GitHub Actions / Basic Build and Test (Clang 10, Ubuntu, Curses)

9.87831f and 8.775 are within 5% of each other
CHECK_THAT( octile_dist_exact( tripoint{ -3, -6, -2 }, tripoint{ -10, -8, 4 } ),
Catch::Matchers::WithinRel( 9.434f, eps ) );

Check failure on line 515 in tests/line_test.cpp

View workflow job for this annotation

GitHub Actions / Basic Build and Test (Clang 10, Ubuntu, Curses)

10.12095f and 9.434 are within 5% of each other
}

0 comments on commit 0dc33d6

Please sign in to comment.