Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
SimpleTableInternalComparator.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* SimpleTableInternalComparator.h (C) 2000-2022 */
9/* */
10/* Comparateur de SimpleTableInternal. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#ifndef ARCANE_STD_SIMPLETABLEINTERNALCOMPARATOR_H
15#define ARCANE_STD_SIMPLETABLEINTERNALCOMPARATOR_H
16
17/*---------------------------------------------------------------------------*/
18/*---------------------------------------------------------------------------*/
19
20#include "arcane/ISimpleTableInternalComparator.h"
21#include "arcane/ISimpleTableInternalMng.h"
22#include "arcane/ISimpleTableReaderWriter.h"
23
24#include "arcane/std/SimpleTableInternalMng.h"
25#include "arcane/utils/Array.h"
26#include "arcane/utils/FatalErrorException.h"
27
28#include <map>
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
33namespace Arcane
34{
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
38
41{
42 public:
44 : m_simple_table_internal_reference(sti_ref)
45 , m_simple_table_internal_to_compare(sti_to_compare)
46 , m_simple_table_internal_mng_reference(m_simple_table_internal_reference)
47 , m_simple_table_internal_mng_to_compare(m_simple_table_internal_to_compare)
48 , m_regex_rows("")
49 , m_is_excluding_regex_rows(false)
50 , m_regex_columns("")
51 , m_is_excluding_regex_columns(false)
52 , m_is_excluding_array_rows(false)
53 , m_is_excluding_array_columns(false)
54 , m_epsilons_column()
55 , m_epsilons_row()
56 {
57 if (sti_ref.isNull() || sti_to_compare.isNull())
58 ARCANE_FATAL("La réference passée en paramètre est Null.");
59 }
60
62 : m_simple_table_internal_reference()
63 , m_simple_table_internal_to_compare()
64 , m_simple_table_internal_mng_reference()
65 , m_simple_table_internal_mng_to_compare()
66 , m_regex_rows("")
67 , m_is_excluding_regex_rows(false)
68 , m_regex_columns("")
69 , m_is_excluding_regex_columns(false)
70 , m_is_excluding_array_rows(false)
71 , m_is_excluding_array_columns(false)
72 , m_epsilons_column()
73 , m_epsilons_row()
74 {
75 }
76
77 virtual ~SimpleTableInternalComparator() = default;
78
79 public:
80 bool compare(bool compare_dimension_too) override;
81
82 bool compareElem(const String& column_name, const String& row_name) override;
83 bool compareElem(Real elem, const String& column_name, const String& row_name) override;
84
85 void clearComparator() override;
86
87 bool addColumnForComparing(const String& column_name) override;
88 bool addRowForComparing(const String& row_name) override;
89
90 void isAnArrayExclusiveColumns(bool is_exclusive) override;
91 void isAnArrayExclusiveRows(bool is_exclusive) override;
92
93 void editRegexColumns(const String& regex_column) override;
94 void editRegexRows(const String& regex_row) override;
95
96 void isARegexExclusiveColumns(bool is_exclusive) override;
97 void isARegexExclusiveRows(bool is_exclusive) override;
98
99 bool addEpsilonColumn(const String& column_name, Real epsilon) override;
100 bool addEpsilonRow(const String& row_name, Real epsilon) override;
101
102
105
108
109 protected:
110 bool _exploreColumn(const String& column_name);
111 bool _exploreRows(const String& row_name);
112
113 protected:
114 Ref<SimpleTableInternal> m_simple_table_internal_reference;
115 Ref<SimpleTableInternal> m_simple_table_internal_to_compare;
116
117 SimpleTableInternalMng m_simple_table_internal_mng_reference;
118 SimpleTableInternalMng m_simple_table_internal_mng_to_compare;
119
120 String m_regex_rows;
121 bool m_is_excluding_regex_rows;
122
123 String m_regex_columns;
124 bool m_is_excluding_regex_columns;
125
126 StringUniqueArray m_rows_to_compare;
127 bool m_is_excluding_array_rows;
128
129 StringUniqueArray m_columns_to_compare;
130 bool m_is_excluding_array_columns;
131
132 std::map<String, Real> m_epsilons_column;
133 std::map<String, Real> m_epsilons_row;
134};
135
136/*---------------------------------------------------------------------------*/
137/*---------------------------------------------------------------------------*/
138
139} // End namespace Arcane
140
141/*---------------------------------------------------------------------------*/
142/*---------------------------------------------------------------------------*/
143
144#endif
145
146/*---------------------------------------------------------------------------*/
147/*---------------------------------------------------------------------------*/
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Interface de classe représentant un comparateur de SimpleTableInternal (aka STI).
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
bool compare(bool compare_dimension_too) override
Méthode permettant de comparer les valeurs des deux STI.
Ref< SimpleTableInternal > internalRef() override
Méthode permettant de récupérer une référence vers l'objet SimpleTableInternal "de référence" utilisé...
bool _exploreColumn(const String &column_name)
Méthode permettant de savoir si la colonne avec le nom column_name doit être exploré ou non.
void setInternalToCompare(const Ref< SimpleTableInternal > &simple_table_internal) override
Méthode permettant de définir une référence vers SimpleTableInternal "à comparer".
void isAnArrayExclusiveRows(bool is_exclusive) override
Méthode permettant de définir si le tableau de lignes représente les lignes à inclure dans la compara...
void setInternalRef(const Ref< SimpleTableInternal > &simple_table_internal) override
Méthode permettant de définir une référence vers un SimpleTableInternal "de référence".
void isAnArrayExclusiveColumns(bool is_exclusive) override
Méthode permettant de définir si le tableau de colonnes représente les colonnes à inclure dans la com...
Ref< SimpleTableInternal > internalToCompare() override
Méthode permettant de récupérer une référence vers l'objet SimpleTableInternal "à comparer" utilisé.
bool addEpsilonRow(const String &row_name, Real epsilon) override
Méthode permettant de définir un epsilon pour une ligne donnée. Cet epsilon doit être positif pour êt...
bool addRowForComparing(const String &row_name) override
Méthode permettant d'ajouter une ligne dans la liste des lignes à comparer.
bool _exploreRows(const String &row_name)
Méthode permettant de savoir si la ligne avec le nom column_name doit être exploré ou non.
bool compareElem(const String &column_name, const String &row_name) override
Méthode permettant de comparer uniquement un élement. Les deux SimpleTableInternal sont représentés p...
void isARegexExclusiveRows(bool is_exclusive) override
Méthode permettant de demander à ce que l'expression régulière exclut des lignes au lieu d'en inclure...
bool addColumnForComparing(const String &column_name) override
Méthode permettant d'ajouter une colonne dans la liste des colonnes à comparer.
void editRegexColumns(const String &regex_column) override
Méthode permettant d'ajouter une expression régulière permettant de déterminer les colonnes à compare...
void editRegexRows(const String &regex_row) override
Méthode permettant d'ajouter une expression régulière permettant de déterminer les lignes à comparer.
void isARegexExclusiveColumns(bool is_exclusive) override
Méthode permettant de demander à ce que l'expression régulière exclut des colonnes au lieu d'en inclu...
void clearComparator() override
Méthode permettant de vider les tableaux de comparaison et les expressions régulières....
bool addEpsilonColumn(const String &column_name, Real epsilon) override
Méthode permettant de définir un epsilon pour une colonne donnée. Cet epsilon doit être positif pour ...
Chaîne de caractères unicode.
Vecteur 1D de données avec sémantique par valeur (style STL).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-