Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
TestDataTypes.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7
8#include <gtest/gtest.h>
9
10#include "arcane/utils/NumericTypes.h"
11#include "arcane/utils/String.h"
12#include "arcane/utils/ArgumentException.h"
13
15
16#include "arccore/serialize/ISerializer.h"
17
18/*---------------------------------------------------------------------------*/
19/*---------------------------------------------------------------------------*/
20
21using namespace Arcane;
22
23#define TEST_DATA_TYPE(a) \
24 ASSERT_EQ(String(dataTypeName(DT_##a)), #a); \
25 ASSERT_EQ(dataTypeFromName(#a), DT_##a); \
26 ASSERT_EQ(dataTypeSize(DT_##a), sizeof(a))
27
28TEST(ArcaneDataTypes, Misc)
29{
30 TEST_DATA_TYPE(Byte);
31 TEST_DATA_TYPE(Real);
32 TEST_DATA_TYPE(Int16);
33 TEST_DATA_TYPE(Int32);
34 TEST_DATA_TYPE(Int64);
35 TEST_DATA_TYPE(Real2);
36 TEST_DATA_TYPE(Real3);
37 TEST_DATA_TYPE(Real2x2);
38 TEST_DATA_TYPE(Real3x3);
39 TEST_DATA_TYPE(BFloat16);
40 TEST_DATA_TYPE(Float16);
41 TEST_DATA_TYPE(Float32);
42 TEST_DATA_TYPE(Int8);
43
44 ASSERT_EQ(String(dataTypeName(DT_Unknown)), "Unknown");
45 ASSERT_EQ(dataTypeFromName("Unknown"), DT_Unknown);
46
47 ASSERT_EQ(String(dataTypeName(DT_String)), "String");
48 ASSERT_EQ(dataTypeFromName("String"), DT_String);
50
51 EXPECT_THROW(dataTypeSize((eDataType)50), ArgumentException);
52 ASSERT_EQ(dataTypeFromName("Toto"), DT_Unknown);
53
63}
64
65/*---------------------------------------------------------------------------*/
66/*---------------------------------------------------------------------------*/
Fichier contenant les définitions des types de données gérés par Arcane.
Exception lorsqu'un argument est invalide.
Type flottant demi-précision.
Classe gérant un vecteur de réel de dimension 2.
Definition Real2.h:121
Classe gérant une matrice de réel de dimension 2x2.
Definition Real2x2.h:53
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
Classe gérant une matrice de réel de dimension 3x3.
Definition Real3x3.h:66
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int8_t Int8
Type entier signé sur 8 bits.
ARCANE_DATATYPE_EXPORT Integer dataTypeSize(eDataType type)
Taille du type de donnée type (qui doit être différent de DT_String)
Definition DataTypes.cc:109
unsigned char Byte
Type d'un octet.
Definition BaseTypes.h:43
float Float32
Type flottant IEEE-753 simple précision.
eDataType
Type d'une donnée.
Definition DataTypes.h:39
@ DT_Float32
Donnée de type 'Float32'.
Definition DataTypes.h:52
@ DT_Int16
Donnée de type entier 16 bits.
Definition DataTypes.h:42
@ DT_Int8
Donnée de type entier sur 8 bits.
Definition DataTypes.h:53
@ DT_Int32
Donnée de type entier 32 bits.
Definition DataTypes.h:43
@ DT_Float16
Donnée de type 'Float16'.
Definition DataTypes.h:51
@ DT_Int64
Donnée de type entier 64 bits.
Definition DataTypes.h:44
@ DT_Unknown
Donnée de type inconnue ou non initialisée.
Definition DataTypes.h:56
@ DT_String
Donnée de type chaîne de caractère UTF-8.
Definition DataTypes.h:45
@ DT_BFloat16
Donnée de type 'BFloat16'.
Definition DataTypes.h:50
@ DT_Real
Donnée de type réel.
Definition DataTypes.h:41
@ DT_Byte
Donnée de type octet.
Definition DataTypes.h:40
ARCANE_DATATYPE_EXPORT eDataType dataTypeFromName(const char *name, bool &has_error)
Trouve le type associé à name.
Definition DataTypes.cc:92
const char * dataTypeName(eDataType type)
Nom du type de donnée.
Definition DataTypes.cc:70