Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
InternalTest.h
Go to the documentation of this file.
1/****************************************************************************/
2// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.
4// This program and the accompanying materials are made available under the
5// terms of the Eclipse Public License 2.0 which is available at
6// https://www.eclipse.org/legal/epl-2.0/
7// This Source Code may also be made available under the following Secondary
8// Licenses when the conditions for such availability set forth in the Eclipse
9// Public License 2.0 are satisfied: GNU General Public License, version 2
10// or later which is available at
11// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13/****************************************************************************/
18// Class used for internal tests
19/****************************************************************************/
20#pragma once
21#include <config.h>
22
23#include <string>
24#include <vector>
25#include <map>
26
28
29// ===========================================================================
30// class declaration
31// ===========================================================================
32
34
35// ===========================================================================
36// class definitions
37// ===========================================================================
38
39class InternalTest : public FXObject {
40
41public:
44
45 public:
48
50 ViewPosition(const int xValue, const int yValue);
51
53 ViewPosition(const std::string& xValue, const std::string& yValue);
54
56 int getX() const;
57
59 int getY() const;
60
61 private:
63 int myX = 0;
64
66 int myY = 0;
67 };
68
71
72 public:
75
77 ContextualMenu(const std::string& mainMenuValue, const std::string& subMenuAValue,
78 const std::string& subMenuBValue);
79
81 int getMainMenuPosition() const;
82
84 int getSubMenuAPosition() const;
85
87 int getSubMenuBPosition() const;
88
89 private:
91 int myMainMenu = 0;
92
94 int mySubMenuA = 0;
95
97 int mySubMenuB = 0;
98 };
99
101 class Movement {
102
103 public:
105 Movement();
106
108 Movement(const std::string& up, const std::string& down,
109 const std::string& left, const std::string& right);
110
112 int getUp() const;
113
115 int getDown() const;
116
118 int getLeft() const;
119
121 int getRight() const;
122
123 private:
125 int myUp = 0;
126
128 int myDown = 0;
129
131 int myLeft = 0;
132
134 int myRight = 0;
135 };
136
138 InternalTest(const std::string& testFile);
139
142
144 FXint getTime() const;
145
147 void addTestSteps(InternalTestStep* internalTestStep);
148
151
154
156 const std::map<std::string, int>& getAttributesEnum() const;
157
159 const std::map<std::string, InternalTest::ContextualMenu>& getContextualMenuOperations() const;
160
162 const std::map<std::string, InternalTest::ViewPosition>& getViewPositions() const;
163
165 const std::map<std::string, InternalTest::Movement>& getMovements() const;
166
169
171 void updateLastMovedPosition(const int x, const int y);
172
174 std::vector<InternalTest::ViewPosition> interpolateViewPositions(
175 const InternalTest::ViewPosition& viewStartPosition,
176 const int offsetStartX, const int offsetStartY,
177 const InternalTest::ViewPosition& viewEndPosition,
178 const int offsetEndX, const int offsetEndY) const;
179
180protected:
182 std::vector<InternalTestStep*> myTestSteps;
183
185 size_t myCurrentStep = 0;
186
188 std::map<std::string, int> myAttributesEnum;
189
191 std::map<std::string, InternalTest::ContextualMenu> myContextualMenuOperations;
192
194 std::map<std::string, InternalTest::ViewPosition> myViewPositions;
195
197 std::map<std::string, InternalTest::Movement> myMovements;
198
201
203 std::map<std::string, int> parseAttributesEnumFile(const std::string filePath) const;
204
206 std::map<std::string, InternalTest::ContextualMenu> parseContextualMenuOperationsFile(const std::string filePath) const;
207
209 std::map<std::string, InternalTest::ViewPosition> parseViewPositionsFile(const std::string filePath) const;
210
212 std::map<std::string, InternalTest::Movement> parseMovementsFile(const std::string filePath) const;
213
215 std::vector<std::string> cleanLines(const std::vector<std::pair<bool, std::string> >& linesRaw) const;
216
218 bool startWith(const std::string& str, const std::string& prefix) const;
219
220private:
222 InternalTest() = delete;
223
225 InternalTest(const InternalTest&) = delete;
226
228 InternalTest& operator=(const InternalTest& src) = delete;
229};
int getUp() const
get up value
int getLeft() const
get left value
int getDown() const
get down value
Movement()
default constructor
int getRight() const
get right value
int myRight
right value
int getY() const
get y value
int getX() const
get x value
ViewPosition()
default constructor
std::vector< InternalTest::ViewPosition > interpolateViewPositions(const InternalTest::ViewPosition &viewStartPosition, const int offsetStartX, const int offsetStartY, const InternalTest::ViewPosition &viewEndPosition, const int offsetEndX, const int offsetEndY) const
interpolate view positions
InternalTest(const InternalTest &)=delete
Invalidated copy constructor.
void addTestSteps(InternalTestStep *internalTestStep)
add test steps
InternalTestStep * getCurrentStep() const
get current step
const std::map< std::string, InternalTest::ContextualMenu > & getContextualMenuOperations() const
get map with contextual menu operation jump steps
bool startWith(const std::string &str, const std::string &prefix) const
check if the given string start with
std::vector< std::string > cleanLines(const std::vector< std::pair< bool, std::string > > &linesRaw) const
clear lines
const std::map< std::string, int > & getAttributesEnum() const
get map with attributesEnum jump steps
InternalTest & operator=(const InternalTest &src)=delete
Invalidated assignment operator.
InternalTest::ViewPosition myLastMovedPosition
last moved position
std::map< std::string, int > parseAttributesEnumFile(const std::string filePath) const
parse attributesEnum file
std::vector< InternalTestStep * > myTestSteps
test steps
std::map< std::string, InternalTest::ViewPosition > parseViewPositionsFile(const std::string filePath) const
parse viewPositions file
~InternalTest()
destructor
std::map< std::string, InternalTest::Movement > myMovements
vector with movements
size_t myCurrentStep
current step index
std::map< std::string, InternalTest::ContextualMenu > myContextualMenuOperations
vector with contextual menu operation jump steps
std::map< std::string, InternalTest::ContextualMenu > parseContextualMenuOperationsFile(const std::string filePath) const
parse attributesEnum file
std::map< std::string, InternalTest::ViewPosition > myViewPositions
vector with view positions
std::map< std::string, int > myAttributesEnum
vector with attributesEnum jump steps
std::map< std::string, InternalTest::Movement > parseMovementsFile(const std::string filePath) const
parse movements file
const std::map< std::string, InternalTest::ViewPosition > & getViewPositions() const
get map with view position pairs
InternalTest()=delete
invalidate default constructor
FXint getTime() const
get currentTime
void updateLastMovedPosition(const int x, const int y)
update last moved position
const InternalTest::ViewPosition & getLastMovedPosition() const
get last moved position
InternalTestStep * getLastTestStep() const
get last test step
const std::map< std::string, InternalTest::Movement > & getMovements() const
get map with movement pairs
int getSubMenuBPosition() const
get submenu B position
int getMainMenuPosition() const
get main menu position
ContextualMenu()
default constructor
int getSubMenuAPosition() const
get submenu A position