Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/tests/netedit/network/junctions/create/complex/test.py
169771 views
1
#!/usr/bin/env python
2
# Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3
# Copyright (C) 2009-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
14
# @file test.py
15
# @author Pablo Alvarez Lopez
16
# @date 2016-11-25
17
18
# import common functions for netedit tests
19
import os
20
import sys
21
22
sys.path.append(os.path.join(os.environ.get("SUMO_HOME", "."), "tools"))
23
import neteditTestFunctions as netedit # noqa
24
25
# Open netedit
26
neteditProcess, referencePosition = netedit.setupAndStart()
27
28
# Change to create edge mode
29
netedit.changeMode("createEdge")
30
31
# select two-way mode
32
netedit.changeEditMode(netedit.attrs.modes.network.twoWayMode)
33
34
# select chain mode
35
netedit.changeEditMode(netedit.attrs.modes.network.chainMode)
36
37
# create a circular road
38
netedit.leftClick(referencePosition, netedit.positions.network.junction.positionA)
39
netedit.leftClick(referencePosition, netedit.positions.network.junction.positionB)
40
netedit.leftClick(referencePosition, netedit.positions.network.junction.positionC)
41
netedit.leftClick(referencePosition, netedit.positions.network.junction.positionD)
42
netedit.leftClick(referencePosition, netedit.positions.network.junction.positionA)
43
netedit.typeKey("esc")
44
45
# disable chain mode
46
netedit.changeEditMode(netedit.attrs.modes.network.chainMode)
47
48
# create a complex intersection
49
netedit.leftClick(referencePosition, netedit.positions.network.junction.positionA)
50
netedit.leftClick(referencePosition, netedit.positions.network.junction.cross.center)
51
52
netedit.leftClick(referencePosition, netedit.positions.network.junction.positionB)
53
netedit.leftClick(referencePosition, netedit.positions.network.junction.cross.center)
54
55
netedit.leftClick(referencePosition, netedit.positions.network.junction.positionC)
56
netedit.leftClick(referencePosition, netedit.positions.network.junction.cross.center)
57
58
netedit.leftClick(referencePosition, netedit.positions.network.junction.positionD)
59
netedit.leftClick(referencePosition, netedit.positions.network.junction.cross.center)
60
61
# rebuild network
62
netedit.computeJunctions()
63
64
# Check undo and redo
65
netedit.undo(referencePosition, 8)
66
netedit.redo(referencePosition, 8)
67
68
# save Netedit config
69
netedit.saveExistentFile("neteditConfig")
70
71
# quit netedit
72
netedit.quit(neteditProcess)
73
74