1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
use abstio::MapName;
use abstutil::Timer;
use sim::prebake::prebake;
use sim::{ScenarioGenerator, SimFlags};
use synthpop::Scenario;
use crate::sandbox::TutorialState;
pub fn prebake_all() {
let mut timer = Timer::new("prebake all challenge results");
{
let map =
map_model::Map::load_synchronously(MapName::seattle("montlake").path(), &mut timer);
for generator in TutorialState::scenarios_to_prebake(&map) {
let scenario = generator.generate(
&map,
&mut SimFlags::for_test("prebaked").make_rng(),
&mut timer,
);
prebake(&map, scenario, &mut timer);
}
}
let mut summaries = Vec::new();
for name in vec![
MapName::seattle("montlake"),
] {
let map = map_model::Map::load_synchronously(name.path(), &mut timer);
let scenario: Scenario =
abstio::read_binary(abstio::path_scenario(map.get_name(), "weekday"), &mut timer);
summaries.push(prebake(&map, scenario, &mut timer));
}
if false {
let pbury_map = map_model::Map::load_synchronously(
MapName::new("gb", "poundbury", "center").path(),
&mut timer,
);
for scenario_name in ["base", "go_active", "base_with_bg", "go_active_with_bg"] {
let scenario: Scenario = abstio::read_binary(
abstio::path_scenario(pbury_map.get_name(), scenario_name),
&mut timer,
);
summaries.push(prebake(&pbury_map, scenario, &mut timer));
}
}
if false {
let tehran_map = map_model::Map::load_synchronously(
MapName::new("ir", "tehran", "parliament").path(),
&mut timer,
);
let scenario = ScenarioGenerator::proletariat_robot(
&tehran_map,
&mut SimFlags::for_test("prebaked").make_rng(),
&mut timer,
);
summaries.push(prebake(&tehran_map, scenario, &mut timer));
}
{
let map = map_model::Map::load_synchronously(
MapName::new("br", "sao_paulo", "sao_miguel_paulista").path(),
&mut timer,
);
let scenario: Scenario =
abstio::read_binary(abstio::path_scenario(map.get_name(), "Full"), &mut timer);
summaries.push(prebake(&map, scenario, &mut timer));
}
abstio::write_json(
"tests/goldenfiles/prebaked_summaries.json".to_string(),
&summaries,
);
}