<jupyter_start><jupyter_text>Scenario generation The script `ring_generator.py` will generate `XML` files for SymuVia based on a specified number of vehicles.   Big case In this case `48` *HDV* + `2` *CAV* vehicles will fill the circle<jupyter_code>%run network/ring_generator.py 48 "network"<jupyter_output>Creating XML internal points
Scenario:(('HDV', 24), ('CAV', 1), ('HDV', 24), ('CAV', 1), ('NOVEH', 1))
R: 397.8873577297383
Circle length: 2499.9999999999995
File created at: network/ring_48_cav.xml<jupyter_text>Medium caseIn this case `24` *HDV* + `2` *CAV* vehicles will fill the circle<jupyter_code>%run network/ring_generator.py 24 "network"<jupyter_output>Creating XML internal points
Scenario:(('HDV', 12), ('CAV', 1), ('HDV', 12), ('CAV', 1), ('NOVEH', 1))
R: 206.90142601946394
Circle length: 1300.0
File created at: network/ring_24_cav.xml<jupyter_text>Small caseIn this case `14` *HDV* + `2` *CAV* vehicles will fill the circle<jupyter_code>%run network/ring_generator.py 14 "network"<jupyter_output>Creating XML internal points
Scenario:(('HDV', 7), ('CAV', 1), ('HDV', 7), ('CAV', 1), ('NOVEH', 1))
R: 127.32395447351627
Circle length: 800.0
File created at: network/ring_14_cav.xml<jupyter_text>Simulations<jupyter_code>from symupy.api import Simulation, Simulator
filename_path = os.path.join(os.getcwd(),"network/ring_48_cav.xml")
sim_path = os.path.join(os.getcwd(),"symupy/lib/darwin/libSymuVia.dylib")
sim_instance = Simulator.from_path(filename_path, sim_path)
sim_instance
with sim_instance as s:
    while s.do_next:
        s.run_step()<jupyter_output>Step: 0
Step: 1
Step: 2
Step: 3
Step: 4
Step: 5
Step: 6
Step: 7
Step: 8
Step: 9
Step: 10
Step: 11
Step: 12
Step: 13
Step: 14
Step: 15
Step: 16
Step: 17
Step: 18
Step: 19
Step: 20
Step: 21
Step: 22
Step: 23
Step: 24
Step: 25
Step: 26
Step: 27
Step: 28
Step: 29
Step: 30
Step: 31
Step: 32
Step: 33
Step: 34
Step: 35
Step: 36
Step: 37
Step: 38
Step: 39
Step: 40
Step: 41
Step: 42
Step: 43
Step: 44
Step: 45
Step: 46
Step: 47
Step: 48
Step: 49
Step: 50
Step: 51
Step: 52
Step: 53
Step: 54
Step: 55
Step: 56
Step: 57
Step: 58
Step: 59
Step: 60
Step: 61
Step: 62
Step: 63
Step: 64
Step: 65
Step: 66
Step: 67
Step: 68
Step: 69
Step: 70
Step: 71
Step: 72
Step: 73
Step: 74
Step: 75
Step: 76
Step: 77
Step: 78
Step: 79
Step: 80
Step: 81
Step: 82
Step: 83
Step: 84
Step: 85
Step: 86
Step: 87
Step: 88
Step: 89
Step: 90
Step: 91
Step: 92
Step: 93
Step: 94
Step: 95
Step: 96
Step: 97
Step: 98
Step: 99
Step: 100
Step: 101
Step: 102
Step: 103
Step: 104
Step: 105
Step: 106
Step: 107
Step: 108
Step: 109
Step: 110
[...]
{'fraction_non_alphanumeric': 0.13451874758407423, 'fraction_numerical': 0.13181291070738307, 'mean_word_length': 5.004640371229699, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 1, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '415859', 'license': 'MIT', 'n_tokens_mistral': 1359, 'n_tokens_neox': 1041, 'n_words': 371, 'path': 'Notebook.ipynb', 'repo_name': 'aladinoster/wave-congestion-absorption', 'size': '2587'}