#ifndef BEAMTEST_H #define BEAMTEST_H #include "Beam.h" #include "BornAgainNamespace.h" #include "Units.h" #include "ParameterPool.h" #include "gtest/gtest.h" #include <memory> class BeamTest : public ::testing::Test { protected: BeamTest() {} Beam m_empty_beam; }; TEST_F(BeamTest, BeamInitialState) { EXPECT_DOUBLE_EQ(2.0 * Units::PI, m_empty_beam.getCentralK()[0]); EXPECT_EQ(0.0, m_empty_beam.getCentralK()[1]); EXPECT_EQ(0.0, m_empty_beam.getCentralK()[2]); EXPECT_EQ(0.0, m_empty_beam.getIntensity()); /* TEMPORARILY DISABLED getParameterPool() EXPECT_EQ(size_t(4), m_empty_beam.getParameterPool()->size()); EXPECT_EQ(0.0, m_empty_beam.getParameterPool()->getParameter(BornAgain::Intensity).getValue()); EXPECT_EQ(1.0, m_empty_beam.getParameterPool()->getParameter(BornAgain::Wavelength).getValue()); EXPECT_EQ(0.0, m_empty_beam.getParameterPool()->getParameter(BornAgain::Alpha).getValue()); EXPECT_EQ(0.0, m_empty_beam.getParameterPool()->getParameter(BornAgain::Phi).getValue()); EXPECT_EQ(complex_t(0.5, 0.0), m_empty_beam.getPolarization()(0, 0)); EXPECT_EQ(complex_t(0.5, 0.0), m_empty_beam.getPolarization()(1, 1)); */ } TEST_F(BeamTest, BeamAssignment) { kvector_t polarization(0.0, 0.0, 0.2); std::unique_ptr<Beam> P_beam { new Beam() }; P_beam->setCentralK(1.0, 1.0, 1.0); P_beam->setIntensity(2.0); P_beam->setPolarization(polarization); Beam beam_copy = *P_beam; EXPECT_NEAR(1.83423, beam_copy.getCentralK()[0], 0.00001); EXPECT_NEAR(-2.85664, beam_copy.getCentralK()[1], 0.00001); EXPECT_NEAR(-5.28712, beam_copy.getCentralK()[2], 0.00001); EXPECT_EQ(double(2.0), beam_copy.getIntensity()); /* TEMPORARILY DISABLED getParameterPool() EXPECT_EQ(size_t(4), beam_copy.getParameterPool()->size()); EXPECT_EQ(double(2.0), beam_copy.getParameterPool()->getParameter(BornAgain::Intensity).getValue()); EXPECT_EQ(complex_t(0.6, 0.0), beam_copy.getPolarization()(0, 0)); EXPECT_EQ(complex_t(0.4, 0.0), beam_copy.getPolarization()(1, 1)); */ } #endif // BEAMTEST_H