Change mju_round to use standard round() function.
PiperOrigin-RevId: 942873144 Change-Id: I3fd0d630643c104ff464d619387ff36582c2a5d8
This commit is contained in:
committed by
Copybara-Service
parent
4cb14bef47
commit
1ea2d884d2
@@ -17,6 +17,7 @@
|
||||
#include "src/engine/engine_util_misc.h"
|
||||
|
||||
#include <array>
|
||||
#include <climits>
|
||||
#include <cmath>
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
@@ -1720,5 +1721,28 @@ TEST_F(ShellTFITest, NoInteriorSmallGrid) {
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(UtilMiscTest, Round) {
|
||||
// basic rounding
|
||||
EXPECT_EQ(mju_round(2.3), 2);
|
||||
EXPECT_EQ(mju_round(2.7), 3);
|
||||
EXPECT_EQ(mju_round(-2.3), -2);
|
||||
EXPECT_EQ(mju_round(-2.7), -3);
|
||||
|
||||
// exact integers
|
||||
EXPECT_EQ(mju_round(0.0), 0);
|
||||
EXPECT_EQ(mju_round(3.0), 3);
|
||||
EXPECT_EQ(mju_round(-3.0), -3);
|
||||
|
||||
// ties: round() rounds away from zero
|
||||
EXPECT_EQ(mju_round(0.5), 1);
|
||||
EXPECT_EQ(mju_round(1.5), 2);
|
||||
EXPECT_EQ(mju_round(-0.5), -1);
|
||||
EXPECT_EQ(mju_round(-1.5), -2);
|
||||
|
||||
// overflow clamps to INT_MAX/INT_MIN
|
||||
EXPECT_EQ(mju_round(1e18), INT_MAX);
|
||||
EXPECT_EQ(mju_round(-1e18), INT_MIN);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
} // namespace mujoco
|
||||
|
||||
Reference in New Issue
Block a user