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
145
147 void addTestSteps(InternalTestStep* internalTestStep);
148
151
154
156
158 bool isRunning() const;
159
161 FXint getTime() const;
162
164 const std::map<std::string, int>& getAttributesEnum() const;
165
167 const std::map<std::string, InternalTest::ContextualMenu>& getContextualMenuOperations() const;
168
170 const std::map<std::string, InternalTest::ViewPosition>& getViewPositions() const;
171
173 const std::map<std::string, InternalTest::Movement>& getMovements() const;
174
177
179 void updateLastMovedPosition(const int x, const int y);
180
182 std::vector<InternalTest::ViewPosition> interpolateViewPositions(
183 const InternalTest::ViewPosition& viewStartPosition,
184 const int offsetStartX, const int offsetStartY,
185 const InternalTest::ViewPosition& viewEndPosition,
186 const int offsetEndX, const int offsetEndY) const;
187
188protected:
191
194
197
199 bool myRunning = false;
200
202 std::map<std::string, int> myAttributesEnum;
203
205 std::map<std::string, InternalTest::ContextualMenu> myContextualMenuOperations;
206
208 std::map<std::string, InternalTest::ViewPosition> myViewPositions;
209
211 std::map<std::string, InternalTest::Movement> myMovements;
212
215
217 std::map<std::string, int> parseAttributesEnumFile(const std::string filePath) const;
218
220 std::map<std::string, InternalTest::ContextualMenu> parseContextualMenuOperationsFile(const std::string filePath) const;
221
223 std::map<std::string, InternalTest::ViewPosition> parseViewPositionsFile(const std::string filePath) const;
224
226 std::map<std::string, InternalTest::Movement> parseMovementsFile(const std::string filePath) const;
227
229 std::vector<std::string> cleanLines(const std::vector<std::pair<bool, std::string> >& linesRaw) const;
230
232 bool startWith(const std::string& str, const std::string& prefix) const;
233
234private:
236 InternalTest() = delete;
237
239 InternalTest(const InternalTest&) = delete;
240
242 InternalTest& operator=(const InternalTest& src) = delete;
243};
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.
bool isRunning() const
check if test is running
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
InternalTestStep * myLastTestStep
last test steps
InternalTestStep * myCurrentTestStep
current test step
std::map< std::string, int > parseAttributesEnumFile(const std::string filePath) const
parse attributesEnum file
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
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
bool myRunning
flag to indicate if test is running
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
InternalTestStep * setNextStep()
get current step and set next step
const InternalTest::ViewPosition & getLastMovedPosition() const
get last moved position
InternalTestStep * myInitialTestStep
initial test steps
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