From 327a954edec781c7805bdff5649d9db5f45c0e70 Mon Sep 17 00:00:00 2001
From: Walter Van Herck <w.van.herck@fz-juelich.de>
Date: Tue, 24 Oct 2017 10:57:17 +0200
Subject: [PATCH] Add unit test for Bloch vector calculation

---
 Tests/UnitTests/Core/Other/BeamTest.h | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/Tests/UnitTests/Core/Other/BeamTest.h b/Tests/UnitTests/Core/Other/BeamTest.h
index 76fe61b83d2..2cbc6c710a4 100644
--- a/Tests/UnitTests/Core/Other/BeamTest.h
+++ b/Tests/UnitTests/Core/Other/BeamTest.h
@@ -20,7 +20,7 @@ TEST_F(BeamTest, BeamInitialState)
     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() 
+    /* 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());
@@ -46,7 +46,7 @@ TEST_F(BeamTest, BeamAssignment)
     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() 
+    /* TEMPORARILY DISABLED getParameterPool()
     EXPECT_EQ(size_t(4), beam_copy.getParameterPool()->size());
     EXPECT_EQ(double(2.0),
               beam_copy.getParameterPool()->getParameter(BornAgain::Intensity).getValue());
@@ -54,3 +54,15 @@ TEST_F(BeamTest, BeamAssignment)
     EXPECT_EQ(complex_t(0.4, 0.0), beam_copy.getPolarization()(1, 1));
     */
 }
+
+TEST_F(BeamTest, BeamPolarization)
+{
+    Beam beam;
+    kvector_t polarization(0.1, -0.2, 0.4);
+    beam.setPolarization(polarization);
+
+    kvector_t bloch_vector = beam.getBlochVector();
+    EXPECT_NEAR(0.1, bloch_vector.x(), 1e-8);
+    EXPECT_NEAR(-0.2, bloch_vector.y(), 1e-8);
+    EXPECT_NEAR(0.4, bloch_vector.z(), 1e-8);
+}
-- 
GitLab