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
15TEST_SUITE("SimulationMapParameterValidator::Validate") {
18
19 SimulationMapParameterValidator validator;
20
21 TEST_CASE("ホール率が0未満の時,falseが返るべき") {
22 SUBCASE("ホール率が-1の時,falseが返るべき") {
23 SimulationMapParameter parameter;
24 parameter.hole_rate = -1;
25 const auto [result, _] = validator.Validate(parameter);
26
27 CHECK_FALSE(result);
28 }
29
30 SUBCASE("ホール率が0の時,trueが返るべき") {
31 // 境界値テスト.
32 SimulationMapParameter parameter;
33 parameter.hole_rate = 0;
34 const auto [result, _] = validator.Validate(parameter);
35
36 CHECK(result);
37 }
38 }
39
40 TEST_CASE("ホール率が100より大きい時,falseが返るべき") {
41 SUBCASE("ホール率が101の時,falseが返るべき") {
42 SimulationMapParameter parameter;
43 parameter.hole_rate = 101;
44 const auto [result, _] = validator.Validate(parameter);
45
46 CHECK_FALSE(result);
47 }
48
49 SUBCASE("ホール率が100の時,trueが返るべき") {
50 // 境界値テスト.
51 SimulationMapParameter parameter;
52 parameter.hole_rate = 100;
53 const auto [result, _] = validator.Validate(parameter);
54
55 CHECK(result);
56 }
57 }
58
59 TEST_CASE("不整地の最小値が最大値を上回っている時,falseを返すべき") {
60 SUBCASE("不整地の最小値が最大値より大きい時,falseを返すべき") {
61 SimulationMapParameter parameter;
62 parameter.rough_min_height = 10.f;
63 parameter.rough_max_height = -10.f;
64 const auto [result, _] = validator.Validate(parameter);
65
66 CHECK_FALSE(result);
67 }
68
69 SUBCASE("不整地の最小値が最大値と等しい時,trueを返すべき") {
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(result);
77 }
78 }
79
80 TEST_CASE("ストライプの間隔が0未満の時,falseを返すべき") {
81 SUBCASE("ストライプの間隔が-1の時,falseを返すべき") {
82 SimulationMapParameter parameter;
83 parameter.stripe_interval = -1;
84 const auto [result, _] = validator.Validate(parameter);
85
86 CHECK_FALSE(result);
87 }
88
89 SUBCASE("ストライプの間隔が0の時,trueを返すべき") {
90 // 境界値テスト.
91 SimulationMapParameter parameter;
92 parameter.stripe_interval = 0;
93 const auto [result, _] = validator.Validate(parameter);
94
95 CHECK(result);
96 }
97 }
98
99 TEST_CASE("階段の奥行が0未満の時,falseを返すべき") {
100 SUBCASE("階段の奥行が-1の時,falseを返すべき") {
101 SimulationMapParameter parameter;
102 parameter.step_length = -1.f;
103 const auto [result, _] = validator.Validate(parameter);
104
105 CHECK_FALSE(result);
106 }
107
108 SUBCASE("階段の奥行が0の時,trueを返すべき") {
109 // 境界値テスト.
110 SimulationMapParameter parameter;
111 parameter.step_length = 0.f;
112 const auto [result, _] = validator.Validate(parameter);
113
114 CHECK(result);
115 }
116 }
117}
118
119#endif // DESIGNLAB_SIMULATION_MAP_PARAMETER_VALIDATOR_TEST_H_
std::tuple< bool, std::string > Validate(const SimulationMapParameter &toml_data) const override
TOMLファイルのデータの検証を行う.
TEST_SUITE("SimulationMapParameterValidator::Validate")
マップ生成時のモードとオプションを指定する構造体.