8#include <gtest/gtest.h>
10#include "arcane/utils/ValueConvert.h"
11#include "arcane/utils/NumericTypes.h"
30 ASSERT_EQ(v1.x,value);
31 ASSERT_EQ(v1.y,value);
33 ASSERT_EQ(v2.x,value);
34 ASSERT_EQ(v2.y,value);
46 ASSERT_EQ(v2.
x,value);
47 ASSERT_EQ(v2.
x,value);
64 ASSERT_EQ(v3.
x,1.2*1.3);
65 ASSERT_EQ(v3.
y,4.5*2.3);
67 ASSERT_EQ(v4.
x,v3.
x*2.3);
68 ASSERT_EQ(v4.
y,v3.
y*2.3);
70 ASSERT_EQ(v5.
x,v4.
x/2.4);
71 ASSERT_EQ(v5.
y,v4.
y/2.4);
74 Real3 v3(1.2,2.3,4.5);
83 Real norm_l2 = math::sqrt(x*x+y*y);
90 ASSERT_EQ(0.0,math::normL2(v6));
105 ASSERT_EQ(v1.x,value);
106 ASSERT_EQ(v1.y,value);
107 ASSERT_EQ(v1.z,value);
109 ASSERT_EQ(v2.x,value);
110 ASSERT_EQ(v2.y,value);
111 ASSERT_EQ(v2.z,value);
118 ASSERT_EQ(v1.z,-1.5);
133 Real norm_l2 = math::sqrt(x*x+y*y+z*z);
140 ASSERT_EQ(0.0,math::normL2(v6));
149 ASSERT_EQ(v1.
x,zero);
150 ASSERT_EQ(v1.
y,zero);
154 Real2 r2_value(value);
156 ASSERT_EQ(v1.x,r2_value);
157 ASSERT_EQ(v1.y,r2_value);
159 ASSERT_EQ(v2.x,v1.x);
160 ASSERT_EQ(v2.y,v1.y);
177 ASSERT_EQ(v1.
x,zero);
178 ASSERT_EQ(v1.
y,zero);
179 ASSERT_EQ(v1.
z,zero);
183 Real3 r3_value(value);
185 ASSERT_EQ(v1.x,r3_value);
186 ASSERT_EQ(v1.y,r3_value);
187 ASSERT_EQ(v1.z,r3_value);
189 ASSERT_EQ(v2.x,v1.x);
190 ASSERT_EQ(v2.y,v1.y);
191 ASSERT_EQ(v2.z,v1.z);
192 Real3 rx(3.5, 1.2, -1.5);
193 Real3 ry(1.6, 2.1, -2.3);
194 Real3 rz(-2.3, 1.8, 9.4);
206TEST(TestRealN,Copyable)
210 ASSERT_TRUE(std::is_trivially_copyable_v<Real2x2>);
211 ASSERT_TRUE(std::is_trivially_copyable_v<Real3x3>);
214TEST(TestRealN,ContiguousAddress)
224 Real* r3_base = &r3.
x;
229 Real* r2x2_base = &r2x2.
x.
x;
236 Real* r3x3_base = &r3x3.
x.
x;
#define ASSERT_TRUE(condition)
Vérifie que condition est vrai.
Classe gérant un vecteur de réel de dimension 2.
Classe gérant une matrice de réel de dimension 2x2.
Real2 x
Première composante.
Real2 y
Deuxième composante.
Classe gérant un vecteur de réel de dimension 3.
Classe gérant une matrice de réel de dimension 3x3.
Real3 z
premier élément du triplet
Real3 y
premier élément du triplet
Real3 x
premier élément du triplet
Real2 normalizeL2(const Real2 &v)
Retourne le couple v normalisé avec la norme L2.
constexpr __host__ __device__ bool isNearlyEqual(const _Type &a, const _Type &b)
Teste si deux valeurs sont à un peu près égales. Pour les types entiers, cette fonction est équivalen...
Real2 & mutableNormalize(Real2 &v)
Normalise le couple.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Real y
deuxième composante du couple
Real x
première composante du couple
Real y
deuxième composante du triplet
Real z
troisième composante du triplet
Real x
première composante du triplet