65 EXPECT_NO_THROW(ui.
update());
68 EXPECT_TRUE(myMagnet);
69 EXPECT_NEAR(myMagnet->getElementLength(), 4.1, 1e-6);
70 auto tp = myMagnet->getTransProfile();
72 EXPECT_NEAR(tp[0], 0.2, 1e-6);
73 EXPECT_NEAR(tp[1], 0.3, 1e-6);
74 auto [s0, left, right] = myMagnet->getFringeField();
75 EXPECT_NEAR(s0, 4.1 / 2.0, 1e-6);
76 EXPECT_NEAR(left, 0.5, 1e-6);
77 EXPECT_NEAR(right, 0.6, 1e-6);
78 auto [vertical, horizontal] = myMagnet->getAperture();
79 EXPECT_NEAR(vertical, 1.1, 1e-6);
80 EXPECT_NEAR(horizontal, 1.0, 1e-6);
81 EXPECT_NEAR(myMagnet->getMaxFOrder(), 4.0, 1e-6);
82 EXPECT_NEAR(myMagnet->getRotation(), 0.0, 1e-6);
83 EXPECT_NEAR(myMagnet->getEntranceAngle(), 0.01, 1e-6);
84 EXPECT_NEAR(myMagnet->getBoundingBoxLength(), 6.0, 1e-6);
85 EXPECT_NEAR(myMagnet->getBendAngle(), 0.628, 1e-6);
86 EXPECT_NEAR(myMagnet->getMaxXOrder(), 7.0, 1e-6);
87 EXPECT_FALSE(myMagnet->getVariableRadius());
88 EXPECT_NEAR(myMagnet->getEntryOffset(), 0.0, 1e-6);
92 EXPECT_NO_THROW(ui.
update());
93 EXPECT_NEAR(myMagnet->getRotation(), 0.1, 1e-6);
99 EXPECT_ANY_THROW(ui.
update());
104 EXPECT_NO_THROW(ui.
update());
105 EXPECT_EQ(myMagnet->getScalingName(),
"SCALING");
129 std::unique_ptr<OpalMultipoleT> uiClone{ui.
clone(
"Clone")};
131 EXPECT_NO_THROW(uiClone->update());
133 auto* myMagnet =
dynamic_cast<MultipoleT*
>(uiClone->getElement());
134 EXPECT_TRUE(myMagnet);
135 EXPECT_NEAR(myMagnet->getElementLength(), 4.1, 1e-6);
136 auto tp = myMagnet->getTransProfile();
137 EXPECT_EQ(tp.size(), 6);
138 EXPECT_NEAR(tp[0], 0.2, 1e-6);
139 EXPECT_NEAR(tp[1], 0.3, 1e-6);
140 EXPECT_NEAR(tp[2], 0.0, 1e-6);
141 EXPECT_NEAR(tp[3], 0.0, 1e-6);
142 EXPECT_NEAR(tp[4], 0.0, 1e-6);
143 EXPECT_NEAR(tp[5], 0.0, 1e-6);
144 auto [s0, left, right] = myMagnet->getFringeField();
145 EXPECT_NEAR(s0, 4.1 / 2.0, 1e-6);
146 EXPECT_NEAR(left, 0.5, 1e-6);
147 EXPECT_NEAR(right, 0.6, 1e-6);
148 auto [vertical, horizontal] = myMagnet->getAperture();
149 EXPECT_NEAR(vertical, 1.1, 1e-6);
150 EXPECT_NEAR(horizontal, 1.0, 1e-6);
151 EXPECT_NEAR(myMagnet->getMaxFOrder(), 4.0, 1e-6);
152 EXPECT_NEAR(myMagnet->getRotation(), 0.0, 1e-6);
153 EXPECT_NEAR(myMagnet->getEntranceAngle(), 0.01, 1e-6);
154 EXPECT_NEAR(myMagnet->getBoundingBoxLength(), 6.0, 1e-6);
155 EXPECT_NEAR(myMagnet->getBendAngle(), 0.628, 1e-6);
156 EXPECT_NEAR(myMagnet->getMaxXOrder(), 7.0, 1e-6);
157 EXPECT_FALSE(myMagnet->getVariableRadius());
158 EXPECT_NEAR(myMagnet->getEntryOffset(), 0.0, 1e-6);
159 EXPECT_EQ(myMagnet->getScalingName(),
"SCALING");