GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
simulation_map_parameter_validator_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_SIMULATION_MAP_PARAMETER_VALIDATOR_TEST_H_
9#define DESIGNLAB_SIMULATION_MAP_PARAMETER_VALIDATOR_TEST_H_
10
11#include <doctest.h>
12
14
15
16TEST_SUITE("SimulationMapParameterValidator::Validate")
17{
20
21 SimulationMapParameterValidator validator;
22
23 TEST_CASE("ホール率が0未満の時,falseが返るべき")
24 {
25 SUBCASE("ホール率が-1の時,falseが返るべき")
26 {
27 SimulationMapParameter parameter;
28 parameter.hole_rate = -1;
29 const auto [result, _] = validator.Validate(parameter);
30
31 CHECK_FALSE(result);
32 }
33
34 SUBCASE("ホール率が0の時,trueが返るべき")
35 {
36 // 境界値テスト.
37 SimulationMapParameter parameter;
38 parameter.hole_rate = 0;
39 const auto [result, _] = validator.Validate(parameter);
40
41 CHECK(result);
42 }
43 }
44
45 TEST_CASE("ホール率が100より大きい時,falseが返るべき")
46 {
47 SUBCASE("ホール率が101の時,falseが返るべき")
48 {
49 SimulationMapParameter parameter;
50 parameter.hole_rate = 101;
51 const auto [result, _] = validator.Validate(parameter);
52
53 CHECK_FALSE(result);
54 }
55
56 SUBCASE("ホール率が100の時,trueが返るべき")
57 {
58 // 境界値テスト.
59 SimulationMapParameter parameter;
60 parameter.hole_rate = 100;
61 const auto [result, _] = validator.Validate(parameter);
62
63 CHECK(result);
64 }
65 }
66
67 TEST_CASE("不整地の最小値が最大値を上回っている時,falseを返すべき")
68 {
69 SUBCASE("不整地の最小値が最大値より大きい時,falseを返すべき")
70 {
71 SimulationMapParameter parameter;
72 parameter.rough_min_height = 10.f;
73 parameter.rough_max_height = -10.f;
74 const auto [result, _] = validator.Validate(parameter);
75
76 CHECK_FALSE(result);
77 }
78
79 SUBCASE("不整地の最小値が最大値と等しい時,trueを返すべき")
80 {
81 // 境界値テスト.
82 SimulationMapParameter parameter;
83 parameter.rough_min_height = 10.f;
84 parameter.rough_max_height = 10.f;
85 const auto [result, _] = validator.Validate(parameter);
86
87 CHECK(result);
88 }
89 }
90
91 TEST_CASE("ストライプの間隔が0未満の時,falseを返すべき")
92 {
93 SUBCASE("ストライプの間隔が-1の時,falseを返すべき")
94 {
95 SimulationMapParameter parameter;
96 parameter.stripe_interval = -1;
97 const auto [result, _] = validator.Validate(parameter);
98
99 CHECK_FALSE(result);
100 }
101
102 SUBCASE("ストライプの間隔が0の時,trueを返すべき")
103 {
104 // 境界値テスト.
105 SimulationMapParameter parameter;
106 parameter.stripe_interval = 0;
107 const auto [result, _] = validator.Validate(parameter);
108
109 CHECK(result);
110 }
111 }
112
113 TEST_CASE("階段の奥行が0未満の時,falseを返すべき")
114 {
115 SUBCASE("階段の奥行が-1の時,falseを返すべき")
116 {
117 SimulationMapParameter parameter;
118 parameter.step_length = -1.f;
119 const auto [result, _] = validator.Validate(parameter);
120
121 CHECK_FALSE(result);
122 }
123
124 SUBCASE("階段の奥行が0の時,trueを返すべき")
125 {
126 // 境界値テスト.
127 SimulationMapParameter parameter;
128 parameter.step_length = 0.f;
129 const auto [result, _] = validator.Validate(parameter);
130
131 CHECK(result);
132 }
133 }
134}
135
136#endif // DESIGNLAB_SIMULATION_MAP_PARAMETER_VALIDATOR_TEST_H_
SimulationMapParameter のバリデータ.
std::tuple< bool, std::string > Validate(const SimulationMapParameter &toml_data) const override
TOMLファイルのデータの検証を行う.
TEST_SUITE("SimulationMapParameterValidator::Validate")
マップ生成時のモードとオプションを指定する構造体.