File indexing completed on 2025-10-29 07:55:36
0001
0002
0003
0004
0005
0006
0007
0008
0009 #include <boost/test/tools/output_test_stream.hpp>
0010 #include <boost/test/unit_test.hpp>
0011
0012 #include "Acts/Definitions/Algebra.hpp"
0013 #include "Acts/Geometry/GeometryContext.hpp"
0014 #include "Acts/Surfaces/PerigeeSurface.hpp"
0015 #include "Acts/Surfaces/Surface.hpp"
0016
0017 #include <memory>
0018 #include <string>
0019
0020 using namespace Acts;
0021
0022 namespace ActsTests {
0023
0024
0025 GeometryContext tgContext = GeometryContext();
0026
0027 BOOST_AUTO_TEST_SUITE(SurfacesSuite)
0028
0029
0030 BOOST_AUTO_TEST_CASE(PerigeeSurfaceConstruction) {
0031
0032
0033
0034
0035 Vector3 unitXYZ{1., 1., 1.};
0036 auto perigeeSurfaceObject = Surface::makeShared<PerigeeSurface>(unitXYZ);
0037 BOOST_CHECK_EQUAL(Surface::makeShared<PerigeeSurface>(unitXYZ)->type(),
0038 Surface::Perigee);
0039
0040
0041 Translation3 translation{0., 1., 2.};
0042 auto pTransform = Transform3(translation);
0043 BOOST_CHECK_EQUAL(Surface::makeShared<PerigeeSurface>(pTransform)->type(),
0044 Surface::Perigee);
0045
0046
0047 auto copiedPerigeeSurface =
0048 Surface::makeShared<PerigeeSurface>(*perigeeSurfaceObject);
0049 BOOST_CHECK_EQUAL(copiedPerigeeSurface->type(), Surface::Perigee);
0050 BOOST_CHECK(*copiedPerigeeSurface == *perigeeSurfaceObject);
0051
0052
0053 auto copiedTransformedPerigeeSurface = Surface::makeShared<PerigeeSurface>(
0054 tgContext, *perigeeSurfaceObject, pTransform);
0055 BOOST_CHECK_EQUAL(copiedTransformedPerigeeSurface->type(), Surface::Perigee);
0056 }
0057
0058
0059 BOOST_AUTO_TEST_CASE(PerigeeSurfaceProperties) {
0060
0061 Vector3 unitXYZ{1., 1., 1.};
0062 auto perigeeSurfaceObject = Surface::makeShared<PerigeeSurface>(unitXYZ);
0063
0064
0065 BOOST_CHECK_EQUAL(perigeeSurfaceObject->type(), Surface::Perigee);
0066
0067
0068 BOOST_CHECK_EQUAL(perigeeSurfaceObject->name(),
0069 std::string("Acts::PerigeeSurface"));
0070
0071
0072 boost::test_tools::output_test_stream dumpOutput;
0073 dumpOutput << perigeeSurfaceObject->toStream(tgContext);
0074 BOOST_CHECK(
0075 dumpOutput.is_equal("Acts::PerigeeSurface:\n\
0076 Center position (x, y, z) = (1.0000000, 1.0000000, 1.0000000)"));
0077 }
0078
0079 BOOST_AUTO_TEST_CASE(EqualityOperators) {
0080 Vector3 unitXYZ{1., 1., 1.};
0081 Vector3 invalidPosition{0., 0., 0.};
0082 auto perigeeSurfaceObject = Surface::makeShared<PerigeeSurface>(unitXYZ);
0083 auto perigeeSurfaceObject2 = Surface::makeShared<PerigeeSurface>(unitXYZ);
0084 auto assignedPerigeeSurface =
0085 Surface::makeShared<PerigeeSurface>(invalidPosition);
0086
0087
0088 BOOST_CHECK(*perigeeSurfaceObject == *perigeeSurfaceObject2);
0089
0090
0091 *assignedPerigeeSurface = *perigeeSurfaceObject;
0092
0093
0094 BOOST_CHECK(*assignedPerigeeSurface == *perigeeSurfaceObject);
0095 }
0096
0097 BOOST_AUTO_TEST_SUITE_END()
0098 }