File indexing completed on 2025-08-06 08:11:25
0001
0002
0003
0004
0005
0006
0007
0008
0009 #include <boost/test/data/test_case.hpp>
0010 #include <boost/test/tools/output_test_stream.hpp>
0011 #include <boost/test/unit_test.hpp>
0012
0013 #include "Acts/Propagator/ConstrainedStep.hpp"
0014
0015 #include <limits>
0016
0017 namespace Acts::Test {
0018
0019
0020
0021 BOOST_AUTO_TEST_CASE(ConstrainedStepTest) {
0022
0023 ConstrainedStep stepSize_p(0.25);
0024
0025
0026 BOOST_CHECK_EQUAL(stepSize_p.accuracy(), std::numeric_limits<double>::max());
0027 BOOST_CHECK_EQUAL(stepSize_p.value(ConstrainedStep::actor),
0028 std::numeric_limits<double>::max());
0029 BOOST_CHECK_EQUAL(stepSize_p.value(ConstrainedStep::aborter),
0030 std::numeric_limits<double>::max());
0031 BOOST_CHECK_EQUAL(stepSize_p.value(ConstrainedStep::user), 0.25);
0032
0033
0034 BOOST_CHECK_EQUAL(stepSize_p.value(), 0.25);
0035
0036
0037 stepSize_p.setAccuracy(0.1);
0038 BOOST_CHECK_EQUAL(stepSize_p.value(), 0.1);
0039
0040
0041 stepSize_p.update(0.05, ConstrainedStep::actor);
0042 BOOST_CHECK_EQUAL(stepSize_p.value(), 0.05);
0043
0044 stepSize_p.update(0.15, ConstrainedStep::actor, false);
0045 BOOST_CHECK_EQUAL(stepSize_p.value(), 0.05);
0046
0047
0048 stepSize_p.update(0.15, ConstrainedStep::actor, true);
0049 BOOST_CHECK_EQUAL(stepSize_p.value(), 0.1);
0050
0051
0052 stepSize_p.update(0.05, ConstrainedStep::user);
0053 stepSize_p.setAccuracy(0.03);
0054 BOOST_CHECK_EQUAL(stepSize_p.value(), 0.03);
0055
0056
0057 stepSize_p.releaseAccuracy();
0058 BOOST_CHECK_EQUAL(stepSize_p.accuracy(), std::numeric_limits<double>::max());
0059 BOOST_CHECK_EQUAL(stepSize_p.value(), 0.05);
0060 }
0061
0062 }