[INFO] cloning repository https://github.com/earth-metabolome-initiative/smiles-parser
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/earth-metabolome-initiative/smiles-parser" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fearth-metabolome-initiative%2Fsmiles-parser", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fearth-metabolome-initiative%2Fsmiles-parser'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 339ea242597d76e947d5e5083a65083bc01bbd8b
[INFO] testing earth-metabolome-initiative/smiles-parser/339ea242597d76e947d5e5083a65083bc01bbd8b 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%2Fearth-metabolome-initiative%2Fsmiles-parser" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/earth-metabolome-initiative/smiles-parser
[INFO] finished tweaking git repo https://github.com/earth-metabolome-initiative/smiles-parser
[INFO] tweaked toml for git repo https://github.com/earth-metabolome-initiative/smiles-parser written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/earth-metabolome-initiative/smiles-parser 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/earth-metabolome-initiative/smiles-parser 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]     Updating git repository `https://github.com/earth-metabolome-initiative/geometric-traits`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded filetime v0.2.28
[INFO] [stderr]   Downloaded xattr v1.6.1
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.113
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.63
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.113
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.113
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.113
[INFO] [stderr]   Downloaded tar v0.4.45
[INFO] [stderr]   Downloaded js-sys v0.3.90
[INFO] [stderr]   Downloaded rustc-std-workspace-alloc v1.0.1
[INFO] [stderr]   Downloaded reqwest v0.13.3
[INFO] [stderr]   Downloaded stable_try_trait_v2 v1.75.1
[INFO] [stderr]   Downloaded maybe-dangling v0.1.2
[INFO] [stderr]   Downloaded console v0.16.2
[INFO] [stderr]   Downloaded molecular-formulas v0.1.10
[INFO] [stderr]   Downloaded aws-lc-rs v1.16.3
[INFO] [stderr]   Downloaded elements_rs v0.2.7
[INFO] [stderr]   Downloaded lender v0.6.2
[INFO] [stderr]   Downloaded web-sys v0.3.90
[INFO] [stderr]   Downloaded multi_ranged v0.1.2
[INFO] [stderr]   Downloaded aws-lc-sys v0.40.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 5c4488350ddf138d73d1659b945d31d8b71b74424274677c8e332cd706fb338a
[INFO] running `Command { std: "docker" "start" "5c4488350ddf138d73d1659b945d31d8b71b74424274677c8e332cd706fb338a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5c4488350ddf138d73d1659b945d31d8b71b74424274677c8e332cd706fb338a", 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" "5c4488350ddf138d73d1659b945d31d8b71b74424274677c8e332cd706fb338a" "/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" "5c4488350ddf138d73d1659b945d31d8b71b74424274677c8e332cd706fb338a", 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" "5c4488350ddf138d73d1659b945d31d8b71b74424274677c8e332cd706fb338a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.105
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling radium v0.7.0
[INFO] [stderr]    Compiling tap v1.0.1
[INFO] [stderr]    Compiling maybe-dangling v0.1.2
[INFO] [stderr]    Compiling stable_try_trait_v2 v1.75.1
[INFO] [stderr]    Compiling aliasable v0.1.3
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling funty v2.0.0
[INFO] [stderr]    Compiling rustc-std-workspace-alloc v1.0.1
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling rand v0.10.1
[INFO] [stderr]    Compiling wyz v0.5.1
[INFO] [stderr]    Compiling lender v0.6.2
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling bitvec v1.0.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling multi_ranged v0.1.2
[INFO] [stderr]    Compiling geometric-traits v0.1.0 (https://github.com/earth-metabolome-initiative/geometric-traits?branch=main#aa79915e)
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling elements_rs v0.2.7
[INFO] [stderr]    Compiling molecular-formulas v0.1.10
[INFO] [stderr]    Compiling smiles-parser v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 12s
[INFO] running `Command { std: "docker" "inspect" "5c4488350ddf138d73d1659b945d31d8b71b74424274677c8e332cd706fb338a", 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" "5c4488350ddf138d73d1659b945d31d8b71b74424274677c8e332cd706fb338a" "/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 serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling multi_ranged v0.1.2
[INFO] [stderr]    Compiling geometric-traits v0.1.0 (https://github.com/earth-metabolome-initiative/geometric-traits?branch=main#aa79915e)
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling elements_rs v0.2.7
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]    Compiling molecular-formulas v0.1.10
[INFO] [stderr]    Compiling smiles-parser v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3m 14s
[INFO] running `Command { std: "docker" "inspect" "5c4488350ddf138d73d1659b945d31d8b71b74424274677c8e332cd706fb338a", 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" "5c4488350ddf138d73d1659b945d31d8b71b74424274677c8e332cd706fb338a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/smiles_parser-1a8aa6663a3ae937)
[INFO] [stdout] 
[INFO] [stdout] running 462 tests
[INFO] [stdout] test atom::atom_symbol::tests::atom_symbol_order_places_wildcard_before_elements_and_sorts_by_symbol ... ok
[INFO] [stdout] test atom::atom_symbol::tests::test_atom_symbols_all ... ok
[INFO] [stdout] test atom::bracketed::charge::tests::default_is_zero ... ok
[INFO] [stdout] test atom::bracketed::charge::tests::test_charge_fmt_all_arms ... ok
[INFO] [stdout] test atom::bracketed::charge::tests::display_len_covers_multi_digit_magnitudes ... ok
[INFO] [stdout] test atom::bracketed::charge::tests::try_new_accepts_in_range_values ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::test_chirality_fmt_all_arms ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::try_oh_accepts_lower_and_upper_bounds ... ok
[INFO] [stdout] test atom::bracketed::charge::tests::try_new_rejects_positive_overflow ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::display_len_covers_all_number_width_paths ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::try_al_accepts_valid_values ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::try_al_rejects_out_of_range_values ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::try_oh_accepts_some_mid_values ... ok
[INFO] [stdout] test atom::atom_symbol::tests::wildcard_accessors_return_none ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::try_sp_accepts_valid_values ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::simple_variants_are_distinct ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::try_sp_rejects_out_of_range_values ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::try_oh_rejects_out_of_range_values ... ok
[INFO] [stdout] test atom::bracketed::charge::tests::try_new_error_type_depends_on_sign ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::try_tb_rejects_out_of_range_values ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::variants_with_same_tag_but_different_numbers_are_distinct ... ok
[INFO] [stdout] test atom::bracketed::charge::tests::try_new_rejects_negative_underflow ... ok
[INFO] [stdout] test atom::tests::builder_element_and_symbol_accessors_reflect_current_state ... ok
[INFO] [stdout] test atom::tests::isotope_errors_when_symbol_has_no_element ... ok
[INFO] [stdout] test atom::tests::isotope_returns_most_abundant_when_mass_is_none ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::try_tb_accepts_lower_and_upper_bounds ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::try_tb_accepts_some_mid_values ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::try_th_accepts_valid_values ... ok
[INFO] [stdout] test atom::tests::builder_defaults_are_bracket_atom_defaults ... ok
[INFO] [stdout] test atom::tests::mces_atom_type_accessors_return_all_stored_fields ... ok
[INFO] [stdout] test atom::tests::organic_subset_constructor_sets_defaults ... ok
[INFO] [stdout] test atom::tests::rendered_cow_and_length_helpers_cover_remaining_branches ... ok
[INFO] [stdout] test atom::tests::typed_node_ignores_parser_spelling_fields ... ok
[INFO] [stdout] test atom::tests::test_atom_fmt_all_arms ... ok
[INFO] [stdout] test atom::tests::write_smiles_and_write_symbol_cover_dynamic_branches ... ok
[INFO] [stdout] test atom::tests::write_smiles_covers_minimal_bracket_atom_branch ... ok
[INFO] [stdout] test bond::bond_edge::tests::test_bond_edge_constructors ... ok
[INFO] [stdout] test bond::bond_edge::tests::bond_edge_descriptor_round_trips_aromaticity ... ok
[INFO] [stdout] test bond::bond_edge::tests::bond_edge_named_accessors_expose_all_fields ... ok
[INFO] [stdout] test bond::bond_edge::tests::test_bond_edge_other ... ok
[INFO] [stdout] test bond::bond_edge::tests::test_bond_edge_vertices_preserve_order ... ok
[INFO] [stdout] test bond::ring_num::tests::test_ring_num_try_new_bounds ... ok
[INFO] [stdout] test bond::ring_num::tests::test_ring_num_fmt_all_arms ... ok
[INFO] [stdout] test bond::tests::bond_descriptor_carries_aromaticity_separately ... ok
[INFO] [stdout] test bond::tests::directional_bonds_collapse_to_single ... ok
[INFO] [stdout] test bond::tests::test_bond_fmt_all_arms ... ok
[INFO] [stdout] test errors::tests::render_marks_zero_width_and_multi_character_spans ... ok
[INFO] [stdout] test errors::tests::test_smiles_error_from_conversions ... ok
[INFO] [stdout] test errors::tests::test_smiles_error_with_span ... ok
[INFO] [stdout] test bond::tests::test_default ... ok
[INFO] [stdout] test atom::bracketed::chirality::tests::try_th_rejects_out_of_range_values ... ok
[INFO] [stdout] test bond::bond_edge::tests::test_bond_edge_ring_num_value ... ok
[INFO] [stdout] test atom::tests::builder_setters_roundtrip_into_built_atom ... ok
[INFO] [stdout] test errors::tests::test_smiles_error_display_monolithic ... ok
[INFO] [stdout] test atom::tests::element_is_none_for_wildcard_and_present_for_element ... ok
[INFO] [stdout] test atom::tests::internal_charge_override_and_render_helpers_cover_multidigit_paths ... ok
[INFO] [stdout] test atom::tests::isotope_returns_specific_when_mass_is_set ... ok
[INFO] [stdout] test atom::tests::can_write_unbracketed_aromatic_accepts_only_the_organic_aromatic_subset ... ok
[INFO] [stdout] test errors::tests::test_smiles_error_with_unicode_span ... ok
[INFO] [stdout] test parser::smiles_parser::tests::default_bond_is_aromatic_for_two_aromatic_atoms ... ok
[INFO] [stdout] test parser::smiles_parser::tests::default_bond_is_single_when_atoms_are_not_both_aromatic ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_add_atom_adds_first_atom ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parse_smiles_allows_disconnected_ring_closure_stereo_forms ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_add_atom_connects_with_pending_bond ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_branch_stack_methods_work ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_into_smiles_returns_owned_graph ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_last_atom_and_pending_bond_updates_work ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_new_is_empty ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_push_node_appends_in_order ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_ring_open_methods_work ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_span_updates_work ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_all_closed_errors_for_incomplete_bond ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_all_closed_errors_for_unclosed_branch ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_all_closed_ok_resets_last_atom_and_pending_bond ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_all_closed_errors_for_unclosed_ring ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_and_add_bond_errors_without_left_atom ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_and_add_bond_sets_pending_bond ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_and_add_ring_num_closes_ring_and_adds_edge ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_and_add_ring_num_errors_for_duplicate_edge ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_and_add_ring_num_errors_for_self_loop ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_and_add_ring_num_errors_without_current_atom ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_and_add_ring_num_opens_ring_and_clears_pending_bond ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_and_add_ring_num_prefers_current_pending_bond ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_branch_close_errors_without_open_branch ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_branch_open_errors_without_anchor ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_component_boundary_allows_open_ring_labels ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_component_boundary_rejects_incomplete_bond ... ok
[INFO] [stdout] test parser::smiles_parser::tests::parser_state_validate_component_boundary_rejects_open_branch ... ok
[INFO] [stdout] test parser::smiles_parser::tests::validate_non_bond_rejects_invalid_left_context ... ok
[INFO] [stdout] test parser::token_iter::tests::aromatic_from_element_branches ... ok
[INFO] [stdout] test parser::token_iter::tests::hydrogen_count_branches ... ok
[INFO] [stdout] test parser::token_iter::tests::iterator_error_span_mapping_smoke_test ... ok
[INFO] [stdout] test parser::token_iter::tests::parse_token_single_digit_ring_closure_success ... ok
[INFO] [stdout] test parser::token_iter::tests::parse_token_unbracketed_atom_errors ... ok
[INFO] [stdout] test parser::token_iter::tests::repeated_charge_runs_fail_cleanly_instead_of_overflowing ... ok
[INFO] [stdout] test parser::token_iter::tests::test_charge_parsing_number_before_sign ... ok
[INFO] [stdout] test parser::token_iter::tests::token_iter_parses_bracket_atom_with_al_chirality ... ok
[INFO] [stdout] test parser::token_iter::tests::try_charge_branches ... ok
[INFO] [stdout] test parser::token_iter::tests::try_charge_supports_number_before_sign ... ok
[INFO] [stdout] test parser::token_iter::tests::token_iter_parses_bracket_atom_with_th_chirality ... ok
[INFO] [stdout] test parser::token_iter::tests::try_bond_branches ... ok
[INFO] [stdout] test parser::token_iter::tests::test_charge_parsing ... ok
[INFO] [stdout] test parser::token_iter::tests::parse_token_bracket_atom_covers_isotope_chirality_hydrogens_charge_and_class ... ok
[INFO] [stdout] test parser::token_iter::tests::try_chirality_al_form_should_parse ... ok
[INFO] [stdout] test parser::token_iter::tests::try_chirality_branches ... ok
[INFO] [stdout] test parser::token_iter::tests::try_chirality_tb_form_should_parse ... ok
[INFO] [stdout] test parser::token_iter::tests::try_fold_number_branches_including_overflow ... ok
[INFO] [stdout] test parser::token_iter::tests::valid_unbracketed_branches ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::aromaticity_status_accumulator_maps_partial_and_unsupported_honestly ... ok
[INFO] [stdout] test parser::token_iter::tests::parse_token_ring_number_errors ... ok
[INFO] [stdout] test parser::token_iter::tests::try_element_from_first_branches ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::connected_subsystem_search_matches_bruteforce_on_branched_graph ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::connected_subsystem_search_short_circuits_zero_and_oversized_sizes ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::connected_subsystem_search_stops_when_child_enter_callback_rejects ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::connected_subsystem_search_stops_when_root_enter_callback_rejects ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::connected_subsystem_search_matches_bruteforce_on_path_graph ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::connected_subsystem_search_uses_large_seen_set_for_graphs_over_u128_width ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::build_next_frontier_covers_less_greater_and_equal_merge_orderings ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::quick_assignment_short_circuits_acyclic_molecule ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::fused_family_ring_budget_marks_azulene_partial_when_two_ring_search_is_disallowed ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::fused_family_combination_budget_marks_azulene_partial_when_two_ring_step_is_blocked ... ok
[INFO] [stdout] test parser::token_iter::tests::try_class_branches ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::rdkit_default_chalcogen_gap_atom_states_match_current_expectation ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::quick_assignment_short_circuits_ring_without_candidates ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::rdkit_default_phosphorus_cleanup_enables_phosphinine_oxide_candidate ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::rdkit_default_cleaned_phosphinine_oxide_keeps_phosphorus_as_candidate ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::rdkit_default_assigns_radical_to_kekule_radical_gap_case ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::prepared_fused_family_maps_member_cycle_bond_edges_without_recomputing_cycles ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::rdkit_electronegativity_order_breaks_ties_by_lower_atomic_number ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::quick_assignment_does_not_short_circuit_benzene ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::rdkit_electronegativity_order_keeps_zinc_less_electronegative_than_carbon ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::rdkit_default_without_cleanup_underassigns_phosphinine_oxide ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::rdkit_electronegativity_order_prefers_more_outer_electrons ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::rdkit_pre_aromaticity_cleanup_skips_simple_nonring_p_oxide_examples ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::rdkit_pre_aromaticity_cleanup_rewrites_phosphinine_oxide ... ok
[INFO] [stdout] test smiles::branches::tests::branch_plan_handles_wildcard_local_keys ... ok
[INFO] [stdout] test smiles::branches::tests::branch_plan_is_bond_sensitive_when_ordering_children ... ok
[INFO] [stdout] test smiles::branches::tests::branch_plan_keeps_single_child_as_continuation ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::unsupported_family_reports_explicit_diagnostic ... ok
[INFO] [stdout] test smiles::branches::tests::branch_plan_short_circuits_when_every_node_has_at_most_one_child ... ok
[INFO] [stdout] test smiles::branches::tests::branch_plan_of_empty_graph_is_empty ... ok
[INFO] [stdout] test smiles::branches::tests::branch_plan_prefers_larger_subtree_as_continuation ... ok
[INFO] [stdout] test smiles::branches::tests::forest_postorder_skips_duplicate_roots ... ok
[INFO] [stdout] test smiles::branches::tests::branch_plan_uses_node_id_only_as_last_tie_break ... ok
[INFO] [stdout] test smiles::canonicalization::tests::exact_and_rewrite::canonicalization_spelling_normal_form_keeps_aromatic_wildcards_bracketed ... ok
[INFO] [stdout] test smiles::branches::tests::child_order_key_partial_cmp_delegates_to_total_cmp ... ok
[INFO] [stdout] test smiles::aromaticity::rdkit_default::tests::rdkit_default_reports_partial_for_large_polycycle_sssr_frontier_case ... ok
[INFO] [stdout] test smiles::branches::tests::node_local_key_uses_wildcard_symbol_marker ... ok
[INFO] [stdout] test smiles::canonicalization::tests::exact_and_rewrite::canonicalize_converges_permuted_bridged_graph ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalization_spelling_normal_form_preserves_semantic_implicit_hydrogens ... ok
[INFO] [stdout] test smiles::canonicalization::tests::exact_and_rewrite::exact_canonicalize_converges_identical_disconnected_components ... ok
[INFO] [stdout] test smiles::canonicalization::tests::exact_and_rewrite::canonicalize_remaps_parsed_stereo_neighbors ... ok
[INFO] [stdout] test smiles::canonicalization::tests::exact_and_rewrite::canonicalize_converges_permuted_fused_graph ... ok
[INFO] [stdout] test smiles::canonicalization::tests::exact_and_rewrite::exact_canonicalize_is_idempotent_for_disconnected_cases ... ok
[INFO] [stdout] test smiles::canonicalization::tests::exact_and_rewrite::canonicalize_converges_permuted_symmetric_cage_graph ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_handles_aromatic_sulfur_chain_regression ... ok
[INFO] [stdout] test smiles::canonicalization::tests::exact_and_rewrite::canonicalize_converges_permuted_graph_with_sidecars ... ok
[INFO] [stdout] test parser::token_iter::tests::parse_token_direct_bracket_state_errors ... ok
[INFO] [stdout] test parser::token_iter::tests::try_chirality_th_form_should_parse ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_handles_aromatic_wildcard_triangle_regression ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_handles_fuzz_crash_aromatic_boron_hydrogen_regression ... ok
[INFO] [stdout] test atom::atom_symbol::tests::test_atom_symbol_fmt_all_arms ... ok
[INFO] [stdout] test atom::tests::rendered_len_hint_matches_actual_length_across_bracket_fields ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_handles_fuzz_crash_hex_wildcard_oxygen_regression ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_handles_fuzz_crash_square_planar_platinum_regression ... ok
[INFO] [stdout] test smiles::canonicalization::tests::exact_and_rewrite::canonicalize_remaps_implicit_hydrogen_cache_and_clears_provenance ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_handles_wildcard_quadruple_bond_regression ... ok
[INFO] [stdout] test atom::tests::typed_node_keeps_charge_isotope_and_aromaticity ... ok
[INFO] [stdout] test atom::tests::rendered_symbol_len_falls_back_to_element_symbol_length_for_non_aromatic_element ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_preserves_aromatic_triple_bond_order ... ok
[INFO] [stdout] test smiles::double_bond_stereo::tests::double_bond_stereo_matches_simple_rdkit_e_fixtures ... ok
[INFO] [stdout] test smiles::double_bond_stereo::tests::double_bond_stereo_matches_simple_rdkit_z_fixtures ... ok
[INFO] [stdout] test smiles::double_bond_stereo::tests::double_bond_stereo_of_empty_graph_is_empty ... ok
[INFO] [stdout] test smiles::canonicalization::tests::stereo_distinctions::canonicalize_converges_source_backed_square_planar_groups ... ok
[INFO] [stdout] test smiles::double_bond_stereo::tests::double_bond_stereo_omits_cumulene_like_directional_case ... ok
[INFO] [stdout] test smiles::double_bond_stereo::tests::double_bond_stereo_omits_non_stereogenic_ring_alkene ... ok
[INFO] [stdout] test smiles::double_bond_stereo::tests::double_bond_stereo_polyene_matches_rdkit_stereo_count ... ok
[INFO] [stdout] test smiles::double_bond_stereo::tests::double_bond_stereo_selects_reference_substituents_not_just_directional_neighbors ... ok
[INFO] [stdout] test smiles::emitter::tests::emitter_renders_disconnected_components ... ok
[INFO] [stdout] test smiles::emitter::tests::emitter_renders_large_ring_labels_with_current_syntax ... ok
[INFO] [stdout] test smiles::emitter::tests::emitter_renders_simple_branch ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_handles_fuzz_crash_new_regression_candidate ... ok
[INFO] [stdout] test smiles::emitter::tests::emitter_renders_simple_ring ... ok
[INFO] [stdout] test smiles::emitter::tests::emitter_renders_simple_chain ... ok
[INFO] [stdout] test smiles::canonicalization::tests::stereo_distinctions::canonicalize_preserves_non_tetrahedral_stereo_distinctions ... ok
[INFO] [stdout] test smiles::emitter::tests::rendered_bond_text_keeps_colon_for_non_aromatic_endpoints ... ok
[INFO] [stdout] test smiles::emitter::tests::emitter_stabilizes_explicit_single_between_aromatic_atoms ... ok
[INFO] [stdout] test smiles::from_str::tests::empty_input_is_not_a_valid_smiles ... ok
[INFO] [stdout] test smiles::from_str::tests::from_str_propagates_parser_error ... ok
[INFO] [stdout] test smiles::from_str::tests::from_str_propagates_token_iter_error ... ok
[INFO] [stdout] test smiles::from_str::tests::parse_benzene_with_ring_nums ... ok
[INFO] [stdout] test smiles::from_str::tests::strict_smiles_rejects_wildcards ... ok
[INFO] [stdout] test smiles::geometric_traits_impl::tests::bond_entry_equality_ignores_ring_digits_and_uses_bond_descriptor ... ok
[INFO] [stdout] test smiles::from_str::tests::wildcard_smiles_accepts_wildcards ... ok
[INFO] [stdout] test smiles::geometric_traits_impl::tests::bond_matrix_builder_rejects_duplicate_edges ... ok
[INFO] [stdout] test smiles::from_str::tests::concrete_isotopes_are_validated_while_parsing ... ok
[INFO] [stdout] test smiles::geometric_traits_impl::tests::bond_entry_hash_ignores_ring_digits_and_includes_aromaticity_like_equality ... ok
[INFO] [stdout] test smiles::geometric_traits_impl::tests::empty_smiles_reports_no_nodes_or_edges ... ok
[INFO] [stdout] test smiles::geometric_traits_impl::tests::labeled_mces_distinguishes_atom_identity ... ok
[INFO] [stdout] test smiles::geometric_traits_impl::tests::labeled_mces_ignores_bracket_and_explicit_hydrogen_spelling ... ok
[INFO] [stdout] test smiles::geometric_traits_impl::tests::labeled_mces_ignores_literal_ring_digits_in_bond_labels ... ok
[INFO] [stdout] test smiles::geometric_traits_impl::tests::labeled_mces_rejects_topology_only_ring_false_positive ... ok
[INFO] [stdout] test smiles::geometric_traits_impl::tests::mces_matches_aromatic_bonds_across_differing_kekule_orders ... ok
[INFO] [stdout] test smiles::geometric_traits_impl::tests::wildcard_smiles_exposes_graph_traits ... ok
[INFO] [stdout] test smiles::implicit_hydrogens::tests::aromatic_defaults_match_current_policy ... ok
[INFO] [stdout] test smiles::implicit_hydrogens::tests::aromatic_fallback_defaults_unknown_cases_to_zero ... ok
[INFO] [stdout] test smiles::implicit_hydrogens::tests::bond_order_maps_double_and_triple_bonds ... ok
[INFO] [stdout] test smiles::implicit_hydrogens::tests::bracket_atoms_never_gain_implicit_hydrogens ... ok
[INFO] [stdout] test smiles::implicit_hydrogens::tests::explicit_valence_counts_quadruple_bonds ... ok
[INFO] [stdout] test smiles::implicit_hydrogens::tests::explicit_valence_reports_u16_sum_for_high_degree_atoms ... ok
[INFO] [stdout] test smiles::implicit_hydrogens::tests::implicit_hydrogen_count_accesses_node_by_id ... ok
[INFO] [stdout] test smiles::connected_components::tests::connected_components_expose_sizes_identifiers_and_nodes ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_reaches_fixed_point_for_pubchem_cid_10888631_regression ... ok
[INFO] [stdout] test smiles::implicit_hydrogens::tests::implicit_hydrogens_for_node_covers_direct_organic_subset_path ... ok
[INFO] [stdout] test smiles::implicit_hydrogens::tests::target_valence_uses_neutral_iodine_progression ... ok
[INFO] [stdout] test smiles::implicit_hydrogens::tests::target_valence_falls_back_to_allowed_valences_when_neutral_table_is_empty ... ok
[INFO] [stdout] test smiles::implicit_hydrogens::tests::unbracketed_halogens_stop_at_valence_one ... ok
[INFO] [stdout] test smiles::implicit_hydrogens::tests::wildcard_atoms_never_gain_implicit_hydrogens ... ok
[INFO] [stdout] test smiles::invariants::tests::atom_invariant_captures_degree_and_incident_bond_kinds ... ok
[INFO] [stdout] test smiles::invariants::tests::atom_invariant_captures_local_atom_fields ... ok
[INFO] [stdout] test smiles::invariants::tests::atom_invariant_treats_directional_single_bonds_as_single_family ... ok
[INFO] [stdout] test smiles::invariants::tests::atom_invariants_distinguish_equal_degree_but_different_bond_histograms ... ok
[INFO] [stdout] test smiles::invariants::tests::atom_invariants_distinguish_organic_subset_bracket_and_wildcard_atoms ... ok
[INFO] [stdout] test smiles::invariants::tests::bond_entry_code_collapses_aromatic_and_separates_kekule_kinds ... ok
[INFO] [stdout] test smiles::invariants::tests::bond_kind_helpers_group_directional_single_bonds_and_separate_others ... ok
[INFO] [stdout] test smiles::invariants::tests::planning_chirality_key_groups_surface_variants_by_family ... ok
[INFO] [stdout] test smiles::kekulization::tests::aromatic_furan_kekulizes_with_two_double_bonds ... ok
[INFO] [stdout] test smiles::kekulization::tests::aromatic_imidazole_kekulizes ... ok
[INFO] [stdout] test smiles::kekulization::tests::aromatic_phenyl_anion_kekulizes ... ok
[INFO] [stdout] test smiles::kekulization::tests::aromatic_pyrrole_kekulizes_with_two_double_bonds ... ok
[INFO] [stdout] test smiles::kekulization::tests::azulene_kekulizes ... ok
[INFO] [stdout] test smiles::kekulization::tests::benzene_kekulizes_to_explicit_bond_orders ... ok
[INFO] [stdout] test smiles::kekulization::tests::biphenyl_kekulizes_each_aromatic_component ... ok
[INFO] [stdout] test smiles::invariants::tests::atom_invariants_of_empty_graph_are_empty ... ok
[INFO] [stdout] test smiles::kekulization::tests::cyclopentadienyl_magnesium_complex_roundtrips_under_mdl_perception ... ok
[INFO] [stdout] test smiles::kekulization::tests::candidate_atoms_exclude_pyrrolic_heteroatoms ... ok
[INFO] [stdout] test smiles::kekulization::tests::cyclopentadienyl_magnesium_complex_roundtrips_under_simple_perception ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_handles_fuzz_crash_dfd86928_regression ... ok
[INFO] [stdout] test atom::bracketed::charge::tests::test_unreachable_fmt ... ok
[INFO] [stdout] test smiles::kekulization::tests::fuzz_regression_star_hash_2o_star_star_2 ... ok
[INFO] [stdout] test smiles::kekulization::tests::odd_cycle_candidate_graph_has_no_perfect_matching ... ok
[INFO] [stdout] test smiles::kekulization::tests::perceived_imidazole_retains_implicit_hydrogens_for_kekulization ... ok
[INFO] [stdout] test smiles::kekulization::tests::perceived_indole_retains_implicit_hydrogens_for_kekulization ... ok
[INFO] [stdout] test smiles::kekulization::tests::phosphorus_cage_roundtrips_under_default_perception ... ok
[INFO] [stdout] test smiles::kekulization::tests::preserve_source_mode_restores_original_kekule_graph ... ok
[INFO] [stdout] test smiles::kekulization::tests::fuzz_regression_phosphorus_default_standalone_mismatch_case ... ok
[INFO] [stdout] test atom::tests::with_charge_value_panics_on_invalid_internal_charge - should panic ... ok
[INFO] [stdout] test smiles::kekulization::tests::pyrrolic_nitrogen_without_hydrogen_fails_kekulization ... ok
[INFO] [stdout] test smiles::kekulization::tests::pyridine_kekulizes_with_three_double_bonds ... ok
[INFO] [stdout] test smiles::kekulization::tests::rendered_aromatic_cyclopentadienyl_magnesium_complex_roundtrips_under_simple_perception ... ok
[INFO] [stdout] test smiles::kekulization::tests::rendered_aromatic_phosphorus_cage_requires_preserved_source_under_default_perception ... ok
[INFO] [stdout] test smiles::implicit_hydrogens::tests::implicit_hydrogen_count_panics_for_invalid_atom_id - should panic ... ok
[INFO] [stdout] test smiles::kekulization::tests::ringless_graph_returns_unchanged ... ok
[INFO] [stdout] test smiles::kekulization::tests::fuzz_regression_complex_wildcard_ring_case ... ok
[INFO] [stdout] test smiles::kekulization::tests::rendered_aromatic_cyclopentadienyl_magnesium_complex_roundtrips_under_mdl_perception ... ok
[INFO] [stdout] test smiles::kekulization::tests::standalone_kekulization_preserves_aromatic_triple_bond_order ... ok
[INFO] [stdout] test smiles::double_bond_stereo::tests::render_roundtrip_preserves_semantic_double_bond_stereo ... ok
[INFO] [stdout] test smiles::mces::tests::delta_y_filters_the_whitney_triangle_versus_claw_false_positive ... ok
[INFO] [stdout] test smiles::mces::tests::ignore_bond_orders_collapses_non_aromatic_kekule_distinction ... ok
[INFO] [stdout] test smiles::mces::tests::distance_threshold_short_circuits_when_edit_distance_bound_is_exceeded ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_handles_polywildcard_aromatic_oxygen_regression ... ok
[INFO] [stdout] test smiles::mces::tests::mces_distinguishes_atom_identity ... ok
[INFO] [stdout] test smiles::mces::tests::zero_search_budget_returns_an_incomplete_lower_bound ... ok
[INFO] [stdout] test smiles::mces::tests::mces_of_identical_molecules_is_a_full_match ... ok
[INFO] [stdout] test smiles::kekulization::tests::standalone_kekulization_matches_explicit_mode ... ok
[INFO] [stdout] test smiles::molecular_formula::tests::formula_conversion_matches_rdkit_non_carbon_isotope_ordering ... ok
[INFO] [stdout] test smiles::molecular_formula::tests::formula_conversion_preserves_disconnected_components ... ok
[INFO] [stdout] test smiles::mces::tests::all_best_search_mode_enumerates_more_tied_cliques ... ok
[INFO] [stdout] test smiles::molecular_formula::tests::formula_conversion_rejects_wildcards ... ok
[INFO] [stdout] test smiles::molecular_formula::tests::formula_conversion_uses_explicit_count_and_charge_types ... ok
[INFO] [stdout] test smiles::mces::tests::similarity_threshold_can_short_circuit_dissimilar_molecules ... ok
[INFO] [stdout] test smiles::neighbors::tests::ordered_neighbors_are_local_to_each_component ... ok
[INFO] [stdout] test smiles::neighbors::tests::ordered_neighbors_are_stable_for_symmetric_four_cycle ... ok
[INFO] [stdout] test smiles::neighbors::tests::ordered_neighbors_handle_additional_symmetric_cage_fixture ... ok
[INFO] [stdout] test smiles::molecular_formula::tests::formula_string_counts_implicit_hydrogens ... ok
[INFO] [stdout] test smiles::neighbors::tests::ordered_neighbors_of_empty_or_missing_node_are_empty ... ok
[INFO] [stdout] test smiles::neighbors::tests::ordered_neighbors_keep_equivalent_ring_neighbors_stable ... ok
[INFO] [stdout] test smiles::neighbors::tests::ordered_neighbors_preserve_all_incident_edges ... ok
[INFO] [stdout] test smiles::neighbors::tests::ordered_neighbors_reflect_bond_sensitive_structural_classes ... ok
[INFO] [stdout] test smiles::neighbors::tests::ordered_neighbors_use_structural_classes_before_node_id ... ok
[INFO] [stdout] test smiles::neighbors::tests::ordered_neighbors_break_symmetric_ties_by_node_id_last ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::disjoint_simple_cycle_shortcut_rejects_spiro_ring_subgraph ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::disjoint_simple_cycle_shortcut_rejects_fused_ring_subgraph ... ok
[INFO] [stdout] test smiles::kekulization::tests::rendered_aromatic_imidazole_roundtrips_under_default_perception ... ok
[INFO] [stdout] test smiles::molecular_formula::tests::formula_conversion_preserves_isotopes_explicit_hydrogens_and_charge ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::disjoint_simple_cycle_shortcut_handles_biphenyl_ring_subgraph ... ok
[INFO] [stdout] test smiles::mces::tests::search_path_tuning_knobs_preserve_the_optimum ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::ring_invariant_depends_on_atom_set_not_cycle_start_or_direction ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::symm_sssr_forced_bfs_budget_marks_benzene_incomplete_and_hits_queue_cutoff ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::simple_cycle_block_shortcut_handles_spiro_ring_subgraph ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::symm_sssr_status_is_complete_for_benzene ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::simple_cycle_block_shortcut_rejects_fused_ring_subgraph ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::symm_sssr_with_ring_membership_matches_full_search_for_spiro_system ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::libstdcpp_size_sort_matches_cid_163335646_cpp_probe_order ... ok
[INFO] [stdout] test smiles::refinement::tests::partition_refinement_distinguishes_bond_neighborhoods ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::symm_sssr_with_ring_membership_matches_full_search_for_substituted_naphthalene ... ok
[INFO] [stdout] test smiles::refinement::tests::partition_refinement_of_empty_graph_is_empty ... ok
[INFO] [stdout] test smiles::refinement::tests::partition_refinement_preserves_obvious_symmetry ... ok
[INFO] [stdout] test smiles::refinement::tests::partition_refinement_separates_atoms_with_same_local_invariant_but_different_neighbors ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_handles_mixed_aromatic_phosphorus_wildcard_regression ... ok
[INFO] [stdout] test smiles::render_plan::tests::render_plan_assigns_ring_labels_from_final_preorder ... ok
[INFO] [stdout] test smiles::render_plan::tests::render_plan_normalizes_tetrahedral_chirality_from_emitted_neighbor_order ... ok
[INFO] [stdout] test smiles::render_plan::tests::render_plan_carries_branch_and_continuation_structure ... ok
[INFO] [stdout] test smiles::render_plan::tests::render_plan_of_empty_graph_is_empty ... ok
[INFO] [stdout] test smiles::refinement::tests::partition_refinement_keeps_benzene_atoms_equivalent ... ok
[INFO] [stdout] test smiles::roots::tests::component_roots_are_selected_per_component ... ok
[INFO] [stdout] test smiles::roots::tests::component_roots_match_rdkit_reference_for_basic_cases ... ok
[INFO] [stdout] test smiles::roots::tests::component_roots_match_rdkit_reference_for_bridged_cases ... ok
[INFO] [stdout] test smiles::render_plan::tests::render_plan_preserves_component_roots_and_preorder_for_chain ... ok
[INFO] [stdout] test smiles::spanning_tree::tests::parser_neighbor_order_forest_ignores_out_of_range_and_duplicate_roots ... ok
[INFO] [stdout] test smiles::roots::tests::component_roots_match_rdkit_reference_for_symmetric_cages ... ok
[INFO] [stdout] test smiles::roots::tests::component_roots_of_empty_graph_are_empty ... ok
[INFO] [stdout] test smiles::spanning_tree::tests::parser_neighbor_order_preserves_bond_insertion_order_for_tree_edges ... ok
[INFO] [stdout] test smiles::spanning_tree::tests::spanning_forest_classifies_cycle_edge_as_closure ... ok
[INFO] [stdout] test smiles::spanning_tree::tests::spanning_forest_builds_parent_chain_for_acyclic_component ... ok
[INFO] [stdout] test smiles::spanning_tree::tests::spanning_forest_of_empty_graph_is_empty ... ok
[INFO] [stdout] test smiles::spanning_tree::tests::spanning_forest_preserves_neighbor_order_when_choosing_tree_children ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_handles_fuzz_crash_partial_aromatic_diagnostics_regression ... ok
[INFO] [stdout] test smiles::stereo::tests::normalized_bond_for_emit_preserves_forward_direction ... ok
[INFO] [stdout] test smiles::stereo::tests::normalized_tetrahedral_chirality_flips_on_odd_permutation ... ok
[INFO] [stdout] test smiles::spanning_tree::tests::spanning_forest_separates_disconnected_components ... ok
[INFO] [stdout] test smiles::stereo::tests::invert_tetrahedral_chirality_swaps_supported_pairs_and_leaves_others ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::large_polycycle_exact_stage_still_undercounts_before_fallback ... ok
[INFO] [stdout] test smiles::stereo::tests::normalized_bond_for_emit_preserves_stored_direction_for_reverse_traversal ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::symm_sssr_with_ring_membership_matches_full_search_for_large_polycycle_frontier_case ... ok
[INFO] [stdout] test smiles::stereo::tests::normalized_tetrahedral_chirality_preserves_on_length_mismatch_and_non_invertible_tags ... ok
[INFO] [stdout] test smiles::stereo::tests::parsed_stereo_neighbors_follow_bond_insertion_order_and_explicit_hydrogen ... ok
[INFO] [stdout] test smiles::stereo::tests::parsed_stereo_neighbors_place_ring_digit_where_it_appears_in_source ... ok
[INFO] [stdout] test smiles::stereo::tests::projected_directional_bond_overrides_expose_semantic_endpoints_and_missing_edges ... ok
[INFO] [stdout] test smiles::stereo::tests::projected_directional_bond_overrides_match_simple_z_constraint ... ok
[INFO] [stdout] test smiles::stereo::tests::projected_directional_bond_overrides_follow_reference_edges_not_raw_tokens ... ok
[INFO] [stdout] test smiles::symmetry::tests::rooted_symmetry_classes_keep_benzene_atoms_equivalent ... ok
[INFO] [stdout] test smiles::symmetry::tests::rooted_symmetry_classes_match_rdkit_reference_partitions_for_basic_cases ... ok
[INFO] [stdout] test smiles::stereo::tests::projected_directional_bond_overrides_handle_multi_record_components ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::large_polycycle_exact_stage_is_short_by_one_ring_before_fallback ... ok
[INFO] [stdout] test smiles::symmetry::tests::rooted_symmetry_classes_do_not_merge_refined_classes ... ok
[INFO] [stdout] test smiles::stereo::tests::normalized_tetrahedral_chirality_preserves_even_or_unknown_permutations ... ok
[INFO] [stdout] test smiles::stereo::tests::projected_directional_bond_overrides_are_empty_without_double_bond_stereo ... ok
[INFO] [stdout] test smiles::symmetry::tests::rooted_symmetry_classes_preserve_neighbor_based_separation ... ok
[INFO] [stdout] test smiles::symmetry::tests::rooted_symmetry_classes_match_rdkit_reference_partitions_for_symmetric_cages ... ok
[INFO] [stdout] test smiles::symmetry::tests::rooted_symmetry_classes_preserve_path_symmetry ... ok
[INFO] [stdout] test smiles::tests::aromatic_triple_bond_edge_has_named_aromaticity_and_bond_order ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::symm_sssr_status_marks_large_polycycle_frontier_case_as_incomplete ... ok
[INFO] [stdout] test smiles::stereo::tests::projected_directional_bond_overrides_match_simple_e_constraint ... ok
[INFO] [stdout] test smiles::symmetry::tests::rooted_symmetry_classes_of_empty_graph_are_empty ... ok
[INFO] [stdout] test smiles::symmetry::tests::rooted_symmetry_classes_match_rdkit_reference_partitions_for_bridged_cases ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_can_be_provided_by_a_custom_model ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_handles_phosphinine_oxide_after_rdkit_cleanup ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_perceives_kekule_benzene ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_for_rdkit_default_matches_default_entrypoint ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_keeps_azulene_fusion_bond_non_aromatic ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_new_with_diagnostics_canonicalizes_inputs ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_keeps_cubane_non_aromatic ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_keeps_cycloheptatriene_non_aromatic ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_preserves_custom_partial_status ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_perceives_kekule_pyrrole ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_perceives_kekule_naphthalene ... ok
[INFO] [stdout] test smiles::tests::aromaticity_policy_helpers_match_default_model ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_perceives_keto_pyrimidinone ... ok
[INFO] [stdout] test smiles::tests::connectivity_count_and_total_valence_follow_rdkit_style_local_counts ... ok
[INFO] [stdout] test smiles::tests::aromaticity_policy_helpers_match_simple_model ... ok
[INFO] [stdout] test smiles::tests::aromaticity_policy_helpers_match_mdl_model ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_perceives_kekule_indole ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_handles_charged_pyridinium_systems ... ok
[INFO] [stdout] test smiles::tests::bond_matrix_builder_rejects_self_loops ... ok
[INFO] [stdout] test smiles::rdkit_symm_sssr::tests::symm_sssr_status_marks_cid_101460172_as_incomplete_without_queue_cutoff ... ok
[INFO] [stdout] test smiles::tests::edge_case_rings_is_invalid ... ok
[INFO] [stdout] test smiles::tests::double_bond_stereo_config_reports_semantic_e_z_and_absence ... ok
[INFO] [stdout] test smiles::tests::branch_render_regression_non_aromatic_reaches_a_fixed_point ... ok
[INFO] [stdout] test smiles::tests::edge_case_wildcard_carbon_bond ... ok
[INFO] [stdout] test smiles::tests::edge_key_normalizes_node_order ... ok
[INFO] [stdout] test smiles::tests::edge_lookup_helpers_work ... ok
[INFO] [stdout] test smiles::tests::directional_bond_collapse_rewrites_graph_but_not_atoms ... ok
[INFO] [stdout] test smiles::tests::explicit_single_ring_closure_between_aromatic_atoms_is_preserved ... ok
[INFO] [stdout] test smiles::tests::explicit_single_between_aromatic_atoms_survives_render_roundtrip ... ok
[INFO] [stdout] test smiles::tests::hydrogen_with_more_than_one_explicit_hydrogen_stays_invalid ... ok
[INFO] [stdout] test smiles::tests::fused_symm_sssr_groups_indole_into_one_component ... ok
[INFO] [stdout] test smiles::tests::hydrogen_with_single_explicit_hydrogen_is_accepted_for_compatibility ... ok
[INFO] [stdout] test smiles::tests::mdl_aromaticity_keeps_kekule_benzene_aromatic ... ok
[INFO] [stdout] test smiles::tests::invalid_bonds_rejected ... ok
[INFO] [stdout] test smiles::tests::edge_cases_branches ... ok
[INFO] [stdout] test smiles::tests::aromaticity_assignment_reports_sssr_fallback_diagnostic_for_large_polycycle_case ... ok
[INFO] [stdout] test smiles::tests::parse_b_s_branch_shape_is_correct ... ok
[INFO] [stdout] test smiles::tests::mdl_aromaticity_rejects_standalone_imidazole ... ok
[INFO] [stdout] test smiles::tests::mdl_aromaticity_keeps_large_annulene_aromatic ... ok
[INFO] [stdout] test smiles::tests::mdl_aromaticity_rejects_standalone_tropylium_like_ring ... ok
[INFO] [stdout] test smiles::tests::parser_rejects_repeated_ring_number_on_same_atom ... ok
[INFO] [stdout] test smiles::tests::parser_rejects_self_loop_ring ... ok
[INFO] [stdout] test smiles::tests::edge_count_for_node_panics_for_invalid_atom_id - should panic ... ok
[INFO] [stdout] test smiles::tests::connectivity_count_panics_for_invalid_atom_id - should panic ... ok
[INFO] [stdout] test smiles::tests::edges_for_node_panics_for_invalid_atom_id - should panic ... ok
[INFO] [stdout] test smiles::tests::perceive_aromaticity_preserves_custom_partial_status ... ok
[INFO] [stdout] test smiles::tests::rdkit_documented_exocyclic_fused_system_keeps_aromatic_atom_double_bridge_non_aromatic ... ok
[INFO] [stdout] test smiles::tests::parser_rejects_parallel_ring_bond_between_same_atoms ... ok
[INFO] [stdout] test smiles::tests::rdkit_documented_radical_aromaticity_special_cases_match_default_model ... ok
[INFO] [stdout] test smiles::tests::perception_exposes_source_bond_for_aromatic_triple_bond ... ok
[INFO] [stdout] test smiles::tests::rdkit_documented_fused_system_keeps_aromatic_atom_bridge_bonds_non_aromatic ... ok
[INFO] [stdout] test smiles::tests::perceive_aromaticity_for_rdkit_default_returns_consumable_perception ... ok
[INFO] [stdout] test smiles::tests::rdkit_documented_dummy_atom_aromaticity_matches_wildcard_model ... ok
[INFO] [stdout] test smiles::tests::ring_atom_membership_is_empty_for_acyclic_graphs ... ok
[INFO] [stdout] test smiles::tests::rdkit_documented_tellurium_aromaticity_extension_matches_default_model ... ok
[INFO] [stdout] test smiles::tests::render_and_display_work_for_simple_valid_graph ... ok
[INFO] [stdout] test smiles::tests::render_smoke_from_parsed_smiles ... ok
[INFO] [stdout] test smiles::tests::ring_atom_membership_matches_ring_membership_on_representative_cases ... ok
[INFO] [stdout] test smiles::tests::ring_membership_captures_ring_atoms_and_bonds ... ok
[INFO] [stdout] test smiles::tests::ring_membership_is_empty_for_acyclic_graphs ... ok
[INFO] [stdout] test smiles::tests::mdl_aromaticity_keeps_only_benzenoid_ring_in_coumarin ... ok
[INFO] [stdout] test smiles::tests::ring_atom_membership_captures_only_ring_atoms ... ok
[INFO] [stdout] test smiles::tests::render_b_s_branch_reaches_a_fixed_point ... ok
[INFO] [stdout] test smiles::tests::mdl_aromaticity_rejects_non_benzenoid_single_ring_subsystem_in_fused_cation ... ok
[INFO] [stdout] test smiles::tests::ring_atom_membership_panics_for_invalid_atom_id - should panic ... ok
[INFO] [stdout] test smiles::tests::simple_aromaticity_keeps_kekule_benzene_aromatic ... ok
[INFO] [stdout] test smiles::tests::simple_aromaticity_keeps_naphthalene_aromatic ... ok
[INFO] [stdout] test smiles::tests::smarts_tetrahedral_chirality_panics_for_invalid_atom_id - should panic ... ok
[INFO] [stdout] test smiles::tests::smarts_tetrahedral_chirality_exposes_semantic_tetrahedral_forms ... ok
[INFO] [stdout] test smiles::tests::smarts_total_valence_panics_for_invalid_atom_id - should panic ... ok
[INFO] [stdout] test smiles::tests::smarts_total_valence_preserves_raw_non_aromatic_values ... ok
[INFO] [stdout] test smiles::tests::smarts_total_valence_matches_rdkit_aromatic_expectations ... ok
[INFO] [stdout] test smiles::tests::strict_and_wildcard_smiles_convert_through_traits ... ok
[INFO] [stdout] test smiles::tests::symm_sssr_returns_cubane_faces ... ok
[INFO] [stdout] test smiles::tests::smarts_tetrahedral_chirality_exposes_allene_like_forms ... ok
[INFO] [stdout] test smiles::tests::symm_sssr_returns_two_fused_rings_for_naphthalene ... ok
[INFO] [stdout] test smiles::tests::symm_sssr_result_reports_complete_benzene_search ... ok
[INFO] [stdout] test smiles::tests::try_with_aromaticity_assignment_accepts_valid_partial_assignment ... ok
[INFO] [stdout] test smiles::tests::simple_aromaticity_rejects_large_annulene ... ok
[INFO] [stdout] test smiles::tests::simple_aromaticity_rejects_tropylium ... ok
[INFO] [stdout] test smiles::tests::total_valence_panics_for_invalid_atom_id - should panic ... ok
[INFO] [stdout] test smiles::tests::simple_aromaticity_keeps_standalone_imidazole_aromatic ... ok
[INFO] [stdout] test smiles::tests::simple_aromaticity_rejects_azulene ... ok
[INFO] [stdout] test smiles::tests::try_with_aromaticity_assignment_preserves_non_aromatic_edges_not_in_assignment ... ok
[INFO] [stdout] test smiles::tests::try_with_aromaticity_assignment_rejects_bonds_without_aromatic_endpoints ... ok
[INFO] [stdout] test smiles::tests::try_with_aromaticity_assignment_rejects_nonexistent_bond_edges ... ok
[INFO] [stdout] test smiles::tests::try_with_aromaticity_assignment_rejects_clearing_existing_aromatic_bonds ... ok
[INFO] [stdout] test smiles::tests::try_with_aromaticity_assignment_rejects_clearing_existing_aromatic_labels ... ok
[INFO] [stdout] test smiles::tests::try_with_aromaticity_assignment_rejects_out_of_bounds_atom_ids ... ok
[INFO] [stdout] test smiles::tests::with_explicit_hydrogens_is_idempotent_after_materialization ... ok
[INFO] [stdout] test smiles::tests::with_explicit_hydrogens_preserves_bracket_atom_metadata_while_clearing_h_count ... ok
[INFO] [stdout] test smiles::tests::with_explicit_hydrogens_materializes_implicit_hydrogens_as_terminal_hydrogen_atoms ... ok
[INFO] [stdout] test smiles::tests::with_explicit_hydrogens_preserves_ring_membership_on_the_heavy_atom_subgraph ... ok
[INFO] [stdout] test smiles::tests::with_explicit_hydrogens_produces_terminal_bracket_hydrogen_atoms ... ok
[INFO] [stdout] test smiles::tests::try_with_aromaticity_assignment_rejects_out_of_bounds_bond_edges ... ok
[INFO] [stdout] test smiles::tests::with_explicit_hydrogens_rewrites_bracket_explicit_hydrogens_into_terminal_hydrogen_atoms ... ok
[INFO] [stdout] test smiles::tests::with_explicit_hydrogens_preserves_semantic_tetrahedral_chirality ... ok
[INFO] [stdout] test smiles::tests::wildcard_aromaticity_perception_preserves_wildcard_wrapper ... ok
[INFO] [stdout] test smiles::tests::with_explicit_hydrogens_preserves_aromatic_heavy_atoms ... ok
[INFO] [stdout] test token::tests::token_kind_and_is_bond_helpers_cover_all_paths ... ok
[INFO] [stdout] test smiles::tests::wildcard_perception_exposes_source_bond_for_aromatic_triple_bond ... ok
[INFO] [stdout] test token::tests::token_variants_can_be_constructed_and_compared ... ok
[INFO] [stdout] test token::tests::token_with_span_clone_and_eq_behave_as_expected ... ok
[INFO] [stdout] test token::tests::token_with_span_new_and_accessors_work ... ok
[INFO] [stdout] test smiles::tests::write_ring_atom_membership_matches_one_shot_api_across_reused_buffers ... ok
[INFO] [stdout] test smiles::tests::with_explicit_hydrogens_rewrites_parsed_stereo_neighbors_for_chiral_h_centers ... ok
[INFO] [stdout] test token::tests::token_with_span_preserves_complex_token_variants ... ok
[INFO] [stdout] test smiles::tests::with_explicit_hydrogens_is_noop_when_no_hydrogens_are_present ... ok
[INFO] [stdout] test smiles::tests::symm_sssr_result_exposes_fallback_for_large_polycycle_frontier_case ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_handles_fuzz_crash_component_order_budget_regression ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_handles_fuzz_crash_db6568a7_regression ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalization_step_does_not_hide_bond_order_drift_for_pubchem_cid_101510359 ... ok
[INFO] [stdout] test smiles::canonicalization::tests::regressions::canonicalize_reaches_fixed_point_for_pubchem_cid_101510359_regression ... ok
[INFO] [stdout] test smiles::geometric_traits_impl::tests::directional_bond_collapse_improves_but_does_not_fully_resolve_massspecgym_0023 ... ok
[INFO] [stdout] test smiles::geometric_traits_impl::tests::directional_bond_collapse_recovers_eight_massspecgym_directional_cases ... ok
[INFO] [stdout] test smiles::kekulization::tests::fuzz_regression_large_mixed_wildcard_case ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 462 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 18.63s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_aromatic_bond_order_canonicalization.rs (/opt/rustwide/target/debug/deps/test_aromatic_bond_order_canonicalization-3638817aa2517159)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test rooted_environment_matches_rdkit_style_value ... ok
[INFO] [stdout] test broken_ring_fragment_canonicalizes_independently_of_kekule_order ... ok
[INFO] [stdout] test whole_molecule_canonical_form_unchanged ... ok
[INFO] [stdout] test rooted_environment_is_representation_independent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_aromaticity_perception_perf.rs (/opt/rustwide/target/debug/deps/test_aromaticity_perception_perf-185ae2a87c6a20b7)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test perception_budget_mutator_isotope_90d953 ... ok
[INFO] [stdout] test perception_budget_mutator_h_count_32a342 ... ok
[INFO] [stdout] test perception_budget_topological_torsion_d89e1c ... ok
[INFO] [stdout] test perception_budget_topological_torsion_2785e9 ... ok
[INFO] [stdout] test perception_budget_ecfp_50af30 ... ok
[INFO] [stdout] test perception_budget_topological_torsion_f6c504 ... ok
[INFO] [stderr]      Running tests/test_aromatics.rs (/opt/rustwide/target/debug/deps/test_aromatics-a206a024a03d863b)
[INFO] [stdout] test perception_budget_mutator_formal_charge_4536b7 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.24s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test test_aromatic_imidazole_from_tokenization ... ok
[INFO] [stdout] test test_aromatic_benzene_from_tokenization ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_atom_environment.rs (/opt/rustwide/target/debug/deps/test_atom_environment-dad2efe605b3cf3d)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test empty_shell_rule ... ok
[INFO] [stdout] test benzene_radius_two_is_a_path ... ok
[INFO] [stdout] test central_carbon_radius_one_is_non_empty ... ok
[INFO] [stdout] test radius_beyond_eccentricity_is_empty ... ok
[INFO] [stdout] test to_fragment_is_centered ... ok
[INFO] [stdout] test terminal_carbon_radius_two ... ok
[INFO] [stdout] test toluene_labels_match_rdkit_reference ... ok
[INFO] [stdout] test small_ring_radius_two_closes_via_frontier_bond ... ok
[INFO] [stdout] test benzene_radius_three_closes_the_ring ... ok
[INFO] [stdout] test iterators_agree_with_counts ... ok
[INFO] [stdout] test panics_on_out_of_range_center - should panic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_canonicalization_aromatic.rs (/opt/rustwide/target/debug/deps/test_canonicalization_aromatic-e4be5b04ce04c0c2)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test canonicalize_converges_benzene_aromatic_and_kekule_forms ... ok
[INFO] [stdout] test canonicalize_converges_source_backed_aromatic_equivalence_groups ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_canonicalization_basic.rs (/opt/rustwide/target/debug/deps/test_canonicalization_basic-ff583a693e34c31d)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test canonical_labeling_inverse_matches_order ... ok
[INFO] [stdout] test canonicalize_is_idempotent_for_linear_case ... ok
[INFO] [stdout] test canonicalize_preserves_isotope_distinction ... ok
[INFO] [stdout] test canonicalize_converges_equivalent_linear_spellings ... ok
[INFO] [stdout] test canonicalize_marks_result_as_canonical ... ok
[INFO] [stdout] test canonical_labeling_is_deterministic ... ok
[INFO] [stdout] test canonicalize_converges_disconnected_component_permutations ... ok
[INFO] [stdout] test canonicalize_converges_default_wildcard_parser_spellings ... ok
[INFO] [stdout] test canonicalize_converges_standard_form_bracket_and_explicit_hydrogen_groups ... ok
[INFO] [stdout] test canonicalize_converges_additional_source_backed_connectivity_groups ... ok
[INFO] [stderr]      Running tests/test_canonicalization_stereo.rs (/opt/rustwide/target/debug/deps/test_canonicalization_stereo-76a676d95ce8f3df)
[INFO] [stdout] test canonicalize_converges_additional_source_backed_real_world_groups ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test canonicalize_clears_non_stereogenic_alkene_markup ... ok
[INFO] [stdout] test canonicalize_converges_disconnected_ring_closure_stereo_variants ... ok
[INFO] [stdout] test canonicalize_preserves_directional_bond_distinction ... ok
[INFO] [stdout] test canonicalize_clears_achiral_tetrahedral_markup ... ok
[INFO] [stdout] test canonicalize_converges_alkene_stereo_equivalence_groups ... ok
[INFO] [stdout] test canonicalize_converges_square_planar_implicit_hydrogen_spellings ... ok
[INFO] [stdout] test canonicalize_preserves_semantic_stereo_distinctions ... ok
[INFO] [stdout] test canonicalize_converges_atom_based_alkene_stereo_equivalence_groups ... ok
[INFO] [stderr]      Running tests/test_connected_components.rs (/opt/rustwide/target/debug/deps/test_connected_components-e61845a297513fde)
[INFO] [stdout] test canonicalize_converges_non_tetrahedral_stereo_equivalence_groups ... ok
[INFO] [stdout] test canonicalize_converges_tetrahedral_stereo_equivalence_groups ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test connected_components_returns_atoms_for_each_component ... ok
[INFO] [stdout] test connected_components_match_rdkit_fragment_fixtures ... ok
[INFO] [stdout] test wildcard_connected_components_keep_wildcard_api_surface ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_dataset_corpus_parsing.rs (/opt/rustwide/target/debug/deps/test_dataset_corpus_parsing-52e9c1342f871d6d)
[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/test_edge_cases_from_rdkit.rs (/opt/rustwide/target/debug/deps/test_edge_cases_from_rdkit-b103c158d732ceee)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test documented_rdkit_parser_rejects_should_fail_here_too ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_fragment.rs (/opt/rustwide/target/debug/deps/test_fragment-75f1ef4a37825a90)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test from_bonds_out_of_range_endpoint_errors ... ok
[INFO] [stdout] test from_atoms_recomputes_hydrogens ... ok
[INFO] [stdout] test into_smiles_returns_owned ... ok
[INFO] [stdout] test from_bonds_uses_endpoints_only ... ok
[INFO] [stdout] test from_bonds_non_edge_errors ... ok
[INFO] [stdout] test maps_round_trip ... ok
[INFO] [stdout] test out_of_range_atom_errors ... ok
[INFO] [stdout] test render_rooted_errors_for_absent_atom ... ok
[INFO] [stdout] test render_rooted_anchors_at_parent_atom ... ok
[INFO] [stdout] test equivalent_environments_share_label ... ok
[INFO] [stdout] test render_rooted_non_isomeric_drops_stereo ... ok
[INFO] [stdout] test rooted_label_is_numbering_invariant ... ok
[INFO] [stderr]      Running tests/test_implicit_hydrogens.rs (/opt/rustwide/target/debug/deps/test_implicit_hydrogens-7962fd4f0a4f6e09)
[INFO] [stdout] test benzene_fragment_round_trips ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test aromatic_implicit_hydrogens_match_fixture ... ok
[INFO] [stdout] test raw_rdkit_compat_implicit_hydrogens_match_fixture ... ok
[INFO] [stdout] test organic_subset_implicit_hydrogens_match_fixture ... ok
[INFO] [stdout] test implicit_hydrogen_fixtures_match_current_parser_node_order ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_molecular_formula_conversion.rs (/opt/rustwide/target/debug/deps/test_molecular_formula_conversion-7e19f0c4b87bfebe)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test methane_smiles_converts_to_formula_with_implicit_hydrogens ... ok
[INFO] [stdout] test disconnected_smiles_converts_to_formula_mixture ... ok
[INFO] [stdout] test charged_isotopic_smiles_converts_to_formula ... ok
[INFO] [stdout] test wildcard_smiles_returns_formula_conversion_error ... ok
[INFO] [stdout] test rdkit_molecular_formula_fixture_matches_conversion ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stderr]      Running tests/test_non_isomeric.rs (/opt/rustwide/target/debug/deps/test_non_isomeric-c26f22902c1585dd)
[INFO] [stdout] test keeps_brackets_that_are_still_required ... ok
[INFO] [stdout] test fragment_label_collapses_bracket_forced_aromatic_nitrogen ... ok
[INFO] [stdout] test collapses_brackets_left_by_cleared_isotope ... ok
[INFO] [stdout] test drops_isotopes ... ok
[INFO] [stdout] test drops_tetrahedral_chirality ... ok
[INFO] [stdout] test order_independent_with_canonicalize ... ok
[INFO] [stdout] test preserves_skeleton_and_is_idempotent ... ok
[INFO] [stdout] test drops_double_bond_stereo ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_pubchem_aromaticity_corpus.rs (/opt/rustwide/target/debug/deps/test_pubchem_aromaticity_corpus-eb4d1c2137aebea7)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test exact_pubchem_mdl_record_validation_accepts_matching_assignment ... ok
[INFO] [stdout] test exact_pubchem_record_validation_accepts_matching_assignment ... ok
[INFO] [stdout] test exact_pubchem_mdl_record_validation_rejects_default_only_assignment ... ok
[INFO] [stdout] test exact_pubchem_record_validation_rejects_wrong_bond_identity_with_matching_count ... ok
[INFO] [stdout] test exact_pubchem_simple_record_validation_accepts_matching_assignment ... ok
[INFO] [stdout] test exact_pubchem_record_validation_matches_cid_142569_rdkit_oracle ... ok
[INFO] [stdout] test exact_pubchem_simple_record_validation_matches_cid_8936_rdkit_oracle ... ok
[INFO] [stdout] test exact_pubchem_record_validation_rejects_wrong_atom_identity_with_matching_count ... ok
[INFO] [stdout] test exact_pubchem_simple_record_validation_rejects_default_only_assignment ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_pubchem_canonicalization.rs (/opt/rustwide/target/debug/deps/test_pubchem_canonicalization-951fb9fbac42df99)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running tests/test_pubchem_non_aromaticity_corpus.rs (/opt/rustwide/target/debug/deps/test_pubchem_non_aromaticity_corpus-f2e886e93c3de33a)
[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 5 tests
[INFO] [stdout] test exact_pubchem_non_aromatic_record_validation_accepts_matching_empty_assignment ... ok
[INFO] [stdout] test exact_pubchem_non_aromatic_record_validation_rejects_unexpected_aromatic_atoms ... ok
[INFO] [stdout] test exact_pubchem_simple_non_aromatic_record_validation_accepts_tropylium ... ok
[INFO] [stdout] test exact_pubchem_simple_non_aromatic_record_validation_accepts_cid_672 ... ok
[INFO] [stdout] test exact_pubchem_mdl_non_aromatic_record_validation_accepts_imidazole ... 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/test_rendering.rs (/opt/rustwide/target/debug/deps/test_rendering-3f5bd9e8faba3696)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test wildcard_render_round_trip_preserves_invariants ... ok
[INFO] [stdout] test benzene_kekule_roundtrip_preserves_bond_inventory ... ok
[INFO] [stdout] test test_render_round_trip_all_inputs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_rooted_environment_smiles.rs (/opt/rustwide/target/debug/deps/test_rooted_environment_smiles-03daf95f6cbfe0a2)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test isotopes_collapse_under_non_isomeric ... ok
[INFO] [stdout] test produces_centered_label ... ok
[INFO] [stdout] test empty_shell_folds_to_none ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_rooted_render.rs (/opt/rustwide/target/debug/deps/test_rooted_render-665a596ee328885c)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test labeling_rooted_multi_component_is_valid_permutation ... ok
[INFO] [stdout] test matches_default_and_differs_by_root ... ok
[INFO] [stdout] test deterministic ... ok
[INFO] [stdout] test starts_at_root ... ok
[INFO] [stdout] test labeling_rooted ... ok
[INFO] [stdout] test rooting_is_independent_of_root_for_tricky_stereo ... ok
[INFO] [stdout] test labeling_panics_oob - should panic ... ok
[INFO] [stdout] test panics_oob - should panic ... ok
[INFO] [stdout] test round_trips_same_molecule ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_smiles_parser.rs (/opt/rustwide/target/debug/deps/test_smiles_parser-5f8f3207c7de6f27)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test test_high_degree_quadruple_bond_carbon_does_not_panic ... ok
[INFO] [stdout] test test_high_degree_single_bond_carbon_does_not_panic ... ok
[INFO] [stdout] test test_parse_benzene_graph_shape ... ok
[INFO] [stdout] test test_parse_tribenzo_annulene_variant ... ok
[INFO] [stdout] test test_parser_all_inputs ... ok
[INFO] [stdout] test test_parse_benzene_with_wildcard_graph_shape ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_square_brackets.rs (/opt/rustwide/target/debug/deps/test_square_brackets-d1556507dbf26a95)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test test_aromatic_tellurium_requires_brackets ... ok
[INFO] [stdout] test test_bracket_hydrogen_count_far_over_cap_is_rejected ... ok
[INFO] [stdout] test test_bracket_hydrogen_count_at_cap_parses ... ok
[INFO] [stdout] test test_bracket_aromatic_tellurium_parses ... ok
[INFO] [stdout] test test_bracket_hydrogen_count_just_over_cap_is_rejected ... ok
[INFO] [stdout] test test_extreme_hydrogen_count_does_not_panic_downstream ... ok
[INFO] [stdout] test test_hydrogen_hcount_compatibility_cases ... ok
[INFO] [stdout] test test_hydrogen_hcount_gt_one_stays_invalid ... ok
[INFO] [stdout] test test_unclosed_brackets ... ok
[INFO] [stdout] test test_smiles_tokens_water ... ok
[INFO] [stdout] test test_unexpected_left_brackets ... ok
[INFO] [stdout] test test_valid_square_brackets ... ok
[INFO] [stderr]    Doc-tests smiles_parser
[INFO] [stdout] test test_unexpected_right_brackets ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 148 tests
[INFO] [stdout] test src/atom/atom_symbol.rs - atom::atom_symbol::AtomSymbol::new_wildcard (line 40) ... ok
[INFO] [stdout] test src/../README.md - (line 31) ... ok
[INFO] [stdout] test src/atom/bracketed/chirality.rs - atom::bracketed::chirality::Chirality::try_oh (line 102) ... ok
[INFO] [stdout] test src/atom/bracketed/charge.rs - atom::bracketed::charge::Charge::get (line 38) ... ok
[INFO] [stdout] test src/atom/bracketed/chirality.rs - atom::bracketed::chirality::Chirality::try_al (line 51) ... ok
[INFO] [stdout] test src/atom/atom_symbol.rs - atom::atom_symbol::AtomSymbol::new (line 22) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::charge (line 402) ... ok
[INFO] [stdout] test src/atom/atom_symbol.rs - atom::atom_symbol::AtomSymbol::into_element (line 87) ... ok
[INFO] [stdout] test src/atom/bracketed/chirality.rs - atom::bracketed::chirality::Chirality::try_th (line 34) ... ok
[INFO] [stdout] test src/atom/atom_symbol.rs - atom::atom_symbol::AtomSymbol::is_wildcard (line 53) ... ok
[INFO] [stdout] test src/atom/bracketed/chirality.rs - atom::bracketed::chirality::Chirality::try_tb (line 85) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::class (line 442) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::isotope_mass_number (line 305) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::new_organic_subset (line 170) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::non_isomeric (line 480) ... ok
[INFO] [stdout] test src/atom/bracketed/chirality.rs - atom::bracketed::chirality::Chirality::try_sp (line 68) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::isotope (line 327) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::syntax (line 221) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::symbol (line 268) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::AtomBuilder::element (line 736) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::is_organic_subset_atom (line 251) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::AtomBuilder::with_chirality (line 719) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::AtomBuilder::with_class (line 704) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::AtomBuilder::with_charge (line 687) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::AtomBuilder::build (line 770) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::builder (line 143) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::aromatic (line 351) ... ok
[INFO] [stdout] test src/atom/bracketed/charge.rs - atom::bracketed::charge::Charge::try_new (line 20) ... ok
[INFO] [stdout] test src/atom/atom_symbol.rs - atom::atom_symbol::AtomSymbol::element (line 68) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::chirality (line 459) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::AtomBuilder::symbol (line 753) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::is_bracket_atom (line 236) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::charge_value (line 422) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::element (line 285) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::Atom::hydrogen_count (line 384) ... ok
[INFO] [stdout] test src/bond/bond_edge.rs - bond::bond_edge::bond_edge (line 132) ... ok
[INFO] [stdout] test src/bond/ring_num.rs - bond::ring_num::RingNum::try_new (line 19) ... ok
[INFO] [stdout] test src/errors.rs - errors::SmilesErrorWithSpan::end (line 221) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::AtomBuilder::with_hydrogens (line 672) ... ok
[INFO] [stdout] test src/bond/bond_edge.rs - bond::bond_edge::bond_edge_ring_num_val (line 201) ... ok
[INFO] [stdout] test src/bond/bond_edge.rs - bond::bond_edge::bond_edge_other (line 181) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::McesAtomType::formal_charge (line 120) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::McesAtomType::aromatic (line 83) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::AtomBuilder::with_symbol (line 639) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::McesAtomType::isotope_mass_number (line 101) ... ok
[INFO] [stdout] test src/bond/ring_num.rs - bond::ring_num::RingNum::get (line 34) ... ok
[INFO] [stdout] test src/errors.rs - errors::SmilesErrorWithSpan::span (line 236) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::AtomBuilder::with_aromatic (line 657) ... ok
[INFO] [stdout] test src/errors.rs - errors::SmilesErrorWithSpan::render (line 251) ... ok
[INFO] [stdout] test src/errors.rs - errors::SmilesErrorWithSpan::start (line 206) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityAssignment::contains_atom (line 350) ... ok
[INFO] [stdout] test src/errors.rs - errors::SmilesErrorWithSpan::smiles_error (line 191) ... ok
[INFO] [stdout] test src/errors.rs - errors::SmilesErrorWithSpan::new (line 175) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::McesAtomType::symbol (line 65) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityAssignment::contains_edge (line 368) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityPerception<AtomPolicy>::into_aromaticized (line 626) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityPerception<AtomPolicy>::into_assignment (line 605) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityPerception<AtomPolicy>::diagnostics (line 529) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityPerception<AtomPolicy>::assignment (line 489) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityAssignment::new_with_diagnostics (line 246) ... ok
[INFO] [stdout] test src/atom/mod.rs - atom::AtomBuilder::with_isotope (line 624) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityModel::assignment (line 30) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityPerception<AtomPolicy>::aromaticized (line 549) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityAssignment::new (line 225) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityAssignment::status (line 282) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityPerception<AtomPolicy>::kekulize_with (line 695) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityAssignment::bond_edges (line 316) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityPerception<AtomPolicy>::status (line 509) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityPerception<AtomPolicy>::source_bond_for_node_pair (line 575) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::Smiles<AtomPolicy>::perceive_aromaticity_for (line 997) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityAssignment::atom_ids (line 299) ... ok
[INFO] [stdout] test src/smiles/atom_environment.rs - smiles::atom_environment::Smiles<AtomPolicy>::atom_environment (line 101) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityAssignment::diagnostics (line 333) ... ok
[INFO] [stdout] test src/smiles/canonicalization.rs - smiles::canonicalization::SmilesCanonicalLabeling::new_index_of_old_node (line 71) ... ok
[INFO] [stdout] test src/smiles/canonicalization.rs - smiles::canonicalization::Smiles<AtomPolicy>::canonical_labeling (line 256) ... ok
[INFO] [stdout] test src/smiles/canonicalization.rs - smiles::canonicalization::Smiles<AtomPolicy>::canonicalize (line 296) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::Smiles<AtomPolicy>::aromaticity_assignment_with (line 944) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityPerception<AtomPolicy>::kekulize_standalone (line 735) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::Smiles<AtomPolicy>::aromaticity_assignment (line 908) ... ok
[INFO] [stdout] test src/smiles/connected_components.rs - smiles::connected_components::SmilesComponents<'a,AtomPolicy>::node_ids_of_component (line 128) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::Smiles<AtomPolicy>::perceive_aromaticity (line 974) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::Smiles<AtomPolicy>::try_with_aromaticity_assignment (line 1061) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::Smiles<AtomPolicy>::aromaticity_assignment_for (line 926) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityAssignment::validate_for (line 396) ... ok
[INFO] [stdout] test src/smiles/geometric_traits_impl.rs - smiles::geometric_traits_impl::BondEntry::ring_num (line 88) ... ok
[INFO] [stdout] test src/smiles/connected_components.rs - smiles::connected_components::SmilesComponents<'a,AtomPolicy>::number_of_components (line 38) ... ok
[INFO] [stdout] test src/smiles/connected_components.rs - smiles::connected_components::SmilesComponents<'a,AtomPolicy>::component_of_node (line 89) ... ok
[INFO] [stdout] test src/smiles/connected_components.rs - smiles::connected_components::Smiles<AtomPolicy>::connected_components (line 251) ... ok
[INFO] [stdout] test src/smiles/connected_components.rs - smiles::connected_components::SmilesComponents<'a,AtomPolicy>::nodes_of_component (line 150) ... ok
[INFO] [stdout] test src/smiles/implicit_hydrogens.rs - smiles::implicit_hydrogens::Smiles<AtomPolicy>::implicit_hydrogen_count (line 94) ... ok
[INFO] [stdout] test src/smiles/connected_components.rs - smiles::connected_components::SmilesComponents<'a,AtomPolicy>::largest_component_size (line 55) ... ok
[INFO] [stdout] test src/smiles/kekulization.rs - smiles::kekulization::Smiles<AtomPolicy>::kekulize_standalone (line 199) ... ok
[INFO] [stdout] test src/smiles/geometric_traits_impl.rs - smiles::geometric_traits_impl::BondEntry::bond (line 72) ... ok
[INFO] [stdout] test src/smiles/geometric_traits_impl.rs - smiles::geometric_traits_impl::BondEntry::new (line 41) ... ok
[INFO] [stdout] test src/smiles/canonicalization.rs - smiles::canonicalization::SmilesCanonicalLabeling::order (line 54) ... ok
[INFO] [stdout] test src/smiles/geometric_traits_impl.rs - smiles::geometric_traits_impl::Smiles<AtomPolicy>::bond_matrix (line 397) ... ok
[INFO] [stdout] test src/smiles/canonicalization.rs - smiles::canonicalization::Smiles<AtomPolicy>::is_canonical (line 275) ... ok
[INFO] [stdout] test src/smiles/connected_components.rs - smiles::connected_components::SmilesComponents<'a,AtomPolicy>::smallest_component_size (line 72) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::Smiles<AtomPolicy>::perceive_aromaticity_with (line 1024) ... ok
[INFO] [stdout] test src/smiles/implicit_hydrogens.rs - smiles::implicit_hydrogens::Smiles<AtomPolicy>::implicit_hydrogen_counts (line 71) ... ok
[INFO] [stdout] test src/smiles/geometric_traits_impl.rs - smiles::geometric_traits_impl::Smiles<AtomPolicy>::number_of_bonds (line 415) ... ok
[INFO] [stdout] test src/smiles/aromaticity.rs - smiles::aromaticity::AromaticityPerception<AtomPolicy>::kekulize (line 672) ... ok
[INFO] [stdout] test src/smiles/connected_components.rs - smiles::connected_components::SmilesComponents<'a,AtomPolicy>::component_identifiers (line 110) ... ok
[INFO] [stdout] test src/smiles/kekulization.rs - smiles::kekulization::Smiles<AtomPolicy>::kekulize_with (line 85) ... ok
[INFO] [stdout] test src/smiles/kekulization.rs - smiles::kekulization::Smiles<AtomPolicy>::kekulize (line 61) ... ok
[INFO] [stdout] test src/smiles/mces.rs - smiles::mces::Smiles::mces (line 47) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles (line 11) ... ok
[INFO] [stdout] test src/smiles/mces.rs - smiles::mces::Smiles::mces_with (line 68) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::RingAtomMembership::contains_atom (line 300) ... ok
[INFO] [stdout] test src/smiles/mces.rs - smiles::mces (line 19) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::connectivity_count (line 568) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::edges_for_node (line 661) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::nodes (line 430) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::ring_atom_membership (line 844) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::render_rooted (line 1185) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::double_bond_stereo_config (line 732) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::edge_count_for_node (line 536) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles::edge_key (line 399) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::ring_membership (line 759) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::render (line 1159) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::smarts_tetrahedral_chirality (line 701) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::smarts_total_valence (line 634) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::non_isomeric (line 1224) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::write_ring_atom_membership (line 868) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::SymmSssrStatus::hit_queue_cutoff (line 134) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::with_directional_bonds_collapsed (line 965) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::total_valence (line 603) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::SymmSssrStatus::is_complete (line 102) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::with_explicit_hydrogens (line 1015) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::SymmSssrResult::cycles (line 159) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::SymmSssrStatus::used_fallback (line 118) ... ok
[INFO] [stdout] test src/token.rs - token::Token::kind (line 174) ... ok
[INFO] [stdout] test src/token.rs - token::TokenWithSpan::end (line 137) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::node_by_id (line 447) ... ok
[INFO] [stdout] test src/token.rs - token::TokenWithSpan::token_kind (line 95) ... ok
[INFO] [stdout] test src/token.rs - token::TokenWithSpan::new (line 61) ... ok
[INFO] [stdout] test src/token.rs - token::TokenWithSpan::start (line 123) ... ok
[INFO] [stdout] test src/token.rs - token::TokenWithSpan::token (line 78) ... ok
[INFO] [stdout] test src/token.rs - token::TokenWithSpan::is_bond (line 151) ... ok
[INFO] [stdout] test src/token.rs - token::TokenWithSpan::span (line 109) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::edge_for_node_pair (line 494) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::RingMembership::atom_ids (line 200) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::RingMembership::contains_atom (line 234) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::RingMembership::contains_edge (line 252) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::RingMembership::bond_edges (line 217) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::SymmSssrResult::status (line 175) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::RingAtomMembership::atom_flags (line 280) ... ok
[INFO] [stdout] test src/smiles/mod.rs - smiles::Smiles<AtomPolicy>::symm_sssr_result (line 942) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 148 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 4.76s; merged doctests compilation took 4.60s
[INFO] running `Command { std: "docker" "inspect" "5c4488350ddf138d73d1659b945d31d8b71b74424274677c8e332cd706fb338a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5c4488350ddf138d73d1659b945d31d8b71b74424274677c8e332cd706fb338a", kill_on_drop: false }`
[INFO] [stdout] 5c4488350ddf138d73d1659b945d31d8b71b74424274677c8e332cd706fb338a
