GaitGeneration by Graph Search
全て クラス 名前空間 ファイル 関数 変数 型定義 列挙型 列挙値 マクロ定義 ページ Concepts
gait_pattern_graph_tree_test.h
[詳解]
1
3
4// Copyright(c) 2023-2025 Design Engineering Laboratory, Saitama University
5// Released under the MIT license
6// https://opensource.org/licenses/mit-license.php
7
8#ifndef DESIGNLAB_GAIT_PATTERN_GRAPH_TREE_TEST_H_
9#define DESIGNLAB_GAIT_PATTERN_GRAPH_TREE_TEST_H_
10
11#include "doctest.h"
12
14
15
16TEST_SUITE("GaitPatternGraphTree::Constructor")
17{
19
20 TEST_CASE("初期化した時,グラフの要素は0になるべき")
21 {
22 const GaitPatternGraphTree tree_10(10);
23 const GaitPatternGraphTree tree_1000(1000);
24
25 SUBCASE("グラフのサイズは0になるべき")
26 {
27 const float expect_size = 0;
28
29 CHECK(tree_10.GetGraphSize() == expect_size);
30
31 CHECK(tree_1000.GetGraphSize() == expect_size);
32 }
33
34 SUBCASE("グラフが空になるべき")
35 {
36 CHECK(tree_10.IsEmpty());
37
38 CHECK(tree_1000.IsEmpty());
39 }
40 }
41
42 TEST_CASE("初期化した時,ルートは存在するべきでない")
43 {
44 GaitPatternGraphTree tree_10(10);
45 CHECK_FALSE(tree_10.HasRoot());
46
47 GaitPatternGraphTree tree_1000(1000);
48 CHECK_FALSE(tree_1000.HasRoot());
49 }
50}
51
52TEST_SUITE("GaitPatternGraphTree::HasRoot")
53{
56
57 TEST_CASE("根ノードがある時,trueを返すべき")
58 {
59 RobotStateNode root_node;
60 root_node.ChangeLootNode();
61
62 // Arrange1.
63 GaitPatternGraphTree tree_10(10);
64 CHECK_FALSE(tree_10.HasRoot());
65 tree_10.AddNode(root_node);
66
67 // Assert1.
68 CHECK(tree_10.HasRoot());
69
70 // Arrange2.
71 GaitPatternGraphTree tree_1000(1000);
72 CHECK_FALSE(tree_1000.HasRoot());
73 tree_1000.AddNode(root_node);
74
75 // Assert2.
76 CHECK(tree_1000.HasRoot());
77 }
78}
79
80#endif // DESIGNLAB_GAIT_PATTERN_GRAPH_TREE_TEST_H_
RobotStateNode 構造体をノードとする木構造のグラフのクラス.
TEST_SUITE("GaitPatternGraphTree::Constructor")
グラフ構造のためのノード(頂点).旧名 LNODE
void ChangeLootNode()
自身を根ノードに変更する関数. depthを0に,parent_numを-1に初期化する.