12#ifndef ARCANE_UTILS_VALUECHECKER_H
13#define ARCANE_UTILS_VALUECHECKER_H
18#include "arcane/utils/OStringStream.h"
19#include "arcane/utils/TraceInfo.h"
40class ARCANE_UTILS_EXPORT ValueChecker
47 , m_throw_on_error(
true)
55 template <
typename T1,
typename T2,
typename X = std::is_convertible<T2, T1>>
56 void areEqual(
const T1& value,
const T2& expected_value,
const String& message)
58 if (value != expected_value) {
59 _addError(String::format(
"{0} value={1} expected={2}", message, value, expected_value));
67 template <
typename T1,
typename T2,
68 typename ValueType =
typename T1::value_type,
69 typename X1 = std::is_convertible<T1, Span<const ValueType>>,
70 typename X2 = std::is_convertible<T1, Span<const ValueType>>>
77 Int64 nb_value = values.size();
78 Int64 nb_expected = expected_values.
size();
79 if (nb_value != nb_expected) {
80 _addError(String::format(
"{0} bad array size n={1} expected={2}",
81 message, nb_value, nb_expected));
87 for (
Int64 i = 0; i < nb_value; ++i) {
91 _addError(String::format(
"{0} index={1} value={2} expected={3}", message, i, v, e));
100 template <
typename T>
106 if (nb_value != nb_expected) {
107 _addError(String::format(
"{0} bad array size n={1} expected={2}",
108 message, nb_value, nb_expected));
114 for (
Int64 i = 0; i < nb_value; ++i)
122 template <
typename T>
137 m_throw_on_error = v;
152 bool m_throw_on_error;
156 void _addError(
const String& message);
Déclarations des types utilisés dans Arcane.
Flot de sortie lié à une String.
Vue pour un tableau 2D dont la taille est un 'Int32'.
constexpr __host__ __device__ SizeType dim1Size() const
Nombre d'éléments de la première dimension.
Vue pour un tableau 2D dont la taille est un 'Int64'.
constexpr __host__ __device__ SizeType size() const noexcept
Retourne la taille du tableau.
Vue d'un tableau d'éléments de type T.
Chaîne de caractères unicode.
void areEqual(const T1 &value, const T2 &expected_value, const String &message)
void areEqualArray(const T1 &x_values, const T2 &x_expected_values, const String &message)
Vérifie que les deux tableaux values et expected_values ont les mêmes valeurs.
void areEqualArray(SmallSpan2< T > values, SmallSpan2< T > expected_values, const String &message)
Vérifie que les deux tableaux values et expected_values ont les mêmes valeurs.
bool throwOnError() const
Indique si on lève une exception en cas d'erreur.
void areEqualArray(Span2< const T > values, Span2< const T > expected_values, const String &message)
Vérifie que les deux tableaux 2D values et expected_values ont les mêmes valeurs.
Integer nbError() const
Nombre d'erreurs.
void setThrowOnError(bool v)
Indique si on lève une exception en cas d'erreur.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
Int32 Integer
Type représentant un entier.