Newer
Older
#ifndef CVECTORTEST_H
#define CVECTORTEST_H
#include "Types.h"
#include <cmath>
Van Herck, Walter
committed
#include "EigenCore.h"
Celine Durniak
committed
CVectorTest();
virtual ~CVectorTest();
};
CVectorTest::CVectorTest()
{
}
CVectorTest::~CVectorTest()
{
}

Wuttke, Joachim
committed
TEST_F(CVectorTest, TrivialOperations)
{
kvector_t vec_k(1.,2.,3.);
EXPECT_EQ( vec_k.complex().z(), complex_t(3.,0.) );

Wuttke, Joachim
committed
cvector_t vec_c(complex_t(1.,3.), complex_t(2.,-5.), complex_t(-3.,-4.));
EXPECT_EQ( -vec_c.z(), complex_t(3.,4.) );
EXPECT_DOUBLE_EQ( vec_c.mag(), 8. );

Wuttke, Joachim
committed
}
Celine Durniak
committed
// Dot product with "Eigen" library
Eigen::Vector3cd va(complex_t(1.,0.), complex_t(2.,0.), complex_t(3.,0.));
Eigen::Vector3cd vc(complex_t(1.,1.), complex_t(2.,-5.), complex_t(3.,4.));
EXPECT_TRUE(va.dot(vc) == complex_t(14.,3.));
// Dot product defined in BasicVector3D
Van Herck, Walter
committed
cvector_t vec_a(complex_t(1.,0.), complex_t(2.,0.), complex_t(3.,0.));
cvector_t vec_b(complex_t(2.,0.), complex_t(3.,0.), complex_t(4.,0.));
cvector_t vec_c(complex_t(1.,1.), complex_t(2.,-5.), complex_t(3.,4.));
EXPECT_TRUE(vec_a.dot(vec_b) == complex_t(20.,0));
EXPECT_TRUE(vec_a.dot(vec_c) == complex_t(14.,3.));
EXPECT_TRUE(vec_c.dot(vec_b) == complex_t(20.,-3.));
EXPECT_TRUE(vec_a.dot(vec_a) == complex_t(14.,0));
EXPECT_TRUE(vec_c.dot(vec_c) == complex_t(56.,0));
Van Herck, Walter
committed
cvector_t vec_e(1.,2.,3.);
cvector_t vec_f(5.,6.,7.);
EXPECT_EQ( vec_e+complex_t(0,1)*vec_f,
cvector_t(complex_t(1.,5.), complex_t(2.,6), complex_t(3,7)) );