aGrUM  0.20.2
a C++ library for (probabilistic) graphical models
structuralComparator_tpl.h
Go to the documentation of this file.
1 /**
2  *
3  * Copyright 2005-2020 Pierre-Henri WUILLEMIN(@LIP6) & Christophe GONZALES(@AMU)
4  * info_at_agrum_dot_org
5  *
6  * This library is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this library. If not, see <http://www.gnu.org/licenses/>.
18  *
19  */
20 
21 
22 #ifndef DOXYGEN_SHOULD_SKIP_THIS
23 
24 # include <agrum/BN/algorithms/essentialGraph.h>
25 # include <agrum/tools/graphs/mixedGraph.h>
26 
27 namespace gum {
28 
29  template < typename GS1, typename GS2 >
31  const BayesNet< GS2 >& test) {
32  if (ref.size() != test.size()) {
33  GUM_ERROR(OperationNotAllowed, "Graphs of different sizes");
34  }
35  for (const NodeId node: ref.dag().asNodeSet()) {
36  if (!test.dag().existsNode(node)) {
38  "Test doesn't contain node " << node << " from ref");
39  }
40  }
41 
44 
45  this->compare(ref_eg, test_eg);
46  }
47 
48  template < typename GUM_SCALAR >
50  const MixedGraph& test) {
52  this->compare(ref_eg, test);
53  }
54 
55  template < typename GUM_SCALAR >
57  const BayesNet< GUM_SCALAR >& test) {
59 
60  this->compare(ref, test_eg);
61  }
62 } /* namespace gum */
63 
64 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
INLINE void emplace(Args &&... args)
Definition: set_tpl.h:669