Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
SimpleCsvComparatorService.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/* SimpleCsvComparatorService.h (C) 2000-2022 */
9/* */
10/* Service permettant de comparer un ISimpleTableOutput avec un fichier de */
11/* référence en format csv. */
12/*---------------------------------------------------------------------------*/
13#ifndef ARCANE_STD_SIMPLECSVCOMPARATORSERVICE_H
14#define ARCANE_STD_SIMPLECSVCOMPARATORSERVICE_H
15/*---------------------------------------------------------------------------*/
16/*---------------------------------------------------------------------------*/
17
18#include "arcane/ISimpleTableComparator.h"
19#include "arcane/ISimpleTableInternalMng.h"
20#include "arcane/ISimpleTableOutput.h"
21
22#include "arcane/std/SimpleCsvReaderWriter.h"
23#include "arcane/std/SimpleTableInternalComparator.h"
24
25#include "arcane/Directory.h"
26#include "arcane/IMesh.h"
27
28#include "arcane/std/SimpleCsvComparator_axl.h"
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
33namespace Arcane
34{
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
38
41{
42 public:
43
46 , m_simple_table_output_ptr(nullptr)
47 , m_reference_path()
48 , m_root_path()
49 , m_output_directory("_ref")
50 , m_file_name("")
51 , m_table_name("")
52 , m_is_file_open(false)
53 , m_is_file_read(false)
54 , m_is_already_init(false)
55 {
56 }
57
58 virtual ~SimpleCsvComparatorService() = default;
59
60 public:
61
63 void clear() override;
64 void editRootDirectory(const Directory& root_directory) override;
65 void print(Integer rank) override;
66 bool writeReferenceFile(Integer rank) override;
67 bool readReferenceFile(Integer rank) override;
68 bool isReferenceExist(Integer rank) override;
69 bool compareWithReference(Integer rank, bool compare_dimension_too) override;
70
71 bool compareElemWithReference(const String& column_name, const String& row_name, Integer rank) override;
72 bool compareElemWithReference(Real elem, const String& column_name, const String& row_name, Integer rank) override;
73
74 bool addColumnForComparing(const String& column_name) override;
75 bool addRowForComparing(const String& row_name) override;
76
77 void isAnArrayExclusiveColumns(bool is_exclusive) override;
78 void isAnArrayExclusiveRows(bool is_exclusive) override;
79
80 void editRegexColumns(const String& regex_column) override;
81 void editRegexRows(const String& regex_row) override;
82
83 void isARegexExclusiveColumns(bool is_exclusive) override;
84 void isARegexExclusiveRows(bool is_exclusive) override;
85
86 bool addEpsilonColumn(const String& column_name, Real epsilon) override;
87 bool addEpsilonRow(const String& row_name, Real epsilon) override;
88
89 private:
90
91 bool _exploreColumn(Integer position);
92 bool _exploreRows(Integer position);
93
94 private:
95
96 ISimpleTableOutput* m_simple_table_output_ptr;
97
98 Directory m_reference_path;
99 Directory m_root_path;
100
101 String m_output_directory;
102 String m_file_name;
103 String m_table_name;
104
105 std::ifstream m_ifstream;
106 bool m_is_file_open;
107 bool m_is_file_read;
108
109 Ref<SimpleTableInternal> m_simple_table_internal_reference;
110 Ref<SimpleTableInternal> m_simple_table_internal_to_compare;
111
112 SimpleTableInternalComparator m_simple_table_internal_comparator;
113 SimpleCsvReaderWriter m_simple_csv_reader_writer;
114
115 bool m_is_already_init;
116};
117
118/*---------------------------------------------------------------------------*/
119/*---------------------------------------------------------------------------*/
120
121} // End namespace Arcane
122
123/*---------------------------------------------------------------------------*/
124/*---------------------------------------------------------------------------*/
125
126#endif
127
128/*---------------------------------------------------------------------------*/
129/*---------------------------------------------------------------------------*/
Generation de la classe de base du Service.
Classe gérant un répertoire.
Definition Directory.h:33
Interface représentant une sortie de tableau simple.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Structure contenant les informations pour créer un service.
void init(ISimpleTableOutput *simple_table_output_ptr) override
Méthode permettant d'initialiser le service.
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...
bool addRowForComparing(const String &row_name) override
Méthode permettant d'ajouter une ligne dans la liste des lignes à comparer.
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...
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...
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 clear() override
Méthode permettant d'effacer les données lues par readReferenceFile().
void print(Integer rank) override
Méthode permettant d'afficher le tableau lu.
bool isReferenceExist(Integer rank) override
Méthode permettant de savoir si les fichiers de réferences existent.
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...
bool compareWithReference(Integer rank, bool compare_dimension_too) override
Méthode permettant de comparer l'objet de type ISimpleTableOutput aux fichiers de réferences.
void editRegexRows(const String &regex_row) override
Méthode permettant d'ajouter une expression régulière permettant de déterminer les lignes à comparer.
bool readReferenceFile(Integer rank) override
Méthode permettant de lire les fichiers de références.
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 ...
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 compareElemWithReference(const String &column_name, const String &row_name, Integer rank) override
Méthode permettant de comparer uniquement un élement. Les deux SimpleTableInternal sont représentés p...
void editRootDirectory(const Directory &root_directory) override
Méthode permettant de modifier le répertoire racine. Cela permet d'écrire ou de rechercher des fichie...
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-