Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
TestNodeReorderer.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/core/NodesOfItemReorderer.h"
11
12/*---------------------------------------------------------------------------*/
13/*---------------------------------------------------------------------------*/
14
15using namespace Arcane;
16
17namespace Arcane
18{
20{
21 public:
22
23 void _doTest(bool expected_reorder, std::initializer_list<Int64> orig_node_list,
24 std::initializer_list<Int64> expected_sorted_node_list)
25 {
26 UniqueArray<Int64> orig_nodes(orig_node_list);
27 UniqueArray<Int64> expected_nodes(expected_sorted_node_list);
28 UniqueArray<Int64> work_nodes(orig_nodes.size());
29 bool is_reorder = NodesOfItemReorderer::_reorderOrder2(orig_nodes, work_nodes);
30 ASSERT_EQ(is_reorder, expected_reorder);
31 ASSERT_EQ(work_nodes.view(), expected_nodes.view()) << "Orig=" << orig_nodes;
32 }
33 void doTest()
34 {
35 _doTest(true, { 13, 12, 11, 14, 7, 6 }, { 11, 12, 13, 7, 14, 6 });
36 _doTest(false, { 13, 11, 12, 6, 7, 14 }, { 11, 12, 13, 7, 14, 6 });
37 _doTest(true, { 12, 11, 13, 7, 6, 14 }, { 11, 12, 13, 7, 14, 6 });
38 _doTest(true, { 11, 13, 12, 6, 14, 7 }, { 11, 12, 13, 7, 14, 6 });
39 _doTest(false, { 12, 13, 11, 9, 18, 5 }, { 11, 12, 13, 5, 9, 18 });
40
41 _doTest(false, { 4692, 4479, 4170, 4476, 4604, 4332, 4334, 4602 },
42 { 4170, 4476, 4692, 4479, 4334, 4602, 4604, 4332 });
43
44 _doTest(true, { 4479, 4505, 4193, 4170, 4498, 4349, 4184, 4332 },
45 { 4170, 4193, 4505, 4479, 4184, 4349, 4498, 4332 });
46
47 _doTest(false, { 4502, 4476, 4170, 4193, 4499, 4334, 4184, 4353 },
48 { 4170, 4193, 4502, 4476, 4184, 4353, 4499, 4334 });
49
50 _doTest(false, { 4479, 4170, 4193, 4505, 4332, 4184, 4349, 4498 },
51 { 4170, 4193, 4505, 4479, 4184, 4349, 4498, 4332 });
52
53 _doTest(true, { 4476, 4502, 4193, 4170, 4499, 4353, 4184, 4334 },
54 { 4170, 4193, 4502, 4476, 4184, 4353, 4499, 4334 });
55 }
56};
57} // namespace Arcane
58
59TEST(NodesOfItemReorderer, Misc)
60{
62 tester.doTest();
63}
64
65/*---------------------------------------------------------------------------*/
66/*---------------------------------------------------------------------------*/
Integer size() const
Nombre d'éléments du vecteur.
ArrayView< T > view() const
Vue mutable sur ce tableau.
Classe utilitaire pour réordonner les noeuds d'une entité.
Vecteur 1D de données avec sémantique par valeur (style STL).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-