File: CVectorTest.cpp

package info (click to toggle)
libheinz 2.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,160 kB
  • sloc: cpp: 14,269; ansic: 21; makefile: 2
file content (31 lines) | stat: -rw-r--r-- 1,070 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "catch.hpp"
#include <heinz/Complex.h>
#include <heinz/Vectors3D.h>

TEST_CASE("CVector:TrivialOperations", "")
{
    R3 vec_k(1., 2., 3.);
    CHECK(complex_t(3., 0.) == vec_k.complex().z());

    C3 vec_c(complex_t(1., 3.), complex_t(2., -5.), complex_t(-3., -4.));
    CHECK(complex_t(3., 4.) == -vec_c.z());
    CHECK(vec_c.mag() == 8.);
}

TEST_CASE("CVector:BasicArithmetics", "")
{
    // Dot product defined in Vec3
    C3 vec_a(complex_t(1., 0.), complex_t(2., 0.), complex_t(3., 0.));
    C3 vec_b(complex_t(2., 0.), complex_t(3., 0.), complex_t(4., 0.));
    C3 vec_c(complex_t(1., 1.), complex_t(2., -5.), complex_t(3., 4.));
    CHECK(vec_a.dot(vec_b) == complex_t(20., 0));
    CHECK(vec_a.dot(vec_c) == complex_t(14., 3.));
    CHECK(vec_c.dot(vec_b) == complex_t(20., -3.));
    CHECK(vec_a.dot(vec_a) == complex_t(14., 0));
    CHECK(vec_c.dot(vec_c) == complex_t(56., 0));

    // f = f_re + j*f_im
    C3 vec_e(1., 2., 3.);
    C3 vec_f(5., 6., 7.);
    CHECK(C3(complex_t(1., 5.), complex_t(2., 6), complex_t(3, 7)) == vec_e + I * vec_f);
}