Newer
Older
#ifndef BEAMTEST_H
#define BEAMTEST_H
#include "Beam.h"
Van Herck, Walter
committed
#include "BornAgainNamespace.h"
#include "Units.h"
#include "ParameterPool.h"
#include "gtest/gtest.h"
Van Herck, Walter
committed
#include <memory>
class BeamTest : public ::testing::Test
{
Van Herck, Walter
committed
protected:
BeamTest() {}
Van Herck, Walter
committed
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]);
Van Herck, Walter
committed
EXPECT_EQ(0.0, m_empty_beam.getIntensity());
/* TEMPORARILY DISABLED getParameterPool()
Van Herck, Walter
committed
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)
{
Van Herck, Walter
committed
kvector_t polarization(0.0, 0.0, 0.2);
Van Herck, Walter
committed
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);
Van Herck, Walter
committed
EXPECT_EQ(double(2.0), beam_copy.getIntensity());
/* TEMPORARILY DISABLED getParameterPool()
Van Herck, Walter
committed
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));