GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
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"
13
14TEST_SUITE("GaitPatternGraphTree::Constructor") {
16
17 TEST_CASE("初期化した時,グラフの要素は0になるべき") {
18 const GaitPatternGraphTree tree_10(10);
19 const GaitPatternGraphTree tree_1000(1000);
20
21 SUBCASE("グラフのサイズは0になるべき") {
22 const float expect_size = 0;
23
24 CHECK(tree_10.GetGraphSize() == expect_size);
25
26 CHECK(tree_1000.GetGraphSize() == expect_size);
27 }
28
29 SUBCASE("グラフが空になるべき") {
30 CHECK(tree_10.IsEmpty());
31
32 CHECK(tree_1000.IsEmpty());
33 }
34 }
35
36 TEST_CASE("初期化した時,ルートは存在するべきでない") {
37 GaitPatternGraphTree tree_10(10);
38 CHECK_FALSE(tree_10.HasRoot());
39
40 GaitPatternGraphTree tree_1000(1000);
41 CHECK_FALSE(tree_1000.HasRoot());
42 }
43}
44
45TEST_SUITE("GaitPatternGraphTree::HasRoot") {
48
49 TEST_CASE("根ノードがある時,trueを返すべき") {
50 RobotStateNode root_node;
51 root_node.ChangeLootNode();
52
53 // Arrange1.
54 GaitPatternGraphTree tree_10(10);
55 CHECK_FALSE(tree_10.HasRoot());
56 tree_10.AddNode(root_node);
57
58 // Assert1.
59 CHECK(tree_10.HasRoot());
60
61 // Arrange2.
62 GaitPatternGraphTree tree_1000(1000);
63 CHECK_FALSE(tree_1000.HasRoot());
64 tree_1000.AddNode(root_node);
65
66 // Assert2.
67 CHECK(tree_1000.HasRoot());
68 }
69}
70
71#endif // DESIGNLAB_GAIT_PATTERN_GRAPH_TREE_TEST_H_
RobotStateNode 構造体をノードとする木構造のグラフのクラス.
TEST_SUITE("GaitPatternGraphTree::Constructor")
グラフ構造のためのノード(頂点).
void ChangeLootNode()
自身を根ノードに変更する関数. depthを0に,parent_numを-1に初期化する.