[INFO] cloning repository https://github.com/klampatech/world-factory
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/klampatech/world-factory" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fklampatech%2Fworld-factory", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fklampatech%2Fworld-factory'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 061b8f73f575ef15c95aa77a3a15e274232ff75f
[INFO] testing klampatech/world-factory against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fklampatech%2Fworld-factory" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  89% (1478/1646)
Updating files:  90% (1482/1646)
Updating files:  91% (1498/1646)
Updating files:  92% (1515/1646)
Updating files:  93% (1531/1646)
Updating files:  94% (1548/1646)
Updating files:  95% (1564/1646)
Updating files:  96% (1581/1646)
Updating files:  97% (1597/1646)
Updating files:  98% (1614/1646)
Updating files:  99% (1630/1646)
Updating files: 100% (1646/1646)
Updating files: 100% (1646/1646), done.
[INFO] started tweaking git repo https://github.com/klampatech/world-factory
[INFO] removed 0 missing examples
[INFO] finished tweaking git repo https://github.com/klampatech/world-factory
[INFO] tweaked toml for git repo https://github.com/klampatech/world-factory written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/klampatech/world-factory on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/klampatech/world-factory already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded http-range-header v0.4.2
[INFO] [stderr]   Downloaded serde_arrays v0.2.0
[INFO] [stderr]   Downloaded unarray v0.1.4
[INFO] [stderr]   Downloaded tar v0.4.45
[INFO] [stderr]   Downloaded rand_xorshift v0.4.0
[INFO] [stderr]   Downloaded rusty-fork v0.3.1
[INFO] [stderr]   Downloaded proptest v1.11.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] c2ceb3b927118f30978b0577df4614ae707d544497095a846a7f4bca2a2e4c82
[INFO] running `Command { std: "docker" "start" "c2ceb3b927118f30978b0577df4614ae707d544497095a846a7f4bca2a2e4c82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c2ceb3b927118f30978b0577df4614ae707d544497095a846a7f4bca2a2e4c82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c2ceb3b927118f30978b0577df4614ae707d544497095a846a7f4bca2a2e4c82" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c2ceb3b927118f30978b0577df4614ae707d544497095a846a7f4bca2a2e4c82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c2ceb3b927118f30978b0577df4614ae707d544497095a846a7f4bca2a2e4c82" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling winnow v1.0.2
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling tar v0.4.45
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_arrays v0.2.0
[INFO] [stderr]    Compiling world-factory v1.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `AlignmentBonus`, `BeastBond`, `FactionGoal`, and `FactionType`
[INFO] [stdout]   --> src/faction_turn.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     AlignmentBonus, AssetCategory, BeastBond, BeastBondType, CampaignState, Faction, FactionAsset,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^                 ^^^^^^^^^
[INFO] [stdout] 22 |     FactionGoal, FactionRegistry, FactionTurnState, FactionType, GoalType, TurnPhase,
[INFO] [stdout]    |     ^^^^^^^^^^^                                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/terrain/elevation.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BeastElement`, `BeastState`, `PrimalBeast`, and `profiles::get_beast_profile`
[INFO] [stdout]   --> src/beasts/effects.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     profiles::get_beast_profile, BeastElement, BeastState, PrimalBeast, PrimalBeastInstance,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BiomeType`
[INFO] [stdout]   --> src/beasts/effects.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::terrain::{BiomeType, TerrainCell};
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BeastElement` and `PrimalBeast`
[INFO] [stdout]   --> src/beasts/movement.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::{BeastElement, BeastState, PrimalBeast, PrimalBeastInstance};
[INFO] [stdout]    |             ^^^^^^^^^^^^              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BeastState`
[INFO] [stdout]  --> src/beasts/profiles.rs:6:38
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::{BeastElement, BeastForm, BeastState, PrimalBeast};
[INFO] [stdout]   |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::EntityId`
[INFO] [stdout]  --> src/beasts/profiles.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::types::EntityId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]   --> src/beasts/remnants.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::f32::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> src/beasts/mod.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/packaging.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::io::{self, Read, Write};
[INFO] [stdout]   |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `category`
[INFO] [stdout]    --> src/faction_turn.rs:503:36
[INFO] [stdout]     |
[INFO] [stdout] 503 |     pub fn with_category(mut self, category: AssetCategory) -> Self {
[INFO] [stdout]     |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fm`
[INFO] [stdout]    --> src/faction_turn.rs:613:25
[INFO] [stdout]     |
[INFO] [stdout] 613 |             if let Some(fm) = fm {
[INFO] [stdout]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_fm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/events/mod.rs:264:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |             (start, end) => Some(end - start),
[INFO] [stdout]     |             ------------ matches any value
[INFO] [stdout] 264 |             _ => None,
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `final_population` is never read
[INFO] [stdout]    --> src/history/generator.rs:483:36
[INFO] [stdout]     |
[INFO] [stdout] 483 |         let mut final_population = 0u64;
[INFO] [stdout]     |                                    ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 550 |         final_population = societies_map.values().map(|s| s.population).sum();
[INFO] [stdout]     |         --------------------------------------------------------------------- `final_population` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `base_suitability` is never read
[INFO] [stdout]    --> src/settlements/mod.rs:582:41
[INFO] [stdout]     |
[INFO] [stdout] 582 |         let mut base_suitability: f32 = 0.0;
[INFO] [stdout]     |                                         ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 592 |             base_suitability = (carrying_capacity / 7000.0).min(1.0) * 0.6;
[INFO] [stdout]     |             -------------------------------------------------------------- `base_suitability` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `soil_fertility` is never read
[INFO] [stdout]    --> src/settlements/mod.rs:584:39
[INFO] [stdout]     |
[INFO] [stdout] 584 |           let mut soil_fertility: f32 = 0.0;
[INFO] [stdout]     |                                         ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 604 | /         soil_fertility = match biome {
[INFO] [stdout] 605 | |             BiomeType::TemperateGrassland | BiomeType::TropicalSavanna => 1.0,
[INFO] [stdout] 606 | |             BiomeType::TemperateDeciduousForest | BiomeType::TemperateMixedForest => 0.8,
[INFO] [stdout] 607 | |             BiomeType::SubtropicalSeasonalForest | BiomeType::TropicalSeasonalForest => 0.7,
[INFO] [stdout] 608 | |             _ => 0.3,
[INFO] [stdout] 609 | |         };
[INFO] [stdout]     | |_________- `soil_fertility` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/simulation/population.rs:551:17
[INFO] [stdout]     |
[INFO] [stdout] 551 |                 _ => 1.0,
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/simulation/population.rs:551:17
[INFO] [stdout]     |
[INFO] [stdout] 545 |                 SpeciesId::Human => 1.0,
[INFO] [stdout]     |                 ---------------- matches some of the same values
[INFO] [stdout] 546 |                 SpeciesId::Elf => 0.8,
[INFO] [stdout]     |                 -------------- matches some of the same values
[INFO] [stdout] 547 |                 SpeciesId::Dwarf => 1.1,
[INFO] [stdout]     |                 ---------------- matches some of the same values
[INFO] [stdout] 548 |                 SpeciesId::Orc => 1.3,
[INFO] [stdout]     |                 -------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 551 |                 _ => 1.0,
[INFO] [stdout]     |                 ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/simulation/population.rs:891:13
[INFO] [stdout]     |
[INFO] [stdout] 891 |             _ => 1.0, // Unknown species get base rate
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/simulation/population.rs:891:13
[INFO] [stdout]     |
[INFO] [stdout] 885 |             SpeciesId::Human => 1.0,    // Base - adaptable
[INFO] [stdout]     |             ---------------- matches some of the same values
[INFO] [stdout] 886 |             SpeciesId::Elf => 0.8,      // Slower reproduction
[INFO] [stdout]     |             -------------- matches some of the same values
[INFO] [stdout] 887 |             SpeciesId::Dwarf => 1.1,    // Industrious
[INFO] [stdout]     |             ---------------- matches some of the same values
[INFO] [stdout] 888 |             SpeciesId::Orc => 1.3,      // High birth rate
[INFO] [stdout]     |             -------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 891 |             _ => 1.0, // Unknown species get base rate
[INFO] [stdout]     |             ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/simulation/population.rs:1182:9
[INFO] [stdout]      |
[INFO] [stdout] 1168 |         BiomeType::TropicalSeasonalForest => 30_000,
[INFO] [stdout]      |         --------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 1182 |         BiomeType::TropicalSeasonalForest => 35_000,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/terrain/biome.rs:345:13
[INFO] [stdout]     |
[INFO] [stdout] 315 |             BiomeType::SubtropicalDesert => "Subtropical Desert",
[INFO] [stdout]     |             ---------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 345 |             BiomeType::SubtropicalDesert => "Subtropical Desert",
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/terrain/biome.rs:346:13
[INFO] [stdout]     |
[INFO] [stdout] 320 |             BiomeType::TemperateDesert => "Temperate Desert",
[INFO] [stdout]     |             -------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 346 |             BiomeType::TemperateDesert => "Temperate Desert",
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/terrain/resource_types.rs:466:13
[INFO] [stdout]     |
[INFO] [stdout] 438 |             ResourceType::Limestone => 0.15,
[INFO] [stdout]     |             ----------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 466 |             ResourceType::Limestone => 0.35,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/artifacts.rs:510:9
[INFO] [stdout]     |
[INFO] [stdout] 510 |         context: &ArtifactCreationContext,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/beasts/remnants.rs:119:36
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn affects_position(&self, position: u32, distance_km: f32) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/beasts/mod.rs:217:35
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn is_in_territory(&self, position: u32, distance_km: f32) -> bool {
[INFO] [stdout]     |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PredictionPattern` is more private than the item `EventPredictor::get_patterns_for`
[INFO] [stdout]    --> src/events/probability/event_predictor.rs:295:5
[INFO] [stdout]     |
[INFO] [stdout] 295 |     pub fn get_patterns_for(&self, event_type: EventType) -> Vec<&PredictionPattern> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `EventPredictor::get_patterns_for` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `PredictionPattern` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/events/probability/event_predictor.rs:338:1
[INFO] [stdout]     |
[INFO] [stdout] 338 | struct PredictionPattern {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SettlementState` is more private than the item `PopulationGrowthService::get_all_populations`
[INFO] [stdout]    --> src/history/population.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     pub fn get_all_populations(&self) -> &HashMap<Uuid, SettlementState> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `PopulationGrowthService::get_all_populations` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SettlementState` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/history/population.rs:485:1
[INFO] [stdout]     |
[INFO] [stdout] 485 | struct SettlementState {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `calculate_income` and `update_goal_progress` are never used
[INFO] [stdout]    --> src/faction_integration.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl FactionTurnProcessor {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn calculate_income(&self, faction: &Faction) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn update_goal_progress(&self, faction: &mut Faction) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/faction_integration.rs:530:5
[INFO] [stdout]     |
[INFO] [stdout] 529 | pub struct FactionGenerator {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 530 |     config: FactionGeneratorConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_CONFIG_NAME` is never used
[INFO] [stdout]   --> src/config/mod.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const DEFAULT_CONFIG_NAME: &str = "world.toml";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dist_sq` is never used
[INFO] [stdout]    --> src/generation/voronoi.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl Seed {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn dist_sq(&self, other: &Seed) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `species_loader` and `population_simulator` are never read
[INFO] [stdout]    --> src/history/generator.rs:196:5
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct HistoryGenerator {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 195 |     /// Species template loader.
[INFO] [stdout] 196 |     species_loader: SpeciesLoader,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     population_simulator: PopulationGrowthService,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HistoryGenerator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `x`, `y`, and `biome` are never read
[INFO] [stdout]    --> src/history/generator.rs:740:5
[INFO] [stdout]     |
[INFO] [stdout] 738 | struct SettlementSite {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 739 |     id: Uuid,
[INFO] [stdout] 740 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 741 |     x: usize,
[INFO] [stdout]     |     ^
[INFO] [stdout] 742 |     y: usize,
[INFO] [stdout]     |     ^
[INFO] [stdout] 743 |     biome: BiomeType,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SettlementSite` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `seed` is never read
[INFO] [stdout]    --> src/history/population.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub struct PopulationGrowthService {
[INFO] [stdout]     |            ----------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 174 |     seed: u64,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PopulationGrowthService` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENTRIES_DIR` is never used
[INFO] [stdout]   --> src/packaging.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const ENTRIES_DIR: &str = "entries/";
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_suitability` is never used
[INFO] [stdout]    --> src/settlements/mod.rs:778:8
[INFO] [stdout]     |
[INFO] [stdout] 250 | impl SettlementGenerator {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 778 |     fn calculate_suitability(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `calculate_growth_rate` and `get_species_growth_modifier` are never used
[INFO] [stdout]    --> src/simulation/population.rs:864:8
[INFO] [stdout]     |
[INFO] [stdout] 357 | impl PopulationModel {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 864 |     fn calculate_growth_rate(&self, state: &SettlementPopulation) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 883 |     fn get_species_growth_modifier(&self, species_id: SpeciesId) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_settlement_raw` is never used
[INFO] [stdout]     --> src/simulation/population.rs:1443:8
[INFO] [stdout]      |
[INFO] [stdout] 1441 | impl PopulationModel {
[INFO] [stdout]      | -------------------- method in this implementation
[INFO] [stdout] 1442 |     /// Add a settlement with raw parameters (internal use).
[INFO] [stdout] 1443 |     fn add_settlement_raw(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GLOBAL_STORAGE` is never used
[INFO] [stdout]   --> src/storage.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | static GLOBAL_STORAGE: OnceLock<StorageManager> = OnceLock::new();
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_cache_dir` is never used
[INFO] [stdout]   --> src/storage.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn default_cache_dir() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_generated_dir` is never used
[INFO] [stdout]   --> src/storage.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn default_generated_dir() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_exports_dir` is never used
[INFO] [stdout]   --> src/storage.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn default_exports_dir() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `entity_mesh` is never read
[INFO] [stdout]    --> src/terrain/elevation.rs:211:5
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub struct PolygonGraph {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 211 |     entity_mesh: Option<std::sync::Arc<crate::world::entities::polygon::PolygonMesh>>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PolygonGraph` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WonderTypeDef` is never constructed
[INFO] [stdout]   --> src/terrain/natural_wonders/wonder_types.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct WonderTypeDef {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `generator` is never read
[INFO] [stdout]    --> src/terrain/resource_spawner.rs:224:5
[INFO] [stdout]     |
[INFO] [stdout] 221 | pub struct ResourceSpawner {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 224 |     generator: ResourceGenerator,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ResourceSpawner` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `determine_spawns` and `get_biome_affinity` are never used
[INFO] [stdout]    --> src/terrain/resource_spawner.rs:412:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | impl ResourceSpawner {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 412 |     fn determine_spawns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     fn get_biome_affinity(&self, category: ResourceCategory, biome: BiomeType) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `VIABILITY_MATRIX` is never used
[INFO] [stdout]    --> src/terrain/resource_types.rs:965:8
[INFO] [stdout]     |
[INFO] [stdout] 965 | static VIABILITY_MATRIX: ViabilityMatrix = ViabilityMatrix;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_grid_modifiers` is never used
[INFO] [stdout]    --> src/terrain/tectonic/elevation_effects.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn calculate_grid_modifiers(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_tectonic_modifiers` is never used
[INFO] [stdout]    --> src/terrain/tectonic/elevation_effects.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub fn apply_tectonic_modifiers(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rng` is never read
[INFO] [stdout]    --> src/util/noise.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct SimplexNoise {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 115 |     rng: Rng,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SimplexNoise` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `biome_matrix` is never read
[INFO] [stdout]   --> src/world/generation/geography_generator.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct GeographyGenerator {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 41 |     config: GeographyConfig,
[INFO] [stdout] 42 |     biome_matrix: BiomeAssignmentMatrix,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GeographyGenerator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_mesh_centroids` is never used
[INFO] [stdout]    --> src/world/generation/lloyd_relaxation.rs:269:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl LloydRelaxation {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 269 |     fn update_mesh_centroids(&mut self, _mesh: &mut PolygonMesh, _centroids: &[Point2D]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `concentration_modifier` is never read
[INFO] [stdout]   --> src/artifacts.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct CataclysmTriggerSystem {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 98 |     /// Probability modifier based on artifact concentration
[INFO] [stdout] 99 |     concentration_modifier: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_fire_effect` is never used
[INFO] [stdout]   --> src/beasts/effects.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn calculate_fire_effect(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_water_effect` is never used
[INFO] [stdout]   --> src/beasts/effects.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn calculate_water_effect(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_earth_effect` is never used
[INFO] [stdout]    --> src/beasts/effects.rs:100:4
[INFO] [stdout]     |
[INFO] [stdout] 100 | fn calculate_earth_effect(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_life_effect` is never used
[INFO] [stdout]    --> src/beasts/effects.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn calculate_life_effect(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next_f64Signed` should have a snake case name
[INFO] [stdout]   --> src/util/noise.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn next_f64Signed(&mut self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `next_f64_signed`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start` is never used
[INFO] [stdout]   --> src/main.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn start(_port: u16) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 13s
[INFO] running `Command { std: "docker" "inspect" "c2ceb3b927118f30978b0577df4614ae707d544497095a846a7f4bca2a2e4c82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c2ceb3b927118f30978b0577df4614ae707d544497095a846a7f4bca2a2e4c82" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling serde_arrays v0.2.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling world-factory v1.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling regex-lite v0.1.9
[INFO] [stdout] warning: unused imports: `AlignmentBonus`, `BeastBond`, `FactionGoal`, and `FactionType`
[INFO] [stdout]   --> src/faction_turn.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     AlignmentBonus, AssetCategory, BeastBond, BeastBondType, CampaignState, Faction, FactionAsset,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^                 ^^^^^^^^^
[INFO] [stdout] 22 |     FactionGoal, FactionRegistry, FactionTurnState, FactionType, GoalType, TurnPhase,
[INFO] [stdout]    |     ^^^^^^^^^^^                                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/terrain/elevation.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BeastElement`, `BeastState`, `PrimalBeast`, and `profiles::get_beast_profile`
[INFO] [stdout]   --> src/beasts/effects.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     profiles::get_beast_profile, BeastElement, BeastState, PrimalBeast, PrimalBeastInstance,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BiomeType`
[INFO] [stdout]   --> src/beasts/effects.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::terrain::{BiomeType, TerrainCell};
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BeastElement` and `PrimalBeast`
[INFO] [stdout]   --> src/beasts/movement.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::{BeastElement, BeastState, PrimalBeast, PrimalBeastInstance};
[INFO] [stdout]    |             ^^^^^^^^^^^^              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BeastState`
[INFO] [stdout]  --> src/beasts/profiles.rs:6:38
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::{BeastElement, BeastForm, BeastState, PrimalBeast};
[INFO] [stdout]   |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::EntityId`
[INFO] [stdout]  --> src/beasts/profiles.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::types::EntityId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]   --> src/beasts/remnants.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::f32::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> src/beasts/mod.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/packaging.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::io::{self, Read, Write};
[INFO] [stdout]   |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `category`
[INFO] [stdout]    --> src/faction_turn.rs:503:36
[INFO] [stdout]     |
[INFO] [stdout] 503 |     pub fn with_category(mut self, category: AssetCategory) -> Self {
[INFO] [stdout]     |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fm`
[INFO] [stdout]    --> src/faction_turn.rs:613:25
[INFO] [stdout]     |
[INFO] [stdout] 613 |             if let Some(fm) = fm {
[INFO] [stdout]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_fm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/events/mod.rs:264:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |             (start, end) => Some(end - start),
[INFO] [stdout]     |             ------------ matches any value
[INFO] [stdout] 264 |             _ => None,
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `final_population` is never read
[INFO] [stdout]    --> src/history/generator.rs:483:36
[INFO] [stdout]     |
[INFO] [stdout] 483 |         let mut final_population = 0u64;
[INFO] [stdout]     |                                    ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 550 |         final_population = societies_map.values().map(|s| s.population).sum();
[INFO] [stdout]     |         --------------------------------------------------------------------- `final_population` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `base_suitability` is never read
[INFO] [stdout]    --> src/settlements/mod.rs:582:41
[INFO] [stdout]     |
[INFO] [stdout] 582 |         let mut base_suitability: f32 = 0.0;
[INFO] [stdout]     |                                         ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 592 |             base_suitability = (carrying_capacity / 7000.0).min(1.0) * 0.6;
[INFO] [stdout]     |             -------------------------------------------------------------- `base_suitability` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `soil_fertility` is never read
[INFO] [stdout]    --> src/settlements/mod.rs:584:39
[INFO] [stdout]     |
[INFO] [stdout] 584 |           let mut soil_fertility: f32 = 0.0;
[INFO] [stdout]     |                                         ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 604 | /         soil_fertility = match biome {
[INFO] [stdout] 605 | |             BiomeType::TemperateGrassland | BiomeType::TropicalSavanna => 1.0,
[INFO] [stdout] 606 | |             BiomeType::TemperateDeciduousForest | BiomeType::TemperateMixedForest => 0.8,
[INFO] [stdout] 607 | |             BiomeType::SubtropicalSeasonalForest | BiomeType::TropicalSeasonalForest => 0.7,
[INFO] [stdout] 608 | |             _ => 0.3,
[INFO] [stdout] 609 | |         };
[INFO] [stdout]     | |_________- `soil_fertility` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/simulation/population.rs:551:17
[INFO] [stdout]     |
[INFO] [stdout] 551 |                 _ => 1.0,
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/simulation/population.rs:551:17
[INFO] [stdout]     |
[INFO] [stdout] 545 |                 SpeciesId::Human => 1.0,
[INFO] [stdout]     |                 ---------------- matches some of the same values
[INFO] [stdout] 546 |                 SpeciesId::Elf => 0.8,
[INFO] [stdout]     |                 -------------- matches some of the same values
[INFO] [stdout] 547 |                 SpeciesId::Dwarf => 1.1,
[INFO] [stdout]     |                 ---------------- matches some of the same values
[INFO] [stdout] 548 |                 SpeciesId::Orc => 1.3,
[INFO] [stdout]     |                 -------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 551 |                 _ => 1.0,
[INFO] [stdout]     |                 ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/simulation/population.rs:891:13
[INFO] [stdout]     |
[INFO] [stdout] 891 |             _ => 1.0, // Unknown species get base rate
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/simulation/population.rs:891:13
[INFO] [stdout]     |
[INFO] [stdout] 885 |             SpeciesId::Human => 1.0,    // Base - adaptable
[INFO] [stdout]     |             ---------------- matches some of the same values
[INFO] [stdout] 886 |             SpeciesId::Elf => 0.8,      // Slower reproduction
[INFO] [stdout]     |             -------------- matches some of the same values
[INFO] [stdout] 887 |             SpeciesId::Dwarf => 1.1,    // Industrious
[INFO] [stdout]     |             ---------------- matches some of the same values
[INFO] [stdout] 888 |             SpeciesId::Orc => 1.3,      // High birth rate
[INFO] [stdout]     |             -------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 891 |             _ => 1.0, // Unknown species get base rate
[INFO] [stdout]     |             ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/simulation/population.rs:1182:9
[INFO] [stdout]      |
[INFO] [stdout] 1168 |         BiomeType::TropicalSeasonalForest => 30_000,
[INFO] [stdout]      |         --------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 1182 |         BiomeType::TropicalSeasonalForest => 35_000,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/terrain/biome.rs:345:13
[INFO] [stdout]     |
[INFO] [stdout] 315 |             BiomeType::SubtropicalDesert => "Subtropical Desert",
[INFO] [stdout]     |             ---------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 345 |             BiomeType::SubtropicalDesert => "Subtropical Desert",
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/terrain/biome.rs:346:13
[INFO] [stdout]     |
[INFO] [stdout] 320 |             BiomeType::TemperateDesert => "Temperate Desert",
[INFO] [stdout]     |             -------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 346 |             BiomeType::TemperateDesert => "Temperate Desert",
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AlignmentBonus`, `BeastBond`, `FactionGoal`, and `FactionType`
[INFO] [stdout]   --> src/faction_turn.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     AlignmentBonus, AssetCategory, BeastBond, BeastBondType, CampaignState, Faction, FactionAsset,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^                 ^^^^^^^^^
[INFO] [stdout] 22 |     FactionGoal, FactionRegistry, FactionTurnState, FactionType, GoalType, TurnPhase,
[INFO] [stdout]    |     ^^^^^^^^^^^                                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/generation/voronoi.rs:887:34
[INFO] [stdout]     |
[INFO] [stdout] 887 |                     let angle1 = ((window[0].1 - cy).atan2(window[0].0 - cx));
[INFO] [stdout]     |                                  ^                                          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 887 -                     let angle1 = ((window[0].1 - cy).atan2(window[0].0 - cx));
[INFO] [stdout] 887 +                     let angle1 = (window[0].1 - cy).atan2(window[0].0 - cx);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/generation/voronoi.rs:888:34
[INFO] [stdout]     |
[INFO] [stdout] 888 |                     let angle2 = ((window[1].1 - cy).atan2(window[1].0 - cx));
[INFO] [stdout]     |                                  ^                                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 888 -                     let angle2 = ((window[1].1 - cy).atan2(window[1].0 - cx));
[INFO] [stdout] 888 +                     let angle2 = (window[1].1 - cy).atan2(window[1].0 - cx);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::Seed`
[INFO] [stdout]    --> src/hydro/rivers.rs:425:9
[INFO] [stdout]     |
[INFO] [stdout] 425 |     use crate::util::Seed;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/terrain/resource_types.rs:466:13
[INFO] [stdout]     |
[INFO] [stdout] 438 |             ResourceType::Limestone => 0.15,
[INFO] [stdout]     |             ----------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 466 |             ResourceType::Limestone => 0.35,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]    --> src/packaging.rs:348:9
[INFO] [stdout]     |
[INFO] [stdout] 348 |     use std::io::Write;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::Seed`
[INFO] [stdout]     --> src/settlements/mod.rs:1360:13
[INFO] [stdout]      |
[INFO] [stdout] 1360 |         use crate::util::Seed;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/terrain/elevation.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::Seed`
[INFO] [stdout]    --> src/terrain/ocean.rs:568:9
[INFO] [stdout]     |
[INFO] [stdout] 568 |     use crate::util::Seed;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: duplicated attribute
[INFO] [stdout]    --> src/util/geometry.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     #[test]
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(duplicate_macro_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BeastElement`, `BeastState`, `PrimalBeast`, and `profiles::get_beast_profile`
[INFO] [stdout]   --> src/beasts/effects.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     profiles::get_beast_profile, BeastElement, BeastState, PrimalBeast, PrimalBeastInstance,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BiomeType`
[INFO] [stdout]   --> src/beasts/effects.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::terrain::{BiomeType, TerrainCell};
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BeastElement` and `PrimalBeast`
[INFO] [stdout]   --> src/beasts/movement.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::{BeastElement, BeastState, PrimalBeast, PrimalBeastInstance};
[INFO] [stdout]    |             ^^^^^^^^^^^^              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BeastState`
[INFO] [stdout]  --> src/beasts/profiles.rs:6:38
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::{BeastElement, BeastForm, BeastState, PrimalBeast};
[INFO] [stdout]   |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::EntityId`
[INFO] [stdout]  --> src/beasts/profiles.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::types::EntityId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]   --> src/beasts/remnants.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::f32::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]   --> src/beasts/mod.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use uuid::Uuid;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/artifacts.rs:510:9
[INFO] [stdout]     |
[INFO] [stdout] 510 |         context: &ArtifactCreationContext,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/beasts/remnants.rs:119:36
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn affects_position(&self, position: u32, distance_km: f32) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/beasts/mod.rs:217:35
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn is_in_territory(&self, position: u32, distance_km: f32) -> bool {
[INFO] [stdout]     |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PredictionPattern` is more private than the item `EventPredictor::get_patterns_for`
[INFO] [stdout]    --> src/events/probability/event_predictor.rs:295:5
[INFO] [stdout]     |
[INFO] [stdout] 295 |     pub fn get_patterns_for(&self, event_type: EventType) -> Vec<&PredictionPattern> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `EventPredictor::get_patterns_for` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `PredictionPattern` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/events/probability/event_predictor.rs:338:1
[INFO] [stdout]     |
[INFO] [stdout] 338 | struct PredictionPattern {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SettlementState` is more private than the item `PopulationGrowthService::get_all_populations`
[INFO] [stdout]    --> src/history/population.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     pub fn get_all_populations(&self) -> &HashMap<Uuid, SettlementState> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `PopulationGrowthService::get_all_populations` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SettlementState` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/history/population.rs:485:1
[INFO] [stdout]     |
[INFO] [stdout] 485 | struct SettlementState {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `calculate_income` and `update_goal_progress` are never used
[INFO] [stdout]    --> src/faction_integration.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl FactionTurnProcessor {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn calculate_income(&self, faction: &Faction) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn update_goal_progress(&self, faction: &mut Faction) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/faction_integration.rs:530:5
[INFO] [stdout]     |
[INFO] [stdout] 529 | pub struct FactionGenerator {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 530 |     config: FactionGeneratorConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_CONFIG_NAME` is never used
[INFO] [stdout]   --> src/config/mod.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const DEFAULT_CONFIG_NAME: &str = "world.toml";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dist_sq` is never used
[INFO] [stdout]    --> src/generation/voronoi.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl Seed {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn dist_sq(&self, other: &Seed) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `species_loader` and `population_simulator` are never read
[INFO] [stdout]    --> src/history/generator.rs:196:5
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct HistoryGenerator {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 195 |     /// Species template loader.
[INFO] [stdout] 196 |     species_loader: SpeciesLoader,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     population_simulator: PopulationGrowthService,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HistoryGenerator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `x`, `y`, and `biome` are never read
[INFO] [stdout]    --> src/history/generator.rs:740:5
[INFO] [stdout]     |
[INFO] [stdout] 738 | struct SettlementSite {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 739 |     id: Uuid,
[INFO] [stdout] 740 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 741 |     x: usize,
[INFO] [stdout]     |     ^
[INFO] [stdout] 742 |     y: usize,
[INFO] [stdout]     |     ^
[INFO] [stdout] 743 |     biome: BiomeType,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SettlementSite` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `seed` is never read
[INFO] [stdout]    --> src/history/population.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub struct PopulationGrowthService {
[INFO] [stdout]     |            ----------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 174 |     seed: u64,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PopulationGrowthService` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENTRIES_DIR` is never used
[INFO] [stdout]   --> src/packaging.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const ENTRIES_DIR: &str = "entries/";
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_suitability` is never used
[INFO] [stdout]    --> src/settlements/mod.rs:778:8
[INFO] [stdout]     |
[INFO] [stdout] 250 | impl SettlementGenerator {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 778 |     fn calculate_suitability(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `calculate_growth_rate` and `get_species_growth_modifier` are never used
[INFO] [stdout]    --> src/simulation/population.rs:864:8
[INFO] [stdout]     |
[INFO] [stdout] 357 | impl PopulationModel {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 864 |     fn calculate_growth_rate(&self, state: &SettlementPopulation) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 883 |     fn get_species_growth_modifier(&self, species_id: SpeciesId) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_settlement_raw` is never used
[INFO] [stdout]     --> src/simulation/population.rs:1443:8
[INFO] [stdout]      |
[INFO] [stdout] 1441 | impl PopulationModel {
[INFO] [stdout]      | -------------------- method in this implementation
[INFO] [stdout] 1442 |     /// Add a settlement with raw parameters (internal use).
[INFO] [stdout] 1443 |     fn add_settlement_raw(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GLOBAL_STORAGE` is never used
[INFO] [stdout]   --> src/storage.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | static GLOBAL_STORAGE: OnceLock<StorageManager> = OnceLock::new();
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_cache_dir` is never used
[INFO] [stdout]   --> src/storage.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn default_cache_dir() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_generated_dir` is never used
[INFO] [stdout]   --> src/storage.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn default_generated_dir() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_exports_dir` is never used
[INFO] [stdout]   --> src/storage.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn default_exports_dir() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `entity_mesh` is never read
[INFO] [stdout]    --> src/terrain/elevation.rs:211:5
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub struct PolygonGraph {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 211 |     entity_mesh: Option<std::sync::Arc<crate::world::entities::polygon::PolygonMesh>>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PolygonGraph` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WonderTypeDef` is never constructed
[INFO] [stdout]   --> src/terrain/natural_wonders/wonder_types.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct WonderTypeDef {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `generator` is never read
[INFO] [stdout]    --> src/terrain/resource_spawner.rs:224:5
[INFO] [stdout]     |
[INFO] [stdout] 221 | pub struct ResourceSpawner {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 224 |     generator: ResourceGenerator,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ResourceSpawner` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `determine_spawns` and `get_biome_affinity` are never used
[INFO] [stdout]    --> src/terrain/resource_spawner.rs:412:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | impl ResourceSpawner {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 412 |     fn determine_spawns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     fn get_biome_affinity(&self, category: ResourceCategory, biome: BiomeType) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `VIABILITY_MATRIX` is never used
[INFO] [stdout]    --> src/terrain/resource_types.rs:965:8
[INFO] [stdout]     |
[INFO] [stdout] 965 | static VIABILITY_MATRIX: ViabilityMatrix = ViabilityMatrix;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_grid_modifiers` is never used
[INFO] [stdout]    --> src/terrain/tectonic/elevation_effects.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn calculate_grid_modifiers(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_tectonic_modifiers` is never used
[INFO] [stdout]    --> src/terrain/tectonic/elevation_effects.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub fn apply_tectonic_modifiers(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rng` is never read
[INFO] [stdout]    --> src/util/noise.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct SimplexNoise {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 115 |     rng: Rng,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SimplexNoise` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `biome_matrix` is never read
[INFO] [stdout]   --> src/world/generation/geography_generator.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct GeographyGenerator {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 41 |     config: GeographyConfig,
[INFO] [stdout] 42 |     biome_matrix: BiomeAssignmentMatrix,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GeographyGenerator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_mesh_centroids` is never used
[INFO] [stdout]    --> src/world/generation/lloyd_relaxation.rs:269:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl LloydRelaxation {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 269 |     fn update_mesh_centroids(&mut self, _mesh: &mut PolygonMesh, _centroids: &[Point2D]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `concentration_modifier` is never read
[INFO] [stdout]   --> src/artifacts.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct CataclysmTriggerSystem {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 98 |     /// Probability modifier based on artifact concentration
[INFO] [stdout] 99 |     concentration_modifier: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_fire_effect` is never used
[INFO] [stdout]   --> src/beasts/effects.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn calculate_fire_effect(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_water_effect` is never used
[INFO] [stdout]   --> src/beasts/effects.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn calculate_water_effect(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_earth_effect` is never used
[INFO] [stdout]    --> src/beasts/effects.rs:100:4
[INFO] [stdout]     |
[INFO] [stdout] 100 | fn calculate_earth_effect(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_life_effect` is never used
[INFO] [stdout]    --> src/beasts/effects.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn calculate_life_effect(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next_f64Signed` should have a snake case name
[INFO] [stdout]   --> src/util/noise.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn next_f64Signed(&mut self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `next_f64_signed`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/packaging.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::io::{self, Read, Write};
[INFO] [stdout]   |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> tests/cli_shared_storage_test.rs:180:9
[INFO] [stdout]     |
[INFO] [stdout] 180 |     let output = cmd.output().expect("Failed to execute generate");
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> tests/api_world_generation.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use std::time::Duration;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BiomeAssignmentMatrix`, `BiomeType`, `SpeciesId`, `Species`, and `VoronoiGenerator`
[INFO] [stdout]   --> tests/integration_world_generation.rs:18:29
[INFO] [stdout]    |
[INFO] [stdout] 18 |     generate_voronoi_graph, BiomeAssignmentMatrix, BiomeType, OceanDetectionConfig, OceanDetector,
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 19 |     OceanZone, PolygonGraph, Species, SpeciesId, TerrainCell, TerrainConfig, TerrainGenerator,
[INFO] [stdout]    |                              ^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 20 |     TerrainGrid, TerrainLayer, VoronoiConfig, VoronoiGenerator, WorldConfig,
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `terrain::PolygonGraph`
[INFO] [stdout]   --> tests/voronoi_property_tests.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     terrain::PolygonGraph,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `generation_time_ms` is never read
[INFO] [stdout]   --> tests/integration_world_generation.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 95 | struct TestWorld {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 99 |     generation_time_ms: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_cell` is never used
[INFO] [stdout]    --> tests/integration_world_generation.rs:450:8
[INFO] [stdout]     |
[INFO] [stdout] 448 | impl TestWorld {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 449 |     /// Get cell at coordinates (for verification)
[INFO] [stdout] 450 |     fn get_cell(&self, x: u32, y: u32) -> Option<TerrainCell> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start` is never used
[INFO] [stdout]   --> src/main.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn start(_port: u16) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `category`
[INFO] [stdout]    --> src/faction_turn.rs:503:36
[INFO] [stdout]     |
[INFO] [stdout] 503 |     pub fn with_category(mut self, category: AssetCategory) -> Self {
[INFO] [stdout]     |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SpeciesTemplate`
[INFO] [stdout]   --> tests/species_template_test.rs:11:39
[INFO] [stdout]    |
[INFO] [stdout] 11 |     SpeciesSocietyType, SpeciesStats, SpeciesTemplate, TemplateLoader,
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `world_factory::TerrainGrid`
[INFO] [stdout]    --> tests/species_template_test.rs:420:9
[INFO] [stdout]     |
[INFO] [stdout] 420 |     use world_factory::TerrainGrid;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorldResponse` is never constructed
[INFO] [stdout]    --> tests/api_world_generation.rs:254:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | struct WorldResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PolygonsResponse` is never constructed
[INFO] [stdout]    --> tests/api_world_generation.rs:263:8
[INFO] [stdout]     |
[INFO] [stdout] 263 | struct PolygonsResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PolygonData` is never constructed
[INFO] [stdout]    --> tests/api_world_generation.rs:268:8
[INFO] [stdout]     |
[INFO] [stdout] 268 | struct PolygonData {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vertex` is never constructed
[INFO] [stdout]    --> tests/api_world_generation.rs:274:8
[INFO] [stdout]     |
[INFO] [stdout] 274 | struct Vertex {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TerrainResponse` is never constructed
[INFO] [stdout]    --> tests/api_world_generation.rs:280:8
[INFO] [stdout]     |
[INFO] [stdout] 280 | struct TerrainResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TerrainCell` is never constructed
[INFO] [stdout]    --> tests/api_world_generation.rs:286:8
[INFO] [stdout]     |
[INFO] [stdout] 286 | struct TerrainCell {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Dimensions` is never constructed
[INFO] [stdout]    --> tests/api_world_generation.rs:294:8
[INFO] [stdout]     |
[INFO] [stdout] 294 | struct Dimensions {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `API_BASE_URL` is never used
[INFO] [stdout]   --> tests/api_world_generation.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 |     const API_BASE_URL: &str = "http://localhost:8080";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fm`
[INFO] [stdout]    --> src/faction_turn.rs:613:25
[INFO] [stdout]     |
[INFO] [stdout] 613 |             if let Some(fm) = fm {
[INFO] [stdout]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_fm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start` is never used
[INFO] [stdout]   --> src/main.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn start(_port: u16) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `world_factory::history::SocietyRegistry`
[INFO] [stdout]  --> tests/phase2_integration_test.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use world_factory::history::SocietyRegistry;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EventStore`, `artifacts::ArtifactStore`, and `figures::FigureStore`
[INFO] [stdout]   --> tests/phase2_integration_test.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  8 |     artifacts::ArtifactStore,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  9 |     events::{EventStore, EventType},
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 10 |     figures::FigureStore,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> tests/cli_generation_test.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `world_factory::Polygon`
[INFO] [stdout]   --> examples/resource_spawning.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     use world_factory::Polygon;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/resource_spawning.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut graph = quick_voronoi(width, height, seed);
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seed`
[INFO] [stdout]   --> examples/resource_spawning.rs:52:47
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn generate_region_data(graph: &PolygonGraph, seed: u64) -> Vec<(u32, BiomeType, f32, f32, f32)> {
[INFO] [stdout]    |                                               ^^^^ help: if this is intentional, prefix it with an underscore: `_seed`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> tests/planet_hang_repro_test.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/planet_hang_repro_test.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut geo_gen = GeographyGenerator::new();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/events/mod.rs:264:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |             (start, end) => Some(end - start),
[INFO] [stdout]     |             ------------ matches any value
[INFO] [stdout] 264 |             _ => None,
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `global_help`
[INFO] [stdout]   --> tests/cli_regression_test.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let global_help = format!("{} {}", help_stdout, help_stderr);
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_global_help`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/generation/voronoi.rs:797:13
[INFO] [stdout]     |
[INFO] [stdout] 797 |         let mut graph = gen.build_polygon_graph(&result);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `river_cells`
[INFO] [stdout]    --> src/generation/mod.rs:271:13
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let river_cells = world.river_cells();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_river_cells`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `final_population` is never read
[INFO] [stdout]    --> src/history/generator.rs:483:36
[INFO] [stdout]     |
[INFO] [stdout] 483 |         let mut final_population = 0u64;
[INFO] [stdout]     |                                    ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 550 |         final_population = societies_map.values().map(|s| s.population).sum();
[INFO] [stdout]     |         --------------------------------------------------------------------- `final_population` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packaging.rs:360:13
[INFO] [stdout]     |
[INFO] [stdout] 360 |         let mut temp_file = NamedTempFile::new().unwrap();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packaging.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let mut temp_file = NamedTempFile::new().unwrap();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packaging.rs:407:13
[INFO] [stdout]     |
[INFO] [stdout] 407 |         let mut temp_file = NamedTempFile::new().unwrap();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packaging.rs:422:13
[INFO] [stdout]     |
[INFO] [stdout] 422 |         let mut temp_file = NamedTempFile::new().unwrap();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packaging.rs:436:13
[INFO] [stdout]     |
[INFO] [stdout] 436 |         let mut temp_file = NamedTempFile::new().unwrap();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/packaging.rs:486:13
[INFO] [stdout]     |
[INFO] [stdout] 486 |         let mut temp_file = NamedTempFile::new().unwrap();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `base_suitability` is never read
[INFO] [stdout]    --> src/settlements/mod.rs:582:41
[INFO] [stdout]     |
[INFO] [stdout] 582 |         let mut base_suitability: f32 = 0.0;
[INFO] [stdout]     |                                         ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 592 |             base_suitability = (carrying_capacity / 7000.0).min(1.0) * 0.6;
[INFO] [stdout]     |             -------------------------------------------------------------- `base_suitability` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `soil_fertility` is never read
[INFO] [stdout]    --> src/settlements/mod.rs:584:39
[INFO] [stdout]     |
[INFO] [stdout] 584 |           let mut soil_fertility: f32 = 0.0;
[INFO] [stdout]     |                                         ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 604 | /         soil_fertility = match biome {
[INFO] [stdout] 605 | |             BiomeType::TemperateGrassland | BiomeType::TropicalSavanna => 1.0,
[INFO] [stdout] 606 | |             BiomeType::TemperateDeciduousForest | BiomeType::TemperateMixedForest => 0.8,
[INFO] [stdout] 607 | |             BiomeType::SubtropicalSeasonalForest | BiomeType::TropicalSeasonalForest => 0.7,
[INFO] [stdout] 608 | |             _ => 0.3,
[INFO] [stdout] 609 | |         };
[INFO] [stdout]     | |_________- `soil_fertility` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/simulation/population.rs:551:17
[INFO] [stdout]     |
[INFO] [stdout] 551 |                 _ => 1.0,
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/simulation/population.rs:551:17
[INFO] [stdout]     |
[INFO] [stdout] 545 |                 SpeciesId::Human => 1.0,
[INFO] [stdout]     |                 ---------------- matches some of the same values
[INFO] [stdout] 546 |                 SpeciesId::Elf => 0.8,
[INFO] [stdout]     |                 -------------- matches some of the same values
[INFO] [stdout] 547 |                 SpeciesId::Dwarf => 1.1,
[INFO] [stdout]     |                 ---------------- matches some of the same values
[INFO] [stdout] 548 |                 SpeciesId::Orc => 1.3,
[INFO] [stdout]     |                 -------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 551 |                 _ => 1.0,
[INFO] [stdout]     |                 ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/simulation/population.rs:891:13
[INFO] [stdout]     |
[INFO] [stdout] 891 |             _ => 1.0, // Unknown species get base rate
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/simulation/population.rs:891:13
[INFO] [stdout]     |
[INFO] [stdout] 885 |             SpeciesId::Human => 1.0,    // Base - adaptable
[INFO] [stdout]     |             ---------------- matches some of the same values
[INFO] [stdout] 886 |             SpeciesId::Elf => 0.8,      // Slower reproduction
[INFO] [stdout]     |             -------------- matches some of the same values
[INFO] [stdout] 887 |             SpeciesId::Dwarf => 1.1,    // Industrious
[INFO] [stdout]     |             ---------------- matches some of the same values
[INFO] [stdout] 888 |             SpeciesId::Orc => 1.3,      // High birth rate
[INFO] [stdout]     |             -------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 891 |             _ => 1.0, // Unknown species get base rate
[INFO] [stdout]     |             ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/simulation/population.rs:1182:9
[INFO] [stdout]      |
[INFO] [stdout] 1168 |         BiomeType::TropicalSeasonalForest => 30_000,
[INFO] [stdout]      |         --------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 1182 |         BiomeType::TropicalSeasonalForest => 35_000,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/terrain/biome.rs:345:13
[INFO] [stdout]     |
[INFO] [stdout] 315 |             BiomeType::SubtropicalDesert => "Subtropical Desert",
[INFO] [stdout]     |             ---------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 345 |             BiomeType::SubtropicalDesert => "Subtropical Desert",
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/terrain/biome.rs:346:13
[INFO] [stdout]     |
[INFO] [stdout] 320 |             BiomeType::TemperateDesert => "Temperate Desert",
[INFO] [stdout]     |             -------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 346 |             BiomeType::TemperateDesert => "Temperate Desert",
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/terrain/elevation_assignment.rs:670:13
[INFO] [stdout]     |
[INFO] [stdout] 670 |         let result = assigner.assign_elevation(&mut graph, 42);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/terrain/elevation_assignment.rs:677:13
[INFO] [stdout]     |
[INFO] [stdout] 677 |         let mut graph = create_test_graph();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/terrain/elevation_assignment.rs:718:17
[INFO] [stdout]     |
[INFO] [stdout] 718 |             let mut min_path_elev = polygon.elevation;
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original_stats`
[INFO] [stdout]    --> src/terrain/erosion.rs:499:13
[INFO] [stdout]     |
[INFO] [stdout] 499 |         let original_stats = calculate_stats(&grid);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_stats`
[INFO] [stdout]    --> src/terrain/erosion.rs:511:13
[INFO] [stdout]     |
[INFO] [stdout] 511 |         let new_stats = calculate_stats(&grid);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/terrain/resource_types.rs:466:13
[INFO] [stdout]     |
[INFO] [stdout] 438 |             ResourceType::Limestone => 0.15,
[INFO] [stdout]     |             ----------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 466 |             ResourceType::Limestone => 0.35,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/terrain/terrain_generator.rs:515:13
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let mut generator = TerrainGenerator::new(config);
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid`
[INFO] [stdout]    --> src/terrain/terrain_generator.rs:574:13
[INFO] [stdout]     |
[INFO] [stdout] 574 |         let grid = generator.generate(TerrainLayer::Mountains);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_grid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_full`
[INFO] [stdout]    --> src/world/generation/lloyd_relaxation.rs:453:13
[INFO] [stdout]     |
[INFO] [stdout] 453 |         let result_full = relaxer_full.relax(&mesh, &bounds);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_full`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/artifacts.rs:510:9
[INFO] [stdout]     |
[INFO] [stdout] 510 |         context: &ArtifactCreationContext,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world_id`
[INFO] [stdout]     --> src/artifacts.rs:1452:13
[INFO] [stdout]      |
[INFO] [stdout] 1452 |         let world_id = Uuid::new_v4();
[INFO] [stdout]      |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_world_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/beasts/remnants.rs:119:36
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn affects_position(&self, position: u32, distance_km: f32) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world_id`
[INFO] [stdout]    --> src/beasts/remnants.rs:374:13
[INFO] [stdout]     |
[INFO] [stdout] 374 |         let world_id = Uuid::new_v4();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_world_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `should_remove`
[INFO] [stdout]    --> src/beasts/remnants.rs:404:17
[INFO] [stdout]     |
[INFO] [stdout] 404 |             let should_remove = remnant.apply_decay();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_should_remove`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/beasts/mod.rs:217:35
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn is_in_territory(&self, position: u32, distance_km: f32) -> bool {
[INFO] [stdout]     |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PredictionPattern` is more private than the item `event_predictor::EventPredictor::get_patterns_for`
[INFO] [stdout]    --> src/events/probability/event_predictor.rs:295:5
[INFO] [stdout]     |
[INFO] [stdout] 295 |     pub fn get_patterns_for(&self, event_type: EventType) -> Vec<&PredictionPattern> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `event_predictor::EventPredictor::get_patterns_for` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `PredictionPattern` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/events/probability/event_predictor.rs:338:1
[INFO] [stdout]     |
[INFO] [stdout] 338 | struct PredictionPattern {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `SettlementState` is more private than the item `history::population::PopulationGrowthService::get_all_populations`
[INFO] [stdout]    --> src/history/population.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     pub fn get_all_populations(&self) -> &HashMap<Uuid, SettlementState> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `history::population::PopulationGrowthService::get_all_populations` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `SettlementState` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/history/population.rs:485:1
[INFO] [stdout]     |
[INFO] [stdout] 485 | struct SettlementState {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `calculate_income` and `update_goal_progress` are never used
[INFO] [stdout]    --> src/faction_integration.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl FactionTurnProcessor {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn calculate_income(&self, faction: &Faction) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn update_goal_progress(&self, faction: &mut Faction) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_CONFIG_NAME` is never used
[INFO] [stdout]   --> src/config/mod.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const DEFAULT_CONFIG_NAME: &str = "world.toml";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dist_sq` is never used
[INFO] [stdout]    --> src/generation/voronoi.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl Seed {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn dist_sq(&self, other: &Seed) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `species_loader` and `population_simulator` are never read
[INFO] [stdout]    --> src/history/generator.rs:196:5
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct HistoryGenerator {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 195 |     /// Species template loader.
[INFO] [stdout] 196 |     species_loader: SpeciesLoader,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     population_simulator: PopulationGrowthService,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HistoryGenerator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `x`, `y`, and `biome` are never read
[INFO] [stdout]    --> src/history/generator.rs:740:5
[INFO] [stdout]     |
[INFO] [stdout] 738 | struct SettlementSite {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 739 |     id: Uuid,
[INFO] [stdout] 740 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 741 |     x: usize,
[INFO] [stdout]     |     ^
[INFO] [stdout] 742 |     y: usize,
[INFO] [stdout]     |     ^
[INFO] [stdout] 743 |     biome: BiomeType,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SettlementSite` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `seed` is never read
[INFO] [stdout]    --> src/history/population.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub struct PopulationGrowthService {
[INFO] [stdout]     |            ----------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 174 |     seed: u64,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PopulationGrowthService` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENTRIES_DIR` is never used
[INFO] [stdout]   --> src/packaging.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const ENTRIES_DIR: &str = "entries/";
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_suitability` is never used
[INFO] [stdout]    --> src/settlements/mod.rs:778:8
[INFO] [stdout]     |
[INFO] [stdout] 250 | impl SettlementGenerator {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 778 |     fn calculate_suitability(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `calculate_growth_rate` and `get_species_growth_modifier` are never used
[INFO] [stdout]    --> src/simulation/population.rs:864:8
[INFO] [stdout]     |
[INFO] [stdout] 357 | impl PopulationModel {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 864 |     fn calculate_growth_rate(&self, state: &SettlementPopulation) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 883 |     fn get_species_growth_modifier(&self, species_id: SpeciesId) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GLOBAL_STORAGE` is never used
[INFO] [stdout]   --> src/storage.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | static GLOBAL_STORAGE: OnceLock<StorageManager> = OnceLock::new();
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_cache_dir` is never used
[INFO] [stdout]   --> src/storage.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn default_cache_dir() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_generated_dir` is never used
[INFO] [stdout]   --> src/storage.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn default_generated_dir() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_exports_dir` is never used
[INFO] [stdout]   --> src/storage.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn default_exports_dir() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `entity_mesh` is never read
[INFO] [stdout]    --> src/terrain/elevation.rs:211:5
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub struct PolygonGraph {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 211 |     entity_mesh: Option<std::sync::Arc<crate::world::entities::polygon::PolygonMesh>>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PolygonGraph` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WonderTypeDef` is never constructed
[INFO] [stdout]   --> src/terrain/natural_wonders/wonder_types.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct WonderTypeDef {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `generator` is never read
[INFO] [stdout]    --> src/terrain/resource_spawner.rs:224:5
[INFO] [stdout]     |
[INFO] [stdout] 221 | pub struct ResourceSpawner {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 224 |     generator: ResourceGenerator,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ResourceSpawner` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `determine_spawns` and `get_biome_affinity` are never used
[INFO] [stdout]    --> src/terrain/resource_spawner.rs:412:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | impl ResourceSpawner {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 412 |     fn determine_spawns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     fn get_biome_affinity(&self, category: ResourceCategory, biome: BiomeType) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `VIABILITY_MATRIX` is never used
[INFO] [stdout]    --> src/terrain/resource_types.rs:965:8
[INFO] [stdout]     |
[INFO] [stdout] 965 | static VIABILITY_MATRIX: ViabilityMatrix = ViabilityMatrix;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_tectonic_modifiers` is never used
[INFO] [stdout]    --> src/terrain/tectonic/elevation_effects.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub fn apply_tectonic_modifiers(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rng` is never read
[INFO] [stdout]    --> src/util/noise.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct SimplexNoise {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 115 |     rng: Rng,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SimplexNoise` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `biome_matrix` is never read
[INFO] [stdout]   --> src/world/generation/geography_generator.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct GeographyGenerator {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 41 |     config: GeographyConfig,
[INFO] [stdout] 42 |     biome_matrix: BiomeAssignmentMatrix,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GeographyGenerator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_mesh_centroids` is never used
[INFO] [stdout]    --> src/world/generation/lloyd_relaxation.rs:269:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl LloydRelaxation {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 269 |     fn update_mesh_centroids(&mut self, _mesh: &mut PolygonMesh, _centroids: &[Point2D]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `concentration_modifier` is never read
[INFO] [stdout]   --> src/artifacts.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct CataclysmTriggerSystem {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 98 |     /// Probability modifier based on artifact concentration
[INFO] [stdout] 99 |     concentration_modifier: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_fire_effect` is never used
[INFO] [stdout]   --> src/beasts/effects.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn calculate_fire_effect(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_water_effect` is never used
[INFO] [stdout]   --> src/beasts/effects.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn calculate_water_effect(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_earth_effect` is never used
[INFO] [stdout]    --> src/beasts/effects.rs:100:4
[INFO] [stdout]     |
[INFO] [stdout] 100 | fn calculate_earth_effect(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_life_effect` is never used
[INFO] [stdout]    --> src/beasts/effects.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn calculate_life_effect(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next_f64Signed` should have a snake case name
[INFO] [stdout]   --> src/util/noise.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn next_f64Signed(&mut self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `next_f64_signed`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 56s
[INFO] running `Command { std: "docker" "inspect" "c2ceb3b927118f30978b0577df4614ae707d544497095a846a7f4bca2a2e4c82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c2ceb3b927118f30978b0577df4614ae707d544497095a846a7f4bca2a2e4c82" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `AlignmentBonus`, `BeastBond`, `FactionGoal`, and `FactionType`
[INFO] [stderr]   --> src/faction_turn.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     AlignmentBonus, AssetCategory, BeastBond, BeastBondType, CampaignState, Faction, FactionAsset,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^                 ^^^^^^^^^
[INFO] [stderr] 22 |     FactionGoal, FactionRegistry, FactionTurnState, FactionType, GoalType, TurnPhase,
[INFO] [stderr]    |     ^^^^^^^^^^^                                     ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]   --> src/terrain/elevation.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | use std::sync::Arc;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BeastElement`, `BeastState`, `PrimalBeast`, and `profiles::get_beast_profile`
[INFO] [stderr]   --> src/beasts/effects.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 |     profiles::get_beast_profile, BeastElement, BeastState, PrimalBeast, PrimalBeastInstance,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `BiomeType`
[INFO] [stderr]   --> src/beasts/effects.rs:17:22
[INFO] [stderr]    |
[INFO] [stderr] 17 | use crate::terrain::{BiomeType, TerrainCell};
[INFO] [stderr]    |                      ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BeastElement` and `PrimalBeast`
[INFO] [stderr]   --> src/beasts/movement.rs:13:13
[INFO] [stderr]    |
[INFO] [stderr] 13 | use super::{BeastElement, BeastState, PrimalBeast, PrimalBeastInstance};
[INFO] [stderr]    |             ^^^^^^^^^^^^              ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `BeastState`
[INFO] [stderr]  --> src/beasts/profiles.rs:6:38
[INFO] [stderr]   |
[INFO] [stderr] 6 | use super::{BeastElement, BeastForm, BeastState, PrimalBeast};
[INFO] [stderr]   |                                      ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::types::EntityId`
[INFO] [stderr]  --> src/beasts/profiles.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::types::EntityId;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::f32::consts::PI`
[INFO] [stderr]   --> src/beasts/remnants.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use std::f32::consts::PI;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `uuid::Uuid`
[INFO] [stderr]   --> src/beasts/mod.rs:37:5
[INFO] [stderr]    |
[INFO] [stderr] 37 | use uuid::Uuid;
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Write`
[INFO] [stderr]  --> src/packaging.rs:9:27
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::io::{self, Read, Write};
[INFO] [stderr]   |                           ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `category`
[INFO] [stderr]    --> src/faction_turn.rs:503:36
[INFO] [stderr]     |
[INFO] [stderr] 503 |     pub fn with_category(mut self, category: AssetCategory) -> Self {
[INFO] [stderr]     |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fm`
[INFO] [stderr]    --> src/faction_turn.rs:613:25
[INFO] [stderr]     |
[INFO] [stderr] 613 |             if let Some(fm) = fm {
[INFO] [stderr]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_fm`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/events/mod.rs:264:13
[INFO] [stderr]     |
[INFO] [stderr] 263 |             (start, end) => Some(end - start),
[INFO] [stderr]     |             ------------ matches any value
[INFO] [stderr] 264 |             _ => None,
[INFO] [stderr]     |             ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `final_population` is never read
[INFO] [stderr]    --> src/history/generator.rs:483:36
[INFO] [stderr]     |
[INFO] [stderr] 483 |         let mut final_population = 0u64;
[INFO] [stderr]     |                                    ^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 550 |         final_population = societies_map.values().map(|s| s.population).sum();
[INFO] [stderr]     |         --------------------------------------------------------------------- `final_population` is overwritten here before the previous value is read
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `base_suitability` is never read
[INFO] [stderr]    --> src/settlements/mod.rs:582:41
[INFO] [stderr]     |
[INFO] [stderr] 582 |         let mut base_suitability: f32 = 0.0;
[INFO] [stderr]     |                                         ^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 592 |             base_suitability = (carrying_capacity / 7000.0).min(1.0) * 0.6;
[INFO] [stderr]     |             -------------------------------------------------------------- `base_suitability` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `soil_fertility` is never read
[INFO] [stderr]    --> src/settlements/mod.rs:584:39
[INFO] [stderr]     |
[INFO] [stderr] 584 |           let mut soil_fertility: f32 = 0.0;
[INFO] [stderr]     |                                         ^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 604 | /         soil_fertility = match biome {
[INFO] [stderr] 605 | |             BiomeType::TemperateGrassland | BiomeType::TropicalSavanna => 1.0,
[INFO] [stderr] 606 | |             BiomeType::TemperateDeciduousForest | BiomeType::TemperateMixedForest => 0.8,
[INFO] [stderr] 607 | |             BiomeType::SubtropicalSeasonalForest | BiomeType::TropicalSeasonalForest => 0.7,
[INFO] [stderr] 608 | |             _ => 0.3,
[INFO] [stderr] 609 | |         };
[INFO] [stderr]     | |_________- `soil_fertility` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/simulation/population.rs:551:17
[INFO] [stderr]     |
[INFO] [stderr] 551 |                 _ => 1.0,
[INFO] [stderr]     |                 ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/simulation/population.rs:551:17
[INFO] [stderr]     |
[INFO] [stderr] 545 |                 SpeciesId::Human => 1.0,
[INFO] [stderr]     |                 ---------------- matches some of the same values
[INFO] [stderr] 546 |                 SpeciesId::Elf => 0.8,
[INFO] [stderr]     |                 -------------- matches some of the same values
[INFO] [stderr] 547 |                 SpeciesId::Dwarf => 1.1,
[INFO] [stderr]     |                 ---------------- matches some of the same values
[INFO] [stderr] 548 |                 SpeciesId::Orc => 1.3,
[INFO] [stderr]     |                 -------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 551 |                 _ => 1.0,
[INFO] [stderr]     |                 ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/simulation/population.rs:891:13
[INFO] [stderr]     |
[INFO] [stderr] 891 |             _ => 1.0, // Unknown species get base rate
[INFO] [stderr]     |             ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/simulation/population.rs:891:13
[INFO] [stderr]     |
[INFO] [stderr] 885 |             SpeciesId::Human => 1.0,    // Base - adaptable
[INFO] [stderr]     |             ---------------- matches some of the same values
[INFO] [stderr] 886 |             SpeciesId::Elf => 0.8,      // Slower reproduction
[INFO] [stderr]     |             -------------- matches some of the same values
[INFO] [stderr] 887 |             SpeciesId::Dwarf => 1.1,    // Industrious
[INFO] [stderr]     |             ---------------- matches some of the same values
[INFO] [stderr] 888 |             SpeciesId::Orc => 1.3,      // High birth rate
[INFO] [stderr]     |             -------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 891 |             _ => 1.0, // Unknown species get base rate
[INFO] [stderr]     |             ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]     --> src/simulation/population.rs:1182:9
[INFO] [stderr]      |
[INFO] [stderr] 1168 |         BiomeType::TropicalSeasonalForest => 30_000,
[INFO] [stderr]      |         --------------------------------- matches all the relevant values
[INFO] [stderr] ...
[INFO] [stderr] 1182 |         BiomeType::TropicalSeasonalForest => 35_000,
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/terrain/biome.rs:345:13
[INFO] [stderr]     |
[INFO] [stderr] 315 |             BiomeType::SubtropicalDesert => "Subtropical Desert",
[INFO] [stderr]     |             ---------------------------- matches all the relevant values
[INFO] [stderr] ...
[INFO] [stderr] 345 |             BiomeType::SubtropicalDesert => "Subtropical Desert",
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/terrain/biome.rs:346:13
[INFO] [stderr]     |
[INFO] [stderr] 320 |             BiomeType::TemperateDesert => "Temperate Desert",
[INFO] [stderr]     |             -------------------------- matches all the relevant values
[INFO] [stderr] ...
[INFO] [stderr] 346 |             BiomeType::TemperateDesert => "Temperate Desert",
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/terrain/resource_types.rs:466:13
[INFO] [stderr]     |
[INFO] [stderr] 438 |             ResourceType::Limestone => 0.15,
[INFO] [stderr]     |             ----------------------- matches all the relevant values
[INFO] [stderr] ...
[INFO] [stderr] 466 |             ResourceType::Limestone => 0.35,
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]    --> src/artifacts.rs:510:9
[INFO] [stderr]     |
[INFO] [stderr] 510 |         context: &ArtifactCreationContext,
[INFO] [stderr]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `position`
[INFO] [stderr]    --> src/beasts/remnants.rs:119:36
[INFO] [stderr]     |
[INFO] [stderr] 119 |     pub fn affects_position(&self, position: u32, distance_km: f32) -> bool {
[INFO] [stderr]     |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `position`
[INFO] [stderr]    --> src/beasts/mod.rs:217:35
[INFO] [stderr]     |
[INFO] [stderr] 217 |     pub fn is_in_territory(&self, position: u32, distance_km: f32) -> bool {
[INFO] [stderr]     |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stderr] 
[INFO] [stderr] warning: type `PredictionPattern` is more private than the item `EventPredictor::get_patterns_for`
[INFO] [stderr]    --> src/events/probability/event_predictor.rs:295:5
[INFO] [stderr]     |
[INFO] [stderr] 295 |     pub fn get_patterns_for(&self, event_type: EventType) -> Vec<&PredictionPattern> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `EventPredictor::get_patterns_for` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `PredictionPattern` is only usable at visibility `pub(self)`
[INFO] [stderr]    --> src/events/probability/event_predictor.rs:338:1
[INFO] [stderr]     |
[INFO] [stderr] 338 | struct PredictionPattern {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `SettlementState` is more private than the item `PopulationGrowthService::get_all_populations`
[INFO] [stderr]    --> src/history/population.rs:258:5
[INFO] [stderr]     |
[INFO] [stderr] 258 |     pub fn get_all_populations(&self) -> &HashMap<Uuid, SettlementState> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `PopulationGrowthService::get_all_populations` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `SettlementState` is only usable at visibility `pub(self)`
[INFO] [stderr]    --> src/history/population.rs:485:1
[INFO] [stderr]     |
[INFO] [stderr] 485 | struct SettlementState {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `calculate_income` and `update_goal_progress` are never used
[INFO] [stderr]    --> src/faction_integration.rs:115:8
[INFO] [stderr]     |
[INFO] [stderr]  39 | impl FactionTurnProcessor {
[INFO] [stderr]     | ------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 115 |     fn calculate_income(&self, faction: &Faction) -> u32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 128 |     fn update_goal_progress(&self, faction: &mut Faction) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `config` is never read
[INFO] [stderr]    --> src/faction_integration.rs:530:5
[INFO] [stderr]     |
[INFO] [stderr] 529 | pub struct FactionGenerator {
[INFO] [stderr]     |            ---------------- field in this struct
[INFO] [stderr] 530 |     config: FactionGeneratorConfig,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_CONFIG_NAME` is never used
[INFO] [stderr]   --> src/config/mod.rs:16:7
[INFO] [stderr]    |
[INFO] [stderr] 16 | const DEFAULT_CONFIG_NAME: &str = "world.toml";
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `dist_sq` is never used
[INFO] [stderr]    --> src/generation/voronoi.rs:100:8
[INFO] [stderr]     |
[INFO] [stderr]  88 | impl Seed {
[INFO] [stderr]     | --------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 100 |     fn dist_sq(&self, other: &Seed) -> f32 {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `species_loader` and `population_simulator` are never read
[INFO] [stderr]    --> src/history/generator.rs:196:5
[INFO] [stderr]     |
[INFO] [stderr] 194 | pub struct HistoryGenerator {
[INFO] [stderr]     |            ---------------- fields in this struct
[INFO] [stderr] 195 |     /// Species template loader.
[INFO] [stderr] 196 |     species_loader: SpeciesLoader,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 205 |     population_simulator: PopulationGrowthService,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `HistoryGenerator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `name`, `x`, `y`, and `biome` are never read
[INFO] [stderr]    --> src/history/generator.rs:740:5
[INFO] [stderr]     |
[INFO] [stderr] 738 | struct SettlementSite {
[INFO] [stderr]     |        -------------- fields in this struct
[INFO] [stderr] 739 |     id: Uuid,
[INFO] [stderr] 740 |     name: String,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 741 |     x: usize,
[INFO] [stderr]     |     ^
[INFO] [stderr] 742 |     y: usize,
[INFO] [stderr]     |     ^
[INFO] [stderr] 743 |     biome: BiomeType,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `SettlementSite` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `seed` is never read
[INFO] [stderr]    --> src/history/population.rs:174:5
[INFO] [stderr]     |
[INFO] [stderr] 161 | pub struct PopulationGrowthService {
[INFO] [stderr]     |            ----------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 174 |     seed: u64,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `PopulationGrowthService` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ENTRIES_DIR` is never used
[INFO] [stderr]   --> src/packaging.rs:28:7
[INFO] [stderr]    |
[INFO] [stderr] 28 | const ENTRIES_DIR: &str = "entries/";
[INFO] [stderr]    |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `calculate_suitability` is never used
[INFO] [stderr]    --> src/settlements/mod.rs:778:8
[INFO] [stderr]     |
[INFO] [stderr] 250 | impl SettlementGenerator {
[INFO] [stderr]     | ------------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 778 |     fn calculate_suitability(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `calculate_growth_rate` and `get_species_growth_modifier` are never used
[INFO] [stderr]    --> src/simulation/population.rs:864:8
[INFO] [stderr]     |
[INFO] [stderr] 357 | impl PopulationModel {
[INFO] [stderr]     | -------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 864 |     fn calculate_growth_rate(&self, state: &SettlementPopulation) -> f64 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 883 |     fn get_species_growth_modifier(&self, species_id: SpeciesId) -> f64 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `add_settlement_raw` is never used
[INFO] [stderr]     --> src/simulation/population.rs:1443:8
[INFO] [stderr]      |
[INFO] [stderr] 1441 | impl PopulationModel {
[INFO] [stderr]      | -------------------- method in this implementation
[INFO] [stderr] 1442 |     /// Add a settlement with raw parameters (internal use).
[INFO] [stderr] 1443 |     fn add_settlement_raw(
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `GLOBAL_STORAGE` is never used
[INFO] [stderr]   --> src/storage.rs:49:8
[INFO] [stderr]    |
[INFO] [stderr] 49 | static GLOBAL_STORAGE: OnceLock<StorageManager> = OnceLock::new();
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_cache_dir` is never used
[INFO] [stderr]   --> src/storage.rs:74:4
[INFO] [stderr]    |
[INFO] [stderr] 74 | fn default_cache_dir() -> String {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_generated_dir` is never used
[INFO] [stderr]   --> src/storage.rs:78:4
[INFO] [stderr]    |
[INFO] [stderr] 78 | fn default_generated_dir() -> String {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_exports_dir` is never used
[INFO] [stderr]   --> src/storage.rs:82:4
[INFO] [stderr]    |
[INFO] [stderr] 82 | fn default_exports_dir() -> String {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `entity_mesh` is never read
[INFO] [stderr]    --> src/terrain/elevation.rs:211:5
[INFO] [stderr]     |
[INFO] [stderr] 205 | pub struct PolygonGraph {
[INFO] [stderr]     |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 211 |     entity_mesh: Option<std::sync::Arc<crate::world::entities::polygon::PolygonMesh>>,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `PolygonGraph` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WonderTypeDef` is never constructed
[INFO] [stderr]   --> src/terrain/natural_wonders/wonder_types.rs:88:12
[INFO] [stderr]    |
[INFO] [stderr] 88 | pub struct WonderTypeDef {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `generator` is never read
[INFO] [stderr]    --> src/terrain/resource_spawner.rs:224:5
[INFO] [stderr]     |
[INFO] [stderr] 221 | pub struct ResourceSpawner {
[INFO] [stderr]     |            --------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 224 |     generator: ResourceGenerator,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ResourceSpawner` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `determine_spawns` and `get_biome_affinity` are never used
[INFO] [stderr]    --> src/terrain/resource_spawner.rs:412:8
[INFO] [stderr]     |
[INFO] [stderr] 228 | impl ResourceSpawner {
[INFO] [stderr]     | -------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 412 |     fn determine_spawns(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 580 |     fn get_biome_affinity(&self, category: ResourceCategory, biome: BiomeType) -> f32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `VIABILITY_MATRIX` is never used
[INFO] [stderr]    --> src/terrain/resource_types.rs:965:8
[INFO] [stderr]     |
[INFO] [stderr] 965 | static VIABILITY_MATRIX: ViabilityMatrix = ViabilityMatrix;
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculate_grid_modifiers` is never used
[INFO] [stderr]    --> src/terrain/tectonic/elevation_effects.rs:100:8
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub fn calculate_grid_modifiers(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `apply_tectonic_modifiers` is never used
[INFO] [stderr]    --> src/terrain/tectonic/elevation_effects.rs:152:8
[INFO] [stderr]     |
[INFO] [stderr] 152 | pub fn apply_tectonic_modifiers(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `rng` is never read
[INFO] [stderr]    --> src/util/noise.rs:115:5
[INFO] [stderr]     |
[INFO] [stderr] 111 | pub struct SimplexNoise {
[INFO] [stderr]     |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 115 |     rng: Rng,
[INFO] [stderr]     |     ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `SimplexNoise` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `biome_matrix` is never read
[INFO] [stderr]   --> src/world/generation/geography_generator.rs:42:5
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub struct GeographyGenerator {
[INFO] [stderr]    |            ------------------ field in this struct
[INFO] [stderr] 41 |     config: GeographyConfig,
[INFO] [stderr] 42 |     biome_matrix: BiomeAssignmentMatrix,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `GeographyGenerator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `update_mesh_centroids` is never used
[INFO] [stderr]    --> src/world/generation/lloyd_relaxation.rs:269:8
[INFO] [stderr]     |
[INFO] [stderr] 155 | impl LloydRelaxation {
[INFO] [stderr]     | -------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 269 |     fn update_mesh_centroids(&mut self, _mesh: &mut PolygonMesh, _centroids: &[Point2D]) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `concentration_modifier` is never read
[INFO] [stderr]   --> src/artifacts.rs:99:5
[INFO] [stderr]    |
[INFO] [stderr] 97 | pub struct CataclysmTriggerSystem {
[INFO] [stderr]    |            ---------------------- field in this struct
[INFO] [stderr] 98 |     /// Probability modifier based on artifact concentration
[INFO] [stderr] 99 |     concentration_modifier: f64,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculate_fire_effect` is never used
[INFO] [stderr]   --> src/beasts/effects.rs:64:4
[INFO] [stderr]    |
[INFO] [stderr] 64 | fn calculate_fire_effect(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculate_water_effect` is never used
[INFO] [stderr]   --> src/beasts/effects.rs:83:4
[INFO] [stderr]    |
[INFO] [stderr] 83 | fn calculate_water_effect(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculate_earth_effect` is never used
[INFO] [stderr]    --> src/beasts/effects.rs:100:4
[INFO] [stderr]     |
[INFO] [stderr] 100 | fn calculate_earth_effect(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculate_life_effect` is never used
[INFO] [stderr]    --> src/beasts/effects.rs:113:4
[INFO] [stderr]     |
[INFO] [stderr] 113 | fn calculate_life_effect(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `next_f64Signed` should have a snake case name
[INFO] [stderr]   --> src/util/noise.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 33 |     pub fn next_f64Signed(&mut self) -> f64 {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `next_f64_signed`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `world-factory` (lib) generated 58 warnings (run `cargo fix --lib -p world-factory` to apply 14 suggestions)
[INFO] [stderr] warning: function `start` is never used
[INFO] [stderr]   --> src/main.rs:61:12
[INFO] [stderr]    |
[INFO] [stderr] 61 |     pub fn start(_port: u16) {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `world-factory` (bin "world_generator") generated 1 warning
[INFO] [stderr] warning: unused import: `terrain::PolygonGraph`
[INFO] [stderr]   --> tests/voronoi_property_tests.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 |     terrain::PolygonGraph,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `global_help`
[INFO] [stderr]   --> tests/cli_regression_test.rs:39:9
[INFO] [stderr]    |
[INFO] [stderr] 39 |     let global_help = format!("{} {}", help_stdout, help_stderr);
[INFO] [stderr]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_global_help`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `world_factory::history::SocietyRegistry`
[INFO] [stderr]  --> tests/phase2_integration_test.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use world_factory::history::SocietyRegistry;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EventStore`, `artifacts::ArtifactStore`, and `figures::FigureStore`
[INFO] [stderr]   --> tests/phase2_integration_test.rs:8:5
[INFO] [stderr]    |
[INFO] [stderr]  8 |     artifacts::ArtifactStore,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]  9 |     events::{EventStore, EventType},
[INFO] [stderr]    |              ^^^^^^^^^^
[INFO] [stderr] 10 |     figures::FigureStore,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `SpeciesTemplate`
[INFO] [stderr]   --> tests/species_template_test.rs:11:39
[INFO] [stderr]    |
[INFO] [stderr] 11 |     SpeciesSocietyType, SpeciesStats, SpeciesTemplate, TemplateLoader,
[INFO] [stderr]    |                                       ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `world_factory::TerrainGrid`
[INFO] [stderr]    --> tests/species_template_test.rs:420:9
[INFO] [stderr]     |
[INFO] [stderr] 420 |     use world_factory::TerrainGrid;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `output`
[INFO] [stderr]    --> tests/cli_shared_storage_test.rs:180:9
[INFO] [stderr]     |
[INFO] [stderr] 180 |     let output = cmd.output().expect("Failed to execute generate");
[INFO] [stderr]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `world-factory` (test "voronoi_property_tests") generated 1 warning (run `cargo fix --test "voronoi_property_tests" -p world-factory` to apply 1 suggestion)
[INFO] [stderr] warning: `world-factory` (test "cli_regression_test") generated 1 warning (run `cargo fix --test "cli_regression_test" -p world-factory` to apply 1 suggestion)
[INFO] [stderr] warning: `world-factory` (test "phase2_integration_test") generated 2 warnings (run `cargo fix --test "phase2_integration_test" -p world-factory` to apply 2 suggestions)
[INFO] [stderr] warning: `world-factory` (test "species_template_test") generated 2 warnings (run `cargo fix --test "species_template_test" -p world-factory` to apply 2 suggestions)
[INFO] [stderr] warning: `world-factory` (test "cli_shared_storage_test") generated 1 warning (run `cargo fix --test "cli_shared_storage_test" -p world-factory` to apply 1 suggestion)
[INFO] [stderr] warning: unused import: `std::fs`
[INFO] [stderr]  --> tests/cli_generation_test.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::fs;
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `world_factory::Polygon`
[INFO] [stderr]   --> examples/resource_spawning.rs:53:9
[INFO] [stderr]    |
[INFO] [stderr] 53 |     use world_factory::Polygon;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/resource_spawning.rs:20:9
[INFO] [stderr]    |
[INFO] [stderr] 20 |     let mut graph = quick_voronoi(width, height, seed);
[INFO] [stderr]    |         ----^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `seed`
[INFO] [stderr]   --> examples/resource_spawning.rs:52:47
[INFO] [stderr]    |
[INFO] [stderr] 52 | fn generate_region_data(graph: &PolygonGraph, seed: u64) -> Vec<(u32, BiomeType, f32, f32, f32)> {
[INFO] [stderr]    |                                               ^^^^ help: if this is intentional, prefix it with an underscore: `_seed`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `world-factory` (test "cli_generation_test") generated 1 warning (run `cargo fix --test "cli_generation_test" -p world-factory` to apply 1 suggestion)
[INFO] [stderr] warning: `world-factory` (bin "world_generator" test) generated 1 warning (1 duplicate)
[INFO] [stderr] warning: `world-factory` (example "resource_spawning") generated 3 warnings (run `cargo fix --example "resource_spawning" -p world-factory` to apply 3 suggestions)
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> tests/api_world_generation.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 |     use std::time::Duration;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WorldResponse` is never constructed
[INFO] [stderr]    --> tests/api_world_generation.rs:254:8
[INFO] [stderr]     |
[INFO] [stderr] 254 | struct WorldResponse {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PolygonsResponse` is never constructed
[INFO] [stderr]    --> tests/api_world_generation.rs:263:8
[INFO] [stderr]     |
[INFO] [stderr] 263 | struct PolygonsResponse {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PolygonData` is never constructed
[INFO] [stderr]    --> tests/api_world_generation.rs:268:8
[INFO] [stderr]     |
[INFO] [stderr] 268 | struct PolygonData {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Vertex` is never constructed
[INFO] [stderr]    --> tests/api_world_generation.rs:274:8
[INFO] [stderr]     |
[INFO] [stderr] 274 | struct Vertex {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TerrainResponse` is never constructed
[INFO] [stderr]    --> tests/api_world_generation.rs:280:8
[INFO] [stderr]     |
[INFO] [stderr] 280 | struct TerrainResponse {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TerrainCell` is never constructed
[INFO] [stderr]    --> tests/api_world_generation.rs:286:8
[INFO] [stderr]     |
[INFO] [stderr] 286 | struct TerrainCell {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Dimensions` is never constructed
[INFO] [stderr]    --> tests/api_world_generation.rs:294:8
[INFO] [stderr]     |
[INFO] [stderr] 294 | struct Dimensions {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `API_BASE_URL` is never used
[INFO] [stderr]   --> tests/api_world_generation.rs:15:11
[INFO] [stderr]    |
[INFO] [stderr] 15 |     const API_BASE_URL: &str = "http://localhost:8080";
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Duration`
[INFO] [stderr]  --> tests/planet_hang_repro_test.rs:6:17
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::time::{Duration, Instant};
[INFO] [stderr]   |                 ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> tests/planet_hang_repro_test.rs:56:13
[INFO] [stderr]    |
[INFO] [stderr] 56 |         let mut geo_gen = GeographyGenerator::new();
[INFO] [stderr]    |             ----^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BiomeAssignmentMatrix`, `BiomeType`, `SpeciesId`, `Species`, and `VoronoiGenerator`
[INFO] [stderr]   --> tests/integration_world_generation.rs:18:29
[INFO] [stderr]    |
[INFO] [stderr] 18 |     generate_voronoi_graph, BiomeAssignmentMatrix, BiomeType, OceanDetectionConfig, OceanDetector,
[INFO] [stderr]    |                             ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 19 |     OceanZone, PolygonGraph, Species, SpeciesId, TerrainCell, TerrainConfig, TerrainGenerator,
[INFO] [stderr]    |                              ^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 20 |     TerrainGrid, TerrainLayer, VoronoiConfig, VoronoiGenerator, WorldConfig,
[INFO] [stderr]    |                                               ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `generation_time_ms` is never read
[INFO] [stderr]   --> tests/integration_world_generation.rs:99:5
[INFO] [stderr]    |
[INFO] [stderr] 95 | struct TestWorld {
[INFO] [stderr]    |        --------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 99 |     generation_time_ms: u64,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_cell` is never used
[INFO] [stderr]    --> tests/integration_world_generation.rs:450:8
[INFO] [stderr]     |
[INFO] [stderr] 448 | impl TestWorld {
[INFO] [stderr]     | -------------- method in this implementation
[INFO] [stderr] 449 |     /// Get cell at coordinates (for verification)
[INFO] [stderr] 450 |     fn get_cell(&self, x: u32, y: u32) -> Option<TerrainCell> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/generation/voronoi.rs:887:34
[INFO] [stderr]     |
[INFO] [stderr] 887 |                     let angle1 = ((window[0].1 - cy).atan2(window[0].0 - cx));
[INFO] [stderr]     |                                  ^                                          ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 887 -                     let angle1 = ((window[0].1 - cy).atan2(window[0].0 - cx));
[INFO] [stderr] 887 +                     let angle1 = (window[0].1 - cy).atan2(window[0].0 - cx);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/generation/voronoi.rs:888:34
[INFO] [stderr]     |
[INFO] [stderr] 888 |                     let angle2 = ((window[1].1 - cy).atan2(window[1].0 - cx));
[INFO] [stderr]     |                                  ^                                          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 888 -                     let angle2 = ((window[1].1 - cy).atan2(window[1].0 - cx));
[INFO] [stderr] 888 +                     let angle2 = (window[1].1 - cy).atan2(window[1].0 - cx);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::util::Seed`
[INFO] [stderr]    --> src/hydro/rivers.rs:425:9
[INFO] [stderr]     |
[INFO] [stderr] 425 |     use crate::util::Seed;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]    --> src/packaging.rs:348:9
[INFO] [stderr]     |
[INFO] [stderr] 348 |     use std::io::Write;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::util::Seed`
[INFO] [stderr]     --> src/settlements/mod.rs:1360:13
[INFO] [stderr]      |
[INFO] [stderr] 1360 |         use crate::util::Seed;
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::util::Seed`
[INFO] [stderr]    --> src/terrain/ocean.rs:568:9
[INFO] [stderr]     |
[INFO] [stderr] 568 |     use crate::util::Seed;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: duplicated attribute
[INFO] [stderr]    --> src/util/geometry.rs:258:5
[INFO] [stderr]     |
[INFO] [stderr] 258 |     #[test]
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(duplicate_macro_attributes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/generation/voronoi.rs:797:13
[INFO] [stderr]     |
[INFO] [stderr] 797 |         let mut graph = gen.build_polygon_graph(&result);
[INFO] [stderr]     |             ----^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `river_cells`
[INFO] [stderr]    --> src/generation/mod.rs:271:13
[INFO] [stderr]     |
[INFO] [stderr] 271 |         let river_cells = world.river_cells();
[INFO] [stderr]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_river_cells`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/packaging.rs:360:13
[INFO] [stderr]     |
[INFO] [stderr] 360 |         let mut temp_file = NamedTempFile::new().unwrap();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/packaging.rs:392:13
[INFO] [stderr]     |
[INFO] [stderr] 392 |         let mut temp_file = NamedTempFile::new().unwrap();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/packaging.rs:407:13
[INFO] [stderr]     |
[INFO] [stderr] 407 |         let mut temp_file = NamedTempFile::new().unwrap();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/packaging.rs:422:13
[INFO] [stderr]     |
[INFO] [stderr] 422 |         let mut temp_file = NamedTempFile::new().unwrap();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/packaging.rs:436:13
[INFO] [stderr]     |
[INFO] [stderr] 436 |         let mut temp_file = NamedTempFile::new().unwrap();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/packaging.rs:486:13
[INFO] [stderr]     |
[INFO] [stderr] 486 |         let mut temp_file = NamedTempFile::new().unwrap();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result`
[INFO] [stderr]    --> src/terrain/elevation_assignment.rs:670:13
[INFO] [stderr]     |
[INFO] [stderr] 670 |         let result = assigner.assign_elevation(&mut graph, 42);
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/terrain/elevation_assignment.rs:677:13
[INFO] [stderr]     |
[INFO] [stderr] 677 |         let mut graph = create_test_graph();
[INFO] [stderr]     |             ----^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/terrain/elevation_assignment.rs:718:17
[INFO] [stderr]     |
[INFO] [stderr] 718 |             let mut min_path_elev = polygon.elevation;
[INFO] [stderr]     |                 ----^^^^^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `original_stats`
[INFO] [stderr]    --> src/terrain/erosion.rs:499:13
[INFO] [stderr]     |
[INFO] [stderr] 499 |         let original_stats = calculate_stats(&grid);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_stats`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_stats`
[INFO] [stderr]    --> src/terrain/erosion.rs:511:13
[INFO] [stderr]     |
[INFO] [stderr] 511 |         let new_stats = calculate_stats(&grid);
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_stats`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/terrain/terrain_generator.rs:515:13
[INFO] [stderr]     |
[INFO] [stderr] 515 |         let mut generator = TerrainGenerator::new(config);
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `grid`
[INFO] [stderr]    --> src/terrain/terrain_generator.rs:574:13
[INFO] [stderr]     |
[INFO] [stderr] 574 |         let grid = generator.generate(TerrainLayer::Mountains);
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_grid`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result_full`
[INFO] [stderr]    --> src/world/generation/lloyd_relaxation.rs:453:13
[INFO] [stderr]     |
[INFO] [stderr] 453 |         let result_full = relaxer_full.relax(&mesh, &bounds);
[INFO] [stderr]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_full`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `world_id`
[INFO] [stderr]     --> src/artifacts.rs:1452:13
[INFO] [stderr]      |
[INFO] [stderr] 1452 |         let world_id = Uuid::new_v4();
[INFO] [stderr]      |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_world_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `world_id`
[INFO] [stderr]    --> src/beasts/remnants.rs:374:13
[INFO] [stderr]     |
[INFO] [stderr] 374 |         let world_id = Uuid::new_v4();
[INFO] [stderr]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_world_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `should_remove`
[INFO] [stderr]    --> src/beasts/remnants.rs:404:17
[INFO] [stderr]     |
[INFO] [stderr] 404 |             let should_remove = remnant.apply_decay();
[INFO] [stderr]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_should_remove`
[INFO] [stderr] 
[INFO] [stderr] warning: type `PredictionPattern` is more private than the item `event_predictor::EventPredictor::get_patterns_for`
[INFO] [stderr]    --> src/events/probability/event_predictor.rs:295:5
[INFO] [stderr]     |
[INFO] [stderr] 295 |     pub fn get_patterns_for(&self, event_type: EventType) -> Vec<&PredictionPattern> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `event_predictor::EventPredictor::get_patterns_for` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `PredictionPattern` is only usable at visibility `pub(self)`
[INFO] [stderr]    --> src/events/probability/event_predictor.rs:338:1
[INFO] [stderr]     |
[INFO] [stderr] 338 | struct PredictionPattern {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `SettlementState` is more private than the item `history::population::PopulationGrowthService::get_all_populations`
[INFO] [stderr]    --> src/history/population.rs:258:5
[INFO] [stderr]     |
[INFO] [stderr] 258 |     pub fn get_all_populations(&self) -> &HashMap<Uuid, SettlementState> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `history::population::PopulationGrowthService::get_all_populations` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `SettlementState` is only usable at visibility `pub(self)`
[INFO] [stderr]    --> src/history/population.rs:485:1
[INFO] [stderr]     |
[INFO] [stderr] 485 | struct SettlementState {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `world-factory` (test "api_world_generation") generated 9 warnings (run `cargo fix --test "api_world_generation" -p world-factory` to apply 1 suggestion)
[INFO] [stderr] warning: `world-factory` (test "planet_hang_repro_test") generated 2 warnings (run `cargo fix --test "planet_hang_repro_test" -p world-factory` to apply 2 suggestions)
[INFO] [stderr] warning: `world-factory` (test "integration_world_generation") generated 3 warnings (run `cargo fix --test "integration_world_generation" -p world-factory` to apply 1 suggestion)
[INFO] [stderr] warning: `world-factory` (lib test) generated 81 warnings (53 duplicates) (run `cargo fix --lib -p world-factory --tests` to apply 25 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.39s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/world_factory-ea79f638909378de)
[INFO] [stdout] 
[INFO] [stdout] running 443 tests
[INFO] [stdout] test artifacts::tests::test_artifact_creation ... ok
[INFO] [stdout] test artifacts::tests::test_artifact_effects ... ok
[INFO] [stdout] test artifacts::tests::test_artifact_from_event ... ok
[INFO] [stdout] test artifacts::tests::test_causal_chain_validation_failure ... ok
[INFO] [stdout] test artifacts::tests::test_artifact_store ... ok
[INFO] [stdout] test artifacts::tests::test_artifact_potential_cataclysm_type ... ok
[INFO] [stdout] test artifacts::tests::test_artifact_rarity ... ok
[INFO] [stdout] test artifacts::tests::test_causal_chain_validator_crown_jewel ... ok
[INFO] [stdout] test artifacts::tests::test_causal_chain_validator_document ... ok
[INFO] [stdout] test artifacts::tests::test_causal_chain_validator_magical ... ok
[INFO] [stdout] test artifacts::tests::test_causal_chain_validator_sacred_relic ... ok
[INFO] [stdout] test artifacts::tests::test_causal_chain_validator_weapon ... ok
[INFO] [stdout] test artifacts::tests::test_creation_conditions ... ok
[INFO] [stdout] test artifacts::tests::test_rarity_cataclysm_probability ... ok
[INFO] [stdout] test beasts::remnants::tests::test_affects_position ... ok
[INFO] [stdout] test beasts::remnants::tests::test_beast_slain_event ... ok
[INFO] [stdout] test beasts::remnants::tests::test_remnant_creation ... ok
[INFO] [stdout] test beasts::remnants::tests::test_remnant_decay ... ok
[INFO] [stdout] test beasts::remnants::tests::test_remnant_system_add_remove ... ok
[INFO] [stdout] test beasts::remnants::tests::test_remnant_system_decay ... ok
[INFO] [stdout] test beasts::slaying::tests::test_all_beasts_create_remnants ... ok
[INFO] [stdout] test beasts::remnants::tests::test_remnants_by_element ... ok
[INFO] [stdout] test beasts::slaying::tests::test_dormancy_period ... ok
[INFO] [stdout] test beasts::slaying::tests::test_insufficient_factions_fails ... ok
[INFO] [stdout] test cataclysms::tests::test_cataclysm_creation ... ok
[INFO] [stdout] test beasts::slaying::tests::test_slaying_creates_remnant ... ok
[INFO] [stdout] test cataclysms::tests::test_cataclysm_store ... ok
[INFO] [stdout] test beasts::slaying::tests::test_insufficient_power_fails ... ok
[INFO] [stdout] test cataclysms::tests::test_cataclysm_to_event ... ok
[INFO] [stdout] test config::tests::test_total_cells ... ok
[INFO] [stdout] test config::tests::test_default_config ... ok
[INFO] [stdout] test artifacts::tests::test_cataclysm_cap ... ok
[INFO] [stdout] test config::tests::test_validation_height_exceeds_max ... ok
[INFO] [stdout] test config::tests::test_world_area ... ok
[INFO] [stdout] test config::tests::test_validation_width_exceeds_max ... ok
[INFO] [stdout] test config::tests::test_validation_invalid_sea_level ... ok
[INFO] [stdout] test config::tests::test_valid_custom_config ... ok
[INFO] [stdout] test config::validation::tests::test_invalid_width ... ok
[INFO] [stdout] test config::validation::tests::test_invalid_sea_level ... ok
[INFO] [stdout] test events::effect::tests::test_effect_target ... ok
[INFO] [stdout] test config::validation::tests::test_valid_config ... ok
[INFO] [stdout] test config::validation::tests::test_invalid_octaves ... ok
[INFO] [stdout] test events::event_type::tests::test_duration_events ... ok
[INFO] [stdout] test events::event_type::tests::test_event_category_event_types ... ok
[INFO] [stdout] test events::effect::tests::test_effect_names ... ok
[INFO] [stdout] test events::event_type::tests::test_event_type_categories ... ok
[INFO] [stdout] test events::event_type::tests::test_event_type_significance ... ok
[INFO] [stdout] test events::event_type::tests::test_event_type_names ... ok
[INFO] [stdout] test events::effect::tests::test_effect_valence ... ok
[INFO] [stdout] test events::probability::effect_application::tests::test_deduplication ... ok
[INFO] [stdout] test events::probability::effect_application::tests::test_magnitude_application ... ok
[INFO] [stdout] test events::probability::effect_application::tests::test_magnitude_calculation ... ok
[INFO] [stdout] test events::probability::effect_application::tests::test_entity_validation ... ok
[INFO] [stdout] test events::probability::effect_application::tests::test_effect_application ... ok
[INFO] [stdout] test events::probability::effect_application::tests::test_effect_priority_ordering ... ok
[INFO] [stdout] test events::probability::engine::tests::test_environmental_modifier ... ok
[INFO] [stdout] test events::probability::engine::tests::test_different_seeds_different_results ... ok
[INFO] [stdout] test events::probability::effect_application::tests::test_state_change_tracking ... ok
[INFO] [stdout] test events::probability::engine::tests::test_determinism ... ok
[INFO] [stdout] test events::probability::engine::tests::test_base_probability_lookup ... ok
[INFO] [stdout] test events::probability::engine::tests::test_epoch_scaling ... ok
[INFO] [stdout] test events::probability::engine::tests::test_cooldown_tracking ... ok
[INFO] [stdout] test events::probability::engine::tests::test_war_state_modifier ... ok
[INFO] [stdout] test events::probability::engine::tests::test_probability_calculation ... ok
[INFO] [stdout] test events::probability::event_predictor::tests::test_event_recording ... ok
[INFO] [stdout] test events::probability::event_predictor::tests::test_frequency_stats ... ok
[INFO] [stdout] test events::probability::secondary_events::tests::test_candidate_to_event ... ok
[INFO] [stdout] test events::probability::event_predictor::tests::test_prediction ... ok
[INFO] [stdout] test events::probability::secondary_events::tests::test_determinism ... ok
[INFO] [stdout] test events::probability::secondary_events::tests::test_process_primary_event ... ok
[INFO] [stdout] test events::probability::event_predictor::tests::test_confidence_calculation ... ok
[INFO] [stdout] test events::probability::secondary_events::tests::test_secondary_event_queue ... ok
[INFO] [stdout] test events::probability::secondary_events::tests::test_trigger_rule_creation ... ok
[INFO] [stdout] test events::tests::test_event_builder ... ok
[INFO] [stdout] test events::tests::test_event_creation ... ok
[INFO] [stdout] test events::tests::test_event_store_operations ... ok
[INFO] [stdout] test events::tests::test_historical_time_year ... ok
[INFO] [stdout] test events::tests::test_settlement_founded_event ... ok
[INFO] [stdout] test events::timeline::tests::test_timeline_creation ... ok
[INFO] [stdout] test events::timeline::tests::test_timeline_range_query ... ok
[INFO] [stdout] test events::timeline::tests::test_timeline_sorting ... ok
[INFO] [stdout] test events::timeline::tests::test_timeline_stats ... ok
[INFO] [stdout] test events::timeline::tests::test_timeline_type_filter ... ok
[INFO] [stdout] test events::timeline::tests::test_timeline_year_range ... ok
[INFO] [stdout] test faction::faction_stats_tests::hp_mechanics::test_is_critical ... ok
[INFO] [stdout] test faction::faction_stats_tests::hp_mechanics::test_new_faction_has_base_stats ... ok
[INFO] [stdout] test faction::faction_stats_tests::hp_mechanics::test_take_damage ... ok
[INFO] [stdout] test faction::faction_stats_tests::hp_mechanics::test_recalculate_stats ... ok
[INFO] [stdout] test faction::faction_stats_tests::hp_mechanics::test_heal ... ok
[INFO] [stdout] test faction::faction_stats_tests::hp_mechanics::test_take_fatal_damage ... ok
[INFO] [stdout] test faction::faction_stats_tests::hp_mechanics::test_take_overkill_damage ... ok
[INFO] [stdout] test faction::faction_stats_tests::stat_calculations::test_cunning_calculation ... ok
[INFO] [stdout] test faction::faction_stats_tests::stat_calculations::test_hp_calculation ... ok
[INFO] [stdout] test faction::faction_stats_tests::stat_calculations::test_force_calculation ... ok
[INFO] [stdout] test faction::faction_stats_tests::stat_calculations::test_wealth_calculation ... ok
[INFO] [stdout] test faction_integration::tests::test_ai_difficulty ... ok
[INFO] [stdout] test faction_integration::tests::test_diplomatic_processor ... ok
[INFO] [stdout] test faction_integration::tests::test_faction_generator ... ok
[INFO] [stdout] test faction_integration::tests::test_faction_processor_creation ... ok
[INFO] [stdout] test faction_turn::tests::test_faction_disband_threshold ... ok
[INFO] [stdout] test faction_turn::tests::test_faction_turn_manager_failure_tracking ... ok
[INFO] [stdout] test faction_turn::tests::test_order_creation ... ok
[INFO] [stdout] test faction_turn::tests::test_turn_manager_config ... ok
[INFO] [stdout] test figures::tests::test_biography_generation ... ok
[INFO] [stdout] test faction_turn::tests::test_purchase_cap ... ok
[INFO] [stdout] test figures::tests::test_dynasty_creation ... ok
[INFO] [stdout] test figures::tests::test_dynasty_store ... ok
[INFO] [stdout] test figures::tests::test_dynasty_lifecycle ... ok
[INFO] [stdout] test figures::tests::test_figure_lifecycle_state ... ok
[INFO] [stdout] test figures::tests::test_figure_lifespan ... ok
[INFO] [stdout] test figures::tests::test_figure_type_from_event ... ok
[INFO] [stdout] test figures::tests::test_figure_name_generator ... ok
[INFO] [stdout] test figures::tests::test_figure_store ... ok
[INFO] [stdout] test figures::tests::test_honorific_generation ... ok
[INFO] [stdout] test figures::tests::test_impact_score_calculation ... ok
[INFO] [stdout] test figures::tests::test_influence_propagation ... ok
[INFO] [stdout] test figures::tests::test_title_generation ... ok
[INFO] [stdout] test figures::tests::test_significance_generation ... ok
[INFO] [stdout] test figures::tests::test_lifecycle_update ... ok
[INFO] [stdout] test figures::tests::test_relationship_graph ... ok
[INFO] [stdout] test figures::tests::test_settlement_influence_modifiers ... ok
[INFO] [stdout] test events::probability::event_predictor::tests::test_category_prediction ... ok
[INFO] [stdout] test events::probability::secondary_events::tests::test_default_rules_exist ... ok
[INFO] [stdout] test faction_turn::tests::test_turn_manager_creation ... ok
[INFO] [stdout] test generation::voronoi::polygon_extraction_tests::test_polygon_vertices_sorted ... ok
[INFO] [stdout] test generation::tests::test_get_carrying_capacity ... ok
[INFO] [stdout] test generation::voronoi::tests::test_basic_generation ... ok
[INFO] [stdout] test generation::voronoi::tests::test_cell_assignment_coverage ... ok
[INFO] [stdout] test generation::voronoi::tests::test_cell_at ... ok
[INFO] [stdout] test generation::voronoi::polygon_extraction_tests::test_extract_polygon_vertices ... ok
[INFO] [stdout] test generation::voronoi::tests::test_edge_detection ... ok
[INFO] [stdout] test generation::voronoi::tests::test_blue_noise_vs_random ... ok
[INFO] [stdout] test generation::voronoi::tests::test_neighbors_connectivity ... ok
[INFO] [stdout] test generation::voronoi::tests::test_deterministic_generation ... ok
[INFO] [stdout] test generation::voronoi::tests::test_polygon_graph_creation ... ok
[INFO] [stdout] test generation::voronoi::tests::test_torus_boundary ... ok
[INFO] [stdout] test generation::voronoi::tests::test_lloyd_relaxation ... ok
[INFO] [stdout] test generation::voronoi::tests::test_quick_voronoi ... ok
[INFO] [stdout] test history::generator::tests::test_artifact_category_from_event ... ok
[INFO] [stdout] test history::generator::tests::test_generation_result_empty ... ok
[INFO] [stdout] test history::generator::tests::test_generator_config_defaults ... ok
[INFO] [stdout] test history::generator::tests::test_history_generator_creation ... ok
[INFO] [stdout] test history::population::tests::test_carrying_capacity ... ok
[INFO] [stdout] test history::population::tests::test_disease_factor ... ok
[INFO] [stdout] test history::population::tests::test_food_availability ... ok
[INFO] [stdout] test history::population::tests::test_logistic_growth_suppression ... ok
[INFO] [stdout] test history::population::tests::test_population_growth ... ok
[INFO] [stdout] test history::population::tests::test_settlement_food_calculator ... ok
[INFO] [stdout] test history::population::tests::test_society_transition ... ok
[INFO] [stdout] test history::population::tests::test_society_type_from_population ... ok
[INFO] [stdout] test history::population::tests::test_total_population ... ok
[INFO] [stdout] test history::population_adapter::tests::test_adapter_disease_warning ... ok
[INFO] [stdout] test history::population_adapter::tests::test_adapter_food_scarcity ... ok
[INFO] [stdout] test history::population_adapter::tests::test_adapter_growth_event ... ok
[INFO] [stdout] test history::population_adapter::tests::test_adapter_transition_event ... ok
[INFO] [stdout] test history::population_adapter::tests::test_min_population_threshold ... ok
[INFO] [stdout] test history::society::tests::test_growth_rate_calculation ... ok
[INFO] [stdout] test history::society::tests::test_population_sample_recording ... ok
[INFO] [stdout] test history::society::tests::test_society_creation ... ok
[INFO] [stdout] test history::society::tests::test_society_registry ... ok
[INFO] [stdout] test history::society::tests::test_society_transition ... ok
[INFO] [stdout] test history::society::tests::test_society_type_from_population ... ok
[INFO] [stdout] test history::society::tests::test_society_type_ranges ... ok
[INFO] [stdout] test history::species::tests::test_behaviors_validation ... ok
[INFO] [stdout] test history::species::tests::test_only_in_history_marker ... ok
[INFO] [stdout] test history::species::tests::test_parse_humans_template ... ok
[INFO] [stdout] test history::species::tests::test_society_evolution ... ok
[INFO] [stdout] test hydro::drainage_basin::tests::test_basic_basin_calculation ... ok
[INFO] [stdout] test hydro::drainage_basin::tests::test_basin_adjacency ... ok
[INFO] [stdout] test hydro::drainage_basin::tests::test_basin_outlet_types ... ok
[INFO] [stdout] test hydro::drainage_basin::tests::test_basin_statistics ... ok
[INFO] [stdout] test hydro::drainage_basin::tests::test_min_basin_area_filter ... ok
[INFO] [stdout] test hydro::polygon_rivers::tests::test_confluence_detection ... ok
[INFO] [stdout] test hydro::polygon_rivers::tests::test_polygon_has_river ... ok
[INFO] [stdout] test hydro::polygon_rivers::tests::test_river_creation ... ok
[INFO] [stdout] test hydro::polygon_rivers::tests::test_river_source_and_mouth ... ok
[INFO] [stdout] test hydro::polygon_rivers::tests::test_spawn_probability ... ok
[INFO] [stdout] test hydro::polygon_rivers::tests::test_volume_calculation ... ok
[INFO] [stdout] test hydro::rivers::tests::test_deterministic_rivers ... ok
[INFO] [stdout] test hydro::rivers::tests::test_flow_accumulation ... ok
[INFO] [stdout] test hydro::rivers::tests::test_river_generation ... ok
[INFO] [stdout] test hydro::rivers::tests::test_river_id ... ok
[INFO] [stdout] test packaging::tests::test_inspect_package ... ok
[INFO] [stdout] test packaging::tests::test_load_world_metadata ... ok
[INFO] [stdout] test packaging::tests::test_nonexistent_file ... ok
[INFO] [stdout] test packaging::tests::test_package_error_display ... ok
[INFO] [stdout] test packaging::tests::test_package_with_regions ... ok
[INFO] [stdout] test packaging::tests::test_save_and_load_world ... ok
[INFO] [stdout] test packaging::tests::test_save_world_package ... ok
[INFO] [stdout] test packaging::tests::test_tar_archive_header_size_integrity ... ok
[INFO] [stdout] test settlements::settlement_entity_tests::test_settlement_founded_year_assignment ... ok
[INFO] [stdout] test settlements::settlement_entity_tests::test_settlement_with_full_details ... ok
[INFO] [stdout] test settlements::settlement_entity_tests::test_settlement_with_society ... ok
[INFO] [stdout] test settlements::settlement_name_tests::test_generate_settlement_name_creates_names ... ok
[INFO] [stdout] test settlements::settlement_name_tests::test_generate_settlement_name_determinism ... ok
[INFO] [stdout] test settlements::settlement_name_tests::test_generate_settlement_name_different_types ... ok
[INFO] [stdout] test settlements::tests::test_carrying_capacity_values ... ok
[INFO] [stdout] test settlements::tests::test_carrying_capacity_varies_by_biome ... ok
[INFO] [stdout] test settlements::tests::test_density_map_access ... ok
[INFO] [stdout] test settlements::tests::test_excluded_biomes ... ok
[INFO] [stdout] test settlements::tests::test_generate_with_species_integration ... ok
[INFO] [stdout] test settlements::tests::test_settlement_config_default ... ok
[INFO] [stdout] test settlements::tests::test_settlement_generation_determinism ... ok
[INFO] [stdout] test settlements::tests::test_settlement_species_assignment ... ok
[INFO] [stdout] test settlements::tests::test_species_name_generation ... ok
[INFO] [stdout] test settlements::tests::test_species_suitability_by_biome ... ok
[INFO] [stdout] test simulation::population::tests::test_carrying_capacity ... ok
[INFO] [stdout] test simulation::population::tests::test_disaster_loss ... ok
[INFO] [stdout] test simulation::population::tests::test_disaster_type_severity ... ok
[INFO] [stdout] test simulation::population::tests::test_disease_outbreak ... ok
[INFO] [stdout] test simulation::population::tests::test_disease_type_severity ... ok
[INFO] [stdout] test simulation::population::tests::test_food_security ... ok
[INFO] [stdout] test simulation::population::tests::test_population_by_society ... ok
[INFO] [stdout] test simulation::population::tests::test_population_change_effects ... ok
[INFO] [stdout] test simulation::population::tests::test_population_growth ... ok
[INFO] [stdout] test simulation::population::tests::test_society_type_from_population ... ok
[INFO] [stdout] test simulation::population::tests::test_total_population ... ok
[INFO] [stdout] test species::loader::tests::test_convert_to_species_data ... ok
[INFO] [stdout] test species::loader::tests::test_deterministic_loading ... ok
[INFO] [stdout] test species::loader::tests::test_duplicate_id_rejected ... ok
[INFO] [stdout] test species::loader::tests::test_empty_prefixes_rejected ... ok
[INFO] [stdout] test species::loader::tests::test_empty_species_rejected ... ok
[INFO] [stdout] test species::loader::tests::test_id_less_than_100_rejected ... ok
[INFO] [stdout] test species::loader::tests::test_invalid_biome_rejected ... ok
[INFO] [stdout] test species::loader::tests::test_invalid_trait_rejected ... ok
[INFO] [stdout] test species::loader::tests::test_invalid_version ... ok
[INFO] [stdout] test species::loader::tests::test_merge_overrides_same_id ... ok
[INFO] [stdout] test species::loader::tests::test_merge_preserves_defaults ... ok
[INFO] [stdout] test species::loader::tests::test_parse_valid_template ... ok
[INFO] [stdout] test species::tests::test_best_species_for_biome ... ok
[INFO] [stdout] test species::tests::test_default_species_data ... ok
[INFO] [stdout] test species::tests::test_dwarf_boreal ... ok
[INFO] [stdout] test species::tests::test_elf_forest_dwelling ... ok
[INFO] [stdout] test species::tests::test_generate_name ... ok
[INFO] [stdout] test species::tests::test_human_inhabits_temperate ... ok
[INFO] [stdout] test species::tests::test_species_suitability ... ok
[INFO] [stdout] test storage::tests::test_bytes_to_human ... ok
[INFO] [stdout] test storage::tests::test_default_config ... ok
[INFO] [stdout] test storage::tests::test_delete_world ... ok
[INFO] [stdout] test storage::tests::test_get_world_path_alias ... ok
[INFO] [stdout] test storage::tests::test_is_writable_dir ... ok
[INFO] [stdout] test storage::tests::test_list_worlds ... ok
[INFO] [stdout] test storage::tests::test_permission_error_detection ... ok
[INFO] [stdout] test storage::tests::test_storage_manager_creation ... ok
[INFO] [stdout] test storage::tests::test_storage_result_type ... ok
[INFO] [stdout] test storage::tests::test_storage_stats ... ok
[INFO] [stdout] test storage::tests::test_world_exists ... ok
[INFO] [stdout] test storage::tests::test_world_factory_dir_env_const ... ok
[INFO] [stdout] test storage::tests::test_world_package_path_with_prefix ... ok
[INFO] [stdout] test storage::tests::test_world_paths ... ok
[INFO] [stdout] test storage::tests::test_world_storage_info ... ok
[INFO] [stdout] test terrain::biome_assignment::tests::test_alpine_override ... ok
[INFO] [stdout] test terrain::biome_assignment::tests::test_biome_color_mapping ... ok
[INFO] [stdout] test terrain::biome_assignment::tests::test_biome_color_utility ... ok
[INFO] [stdout] test terrain::biome_assignment::tests::test_boreal_assignment ... ok
[INFO] [stdout] test terrain::biome_assignment::tests::test_climate_zone_determination ... ok
[INFO] [stdout] test terrain::biome_assignment::tests::test_coherence_disabled ... ok
[INFO] [stdout] test terrain::biome_assignment::tests::test_desert_assignment ... ok
[INFO] [stdout] test terrain::biome_assignment::tests::test_deterministic_reproduction ... ok
[INFO] [stdout] test terrain::biome_assignment::tests::test_elevation_adjustment ... ok
[INFO] [stdout] test terrain::biome_assignment::tests::test_geographic_coherence ... ok
[INFO] [stdout] test terrain::biome_assignment::tests::test_moisture_level_from_precipitation ... ok
[INFO] [stdout] test terrain::biome_assignment::tests::test_tropical_rainforest_assignment ... ok
[INFO] [stdout] test terrain::climate_calculator::tests::test_deterministic_temperature ... ok
[INFO] [stdout] test terrain::climate_calculator::tests::test_elevation_cools_temperature ... ok
[INFO] [stdout] test terrain::climate_calculator::tests::test_moisture_coastal_effect ... ok
[INFO] [stdout] test terrain::climate_calculator::tests::test_polygon_climate_zones ... ok
[INFO] [stdout] test terrain::climate_calculator::tests::test_rain_shadow_effect ... ok
[INFO] [stdout] test terrain::climate_calculator::tests::test_temperature_at_equator ... ok
[INFO] [stdout] test terrain::climate_calculator::tests::test_temperature_at_poles ... ok
[INFO] [stdout] test terrain::climate_calculator::tests::test_temperature_range_bounded ... ok
[INFO] [stdout] test terrain::climate_calculator::tests::test_wind_direction_zones ... ok
[INFO] [stdout] test terrain::elevation_assignment::tests::test_basic_assignment ... ok
[INFO] [stdout] test terrain::elevation_assignment::tests::test_coastal_unchanged ... ok
[INFO] [stdout] test terrain::elevation_assignment::tests::test_deterministic ... ok
[INFO] [stdout] test terrain::elevation_assignment::tests::test_different_seeds_different_output ... ok
[INFO] [stdout] test terrain::elevation_assignment::tests::test_empty_graph ... ok
[INFO] [stdout] test terrain::elevation_assignment::tests::test_get_coastal_ids ... ok
[INFO] [stdout] test terrain::elevation_assignment::tests::test_get_mountain_ids ... ok
[INFO] [stdout] test terrain::elevation_assignment::tests::test_interior_higher_than_coast ... ok
[INFO] [stdout] test terrain::elevation_assignment::tests::test_monotonic_enforcement ... ok
[INFO] [stdout] test terrain::elevation_assignment::tests::test_mountain_highest ... ok
[INFO] [stdout] test terrain::elevation_assignment::tests::test_mountainous_config ... ok
[INFO] [stdout] test terrain::elevation_assignment::tests::test_weighted_distance ... ok
[INFO] [stdout] test terrain::elevation_grid::tests::test_bilinear_interpolation ... ok
[INFO] [stdout] test terrain::elevation_grid::tests::test_creation ... ok
[INFO] [stdout] test terrain::elevation_grid::tests::test_get_set ... ok
[INFO] [stdout] test terrain::elevation_grid::tests::test_gradient ... ok
[INFO] [stdout] test terrain::elevation_grid::tests::test_is_valid ... ok
[INFO] [stdout] test terrain::elevation_grid::tests::test_resize ... ok
[INFO] [stdout] test terrain::elevation_grid::tests::test_row_access ... ok
[INFO] [stdout] test terrain::elevation_grid::tests::test_statistics ... ok
[INFO] [stdout] test terrain::elevation_grid::tests::test_unchecked_access ... ok
[INFO] [stdout] test generation::tests::test_land_water_classification ... ok
[INFO] [stdout] test generation::world_with_settlements::tests::test_biome_generation ... ok
[INFO] [stdout] test terrain::lod::tests::test_level_for_distance ... ok
[INFO] [stdout] test terrain::lod::tests::test_lod_level_creation ... ok
[INFO] [stdout] test terrain::lod::tests::test_lod_mesh_levels ... ok
[INFO] [stdout] test terrain::lod::tests::test_lod_selection_hint ... ok
[INFO] [stdout] test terrain::lod::tests::test_lod_transition_data ... ok
[INFO] [stdout] test generation::tests::test_river_detection ... ok
[INFO] [stdout] test terrain::lod::tests::test_reduction_ratio ... ok
[INFO] [stdout] test terrain::mesh::tests::test_attribute_values ... ok
[INFO] [stdout] test terrain::lod::tests::test_simplification_info ... ok
[INFO] [stdout] test terrain::mesh::tests::test_bounding_box_from_points ... ok
[INFO] [stdout] test terrain::mesh::tests::test_bounding_box_center ... ok
[INFO] [stdout] test terrain::mesh::tests::test_material_group ... ok
[INFO] [stdout] test terrain::mesh::tests::test_mesh_basic_operations ... ok
[INFO] [stdout] test terrain::mesh::tests::test_mesh_face_with_material ... ok
[INFO] [stdout] test terrain::mesh::tests::test_mesh_serialization ... ok
[INFO] [stdout] test terrain::mesh::tests::test_mesh_vertex_creation ... ok
[INFO] [stdout] test terrain::mesh::tests::test_mesh_vertex_with_normal ... ok
[INFO] [stdout] test terrain::natural_wonders::wonder_spawner::tests::test_deterministic_naming ... ok
[INFO] [stdout] test terrain::mesh::tests::test_mesh_face_creation ... ok
[INFO] [stdout] test terrain::natural_wonders::wonder_spawner::tests::test_wonder_spawner_creation ... ok
[INFO] [stdout] test terrain::ocean::tests::test_coastal_metrics ... ok
[INFO] [stdout] test terrain::ocean::tests::test_coastal_polygon_detection ... ok
[INFO] [stdout] test terrain::ocean::tests::test_coastal_statistics ... ok
[INFO] [stdout] test terrain::ocean::tests::test_depth_classification ... ok
[INFO] [stdout] test terrain::ocean::tests::test_deterministic_detection ... ok
[INFO] [stdout] test terrain::ocean::tests::test_is_ocean ... ok
[INFO] [stdout] test terrain::ocean::tests::test_ocean_region_detection ... ok
[INFO] [stdout] test terrain::ocean::tests::test_ocean_zone_detection ... ok
[INFO] [stdout] test terrain::resource_spawner::tests::test_biome_affinity_mountains ... ok
[INFO] [stdout] test terrain::resource_spawner::tests::test_biome_compatibility ... ok
[INFO] [stdout] test terrain::resource_spawner::tests::test_boundary_effect_types ... ok
[INFO] [stdout] test terrain::resource_spawner::tests::test_deterministic_spawning ... ok
[INFO] [stdout] test terrain::resource_spawner::tests::test_elevation_filtering ... ok
[INFO] [stdout] test terrain::resource_spawner::tests::test_no_fantasy ... ok
[INFO] [stdout] test terrain::resource_spawner::tests::test_resource_value ... ok
[INFO] [stdout] test terrain::resource_spawner::tests::test_spawn_regions_with_tectonic ... ok
[INFO] [stdout] test terrain::resource_spawner::tests::test_stats_calculation ... ok
[INFO] [stdout] test terrain::natural_wonders::wonder_spawner::tests::test_wonder_count_calculation ... ok
[INFO] [stdout] test terrain::resource_spawner::tests::test_tectonic_boundary_data ... ok
[INFO] [stdout] test terrain::resource_spawner::tests::test_tectonic_spawning ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_all_categories_count ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_aquatic_detection ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_fantasy_detection ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_mineral_detection ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_all_resource_types_count ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_rarity ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_resource_deposit_creation ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_resource_generator ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_resource_category ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_resource_set_operations ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_resource_type_names ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_resource_values ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_richness_probability ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_richness_yield ... ok
[INFO] [stdout] test terrain::resource_types::tests::test_viability_matrix ... ok
[INFO] [stdout] test terrain::tectonic::elevation_effects::tests::test_distance_falloff ... ok
[INFO] [stdout] test terrain::tectonic::elevation_effects::tests::test_grid_modifiers ... ok
[INFO] [stdout] test terrain::tectonic::elevation_effects::tests::test_subsidence_modifier ... ok
[INFO] [stdout] test terrain::tectonic::elevation_effects::tests::test_uplift_modifier ... ok
[INFO] [stdout] test terrain::tectonic::plate_generator::tests::test_cell_assignment ... ok
[INFO] [stdout] test terrain::tectonic::plate_generator::tests::test_voronoi_seeds ... ok
[INFO] [stdout] test terrain::tectonic::plate_generator::tests::test_plate_builder ... ok
[INFO] [stdout] test terrain::tectonic::simulation::tests::test_boundary_classification ... ok
[INFO] [stdout] test generation::world_with_settlements::tests::test_world_with_settlements ... ok
[INFO] [stdout] test terrain::tectonic::simulation::tests::test_plate_coverage ... ok
[INFO] [stdout] test terrain::tectonic::simulation::tests::test_simulator_creation ... ok
[INFO] [stdout] test terrain::terrain_generator::tests::test_deterministic_generation ... ok
[INFO] [stdout] test terrain::terrain_generator::tests::test_tectonic_result_access ... ok
[INFO] [stdout] test terrain::terrain_generator::tests::test_temperature_estimation ... ok
[INFO] [stdout] test generation::tests::test_world_generation ... ok
[INFO] [stdout] test terrain::terrain_grid::tests::test_cell_bitpacking ... ok
[INFO] [stdout] test terrain::terrain_grid::tests::test_cell_raw_conversion ... ok
[INFO] [stdout] test terrain::terrain_grid::tests::test_grid_dimensions ... ok
[INFO] [stdout] test terrain::terrain_grid::tests::test_memory_usage ... ok
[INFO] [stdout] test terrain::topology::tests::test_adjacency_map ... ok
[INFO] [stdout] test terrain::topology::tests::test_border_type_checks ... ok
[INFO] [stdout] test terrain::topology::tests::test_boundary_edge ... ok
[INFO] [stdout] test terrain::topology::tests::test_coastal_edge ... ok
[INFO] [stdout] test terrain::topology::tests::test_polygon_edge_creation ... ok
[INFO] [stdout] test terrain::topology::tests::test_polygon_topology_basic ... ok
[INFO] [stdout] test terrain::topology::tests::test_polygon_topology_coastal ... ok
[INFO] [stdout] test terrain::topology::tests::test_polygon_topology_shape_factor ... ok
[INFO] [stdout] test terrain::topology::tests::test_serialization ... ok
[INFO] [stdout] test terrain::topology::tests::test_topology_builder ... ok
[INFO] [stdout] test terrain::topology::tests::test_topology_map_basic ... ok
[INFO] [stdout] test terrain::topology::tests::test_topology_map_neighbors ... ok
[INFO] [stdout] test util::geometry::tests::test_direction_delta ... ok
[INFO] [stdout] test util::geometry::tests::test_direction_rotation ... ok
[INFO] [stdout] test util::geometry::tests::test_seed ... ok
[INFO] [stdout] test terrain::terrain_generator::tests::test_tectonic_integration ... ok
[INFO] [stdout] test util::geometry::tests::test_vec2_basic ... ok
[INFO] [stdout] test util::geometry::tests::test_vec2_distance ... ok
[INFO] [stdout] test util::geometry::tests::test_vec2_scaling ... ok
[INFO] [stdout] test util::geometry::tests::test_vec2_scaling ... ok
[INFO] [stdout] test util::geometry::tests::test_vec2_operations ... ok
[INFO] [stdout] test util::noise::tests::test_different_seeds ... ok
[INFO] [stdout] test util::noise::tests::test_3d_noise ... ok
[INFO] [stdout] test util::noise::tests::test_noise_deterministic ... ok
[INFO] [stdout] test util::noise::tests::test_noise_range ... ok
[INFO] [stdout] test util::noise::tests::test_octave_noise ... ok
[INFO] [stdout] test world::entities::planet::tests::test_boundary_is_volcanic ... ok
[INFO] [stdout] test world::entities::planet::tests::test_drainage_basin_validation ... ok
[INFO] [stdout] test world::entities::planet::tests::test_climate_zone_from_latitude ... ok
[INFO] [stdout] test world::entities::planet::tests::test_geography_carrying_capacity ... ok
[INFO] [stdout] test generation::tests::test_coastline_detection ... ok
[INFO] [stdout] test world::entities::planet::tests::test_drainage_type_outflow ... ok
[INFO] [stdout] test world::entities::planet::tests::test_planet_validation ... ok
[INFO] [stdout] test world::entities::planet::tests::test_planet_earth_preset ... ok
[INFO] [stdout] test world::entities::planet::tests::test_precipitation_aridity ... ok
[INFO] [stdout] test world::entities::planet::tests::test_planet_dimensions ... ok
[INFO] [stdout] test world::entities::planet::tests::test_precipitation_bounds ... ok
[INFO] [stdout] test world::entities::planet::tests::test_precipitation_inches ... ok
[INFO] [stdout] test world::entities::planet::tests::test_precipitation_zone ... ok
[INFO] [stdout] test world::entities::planet::tests::test_tectonic_plate_orogenic ... ok
[INFO] [stdout] test world::entities::planet::tests::test_temperature_bounds ... ok
[INFO] [stdout] test world::entities::planet::tests::test_temperature_kelvin ... ok
[INFO] [stdout] test world::entities::planet::tests::test_temperature_zone ... ok
[INFO] [stdout] test world::entities::polygon::tests::test_bounding_box ... ok
[INFO] [stdout] test world::entities::planet::tests::test_tectonic_plate_validation ... ok
[INFO] [stdout] test world::entities::planet::tests::test_tectonic_plate_velocity ... ok
[INFO] [stdout] test world::entities::polygon::tests::test_point2d_operations ... ok
[INFO] [stdout] test world::entities::polygon::tests::test_point2d_normalize ... ok
[INFO] [stdout] test world::entities::polygon::tests::test_polygon_centroid ... ok
[INFO] [stdout] test world::entities::polygon::tests::test_polygon_compactness ... ok
[INFO] [stdout] test world::entities::polygon::tests::test_polygon_mesh ... ok
[INFO] [stdout] test world::entities::polygon::tests::test_polygon_point_contains ... ok
[INFO] [stdout] test world::entities::polygon::tests::test_serialization ... ok
[INFO] [stdout] test world::entities::polygon::tests::test_triangle ... ok
[INFO] [stdout] test world::entities::polygon::tests::test_polygon_triangle ... ok
[INFO] [stdout] test world::generation::geography_generator::tests::test_elevation_affects_temperature ... ok
[INFO] [stdout] test world::generation::geography_generator::tests::test_freshwater_river_bonus ... ok
[INFO] [stdout] test world::generation::geography_generator::tests::test_elevation_zones ... ok
[INFO] [stdout] test world::generation::geography_generator::tests::test_ocean_biome_drainage ... ok
[INFO] [stdout] test world::generation::geography_generator::tests::test_temperature_calculation ... ok
[INFO] [stdout] test world::generation::lloyd_relaxation::tests::test_centroid_factor_effect ... ok
[INFO] [stdout] test world::generation::lloyd_relaxation::tests::test_default_config ... ok
[INFO] [stdout] test world::generation::lloyd_relaxation::tests::test_convergence ... ok
[INFO] [stdout] test world::generation::lloyd_relaxation::tests::test_deterministic_mode ... ok
[INFO] [stdout] test world::generation::lloyd_relaxation::tests::test_relaxation_iterations ... ok
[INFO] [stdout] test world::generation::lloyd_relaxation::tests::test_relax_seeds ... ok
[INFO] [stdout] test world::generation::lloyd_relaxation::tests::test_standard_config ... ok
[INFO] [stdout] test world::generation::lloyd_relaxation::tests::test_seeds_within_bounds ... ok
[INFO] [stdout] test world::generation::lloyd_relaxation::tests::test_relaxed_seed ... ok
[INFO] [stdout] test terrain::erosion::tests::test_deterministic_erosion ... ok
[INFO] [stdout] test terrain::tectonic::simulation::tests::test_deterministic_simulation ... ok
[INFO] [stdout] test generation::tests::test_deterministic_generation ... ok
[INFO] [stdout] test terrain::erosion::tests::test_erosion_changes_terrain ... ok
[INFO] [stdout] test terrain::terrain_generator::tests::test_terrain_generation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 443 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.84s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/world_generator-1ed6202ee09b69f1)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/api_endpoints_test.rs (/opt/rustwide/target/debug/deps/api_endpoints_test-b037c826915c087c)
[INFO] [stderr]      Running tests/api_history_figures_test.rs (/opt/rustwide/target/debug/deps/api_history_figures_test-2dfe0435d65fc379)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test tests::test_event_filtering_by_significance ... ok
[INFO] [stdout] test tests::test_figures_store_filtering ... ok
[INFO] [stdout] test tests::test_world_package_serialization_roundtrip ... ok
[INFO] [stdout] test tests::test_world_package_with_events ... ok
[INFO] [stderr]      Running tests/api_world_generation.rs (/opt/rustwide/target/debug/deps/api_world_generation-f4c2be26c2539a41)
[INFO] [stdout] test tests::test_figure_type_filtering ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test tests::test_concurrent_world_generation ... ok
[INFO] [stdout] test tests::test_create_world_endpoint ... ok
[INFO] [stdout] test tests::test_get_world_terrain ... ok
[INFO] [stdout] test tests::test_world_not_found ... ok
[INFO] [stdout] test tests::test_error_handling_invalid_dimensions ... ok
[INFO] [stderr]      Running tests/cli_flag_test.rs (/opt/rustwide/target/debug/deps/cli_flag_test-b591d68cb7842671)
[INFO] [stdout] test tests::test_error_handling_invalid_seed ... ok
[INFO] [stdout] test tests::test_get_world_polygons ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test cli_version_flag_if_supported ... ok
[INFO] [stdout] test cli_short_flags_unique ... ok
[INFO] [stdout] test cli_required_vs_optional_args ... ok
[INFO] [stdout] test cli_help_flag_works ... ok
[INFO] [stdout] test cli_help_output_well_formatted ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_generation_test.rs (/opt/rustwide/target/debug/deps/cli_generation_test-cb5f313eacb771b2)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test cli_generate_validation_error_invalid_seed ... ok
[INFO] [stdout] test cli_generate_minimum_dimensions ... ok
[INFO] [stdout] test cli_generate_validation_error_invalid_dimensions ... ok
[INFO] [stdout] test cli_generate_command_completes ... ok
[INFO] [stdout] test cli_generate_export_to_creates_file ... ok
[INFO] [stdout] test cli_generate_reproducibility_different_seeds ... ok
[INFO] [stdout] test cli_generate_reproducibility_same_seed ... ok
[INFO] [stdout] test cli_generate_custom_dimensions ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 39.25s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_regression_test.rs (/opt/rustwide/target/debug/deps/cli_regression_test-39493d063eb638bc)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test cli_generate_all_short_flags ... ok
[INFO] [stdout] test cli_help_distinction ... ok
[INFO] [stdout] test cli_h_flag_conflict_regression ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.35s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_server_test.rs (/opt/rustwide/target/debug/deps/cli_server_test-86816b3b7ca1b5a8)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test cli_server_feature_flag_error ... ok
[INFO] [stdout] test cli_server_starts ... ok
[INFO] [stdout] test cli_server_port_conflict ... ok
[INFO] [stdout] test cli_server_custom_port ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.51s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_shared_storage_test.rs (/opt/rustwide/target/debug/deps/cli_shared_storage_test-18365382e58045a6)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test cli_invalid_world_factory_dir ... ok
[INFO] [stdout] test cli_relative_world_factory_dir ... ok
[INFO] [stdout] test cli_world_factory_dir_env_respected ... ok
[INFO] [stdout] test cli_default_storage_when_env_not_set ... ok
[INFO] [stdout] test cli_server_shared_storage ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.05s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/elevation_assignment_test.rs (/opt/rustwide/target/debug/deps/elevation_assignment_test-bd3df51befdf390c)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test integration_tests::test_elevation_assigner_config_presets ... ok
[INFO] [stdout] test integration_tests::test_empty_graph_handling ... ok
[INFO] [stdout] test integration_tests::test_get_mountain_ids ... ok
[INFO] [stdout] test integration_tests::test_deterministic_elevation_assignment ... ok
[INFO] [stdout] test integration_tests::test_elevation_assignment_with_weighted_distance ... ok
[INFO] [stdout] test integration_tests::test_voronoi_with_elevation_assignment ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/export_endpoint_test.rs (/opt/rustwide/target/debug/deps/export_endpoint_test-0de24ca4af8cc24b)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test_export_endpoint_returns_binary_file ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/history_tests.rs (/opt/rustwide/target/debug/deps/history_tests-38610a9f1fbaf512)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test test_event_probability_modifiers ... ok
[INFO] [stdout] test test_figure_birth_before_death ... ok
[INFO] [stdout] test test_history_timeline_chronological ... ok
[INFO] [stdout] test test_population_logistic_growth ... ok
[INFO] [stdout] test test_settlement_not_in_ocean ... ok
[INFO] [stdout] test test_society_hierarchy_transitions ... ok
[INFO] [stdout] test test_artifact_creation_requires_figure ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_world_generation.rs (/opt/rustwide/target/debug/deps/integration_world_generation-cc3621ca541b81a2)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test test_world_generation_land_coverage ... ok
[INFO] [stdout] test test_world_generation_complete_e2e ... ok
[INFO] [stdout] test test_world_generation_ocean_coverage ... ok
[INFO] [stdout] test test_world_generation_elevation_range ... ok
[INFO] [stdout] test test_world_generation_settlements ... ok
[INFO] [stdout] test test_world_generation_biome_diversity ... ok
[INFO] [stdout] test test_world_generation_performance ... ok
[INFO] [stdout] test test_world_generation_terrain_grid ... ok
[INFO] [stdout] test test_world_generation_voronoi_polygons ... ok
[INFO] [stdout] test test_world_generation_determinism ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 36.41s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/phase1_integration_test.rs (/opt/rustwide/target/debug/deps/phase1_integration_test-199864d3af821da6)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test test_biome_assignment_matrix ... ok
[INFO] [stdout] test test_voronoi_generation ... ok
[INFO] [stdout] test test_generation_performance ... ok
[INFO] [stdout] test test_terrain_grid_dimensions ... ok
[INFO] [stdout] test test_terrain_elevation_range ... ok
[INFO] [stdout] test test_terrain_biome_diversity ... ok
[INFO] [stdout] test test_terrain_ocean_coverage ... ok
[INFO] [stdout] test test_complete_64x64_generation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/phase2_integration_test.rs (/opt/rustwide/target/debug/deps/phase2_integration_test-6f9bcc8c32e32ed5)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test test_phase2_integration_500_years ... ok
[INFO] [stdout] test test_phase2_artifact_conditions ... ok
[INFO] [stderr]      Running tests/planet_hang_repro_test.rs (/opt/rustwide/target/debug/deps/planet_hang_repro_test-4593803827c2c26d)
[INFO] [stdout] test test_phase2_determinism ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.32s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test_planet_generation_components ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.64s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/species_template_test.rs (/opt/rustwide/target/debug/deps/species_template_test-5e9f0fba7f119b29)
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test test_core_types_not_in_history ... ok
[INFO] [stdout] test test_all_behaviors_zero_valid ... ok
[INFO] [stdout] test test_all_behaviors_one_valid ... ok
[INFO] [stdout] test test_default_balanced_behaviors ... ok
[INFO] [stdout] test test_invalid_migration_speed ... ok
[INFO] [stdout] test test_invalid_growth_rate ... ok
[INFO] [stdout] test test_invalid_lifespan ... ok
[INFO] [stdout] test test_empty_traits_rejected ... ok
[INFO] [stdout] test test_invalid_behavior_value_rejected ... ok
[INFO] [stdout] test test_only_in_history_society_type ... ok
[INFO] [stdout] test test_only_in_history_stats ... ok
[INFO] [stdout] test test_only_in_history_behavior ... ok
[INFO] [stdout] test test_is_behavior_dominant ... FAILED
[INFO] [stdout] test test_behavior_value_getter ... FAILED
[INFO] [stdout] test test_society_type_evolution ... ok
[INFO] [stdout] test test_invalid_society_thresholds_rejected ... FAILED
[INFO] [stdout] test test_society_type_population_ranges ... ok
[INFO] [stdout] test test_deterministic_parsing ... FAILED
[INFO] [stdout] test test_only_in_history_species_template ... FAILED
[INFO] [stdout] test test_missing_required_field_rejected ... FAILED
[INFO] [stdout] test test_parse_minimal_template ... FAILED
[INFO] [stdout] test test_parse_human_template ... FAILED
[INFO] [stdout] test test_valid_behavior_values ... FAILED
[INFO] [stdout] test test_valid_ascending_thresholds ... FAILED
[INFO] [stdout] test test_species_history_get ... FAILED
[INFO] [stdout] test test_single_society_type_valid ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test_is_behavior_dominant stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_is_behavior_dominant' (2515) panicked at tests/species_template_test.rs:361:54:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Validation("Society thresholds must be ascending: Nation min pop 5000 >= Maritime min pop 200")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5eb1f6afc1f8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5eb1f6b118aa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5eb1f6b118aa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5eb1f6b00a12 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5eb1f6b00a12 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5eb1f6adb3b6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5eb1f6adb3b6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5eb1f6af4749 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5eb1f6a1b81c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5eb1f6a1b81c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5eb1f6af4902 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5eb1f6af4902 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5eb1f6adb472 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5eb1f6ad0679 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5eb1f6adc18d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5eb1f6b1203c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5eb1f6b11db2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5eb1f6a08432 - <core[8fb95b77d25ab6c8]::result::Result<world_factory[99ed854f3ee9cdf3]::history::species::SpeciesTemplate, world_factory[99ed854f3ee9cdf3]::history::species::SpeciesHistoryError>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5eb1f6a08432 - species_template_test[c1affc462eeb4358]::test_is_behavior_dominant
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:361:54
[INFO] [stdout]   22:     0x5eb1f6a07867 - species_template_test[c1affc462eeb4358]::test_is_behavior_dominant::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:359:31
[INFO] [stdout]   23:     0x5eb1f6a0e2d6 - <species_template_test[c1affc462eeb4358]::test_is_behavior_dominant::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5eb1f6a0e8fb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5eb1f6a0e8fb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5eb1f6a1c175 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5eb1f6a15a84 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5eb1f6a15a84 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5eb1f6a1f1f2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5eb1f6a1f1f2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5eb1f6afbb5f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x5eb1f6afbb5f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x747cd60d5aa4 - <unknown>
[INFO] [stdout]   45:     0x747cd6162a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_behavior_value_getter stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_behavior_value_getter' (2505) panicked at tests/species_template_test.rs:403:54:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Validation("Society thresholds must be ascending: Nation min pop 5000 >= Maritime min pop 200")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5eb1f6afc1f8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5eb1f6b118aa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5eb1f6b118aa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5eb1f6b00a12 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5eb1f6b00a12 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5eb1f6adb3b6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5eb1f6adb3b6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5eb1f6af4749 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5eb1f6a1b81c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5eb1f6a1b81c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5eb1f6af4902 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5eb1f6af4902 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5eb1f6adb472 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5eb1f6ad0679 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5eb1f6adc18d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5eb1f6b1203c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5eb1f6b11db2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5eb1f6a08b52 - <core[8fb95b77d25ab6c8]::result::Result<world_factory[99ed854f3ee9cdf3]::history::species::SpeciesTemplate, world_factory[99ed854f3ee9cdf3]::history::species::SpeciesHistoryError>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5eb1f6a08b52 - species_template_test[c1affc462eeb4358]::test_behavior_value_getter
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:403:54
[INFO] [stdout]   22:     0x5eb1f6a078c7 - species_template_test[c1affc462eeb4358]::test_behavior_value_getter::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:401:32
[INFO] [stdout]   23:     0x5eb1f6a0e356 - <species_template_test[c1affc462eeb4358]::test_behavior_value_getter::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5eb1f6a0e8fb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5eb1f6a0e8fb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5eb1f6a1c175 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5eb1f6a15a84 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5eb1f6a15a84 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5eb1f6a1f1f2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5eb1f6a1f1f2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5eb1f6afbb5f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x5eb1f6afbb5f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x747cd60d5aa4 - <unknown>
[INFO] [stdout]   45:     0x747cd6162a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_invalid_society_thresholds_rejected stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_invalid_society_thresholds_rejected' (2514) panicked at tests/species_template_test.rs:190:5:
[INFO] [stdout] assertion failed: matches!(result, Err(SpeciesHistoryError::Validation(_)))
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5eb1f6afc1f8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5eb1f6b118aa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5eb1f6b118aa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5eb1f6b00a12 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5eb1f6b00a12 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5eb1f6adb3b6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5eb1f6adb3b6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5eb1f6af4749 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5eb1f6a1b81c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5eb1f6a1b81c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5eb1f6af4902 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5eb1f6af4902 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5eb1f6adb4a4 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x5eb1f6ad0679 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5eb1f6adc18d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5eb1f6b1203c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5eb1f6b12002 - core[8fb95b77d25ab6c8]::panicking::panic
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x5eb1f6a0aba9 - species_template_test[c1affc462eeb4358]::test_invalid_society_thresholds_rejected
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:190:5
[INFO] [stdout]   21:     0x5eb1f6a07c87 - species_template_test[c1affc462eeb4358]::test_invalid_society_thresholds_rejected::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:185:46
[INFO] [stdout]   22:     0x5eb1f6a0e856 - <species_template_test[c1affc462eeb4358]::test_invalid_society_thresholds_rejected::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5eb1f6a0e8fb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5eb1f6a0e8fb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x5eb1f6a1c175 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x5eb1f6a15a84 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x5eb1f6a15a84 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x5eb1f6a1f1f2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x5eb1f6a1f1f2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5eb1f6afbb5f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   42:     0x5eb1f6afbb5f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x747cd60d5aa4 - <unknown>
[INFO] [stdout]   44:     0x747cd6162a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_deterministic_parsing stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_deterministic_parsing' (2508) panicked at tests/species_template_test.rs:385:55:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Validation("Society thresholds must be ascending: Nation min pop 5000 >= Maritime min pop 200")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5eb1f6afc1f8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5eb1f6b118aa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5eb1f6b118aa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5eb1f6b00a12 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5eb1f6b00a12 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5eb1f6adb3b6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5eb1f6adb3b6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5eb1f6af4749 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5eb1f6a1b81c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5eb1f6a1b81c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5eb1f6af4902 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5eb1f6af4902 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5eb1f6adb472 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5eb1f6ad0679 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5eb1f6adc18d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5eb1f6b1203c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5eb1f6b11db2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5eb1f6a08ea2 - <core[8fb95b77d25ab6c8]::result::Result<world_factory[99ed854f3ee9cdf3]::history::species::SpeciesTemplate, world_factory[99ed854f3ee9cdf3]::history::species::SpeciesHistoryError>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5eb1f6a08ea2 - species_template_test[c1affc462eeb4358]::test_deterministic_parsing
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:385:55
[INFO] [stdout]   22:     0x5eb1f6a078f7 - species_template_test[c1affc462eeb4358]::test_deterministic_parsing::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:382:32
[INFO] [stdout]   23:     0x5eb1f6a0e396 - <species_template_test[c1affc462eeb4358]::test_deterministic_parsing::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5eb1f6a0e8fb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5eb1f6a0e8fb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5eb1f6a1c175 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5eb1f6a15a84 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5eb1f6a15a84 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5eb1f6a1f1f2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5eb1f6a1f1f2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5eb1f6afbb5f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x5eb1f6afbb5f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x747cd60d5aa4 - <unknown>
[INFO] [stdout]   45:     0x747cd6162a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_only_in_history_species_template stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_only_in_history_species_template' (2519) panicked at tests/species_template_test.rs:268:54:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Validation("Society thresholds must be ascending: Nation min pop 5000 >= Maritime min pop 200")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5eb1f6afc1f8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5eb1f6b118aa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5eb1f6b118aa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5eb1f6b00a12 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5eb1f6b00a12 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5eb1f6adb3b6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5eb1f6adb3b6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5eb1f6af4749 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5eb1f6a1b81c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5eb1f6a1b81c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5eb1f6af4902 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5eb1f6af4902 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5eb1f6adb472 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5eb1f6ad0679 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5eb1f6adc18d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5eb1f6b1203c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5eb1f6b11db2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5eb1f6a0a9b2 - <core[8fb95b77d25ab6c8]::result::Result<world_factory[99ed854f3ee9cdf3]::history::species::SpeciesTemplate, world_factory[99ed854f3ee9cdf3]::history::species::SpeciesHistoryError>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5eb1f6a0a9b2 - species_template_test[c1affc462eeb4358]::test_only_in_history_species_template
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:268:54
[INFO] [stdout]   22:     0x5eb1f6a07c57 - species_template_test[c1affc462eeb4358]::test_only_in_history_species_template::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:266:43
[INFO] [stdout]   23:     0x5eb1f6a0e816 - <species_template_test[c1affc462eeb4358]::test_only_in_history_species_template::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5eb1f6a0e8fb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5eb1f6a0e8fb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5eb1f6a1c175 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5eb1f6a15a84 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5eb1f6a15a84 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5eb1f6a1f1f2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5eb1f6a1f1f2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5eb1f6afbb5f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x5eb1f6afbb5f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x747cd60d5aa4 - <unknown>
[INFO] [stdout]   45:     0x747cd6162a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_missing_required_field_rejected stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_missing_required_field_rejected' (2516) panicked at tests/species_template_test.rs:172:5:
[INFO] [stdout] assertion failed: matches!(result, Err(SpeciesHistoryError::MissingField(_)))
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5eb1f6afc1f8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5eb1f6b118aa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5eb1f6b118aa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5eb1f6b00a12 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5eb1f6b00a12 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5eb1f6adb3b6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5eb1f6adb3b6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5eb1f6af4749 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5eb1f6a1b81c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5eb1f6a1b81c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5eb1f6af4902 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5eb1f6af4902 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5eb1f6adb4a4 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x5eb1f6ad0679 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5eb1f6adc18d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5eb1f6b1203c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5eb1f6b12002 - core[8fb95b77d25ab6c8]::panicking::panic
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x5eb1f6a0a869 - species_template_test[c1affc462eeb4358]::test_missing_required_field_rejected
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:172:5
[INFO] [stdout]   21:     0x5eb1f6a07c27 - species_template_test[c1affc462eeb4358]::test_missing_required_field_rejected::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:168:42
[INFO] [stdout]   22:     0x5eb1f6a0e7d6 - <species_template_test[c1affc462eeb4358]::test_missing_required_field_rejected::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5eb1f6a0e8fb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5eb1f6a0e8fb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x5eb1f6a1c175 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x5eb1f6a15a84 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x5eb1f6a15a84 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x5eb1f6a1f1f2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x5eb1f6a1f1f2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5eb1f6afbb5f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   42:     0x5eb1f6afbb5f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x747cd60d5aa4 - <unknown>
[INFO] [stdout]   44:     0x747cd6162a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_parse_minimal_template stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_parse_minimal_template' (2522) panicked at tests/species_template_test.rs:133:56:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Validation("max_lifespan must be 1-10000, got 0")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5eb1f6afc1f8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5eb1f6b118aa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5eb1f6b118aa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5eb1f6b00a12 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5eb1f6b00a12 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5eb1f6adb3b6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5eb1f6adb3b6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5eb1f6af4749 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5eb1f6a1b81c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5eb1f6a1b81c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5eb1f6af4902 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5eb1f6af4902 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5eb1f6adb472 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5eb1f6ad0679 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5eb1f6adc18d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5eb1f6b1203c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5eb1f6b11db2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5eb1f6a096b2 - <core[8fb95b77d25ab6c8]::result::Result<world_factory[99ed854f3ee9cdf3]::history::species::SpeciesTemplate, world_factory[99ed854f3ee9cdf3]::history::species::SpeciesHistoryError>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5eb1f6a096b2 - species_template_test[c1affc462eeb4358]::test_parse_minimal_template
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:133:56
[INFO] [stdout]   22:     0x5eb1f6a079b7 - species_template_test[c1affc462eeb4358]::test_parse_minimal_template::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:131:33
[INFO] [stdout]   23:     0x5eb1f6a0e496 - <species_template_test[c1affc462eeb4358]::test_parse_minimal_template::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5eb1f6a0e8fb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5eb1f6a0e8fb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5eb1f6a1c175 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5eb1f6a15a84 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5eb1f6a15a84 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5eb1f6a1f1f2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5eb1f6a1f1f2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5eb1f6afbb5f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x5eb1f6afbb5f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x747cd60d5aa4 - <unknown>
[INFO] [stdout]   45:     0x747cd6162a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_parse_human_template stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_parse_human_template' (2521) panicked at tests/species_template_test.rs:120:54:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Validation("Society thresholds must be ascending: Nation min pop 5000 >= Maritime min pop 200")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5eb1f6afc1f8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5eb1f6b118aa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5eb1f6b118aa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5eb1f6b00a12 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5eb1f6b00a12 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5eb1f6adb3b6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5eb1f6adb3b6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5eb1f6af4749 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5eb1f6a1b81c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5eb1f6a1b81c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5eb1f6af4902 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5eb1f6af4902 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5eb1f6adb472 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5eb1f6ad0679 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5eb1f6adc18d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5eb1f6b1203c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5eb1f6b11db2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5eb1f6a08742 - <core[8fb95b77d25ab6c8]::result::Result<world_factory[99ed854f3ee9cdf3]::history::species::SpeciesTemplate, world_factory[99ed854f3ee9cdf3]::history::species::SpeciesHistoryError>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5eb1f6a08742 - species_template_test[c1affc462eeb4358]::test_parse_human_template
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:120:54
[INFO] [stdout]   22:     0x5eb1f6a07897 - species_template_test[c1affc462eeb4358]::test_parse_human_template::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:118:31
[INFO] [stdout]   23:     0x5eb1f6a0e316 - <species_template_test[c1affc462eeb4358]::test_parse_human_template::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5eb1f6a0e8fb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5eb1f6a0e8fb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5eb1f6a1c175 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5eb1f6a15a84 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5eb1f6a15a84 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5eb1f6a1f1f2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5eb1f6a1f1f2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5eb1f6afbb5f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x5eb1f6afbb5f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x747cd60d5aa4 - <unknown>
[INFO] [stdout]   45:     0x747cd6162a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_valid_behavior_values stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_valid_behavior_values' (2528) panicked at tests/species_template_test.rs:154:54:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Validation("Society thresholds must be ascending: Nation min pop 5000 >= Maritime min pop 200")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5eb1f6afc1f8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5eb1f6b118aa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5eb1f6b118aa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5eb1f6b00a12 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5eb1f6b00a12 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5eb1f6adb3b6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5eb1f6adb3b6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5eb1f6af4749 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5eb1f6a1b81c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5eb1f6a1b81c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5eb1f6af4902 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5eb1f6af4902 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5eb1f6adb472 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5eb1f6ad0679 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5eb1f6adc18d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5eb1f6b1203c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5eb1f6b11db2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5eb1f6a09472 - <core[8fb95b77d25ab6c8]::result::Result<world_factory[99ed854f3ee9cdf3]::history::species::SpeciesTemplate, world_factory[99ed854f3ee9cdf3]::history::species::SpeciesHistoryError>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5eb1f6a09472 - species_template_test[c1affc462eeb4358]::test_valid_behavior_values
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:154:54
[INFO] [stdout]   22:     0x5eb1f6a07987 - species_template_test[c1affc462eeb4358]::test_valid_behavior_values::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:152:32
[INFO] [stdout]   23:     0x5eb1f6a0e456 - <species_template_test[c1affc462eeb4358]::test_valid_behavior_values::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5eb1f6a0e8fb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5eb1f6a0e8fb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5eb1f6a1c175 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5eb1f6a15a84 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5eb1f6a15a84 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5eb1f6a1f1f2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5eb1f6a1f1f2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5eb1f6afbb5f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x5eb1f6afbb5f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x747cd60d5aa4 - <unknown>
[INFO] [stdout]   45:     0x747cd6162a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_valid_ascending_thresholds stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_valid_ascending_thresholds' (2527) panicked at tests/species_template_test.rs:202:5:
[INFO] [stdout] Valid ascending thresholds should pass: Err(Validation("Society thresholds must be ascending: Nation min pop 5000 >= Maritime min pop 200"))
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5eb1f6afc1f8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5eb1f6b118aa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5eb1f6b118aa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5eb1f6b00a12 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5eb1f6b00a12 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5eb1f6adb3b6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5eb1f6adb3b6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5eb1f6af4749 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5eb1f6a1b81c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5eb1f6a1b81c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5eb1f6af4902 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5eb1f6af4902 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5eb1f6adb472 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5eb1f6ad0679 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5eb1f6adc18d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5eb1f6b1203c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5eb1f6a0a330 - species_template_test[c1affc462eeb4358]::test_valid_ascending_thresholds
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:202:5
[INFO] [stdout]   20:     0x5eb1f6a07b67 - species_template_test[c1affc462eeb4358]::test_valid_ascending_thresholds::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:198:37
[INFO] [stdout]   21:     0x5eb1f6a0e6d6 - <species_template_test[c1affc462eeb4358]::test_valid_ascending_thresholds::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x5eb1f6a0e8fb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5eb1f6a0e8fb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x5eb1f6a1c175 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x5eb1f6a15a84 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x5eb1f6a15a84 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x5eb1f6a1f1f2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x5eb1f6a1f1f2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x5eb1f6afbb5f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   41:     0x5eb1f6afbb5f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x747cd60d5aa4 - <unknown>
[INFO] [stdout]   43:     0x747cd6162a64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_species_history_get stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_species_history_get' (2526) panicked at tests/species_template_test.rs:348:54:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Validation("Society thresholds must be ascending: Nation min pop 5000 >= Maritime min pop 200")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5eb1f6afc1f8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5eb1f6b118aa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5eb1f6b118aa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5eb1f6b00a12 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5eb1f6b00a12 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5eb1f6adb3b6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5eb1f6adb3b6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5eb1f6af4749 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5eb1f6a1b81c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5eb1f6a1b81c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5eb1f6af4902 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5eb1f6af4902 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5eb1f6adb472 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5eb1f6ad0679 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5eb1f6adc18d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5eb1f6b1203c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5eb1f6b11db2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5eb1f6a08132 - <core[8fb95b77d25ab6c8]::result::Result<world_factory[99ed854f3ee9cdf3]::history::species::SpeciesTemplate, world_factory[99ed854f3ee9cdf3]::history::species::SpeciesHistoryError>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5eb1f6a08132 - species_template_test[c1affc462eeb4358]::test_species_history_get
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:348:54
[INFO] [stdout]   22:     0x5eb1f6a07837 - species_template_test[c1affc462eeb4358]::test_species_history_get::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:346:30
[INFO] [stdout]   23:     0x5eb1f6a0e296 - <species_template_test[c1affc462eeb4358]::test_species_history_get::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5eb1f6a0e8fb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5eb1f6a0e8fb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5eb1f6a1c175 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5eb1f6a15a84 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5eb1f6a15a84 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5eb1f6a1f1f2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5eb1f6a1f1f2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5eb1f6afbb5f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x5eb1f6afbb5f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x747cd60d5aa4 - <unknown>
[INFO] [stdout]   45:     0x747cd6162a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_single_society_type_valid stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_single_society_type_valid' (2523) panicked at tests/species_template_test.rs:225:5:
[INFO] [stdout] assertion failed: result.is_ok()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5eb1f6afc1f8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5eb1f6afc1f8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5eb1f6b118aa - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5eb1f6b118aa - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5eb1f6b00a12 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5eb1f6b00a12 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5eb1f6adb3b6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5eb1f6adb3b6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5eb1f6af4749 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5eb1f6a1b81c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5eb1f6a1b81c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5eb1f6af4902 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5eb1f6af4902 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5eb1f6adb4a4 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x5eb1f6ad0679 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5eb1f6adc18d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5eb1f6b1203c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5eb1f6b12002 - core[8fb95b77d25ab6c8]::panicking::panic
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x5eb1f6a09ea6 - species_template_test[c1affc462eeb4358]::test_single_society_type_valid
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:225:5
[INFO] [stdout]   21:     0x5eb1f6a07b07 - species_template_test[c1affc462eeb4358]::test_single_society_type_valid::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/species_template_test.rs:210:36
[INFO] [stdout]   22:     0x5eb1f6a0e656 - <species_template_test[c1affc462eeb4358]::test_single_society_type_valid::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5eb1f6a0e8fb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5eb1f6a0e8fb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x5eb1f6a1c175 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x5eb1f6a1c175 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x5eb1f6a1c175 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x5eb1f6a15a84 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x5eb1f6a15a84 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x5eb1f6a1f1f2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x5eb1f6a1f1f2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x5eb1f6a1f1f2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5eb1f6afbb5f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   42:     0x5eb1f6afbb5f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x747cd60d5aa4 - <unknown>
[INFO] [stdout]   44:     0x747cd6162a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test_behavior_value_getter
[INFO] [stdout]     test_deterministic_parsing
[INFO] [stdout]     test_invalid_society_thresholds_rejected
[INFO] [stdout]     test_is_behavior_dominant
[INFO] [stdout]     test_missing_required_field_rejected
[INFO] [stdout]     test_only_in_history_species_template
[INFO] [stdout]     test_parse_human_template
[INFO] [stdout]     test_parse_minimal_template
[INFO] [stdout]     test_single_society_type_valid
[INFO] [stdout]     test_species_history_get
[INFO] [stdout]     test_valid_ascending_thresholds
[INFO] [stdout]     test_valid_behavior_values
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 14 passed; 12 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test species_template_test`
[INFO] running `Command { std: "docker" "inspect" "c2ceb3b927118f30978b0577df4614ae707d544497095a846a7f4bca2a2e4c82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c2ceb3b927118f30978b0577df4614ae707d544497095a846a7f4bca2a2e4c82", kill_on_drop: false }`
[INFO] [stdout] c2ceb3b927118f30978b0577df4614ae707d544497095a846a7f4bca2a2e4c82
