8#include <gtest/gtest.h>
18 class ConstantEFieldCavityRepTest :
public ::testing::Test {
20 void SetUp()
override {
21 rep_ = std::make_unique<ConstantEFieldCavityRep>(
"TestRep");
22 rep_->setElementLength(2.0);
26 std::unique_ptr<ConstantEFieldCavityRep> rep_;
32 TEST_F(ConstantEFieldCavityRepTest, GeometryLength) {
33 EXPECT_DOUBLE_EQ(rep_->getGeometry().getElementLength(), 2.0);
34 rep_->setElementLength(3.5);
35 EXPECT_DOUBLE_EQ(rep_->getGeometry().getElementLength(), 3.5);
36 EXPECT_DOUBLE_EQ(rep_->getElementLength(), 3.5);
39 TEST_F(ConstantEFieldCavityRepTest, FieldEz) {
40 EXPECT_DOUBLE_EQ(rep_->getField().getEz(), 5.0);
42 EXPECT_DOUBLE_EQ(rep_->getField().getEz(), -1.5);
43 EXPECT_DOUBLE_EQ(rep_->getEz(), -1.5);
46 TEST_F(ConstantEFieldCavityRepTest, ExEySetters) {
47 EXPECT_DOUBLE_EQ(rep_->getEx(), 0.0);
48 EXPECT_DOUBLE_EQ(rep_->getEy(), 0.0);
53 EXPECT_DOUBLE_EQ(rep_->getEx(), 1.0);
54 EXPECT_DOUBLE_EQ(rep_->getEy(), -2.0);
57 TEST_F(ConstantEFieldCavityRepTest, SetEzSyncsBaseAndField) {
59 EXPECT_DOUBLE_EQ(rep_->getEz(), 100.0);
60 EXPECT_DOUBLE_EQ(rep_->getField().getEz(), 100.0);
66 TEST_F(ConstantEFieldCavityRepTest, Clone) {
67 std::unique_ptr<ElementBase> copy(rep_->clone());
68 ASSERT_NE(copy.get(),
nullptr);
70 ASSERT_NE(repCopy,
nullptr);
72 EXPECT_DOUBLE_EQ(repCopy->
getEz(), 5.0);
79 TEST_F(ConstantEFieldCavityRepTest, ChannelL) {
80 Channel* ch = rep_->getChannel(
"L",
false);
81 ASSERT_NE(ch,
nullptr);
82 EXPECT_TRUE(ch->
set(1.5));
83 EXPECT_DOUBLE_EQ(rep_->getElementLength(), 1.5);
84 EXPECT_DOUBLE_EQ(rep_->getGeometry().getElementLength(), 1.5);
86 EXPECT_TRUE(ch->
get(val));
87 EXPECT_DOUBLE_EQ(val, 1.5);
91 TEST_F(ConstantEFieldCavityRepTest, ChannelEZ) {
92 Channel* ch = rep_->getChannel(
"EZ",
false);
93 ASSERT_NE(ch,
nullptr);
94 EXPECT_TRUE(ch->
set(7.0));
95 EXPECT_DOUBLE_EQ(rep_->getEz(), 7.0);
96 EXPECT_DOUBLE_EQ(rep_->getField().getEz(), 7.0);
98 EXPECT_TRUE(ch->
get(val));
99 EXPECT_DOUBLE_EQ(val, 7.0);
103 TEST_F(ConstantEFieldCavityRepTest, ChannelUnknownReturnsNull) {
104 Channel* ch = rep_->getChannel(
"UNKNOWN",
false);
105 EXPECT_EQ(ch,
nullptr);
TEST_F(MonitorTest, GetType)
Abstract interface for read/write access to variable.
virtual bool set(double value)=0
Store [b]value[/b] into channel.
virtual bool get(double &value) const =0
Read channel.
virtual double getEz() const
Get component.
ConstEzField & getField() override
Return field.
virtual double getElementLength() const
Get design length.