[INFO] fetching crate cosmolkit-smiles 0.5.1-rc.3...
[INFO] testing cosmolkit-smiles-0.5.1-rc.3 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate cosmolkit-smiles 0.5.1-rc.3 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate cosmolkit-smiles 0.5.1-rc.3
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate cosmolkit-smiles 0.5.1-rc.3
[INFO] tweaked toml for crates.io crate cosmolkit-smiles 0.5.1-rc.3 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate cosmolkit-smiles 0.5.1-rc.3 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate cosmolkit-smiles 0.5.1-rc.3 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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7e5c12f9eb80715a1c51dfbaec2c3a766b3ac16251dab9ee0399e482bd46756f
[INFO] running `Command { std: "docker" "start" "7e5c12f9eb80715a1c51dfbaec2c3a766b3ac16251dab9ee0399e482bd46756f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e5c12f9eb80715a1c51dfbaec2c3a766b3ac16251dab9ee0399e482bd46756f", 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" "7e5c12f9eb80715a1c51dfbaec2c3a766b3ac16251dab9ee0399e482bd46756f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e5c12f9eb80715a1c51dfbaec2c3a766b3ac16251dab9ee0399e482bd46756f", 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" "7e5c12f9eb80715a1c51dfbaec2c3a766b3ac16251dab9ee0399e482bd46756f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_json v1.0.154
[INFO] [stderr]    Compiling libc v0.2.190
[INFO] [stderr]    Compiling syn v3.0.9
[INFO] [stderr]    Compiling thiserror-impl v2.0.21
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling hashify v0.3.1
[INFO] [stderr]    Compiling thiserror v2.0.21
[INFO] [stderr]    Compiling cosmolkit-ringdecomposer v0.5.1-rc.3
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling cosmolkit-types v0.5.1-rc.3
[INFO] [stderr]    Compiling cosmolkit-model v0.5.1-rc.3
[INFO] [stderr]    Compiling cosmolkit-core v0.5.1-rc.3
[INFO] [stderr]    Compiling cosmolkit-cx v0.5.1-rc.3
[INFO] [stderr]    Compiling cosmolkit-smiles v0.5.1-rc.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Conformer2D`, `PropertyValue`, `SGroupConnection`, and `StereoGroup`
[INFO] [stdout]  --> src/cx_lowering.rs:6:85
[INFO] [stdout]   |
[INFO] [stdout] 6 |     AdjacencyList, AtomId, BondDirection, BondId, BondOrder, BondStereo, ChiralTag, Conformer2D,
[INFO] [stdout]   |                                                                                     ^^^^^^^^^^^
[INFO] [stdout] 7 |     Conformer3D, CoordinateDimension, PropertyValue, SGroupConnection, SGroupData, StereoGroup,
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^              ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ordered_atom_properties`
[INFO] [stdout]    --> src/cx_writer.rs:110:40
[INFO] [stdout]     |
[INFO] [stdout] 110 |     SubstanceGroupKind, TopologyBlock, ordered_atom_properties, set_stereo_group_write_id,
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SmilesRecord`
[INFO] [stdout]    --> src/cx_writer.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 | use crate::{SmilesParseError, SmilesRecord, SmilesWriteParams, writer::write_smiles_for_cx};
[INFO] [stdout]     |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RingFindType` and `symmetrized_sssr`
[INFO] [stdout]  --> src/finalize_stereo.rs:4:47
[INFO] [stdout]   |
[INFO] [stdout] 4 |     DoubleBondStereoError, LegacyStereoError, RingFindType, RingFindingError, RingInfo,
[INFO] [stdout]   |                                               ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8 |     symmetrized_sssr,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::SmilesRecord`
[INFO] [stdout]  --> src/fragment.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::SmilesRecord;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `count_swaps_to_interconvert`
[INFO] [stdout]  --> src/stereo.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     count_swaps_to_interconvert, insert_implicit_nontetrahedral_neighbors, invert_tetrahedral_tag,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FragmentSelectionMasks`
[INFO] [stdout]   --> src/writer.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     FragmentSelectionMasks, FragmentWriteInputError, PreparedFragmentStereo,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SmilesRecord`
[INFO] [stdout]   --> src/writer.rs:16:44
[INFO] [stdout]    |
[INFO] [stdout] 16 |     CxSmilesWriteParams, SmilesParseError, SmilesRecord, canonical_rank,
[INFO] [stdout]    |                                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `coordinate_source` is never used
[INFO] [stdout]    --> src/cx_writer.rs:978:4
[INFO] [stdout]     |
[INFO] [stdout] 978 | fn coordinate_source<'record>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CoordinateSourceMut` is never used
[INFO] [stdout]     --> src/cx_writer.rs:1211:6
[INFO] [stdout]      |
[INFO] [stdout] 1211 | enum CoordinateSourceMut<'a> {
[INFO] [stdout]      |      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_conformer_by_id_mut` is never used
[INFO] [stdout]     --> src/cx_writer.rs:1216:4
[INFO] [stdout]      |
[INFO] [stdout] 1216 | fn source_conformer_by_id_mut(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_stereo_conformers` is never used
[INFO] [stdout]     --> src/finalize_stereo.rs:1646:15
[INFO] [stdout]      |
[INFO] [stdout] 1646 | pub(crate) fn source_stereo_conformers(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stereochem_done` is never read
[INFO] [stdout]   --> src/fragment.rs:93:16
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub(super) struct PreparedFragmentStereo<'a> {
[INFO] [stdout]    |                   ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub(super) stereochem_done: bool,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_string_property` is never used
[INFO] [stdout]   --> src/writer.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn source_string_property(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `canonicalize_double_bond_directions_for_writer` is never used
[INFO] [stdout]  --> src/writer/direction.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(super) fn canonicalize_double_bond_directions_for_writer(
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `canonicalize_double_bonds_for_writer` is never used
[INFO] [stdout]   --> src/writer/direction.rs:79:15
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub(super) fn canonicalize_double_bonds_for_writer(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `topology:` in this pattern is redundant
[INFO] [stdout]    --> src/writer.rs:736:9
[INFO] [stdout]     |
[INFO] [stdout] 736 |         topology: mut topology,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `mut topology`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_shorthand_field_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 51.99s
[INFO] running `Command { std: "docker" "inspect" "7e5c12f9eb80715a1c51dfbaec2c3a766b3ac16251dab9ee0399e482bd46756f", 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" "7e5c12f9eb80715a1c51dfbaec2c3a766b3ac16251dab9ee0399e482bd46756f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling cosmolkit-model v0.5.1-rc.3
[INFO] [stderr]    Compiling cosmolkit-core v0.5.1-rc.3
[INFO] [stderr]    Compiling cosmolkit-cx v0.5.1-rc.3
[INFO] [stderr]    Compiling cosmolkit-smiles v0.5.1-rc.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Conformer2D`, `PropertyValue`, `SGroupConnection`, and `StereoGroup`
[INFO] [stdout]  --> src/cx_lowering.rs:6:85
[INFO] [stdout]   |
[INFO] [stdout] 6 |     AdjacencyList, AtomId, BondDirection, BondId, BondOrder, BondStereo, ChiralTag, Conformer2D,
[INFO] [stdout]   |                                                                                     ^^^^^^^^^^^
[INFO] [stdout] 7 |     Conformer3D, CoordinateDimension, PropertyValue, SGroupConnection, SGroupData, StereoGroup,
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^              ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ordered_atom_properties`
[INFO] [stdout]    --> src/cx_writer.rs:110:40
[INFO] [stdout]     |
[INFO] [stdout] 110 |     SubstanceGroupKind, TopologyBlock, ordered_atom_properties, set_stereo_group_write_id,
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SmilesRecord`
[INFO] [stdout]    --> src/cx_writer.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 | use crate::{SmilesParseError, SmilesRecord, SmilesWriteParams, writer::write_smiles_for_cx};
[INFO] [stdout]     |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RingFindType` and `symmetrized_sssr`
[INFO] [stdout]  --> src/finalize_stereo.rs:4:47
[INFO] [stdout]   |
[INFO] [stdout] 4 |     DoubleBondStereoError, LegacyStereoError, RingFindType, RingFindingError, RingInfo,
[INFO] [stdout]   |                                               ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8 |     symmetrized_sssr,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::SmilesRecord`
[INFO] [stdout]  --> src/fragment.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::SmilesRecord;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `count_swaps_to_interconvert`
[INFO] [stdout]  --> src/stereo.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     count_swaps_to_interconvert, insert_implicit_nontetrahedral_neighbors, invert_tetrahedral_tag,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FragmentSelectionMasks`
[INFO] [stdout]   --> src/writer.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     FragmentSelectionMasks, FragmentWriteInputError, PreparedFragmentStereo,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SmilesRecord`
[INFO] [stdout]   --> src/writer.rs:16:44
[INFO] [stdout]    |
[INFO] [stdout] 16 |     CxSmilesWriteParams, SmilesParseError, SmilesRecord, canonical_rank,
[INFO] [stdout]    |                                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `coordinate_source` is never used
[INFO] [stdout]    --> src/cx_writer.rs:978:4
[INFO] [stdout]     |
[INFO] [stdout] 978 | fn coordinate_source<'record>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CoordinateSourceMut` is never used
[INFO] [stdout]     --> src/cx_writer.rs:1211:6
[INFO] [stdout]      |
[INFO] [stdout] 1211 | enum CoordinateSourceMut<'a> {
[INFO] [stdout]      |      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_conformer_by_id_mut` is never used
[INFO] [stdout]     --> src/cx_writer.rs:1216:4
[INFO] [stdout]      |
[INFO] [stdout] 1216 | fn source_conformer_by_id_mut(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_stereo_conformers` is never used
[INFO] [stdout]     --> src/finalize_stereo.rs:1646:15
[INFO] [stdout]      |
[INFO] [stdout] 1646 | pub(crate) fn source_stereo_conformers(
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stereochem_done` is never read
[INFO] [stdout]   --> src/fragment.rs:93:16
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub(super) struct PreparedFragmentStereo<'a> {
[INFO] [stdout]    |                   ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub(super) stereochem_done: bool,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_string_property` is never used
[INFO] [stdout]   --> src/writer.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn source_string_property(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `canonicalize_double_bond_directions_for_writer` is never used
[INFO] [stdout]  --> src/writer/direction.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(super) fn canonicalize_double_bond_directions_for_writer(
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `canonicalize_double_bonds_for_writer` is never used
[INFO] [stdout]   --> src/writer/direction.rs:79:15
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub(super) fn canonicalize_double_bonds_for_writer(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `topology:` in this pattern is redundant
[INFO] [stdout]    --> src/writer.rs:736:9
[INFO] [stdout]     |
[INFO] [stdout] 736 |         topology: mut topology,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `mut topology`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_shorthand_field_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Conformer2D`, `SGroupConnection`, and `StereoGroup`
[INFO] [stdout]  --> src/cx_lowering.rs:6:85
[INFO] [stdout]   |
[INFO] [stdout] 6 |     AdjacencyList, AtomId, BondDirection, BondId, BondOrder, BondStereo, ChiralTag, Conformer2D,
[INFO] [stdout]   |                                                                                     ^^^^^^^^^^^
[INFO] [stdout] 7 |     Conformer3D, CoordinateDimension, PropertyValue, SGroupConnection, SGroupData, StereoGroup,
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^              ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ordered_atom_properties`
[INFO] [stdout]    --> src/cx_writer.rs:110:40
[INFO] [stdout]     |
[INFO] [stdout] 110 |     SubstanceGroupKind, TopologyBlock, ordered_atom_properties, set_stereo_group_write_id,
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RingFindType` and `symmetrized_sssr`
[INFO] [stdout]  --> src/finalize_stereo.rs:4:47
[INFO] [stdout]   |
[INFO] [stdout] 4 |     DoubleBondStereoError, LegacyStereoError, RingFindType, RingFindingError, RingInfo,
[INFO] [stdout]   |                                               ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8 |     symmetrized_sssr,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValenceAssignment`
[INFO] [stdout]    --> src/finalize_stereo.rs:145:33
[INFO] [stdout]     |
[INFO] [stdout] 145 |         RingFindType, RingInfo, ValenceAssignment, ValenceModel,
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `count_swaps_to_interconvert`
[INFO] [stdout]  --> src/stereo.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     count_swaps_to_interconvert, insert_implicit_nontetrahedral_neighbors, invert_tetrahedral_tag,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cosmolkit_core::parser_stereo_order::nontetrahedral_max_neighbors`
[INFO] [stdout]  --> src/stereo.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) use cosmolkit_core::parser_stereo_order::nontetrahedral_max_neighbors;
[INFO] [stdout]   |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FragmentSelectionMasks`
[INFO] [stdout]   --> src/writer.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     FragmentSelectionMasks, FragmentWriteInputError, PreparedFragmentStereo,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nontetrahedral_chiral_permutation`
[INFO] [stdout]  --> tests/../src/stereo.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     nontetrahedral_chiral_permutation,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/migration_smi_parser.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |                     record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 33 |                     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/migration_smi_fragment.rs:478:5
[INFO] [stdout]     |
[INFO] [stdout] 478 |     legacy.properties.clear_prop("_StereochemDone");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 478 |     let _ = legacy.properties.clear_prop("_StereochemDone");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/migration_smi_fragment.rs:608:13
[INFO] [stdout]     |
[INFO] [stdout] 608 |             input.properties.clear_prop("_StereochemDone");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 608 |             let _ = input.properties.clear_prop("_StereochemDone");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/migration_smi_fragment.rs:642:13
[INFO] [stdout]     |
[INFO] [stdout] 642 |             input.properties.clear_prop("_StereochemDone");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 642 |             let _ = input.properties.clear_prop("_StereochemDone");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/migration_smi_canonical.rs:636:13
[INFO] [stdout]     |
[INFO] [stdout] 636 |             input.properties.clear_prop("_StereochemDone");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 636 |             let _ = input.properties.clear_prop("_StereochemDone");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/migration_smi_canonical.rs:670:13
[INFO] [stdout]     |
[INFO] [stdout] 670 |             input.properties.clear_prop("_StereochemDone");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 670 |             let _ = input.properties.clear_prop("_StereochemDone");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original_expected`
[INFO] [stdout]     --> tests/migration_smi_cx_write.rs:1755:13
[INFO] [stdout]      |
[INFO] [stdout] 1755 |         let original_expected = if attachment.is_some() && generic.is_none() {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_expected`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `before`
[INFO] [stdout]     --> tests/migration_smi_cx_write.rs:2404:9
[INFO] [stdout]      |
[INFO] [stdout] 2404 |     let before = record.clone();
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_before`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> tests/migration_smi_cx_write.rs:1305:5
[INFO] [stdout]      |
[INFO] [stdout] 1305 |     first.set_prop("FIELDTAG", "t|g");
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1305 |     let _ = first.set_prop("FIELDTAG", "t|g");
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> tests/migration_smi_cx_write.rs:2453:5
[INFO] [stdout]      |
[INFO] [stdout] 2453 |     record.topology.atoms[0].clear_prop("z");
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 2453 |     let _ = record.topology.atoms[0].clear_prop("z");
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> tests/migration_smi_writer.rs:1359:5
[INFO] [stdout]      |
[INFO] [stdout] 1359 |     record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1359 |     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> tests/migration_smi_writer.rs:1371:5
[INFO] [stdout]      |
[INFO] [stdout] 1371 |     record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1371 |     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> tests/migration_smi_writer.rs:1412:5
[INFO] [stdout]      |
[INFO] [stdout] 1412 |     record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1412 |     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> tests/migration_smi_writer.rs:2013:13
[INFO] [stdout]      |
[INFO] [stdout] 2013 |             record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 2013 |             let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> tests/migration_smi_writer.rs:2054:5
[INFO] [stdout]      |
[INFO] [stdout] 2054 |     record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 2054 |     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> tests/migration_smi_writer.rs:2117:5
[INFO] [stdout]      |
[INFO] [stdout] 2117 |     record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 2117 |     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> tests/migration_smi_writer.rs:2149:5
[INFO] [stdout]      |
[INFO] [stdout] 2149 |     record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 2149 |     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> tests/migration_smi_writer.rs:2216:5
[INFO] [stdout]      |
[INFO] [stdout] 2216 |     record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 2216 |     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> tests/migration_smi_writer.rs:2253:5
[INFO] [stdout]      |
[INFO] [stdout] 2253 |     record.topology.atoms[0].clear_prop("smilesSymbol");
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 2253 |     let _ = record.topology.atoms[0].clear_prop("smilesSymbol");
[INFO] [stdout]      |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fixed_property_text` is never used
[INFO] [stdout]     --> src/cx_lowering.rs:2755:4
[INFO] [stdout]      |
[INFO] [stdout] 2755 | fn fixed_property_text(value: &cosmolkit_model::PropertyText) -> &str {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fixed_property_text` is never used
[INFO] [stdout]     --> src/cx_writer.rs:5815:4
[INFO] [stdout]      |
[INFO] [stdout] 5815 | fn fixed_property_text(value: &cosmolkit_model::PropertyText) -> &str {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `source_string_property` is never used
[INFO] [stdout]   --> src/writer.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn source_string_property(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fixed_property_text` is never used
[INFO] [stdout]     --> src/writer.rs:7926:4
[INFO] [stdout]      |
[INFO] [stdout] 7926 | fn fixed_property_text(value: &cosmolkit_model::PropertyText) -> &str {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/cx_writer.rs:4825:9
[INFO] [stdout]      |
[INFO] [stdout] 4825 |         child.set_prop("index", "42");
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 4825 |         let _ = child.set_prop("index", "42");
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/cx_writer.rs:4828:9
[INFO] [stdout]      |
[INFO] [stdout] 4828 |         sibling.set_prop("index", "7");
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 4828 |         let _ = sibling.set_prop("index", "7");
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/cx_writer.rs:4830:9
[INFO] [stdout]      |
[INFO] [stdout] 4830 |         sibling.set_prop("PARENT", "900");
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 4830 |         let _ = sibling.set_prop("PARENT", "900");
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/cx_writer.rs:4835:9
[INFO] [stdout]      |
[INFO] [stdout] 4835 |         parent.set_prop("index", "900");
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 4835 |         let _ = parent.set_prop("index", "900");
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/cx_writer.rs:4856:17
[INFO] [stdout]      |
[INFO] [stdout] 4856 |                 group.set_prop("index", (1000 + row * 7).to_string());
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 4856 |                 let _ = group.set_prop("index", (1000 + row * 7).to_string());
[INFO] [stdout]      |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/finalize_stereo.rs:996:29
[INFO] [stdout]     |
[INFO] [stdout] 996 | ...                   props.clear_computed_props();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 996 |                             let _ = props.clear_computed_props();
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/fragment.rs:669:9
[INFO] [stdout]     |
[INFO] [stdout] 669 |         record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 669 |         let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `topology:` in this pattern is redundant
[INFO] [stdout]    --> src/writer.rs:736:9
[INFO] [stdout]     |
[INFO] [stdout] 736 |         topology: mut topology,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `mut topology`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_shorthand_field_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/writer.rs:6515:17
[INFO] [stdout]      |
[INFO] [stdout] 6515 | /                 dfs_find_cycles(
[INFO] [stdout] 6516 | |                     &record.topology,
[INFO] [stdout] 6517 | |                     0,
[INFO] [stdout] 6518 | |                     None,
[INFO] [stdout] ...    |
[INFO] [stdout] 6525 | |                     Some(&mut *rng),
[INFO] [stdout] 6526 | |                 );
[INFO] [stdout]      | |_________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 6515 |                 let _ = dfs_find_cycles(
[INFO] [stdout]      |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/writer.rs:6570:17
[INFO] [stdout]      |
[INFO] [stdout] 6570 | /                 dfs_find_cycles(
[INFO] [stdout] 6571 | |                     &record.topology,
[INFO] [stdout] 6572 | |                     0,
[INFO] [stdout] 6573 | |                     None,
[INFO] [stdout] ...    |
[INFO] [stdout] 6580 | |                     Some(&mut *rng),
[INFO] [stdout] 6581 | |                 );
[INFO] [stdout]      | |_________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 6570 |                 let _ = dfs_find_cycles(
[INFO] [stdout]      |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/writer.rs:6613:17
[INFO] [stdout]      |
[INFO] [stdout] 6613 | /                 dfs_find_cycles(
[INFO] [stdout] 6614 | |                     &record.topology,
[INFO] [stdout] 6615 | |                     0,
[INFO] [stdout] 6616 | |                     None,
[INFO] [stdout] ...    |
[INFO] [stdout] 6623 | |                     Some(&mut *rng),
[INFO] [stdout] 6624 | |                 );
[INFO] [stdout]      | |_________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 6613 |                 let _ = dfs_find_cycles(
[INFO] [stdout]      |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/writer.rs:6823:13
[INFO] [stdout]      |
[INFO] [stdout] 6823 |             record.topology.atoms[1].set_prop("_ringStereoAtoms", vec![relation.0]);
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 6823 |             let _ = record.topology.atoms[1].set_prop("_ringStereoAtoms", vec![relation.0]);
[INFO] [stdout]      |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/writer.rs:6824:13
[INFO] [stdout]      |
[INFO] [stdout] 6824 |             record.topology.atoms[5].set_prop("_ringStereoAtoms", vec![relation.1]);
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 6824 |             let _ = record.topology.atoms[5].set_prop("_ringStereoAtoms", vec![relation.1]);
[INFO] [stdout]      |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/writer.rs:6832:9
[INFO] [stdout]      |
[INFO] [stdout] 6832 |         record.topology.atoms[1].set_prop("_ringStereoAtoms", "0");
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 6832 |         let _ = record.topology.atoms[1].set_prop("_ringStereoAtoms", "0");
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/writer.rs:7273:13
[INFO] [stdout]      |
[INFO] [stdout] 7273 |             record.topology.atoms[1].clear_prop(key);
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 7273 |             let _ = record.topology.atoms[1].clear_prop(key);
[INFO] [stdout]      |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 42s
[INFO] running `Command { std: "docker" "inspect" "7e5c12f9eb80715a1c51dfbaec2c3a766b3ac16251dab9ee0399e482bd46756f", 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" "7e5c12f9eb80715a1c51dfbaec2c3a766b3ac16251dab9ee0399e482bd46756f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `Conformer2D`, `PropertyValue`, `SGroupConnection`, and `StereoGroup`
[INFO] [stderr]  --> src/cx_lowering.rs:6:85
[INFO] [stderr]   |
[INFO] [stderr] 6 |     AdjacencyList, AtomId, BondDirection, BondId, BondOrder, BondStereo, ChiralTag, Conformer2D,
[INFO] [stderr]   |                                                                                     ^^^^^^^^^^^
[INFO] [stderr] 7 |     Conformer3D, CoordinateDimension, PropertyValue, SGroupConnection, SGroupData, StereoGroup,
[INFO] [stderr]   |                                       ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^              ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ordered_atom_properties`
[INFO] [stderr]    --> src/cx_writer.rs:110:40
[INFO] [stderr]     |
[INFO] [stderr] 110 |     SubstanceGroupKind, TopologyBlock, ordered_atom_properties, set_stereo_group_write_id,
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `SmilesRecord`
[INFO] [stderr]    --> src/cx_writer.rs:115:31
[INFO] [stderr]     |
[INFO] [stderr] 115 | use crate::{SmilesParseError, SmilesRecord, SmilesWriteParams, writer::write_smiles_for_cx};
[INFO] [stderr]     |                               ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `RingFindType` and `symmetrized_sssr`
[INFO] [stderr]  --> src/finalize_stereo.rs:4:47
[INFO] [stderr]   |
[INFO] [stderr] 4 |     DoubleBondStereoError, LegacyStereoError, RingFindType, RingFindingError, RingInfo,
[INFO] [stderr]   |                                               ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 8 |     symmetrized_sssr,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::SmilesRecord`
[INFO] [stderr]  --> src/fragment.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::SmilesRecord;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `count_swaps_to_interconvert`
[INFO] [stderr]  --> src/stereo.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     count_swaps_to_interconvert, insert_implicit_nontetrahedral_neighbors, invert_tetrahedral_tag,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `FragmentSelectionMasks`
[INFO] [stderr]   --> src/writer.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 |     FragmentSelectionMasks, FragmentWriteInputError, PreparedFragmentStereo,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `SmilesRecord`
[INFO] [stderr]   --> src/writer.rs:16:44
[INFO] [stderr]    |
[INFO] [stderr] 16 |     CxSmilesWriteParams, SmilesParseError, SmilesRecord, canonical_rank,
[INFO] [stderr]    |                                            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `coordinate_source` is never used
[INFO] [stderr]    --> src/cx_writer.rs:978:4
[INFO] [stderr]     |
[INFO] [stderr] 978 | fn coordinate_source<'record>(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: enum `CoordinateSourceMut` is never used
[INFO] [stderr]     --> src/cx_writer.rs:1211:6
[INFO] [stderr]      |
[INFO] [stderr] 1211 | enum CoordinateSourceMut<'a> {
[INFO] [stderr]      |      ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `source_conformer_by_id_mut` is never used
[INFO] [stderr]     --> src/cx_writer.rs:1216:4
[INFO] [stderr]      |
[INFO] [stderr] 1216 | fn source_conformer_by_id_mut(
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `source_stereo_conformers` is never used
[INFO] [stderr]     --> src/finalize_stereo.rs:1646:15
[INFO] [stderr]      |
[INFO] [stderr] 1646 | pub(crate) fn source_stereo_conformers(
[INFO] [stderr]      |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `stereochem_done` is never read
[INFO] [stderr]   --> src/fragment.rs:93:16
[INFO] [stderr]    |
[INFO] [stderr] 88 | pub(super) struct PreparedFragmentStereo<'a> {
[INFO] [stderr]    |                   ---------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 93 |     pub(super) stereochem_done: bool,
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `source_string_property` is never used
[INFO] [stderr]   --> src/writer.rs:26:4
[INFO] [stderr]    |
[INFO] [stderr] 26 | fn source_string_property(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `canonicalize_double_bond_directions_for_writer` is never used
[INFO] [stderr]  --> src/writer/direction.rs:3:15
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub(super) fn canonicalize_double_bond_directions_for_writer(
[INFO] [stderr]   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `canonicalize_double_bonds_for_writer` is never used
[INFO] [stderr]   --> src/writer/direction.rs:79:15
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub(super) fn canonicalize_double_bonds_for_writer(
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: the `topology:` in this pattern is redundant
[INFO] [stderr]    --> src/writer.rs:736:9
[INFO] [stderr]     |
[INFO] [stderr] 736 |         topology: mut topology,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `mut topology`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_shorthand_field_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Conformer2D`, `SGroupConnection`, and `StereoGroup`
[INFO] [stderr]  --> src/cx_lowering.rs:6:85
[INFO] [stderr]   |
[INFO] [stderr] 6 |     AdjacencyList, AtomId, BondDirection, BondId, BondOrder, BondStereo, ChiralTag, Conformer2D,
[INFO] [stderr]   |                                                                                     ^^^^^^^^^^^
[INFO] [stderr] 7 |     Conformer3D, CoordinateDimension, PropertyValue, SGroupConnection, SGroupData, StereoGroup,
[INFO] [stderr]   |                                                      ^^^^^^^^^^^^^^^^              ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ValenceAssignment`
[INFO] [stderr]    --> src/finalize_stereo.rs:145:33
[INFO] [stderr]     |
[INFO] [stderr] 145 |         RingFindType, RingInfo, ValenceAssignment, ValenceModel,
[INFO] [stderr]     |                                 ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `cosmolkit_core::parser_stereo_order::nontetrahedral_max_neighbors`
[INFO] [stderr]  --> src/stereo.rs:9:16
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub(crate) use cosmolkit_core::parser_stereo_order::nontetrahedral_max_neighbors;
[INFO] [stderr]   |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `fixed_property_text` is never used
[INFO] [stderr]     --> src/cx_lowering.rs:2755:4
[INFO] [stderr]      |
[INFO] [stderr] 2755 | fn fixed_property_text(value: &cosmolkit_model::PropertyText) -> &str {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `fixed_property_text` is never used
[INFO] [stderr]     --> src/cx_writer.rs:5815:4
[INFO] [stderr]      |
[INFO] [stderr] 5815 | fn fixed_property_text(value: &cosmolkit_model::PropertyText) -> &str {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `fixed_property_text` is never used
[INFO] [stderr]     --> src/writer.rs:7926:4
[INFO] [stderr]      |
[INFO] [stderr] 7926 | fn fixed_property_text(value: &cosmolkit_model::PropertyText) -> &str {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> src/cx_writer.rs:4825:9
[INFO] [stderr]      |
[INFO] [stderr] 4825 |         child.set_prop("index", "42");
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 4825 |         let _ = child.set_prop("index", "42");
[INFO] [stderr]      |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> src/cx_writer.rs:4828:9
[INFO] [stderr]      |
[INFO] [stderr] 4828 |         sibling.set_prop("index", "7");
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 4828 |         let _ = sibling.set_prop("index", "7");
[INFO] [stderr]      |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> src/cx_writer.rs:4830:9
[INFO] [stderr]      |
[INFO] [stderr] 4830 |         sibling.set_prop("PARENT", "900");
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 4830 |         let _ = sibling.set_prop("PARENT", "900");
[INFO] [stderr]      |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> src/cx_writer.rs:4835:9
[INFO] [stderr]      |
[INFO] [stderr] 4835 |         parent.set_prop("index", "900");
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 4835 |         let _ = parent.set_prop("index", "900");
[INFO] [stderr]      |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> src/cx_writer.rs:4856:17
[INFO] [stderr]      |
[INFO] [stderr] 4856 |                 group.set_prop("index", (1000 + row * 7).to_string());
[INFO] [stderr]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 4856 |                 let _ = group.set_prop("index", (1000 + row * 7).to_string());
[INFO] [stderr]      |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/finalize_stereo.rs:996:29
[INFO] [stderr]     |
[INFO] [stderr] 996 | ...                   props.clear_computed_props();
[INFO] [stderr]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 996 |                             let _ = props.clear_computed_props();
[INFO] [stderr]     |                             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/fragment.rs:669:9
[INFO] [stderr]     |
[INFO] [stderr] 669 |         record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 669 |         let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> src/writer.rs:6515:17
[INFO] [stderr]      |
[INFO] [stderr] 6515 | /                 dfs_find_cycles(
[INFO] [stderr] 6516 | |                     &record.topology,
[INFO] [stderr] 6517 | |                     0,
[INFO] [stderr] 6518 | |                     None,
[INFO] [stderr] ...    |
[INFO] [stderr] 6525 | |                     Some(&mut *rng),
[INFO] [stderr] 6526 | |                 );
[INFO] [stderr]      | |_________________^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 6515 |                 let _ = dfs_find_cycles(
[INFO] [stderr]      |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> src/writer.rs:6570:17
[INFO] [stderr]      |
[INFO] [stderr] 6570 | /                 dfs_find_cycles(
[INFO] [stderr] 6571 | |                     &record.topology,
[INFO] [stderr] 6572 | |                     0,
[INFO] [stderr] 6573 | |                     None,
[INFO] [stderr] ...    |
[INFO] [stderr] 6580 | |                     Some(&mut *rng),
[INFO] [stderr] 6581 | |                 );
[INFO] [stderr]      | |_________________^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 6570 |                 let _ = dfs_find_cycles(
[INFO] [stderr]      |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> src/writer.rs:6613:17
[INFO] [stderr]      |
[INFO] [stderr] 6613 | /                 dfs_find_cycles(
[INFO] [stderr] 6614 | |                     &record.topology,
[INFO] [stderr] 6615 | |                     0,
[INFO] [stderr] 6616 | |                     None,
[INFO] [stderr] ...    |
[INFO] [stderr] 6623 | |                     Some(&mut *rng),
[INFO] [stderr] 6624 | |                 );
[INFO] [stderr]      | |_________________^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 6613 |                 let _ = dfs_find_cycles(
[INFO] [stderr]      |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> src/writer.rs:6823:13
[INFO] [stderr]      |
[INFO] [stderr] 6823 |             record.topology.atoms[1].set_prop("_ringStereoAtoms", vec![relation.0]);
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 6823 |             let _ = record.topology.atoms[1].set_prop("_ringStereoAtoms", vec![relation.0]);
[INFO] [stderr]      |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> src/writer.rs:6824:13
[INFO] [stderr]      |
[INFO] [stderr] 6824 |             record.topology.atoms[5].set_prop("_ringStereoAtoms", vec![relation.1]);
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 6824 |             let _ = record.topology.atoms[5].set_prop("_ringStereoAtoms", vec![relation.1]);
[INFO] [stderr]      |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> src/writer.rs:6832:9
[INFO] [stderr]      |
[INFO] [stderr] 6832 |         record.topology.atoms[1].set_prop("_ringStereoAtoms", "0");
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 6832 |         let _ = record.topology.atoms[1].set_prop("_ringStereoAtoms", "0");
[INFO] [stderr]      |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> src/writer.rs:7273:13
[INFO] [stderr]      |
[INFO] [stderr] 7273 |             record.topology.atoms[1].clear_prop(key);
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 7273 |             let _ = record.topology.atoms[1].clear_prop(key);
[INFO] [stderr]      |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `cosmolkit-smiles` (lib) generated 17 warnings (run `cargo fix --lib -p cosmolkit-smiles` to apply 9 suggestions)
[INFO] [stderr] warning: `cosmolkit-smiles` (lib test) generated 26 warnings (6 duplicates) (run `cargo fix --lib -p cosmolkit-smiles --tests` to apply 3 suggestions)
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/migration_smi_parser.rs:33:21
[INFO] [stderr]    |
[INFO] [stderr] 33 |                     record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 33 |                     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]    |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `nontetrahedral_chiral_permutation`
[INFO] [stderr]  --> tests/../src/stereo.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 |     nontetrahedral_chiral_permutation,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> tests/migration_smi_writer.rs:1359:5
[INFO] [stderr]      |
[INFO] [stderr] 1359 |     record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 1359 |     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> tests/migration_smi_writer.rs:1371:5
[INFO] [stderr]      |
[INFO] [stderr] 1371 |     record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 1371 |     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> tests/migration_smi_writer.rs:1412:5
[INFO] [stderr]      |
[INFO] [stderr] 1412 |     record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 1412 |     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> tests/migration_smi_writer.rs:2013:13
[INFO] [stderr]      |
[INFO] [stderr] 2013 |             record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 2013 |             let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> tests/migration_smi_writer.rs:2054:5
[INFO] [stderr]      |
[INFO] [stderr] 2054 |     record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 2054 |     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> tests/migration_smi_writer.rs:2117:5
[INFO] [stderr]      |
[INFO] [stderr] 2117 |     record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 2117 |     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> tests/migration_smi_writer.rs:2149:5
[INFO] [stderr]      |
[INFO] [stderr] 2149 |     record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 2149 |     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> tests/migration_smi_writer.rs:2216:5
[INFO] [stderr]      |
[INFO] [stderr] 2216 |     record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 2216 |     let _ = record.properties.clear_prop("_StereochemDone");
[INFO] [stderr]      |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> tests/migration_smi_writer.rs:2253:5
[INFO] [stderr]      |
[INFO] [stderr] 2253 |     record.topology.atoms[0].clear_prop("smilesSymbol");
[INFO] [stderr]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 2253 |     let _ = record.topology.atoms[0].clear_prop("smilesSymbol");
[INFO] [stderr]      |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `original_expected`
[INFO] [stderr]     --> tests/migration_smi_cx_write.rs:1755:13
[INFO] [stderr]      |
[INFO] [stderr] 1755 |         let original_expected = if attachment.is_some() && generic.is_none() {
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_expected`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `before`
[INFO] [stderr]     --> tests/migration_smi_cx_write.rs:2404:9
[INFO] [stderr]      |
[INFO] [stderr] 2404 |     let before = record.clone();
[INFO] [stderr]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_before`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> tests/migration_smi_cx_write.rs:1305:5
[INFO] [stderr]      |
[INFO] [stderr] 1305 |     first.set_prop("FIELDTAG", "t|g");
[INFO] [stderr]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 1305 |     let _ = first.set_prop("FIELDTAG", "t|g");
[INFO] [stderr]      |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> tests/migration_smi_cx_write.rs:2453:5
[INFO] [stderr]      |
[INFO] [stderr] 2453 |     record.topology.atoms[0].clear_prop("z");
[INFO] [stderr]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 2453 |     let _ = record.topology.atoms[0].clear_prop("z");
[INFO] [stderr]      |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> tests/migration_smi_canonical.rs:636:13
[INFO] [stderr]     |
[INFO] [stderr] 636 |             input.properties.clear_prop("_StereochemDone");
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 636 |             let _ = input.properties.clear_prop("_StereochemDone");
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> tests/migration_smi_canonical.rs:670:13
[INFO] [stderr]     |
[INFO] [stderr] 670 |             input.properties.clear_prop("_StereochemDone");
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 670 |             let _ = input.properties.clear_prop("_StereochemDone");
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> tests/migration_smi_fragment.rs:478:5
[INFO] [stderr]     |
[INFO] [stderr] 478 |     legacy.properties.clear_prop("_StereochemDone");
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 478 |     let _ = legacy.properties.clear_prop("_StereochemDone");
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> tests/migration_smi_fragment.rs:608:13
[INFO] [stderr]     |
[INFO] [stderr] 608 |             input.properties.clear_prop("_StereochemDone");
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 608 |             let _ = input.properties.clear_prop("_StereochemDone");
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> tests/migration_smi_fragment.rs:642:13
[INFO] [stderr]     |
[INFO] [stderr] 642 |             input.properties.clear_prop("_StereochemDone");
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 642 |             let _ = input.properties.clear_prop("_StereochemDone");
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `cosmolkit-smiles` (test "migration_smi_parser") generated 1 warning
[INFO] [stderr] warning: `cosmolkit-smiles` (test "migration_smi_stereo") generated 1 warning (run `cargo fix --test "migration_smi_stereo" -p cosmolkit-smiles` to apply 1 suggestion)
[INFO] [stderr] warning: `cosmolkit-smiles` (test "migration_smi_writer") generated 9 warnings
[INFO] [stderr] warning: `cosmolkit-smiles` (test "migration_smi_cx_write") generated 4 warnings (run `cargo fix --test "migration_smi_cx_write" -p cosmolkit-smiles` to apply 2 suggestions)
[INFO] [stderr] warning: `cosmolkit-smiles` (test "migration_smi_canonical") generated 2 warnings
[INFO] [stderr] warning: `cosmolkit-smiles` (test "migration_smi_fragment") generated 3 warnings
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/cd90bbba65eb00db/out/cosmolkit_smiles-cd90bbba65eb00db)
[INFO] [stderr] Atom 0 appears more than once in stereo group specification!
[INFO] [stdout] 
[INFO] [stderr] unrecognized CXSMILES CONNECT value: 'HH'. Assuming 'eu'
[INFO] [stdout] running 314 tests
[INFO] [stderr] Atom 1 appears more than once in stereo group specification!
[INFO] [stdout] test canonical_rank::tests::component_stereo_groups_keep_selected_members_and_source_order ... ok
[INFO] [stdout] test cx_lowering::recovery_chem26::exact_lookup_slots_priority_early_error_and_unsigned_underflow ... ok
[INFO] [stdout] test canonical_rank::tests::ranking_fragment_fails_when_a_carrier_loses_its_target ... ok
[INFO] [stdout] test cx_lowering::tests::query_sgroups_smiles_polymer_keeps_source_crossing_index_filter ... ok
[INFO] [stdout] test cx_lowering::recovery_chem29_smiles::strict_new_same_record_failure_differs_from_constructor_value_error ... ok
[INFO] [stdout] test cx_lowering::tests::strict_cx_lowering_reuses_graph_buffers_and_lax_keeps_rollback ... ok
[INFO] [stdout] test canonical_rank::tests::ranking_fragment_selects_atom_and_bond_stereo_groups_in_source_order ... ok
[INFO] [stdout] test canonical_rank::tests::prepared_component_ranks_are_local_and_keep_input_assignments ... ok
[INFO] [stdout] test cx_lowering::tests::query_sgroups_smiles_polymer_uppercase_connect_uses_source_fallback ... ok
[INFO] [stdout] test canonical_rank::tests::stereo_write_id_fragment_preserves_explicit_state_independently_of_read_ids ... ok
[INFO] [stdout] test cx_lowering::recovery_chem29_smiles::lax_failure_keeps_prior_group_and_stops_suffix_name_and_mutation ... ok
[INFO] [stdout] test cx_lowering::uint_complete_source_condition_cells::uint_cell_unsigned_consumer_smiles_cxlower_0_cx_lowering ... ok
[INFO] [stdout] test cx_lowering::uint_complete_source_condition_cells::uint_cell_cx_first_match_cx_lowering ... ok
[INFO] [stdout] test canonical_rank::tests::ranking_fragment_remaps_surviving_template_attachment_targets ... ok
[INFO] [stdout] test cx_lowering::uint_complete_source_condition_cells::uint_cell_unsigned_consumer_smiles_cxlower_1_cx_lowering ... ok
[INFO] [stdout] test cx_lowering::uint_complete_source_condition_cells::uint_cell_unsigned_consumer_smiles_cxlower_2147483646_cx_lowering ... ok
[INFO] [stdout] test cx_lowering::uint_complete_source_condition_cells::uint_cell_unsigned_consumer_smiles_cxlower_2147483647_cx_lowering ... ok
[INFO] [stdout] test cx_lowering::recovery_chem29_smiles::private_existing_tracker_error_precedes_later_same_record_warning ... ok
[INFO] [stdout] test cx_lowering::recovery_chem29_smiles::accepted_index_filter_precedes_new_duplicate_predicate_and_kinds_stay_independent ... ok
[INFO] [stdout] test cx_lowering::tests::query_sgroups_smiles_polymer_accepted_crossings_keep_existing_output ... ok
[INFO] [stdout] test cx_lowering::uint_complete_source_condition_cells::uint_cell_unsigned_consumer_smiles_cxlower_4294967295_cx_lowering ... ok
[INFO] [stdout] test cx_writer::atom_properties_source_tests::attachment_uses_property_presence_without_integer_conversion ... ok
[INFO] [stdout] test cx_writer::atom_properties_source_tests::counted_binary_property_keys_and_values_use_context_byte_entities ... ok
[INFO] [stdout] test cx_writer::complete_link_node_source_tests::bond_lookup_range_errors_ignore_strict_and_first_missing_bond_short_circuits ... ok
[INFO] [stdout] test cx_writer::atom_properties_source_tests::malformed_computed_list_is_not_replaced_by_empty_filter ... ok
[INFO] [stdout] test cx_writer::atom_properties_source_tests::empty_order_and_no_properties_have_no_prefix ... ok
[INFO] [stdout] test cx_writer::atom_properties_source_tests::exact_skip_private_and_computed_flags_filter_before_output ... ok
[INFO] [stdout] test cx_writer::atom_properties_source_tests::invalid_atom_order_returns_source_structural_range_error ... ok
[INFO] [stdout] test cx_writer::complete_link_node_source_tests::every_native_rejection_has_strict_error_and_nonstrict_outer_continue ... ok
[INFO] [stdout] test cx_writer::atom_properties_source_tests::counter_advances_for_empty_rows_and_repeated_atom_ids ... ok
[INFO] [stdout] test cx_writer::atom_properties_source_tests::all_seven_modeled_property_tags_use_source_string_projection ... ok
[INFO] [stdout] test cx_writer::atom_properties_source_tests::dummy_special_values_skip_on_any_actual_atomic_identity_but_empty_does_not ... ok
[INFO] [stdout] test canonical_rank::tests::component_selection_rejects_invalid_rows_and_marks_nonmembers ... ok
[INFO] [stdout] test cx_lowering::uint_complete_source_condition_cells::uint_cell_unsigned_consumer_smiles_cxlower_2147483648_cx_lowering ... ok
[INFO] [stderr] Cannot convert values in LINKNODE 'bad' to unsigned ints
[INFO] [stdout] test canonical_rank::tests::ranking_fragment_keeps_forward_attachment_and_source_bond_row_order ... ok
[INFO] [stdout] test cx_writer::atom_properties_source_tests::ordinary_atom_consumer_uses_the_same_single_body ... ok
[INFO] [stdout] test cx_writer::atom_properties_source_tests::source_insertion_order_and_overwrite_position_are_retained ... ok
[INFO] [stdout] test cx_writer::complete_link_node_source_tests::absent_empty_and_numeric_property_use_the_real_string_owner ... ok
[INFO] [stdout] test cx_writer::complete_link_node_source_tests::supplied_map_uses_actual_atom_ids_and_checks_centers_before_mapping ... ok
[INFO] [stdout] test cx_writer::complete_link_node_source_tests::missing_map_entries_continue_inner_loop_and_can_still_accept_node ... ok
[INFO] [stdout] test cx_writer::complete_link_node_source_tests::uint_sign_boundaries_and_required_size_wrap_precede_bond_count_guard ... ok
[INFO] [stdout] test cx_writer::complete_link_node_source_tests::separators_drop_only_explicit_empty_tokens_and_keep_raw_bad_bytes ... ok
[INFO] [stdout] test cx_writer::cx_coordinate_shared_source_tests::invalid_position_has_structural_source_range_error ... ok
[INFO] [stdout] test cx_writer::cx_coordinate_shared_source_tests::is3d_flag_controls_z_independently_of_three_column_storage ... ok
[INFO] [stdout] test cx_writer::complete_link_node_source_tests::strict_late_failure_and_writer_preserve_source_order_and_atomorder_indexing ... ok
[INFO] [stdout] test cx_writer::cx_coordinate_shared_source_tests::nonfinite_coordinate_strings_reuse_source_case_and_sign ... ok
[INFO] [stdout] test cx_writer::cx_coordinate_shared_source_tests::two_d_positions_retain_duplicates_and_empty_selection ... ok
[INFO] [stdout] test cx_writer::link_nodes_owner_source_tests::all_nonstrict_rejections_warn_then_continue_to_valid_node ... ok
[INFO] [stdout] test canonical_rank::tests::detached_rank_mol_port_matches_rdkit_canonical_rank_atoms ... ok
[INFO] [stdout] test cx_writer::link_nodes_owner_source_tests::degree_two_uses_forward_order_and_does_not_read_outer_order ... ok
[INFO] [stdout] test cx_writer::link_nodes_owner_source_tests::missing_forward_order_is_error_at_reached_source_read ... ok
[INFO] [stdout] test cx_writer::link_nodes_owner_source_tests::reverse_order_writes_are_checked_only_after_nonempty_nodes ... ok
[INFO] [stdout] test cx_writer::link_nodes_owner_source_tests::scalar_property_uses_canonical_string_conversion ... ok
[INFO] [stdout] test cx_writer::native_source_conformer_tests::source_default_consumes_actual_cross_dimension_order_and_preserves_explicit_choices ... ok
[INFO] [stdout] test cx_writer::link_nodes_owner_source_tests::repeated_nodes_and_empty_delimiter_tokens_preserve_output_order ... ok
[INFO] [stdout] test cx_writer::link_nodes_owner_source_tests::warning_prefix_is_emitted_before_later_hard_range_error ... ok
[INFO] [stdout] test cx_writer::native_source_conformer_tests::source_default_selects_first_of_multiple_homogeneous_sets_without_id_sorting ... ok
[INFO] [stdout] test cx_writer::link_nodes_owner_source_tests::binary_warning_bytes_are_not_utf8_normalized ... ok
[INFO] [stdout] test cx_writer::link_nodes_owner_source_tests::absent_or_empty_nodes_return_before_invalid_reverse_order ... ok
[INFO] [stdout] test cx_lowering::tests::query_sgroups_smiles_polymer_repeated_flip_markers_reverse_tail_pairs ... ok
[INFO] [stdout] test cx_writer::quote_cx_atom_property_source_tests::context_delimiters_are_escaped_but_periods_remain_literal ... ok
[INFO] [stdout] test cx_writer::source_mutable_getter_tests::source_mutable_getter_aliases_const_first_matching_row_without_other_changes ... ok
[INFO] [stdout] test cx_writer::tests::cx_coordinate_selection_auto_rejects_multiple_sets_and_reversed_mixed_order ... ok
[INFO] [stdout] test cx_writer::quote_cx_atom_property_source_tests::empty_source_string_stays_empty ... ok
[INFO] [stdout] test cx_writer::cx_coordinate_shared_source_tests::source_zero_threshold_six_digit_format_and_z_string_guard_are_shared ... ok
[INFO] [stdout] test cx_writer::tests::cx_coordinate_consumer_disabled_coords_bypasses_missing_selection_and_geometry ... ok
[INFO] [stdout] test cx_writer::link_nodes_owner_source_tests::actual_query_identity_predicates_properties_and_cache_are_immutable ... ok
[INFO] [stdout] test cx_writer::quote_cx_atom_property_source_tests::every_counted_byte_uses_target_char_signedness_for_entities ... ok
[INFO] [stdout] test cx_writer::link_nodes_owner_source_tests::degree_three_includes_source_outer_pair_in_property_order ... ok
[INFO] [stdout] test cx_writer::tests::canonical_output_indices_follow_final_atom_and_bond_order ... ok
[INFO] [stdout] test cx_writer::source_getter_tests::source_getter_handles_negative_ids_ordered_duplicate_ids_and_errors ... ok
[INFO] [stdout] test cx_writer::tests::cx_coordinate_selection_auto_returns_none_or_the_only_stored_set ... ok
[INFO] [stdout] test cx_writer::tests::coordinate_numbers_use_c_percent_g_shape ... ok
[INFO] [stdout] test cx_writer::tests::cx_coordinate_consumer_auto_ambiguity_is_structured_and_preserves_input ... ok
[INFO] [stdout] test cx_writer::tests::cx_coordinate_selection_explicit_ids_are_dimension_scoped_and_not_positions ... ok
[INFO] [stdout] test cx_writer::tests::cx_detached_model_audit_preserves_input ... ok
[INFO] [stdout] test cx_writer::tests::cx_coordinate_consumer_explicit_selection_drives_text_and_wedge_geometry ... ok
[INFO] [stdout] test cx_writer::tests::cx_no_coordinate_atrop_assignments_write_reoriented_carrier_bonds ... ok
[INFO] [stdout] test cx_writer::tests::cx_post_base_assignment_clears_pending_and_sets_computed_done_marker ... ok
[INFO] [stdout] test cx_writer::tests::cx_wedge_flags_require_an_enabled_present_coordinate_conformer ... ok
[INFO] [stdout] test cx_writer::tests::enhanced_stereo_duplicate_write_ids_break_ties_by_mapped_indices ... ok
[INFO] [stdout] test cx_writer::tests::cx_sgroup_typed_crossings_follow_explicit_bond_traversal_order ... ok
[INFO] [stdout] test cx_writer::tests::enhanced_stereo_omits_a_group_with_no_mapped_atoms ... ok
[INFO] [stdout] test cx_writer::tests::cx_post_base_cache_preparation_skips_when_clean_stereo_is_disabled ... ok
[INFO] [stdout] test cx_writer::tests::cx_explicit_bond_direction_precedes_molfile_bond_config ... ok
[INFO] [stdout] test cx_writer::tests::enhanced_stereo_mixed_group_maps_members_and_atrop_endpoints ... ok
[INFO] [stdout] test cx_writer::tests::enhanced_stereo_default_write_ids_do_not_forward_read_ids ... ok
[INFO] [stdout] test cx_writer::tests::cx_post_base_cache_preparation_uses_update_property_cache_false_value ... ok
[INFO] [stdout] test cx_writer::tests::cx_post_base_empty_output_skips_the_post_base_stage ... ok
[INFO] [stdout] test cx_writer::tests::cx_post_base_zero_done_marker_skips_assignment_but_cleans_groups ... ok
[INFO] [stdout] test cx_writer::tests::cx_post_base_cache_preparation_runs_for_present_done_property ... ok
[INFO] [stdout] test cx_writer::tests::review_hierarchy_resolves_sparse_source_indices_and_selected_outputs ... ok
[INFO] [stdout] test cx_writer::tests::field_selection_can_omit_coordinates_without_losing_other_records ... ok
[INFO] [stdout] test cx_writer::tests::writes_data_polymer_and_hierarchy_records ... ok
[INFO] [stdout] test cx_writer::tests::writes_enhanced_stereo_with_source_sorting_and_fresh_write_ids ... ok
[INFO] [stdout] test cx_writer::typed_bonds_source_tests::actual_oriented_begin_is_not_canonicalized_to_lower_endpoint ... ok
[INFO] [stdout] test cx_writer::tests::writes_large_ring_cis_trans_and_unknown_blocks ... ok
[INFO] [stdout] test cx_writer::typed_bonds_source_tests::bond_type_comparison_is_exact_without_dative_one_folding ... ok
[INFO] [stdout] test cx_writer::tests::cx_wedges_with_2d_coordinates_assign_and_write_tetrahedral_stereo ... ok
[INFO] [stdout] test cx_writer::tests::writes_link_nodes_with_rdkit_canonical_index_behavior ... ok
[INFO] [stdout] test cx_writer::tests::enhanced_stereo_sorts_explicit_write_ids_before_mapped_indices ... ok
[INFO] [stdout] test cx_writer::tests::enhanced_stereo_atrop_bond_group_uses_shared_wedge_assignments ... ok
[INFO] [stdout] test cx_writer::tests::writes_coordinates_labels_values_radicals_and_atom_properties_in_source_order ... ok
[INFO] [stdout] test cx_writer::tests::stereo_write_id_assignment_accepts_an_empty_group_list ... ok
[INFO] [stdout] test cx_writer::tests::stereo_write_id_assignment_keeps_unique_namespaces_and_fills_duplicates_and_holes ... ok
[INFO] [stdout] test cx_writer::tests::review_hierarchy_many_typed_children_keep_row_order ... ok
[INFO] [stdout] test cx_writer::typed_bonds_source_tests::first_duplicate_atom_position_matches_std_find ... ok
[INFO] [stdout] test cx_writer::typed_bonds_source_tests::missing_start_atom_is_end_distance_even_for_empty_order ... ok
[INFO] [stdout] test cx_writer::typed_bonds_source_tests::repeated_bonds_keep_output_positions_including_filtered_rows ... ok
[INFO] [stdout] test cx_writer::typed_bonds_source_tests::ordinary_and_query_carriers_share_one_body_and_propagate_range_error ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_text_consumer_smiles_cxtext_1_cx_writer ... ok
[INFO] [stdout] test cx_writer::typed_bonds_source_tests::counted_binary_symbol_is_preserved_once_without_escaping ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_cfg_1_cx_writer ... ok
[INFO] [stdout] test cx_writer::typed_bonds_source_tests::empty_and_unselected_order_never_emit_bare_prefix ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_cfg_2_cx_writer ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_cfg_255_cx_writer ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_cfg_2147483647_cx_writer ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_cfg_256_cx_writer ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_consumer_smiles_cxwriter_0_cx_writer ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_consumer_smiles_cxwriter_1_cx_writer ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_cfg_3_cx_writer ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_cfg_4294967295_cx_writer ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_cfg_4_cx_writer ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_text_consumer_smiles_cxtext_2147483648_cx_writer ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_text_consumer_smiles_cxtext_2147483646_cx_writer ... ok
[INFO] [stdout] test cx_writer::uint_cx_proposed_tests::proposed_uint_cx_unsigned_and_string_full_width ... ok
[INFO] [stdout] test cx_writer::zero_bonds_owner_source_tests::other_modeled_bond_types_are_not_zero_aliases ... ok
[INFO] [stdout] test cx_writer::zero_bonds_owner_source_tests::repeated_selected_bonds_keep_positions_after_filtered_rows ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_consumer_smiles_cxwriter_2147483646_cx_writer ... ok
[INFO] [stdout] test cx_writer::zero_bonds_owner_source_tests::all_zero_bonds_emit_one_prefix_and_no_trailing_comma ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_text_consumer_smiles_cxtext_4294967295_cx_writer ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_cfg_0_cx_writer ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_consumer_smiles_cxwriter_2147483647_cx_writer ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_cfg_2147483648_cx_writer ... ok
[INFO] [stdout] test cx_writer::zero_small_source_tests::infinities_and_nan_payloads_return_original_input_bits ... ok
[INFO] [stdout] test cx_writer::zero_bonds_owner_source_tests::actual_query_carrier_order_wins_without_reading_or_dropping_predicate ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_text_consumer_smiles_cxtext_0_cx_writer ... ok
[INFO] [stdout] test finalize_stereo::smiles_stereo_ring_routes_tests::smiles_stereo_ring_routes_sixteen_call_product ... ok
[INFO] [stdout] test finalize_stereo::source_conformer_flag_regressions::missing_mixed_order_is_a_typed_error_without_inference ... ok
[INFO] [stdout] test fragment::recovery_chem27::first_neighbor_and_independent_atom_bond_masks_match_source_predicate ... ok
[INFO] [stdout] test cx_writer::zero_small_source_tests::ordinary_and_max_finite_values_keep_original_bits ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_consumer_smiles_cxwriter_2147483648_cx_writer ... ok
[INFO] [stdout] test cx_writer::zero_small_source_tests::threshold_is_strict_on_both_sides_and_signs ... ok
[INFO] [stdout] test cx_writer::zero_bonds_owner_source_tests::empty_and_unselected_bonds_have_no_prefix ... ok
[INFO] [stdout] test cx_writer::zero_bonds_owner_source_tests::invalid_source_bond_is_error_before_type_filter ... ok
[INFO] [stdout] test cx_writer::zero_small_source_tests::signed_zeros_and_subnormals_return_positive_zero ... ok
[INFO] [stdout] test finalize_stereo::smiles_stereo_ring_errors_tests::smiles_stereo_ring_errors_eight_call_product ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_unsigned_consumer_smiles_cxwriter_4294967295_cx_writer ... ok
[INFO] [stdout] test fragment::recovery_chem27::larger_symbol_vectors_borrow_topology_prefix_and_disconnected_masks_once ... ok
[INFO] [stdout] test finalize_stereo::smiles_stereo_ring_matrix_tests::candidate_finalizer_accepts_sparse_rdl_membership_after_selective_reset ... ok
[INFO] [stdout] test finalize_stereo::source_conformer_flag_regressions::false_flag_xyz_retains_z_bits_and_is_borrowed_in_source_order ... ok
[INFO] [stdout] test finalize_stereo::source_conformer_flag_regressions::mixed_storage_occurrence_order_selects_the_actual_first_false_flag ... ok
[INFO] [stdout] test fragment::recovery_chem27::preparation_obeys_isomeric_gate_before_single_full_mask_ranking ... ok
[INFO] [stdout] test fragment::tests::fragment_preflight_accepts_exact_and_oversized_symbol_tables ... ok
[INFO] [stdout] test fragment::tests::fragment_ranking_custom_symbols_use_original_masks_and_prepared_state ... ok
[INFO] [stdout] test fragment::recovery_chem27::zero_one_two_replacements_flip_each_actual_source_enum ... ok
[INFO] [stdout] test fragment::tests::fragment_preflight_rejects_empty_selection_before_other_errors ... ok
[INFO] [stdout] test fragment::tests::fragment_ranking_chirality_policy_matches_pinned_opposite_centers ... ok
[INFO] [stdout] test fragment::tests::fragment_selection_masks_report_typed_index_errors_in_source_order ... ok
[INFO] [stdout] test fragment::tests::fragment_stereo_preparation_keeps_initialized_empty_distinct_from_absent ... ok
[INFO] [stdout] test fragment::tests::fragment_stereo_preparation_marker_presence_copies_selected_cip_without_assignment ... ok
[INFO] [stdout] test fragment::tests::fragment_stereo_preparation_nonisomeric_borrows_or_recalculates_valence ... ok
[INFO] [stdout] test fragment::recovery_chem27::original_work_snapshot_uses_live_pair_slots_and_later_failure_keeps_prefix ... ok
[INFO] [stdout] test fragment::tests::fragment_ring_transport_requires_every_ring_atom_and_bond ... ok
[INFO] [stdout] test fragment::tests::fragment_stereo_preparation_retains_rows_before_legacy_and_recomputes_at_dispatch ... ok
[INFO] [stdout] test fragment::tests::fragment_valence_preparation_borrows_valid_rows_unchanged ... ok
[INFO] [stdout] test fragment::tests::fragment_ranking_noncanonical_skips_canonical_symbol_checks ... ok
[INFO] [stdout] test fragment::tests::fragment_ranking_writer_flags_control_isotope_and_map_policy ... ok
[INFO] [stdout] test recovery_chem26::six_reductions_keep_only_reserved_ring_properties_and_map_every_slot ... ok
[INFO] [stdout] test source_full_parser_composition_tests::source_aromatic_count_keeps_integral_type_on_both_sanitize_dispatches ... ok
[INFO] [stdout] test fragment::tests::fragment_ring_transport_preserves_original_ids_and_source_order ... ok
[INFO] [stdout] test source_full_parser_composition_tests::source_default_hydrogen_parameters_keep_isotopic_atoms ... ok
[INFO] [stdout] test fragment::recovery_chem27::source_gates_preserve_unselected_nondouble_none_and_nonpair_cardinality ... ok
[INFO] [stdout] test source_full_parser_composition_tests::source_remove_hydrogens_remaps_cx_coordinates_before_stereo_finalization ... ok
[INFO] [stdout] test source_full_parser_composition_tests::source_flag_matrix_removes_hydrogens_and_finishes_stereo_at_the_actual_parser_boundary ... ok
[INFO] [stdout] test source_full_parser_composition_tests::source_sanitize_failures_propagate_from_the_reached_canonical_owner ... ok
[INFO] [stdout] test fragment::tests::fragment_selection_masks_distinguish_explicit_and_induced_ring_bonds ... ok
[INFO] [stdout] test source_parser_3d_tests::any_false_is3d_conformer_suppresses_3d_stage_in_both_source_orders ... ok
[INFO] [stdout] test source_parser_3d_tests::true_3d_clears_done_by_presence_and_replaces_existing_tag_without_new_nonexplicit_marker ... ok
[INFO] [stdout] test source_parser_3d_tests::true_3d_updates_all_cache_rows_then_emits_native_tetrahedral_int_property ... ok
[INFO] [stdout] test source_parser_atrop_tests::source_atrop_uses_first_false_is3d_row_before_any_true_row_in_both_orders ... ok
[INFO] [stdout] test source_parser_conformer_tests::parser_preserves_source_missing_numeric_id_error_and_empty_case ... ok
[INFO] [stdout] test source_parser_atrop_tests::no_conformer_native_wedges_trigger_global_cache_conjugation_hybridization_and_atrop_tag ... ok
[INFO] [stdout] test source_parser_atrop_tests::native_degree_failure_keeps_only_endpoint_cache_effects_and_skips_hybridization ... ok
[INFO] [stdout] test source_parser_conformer_tests::parser_uses_numeric_source_ids_and_explicit_is3d_not_default_front_or_geometry ... ok
[INFO] [stdout] test source_parser_atrop_tests::native_normalization_failure_propagates_the_original_core_error_type ... ok
[INFO] [stdout] test source_parser_conformer_tests::parser_wedge_uses_first_2d_flag_even_after_a_3d_conformer ... ok
[INFO] [stdout] test tests::bracket_aromatic_tellurium_preserves_source_atom_state ... ok
[INFO] [stdout] test tests::bracket_parser_preserves_non_tetrahedral_chiral_classes ... ok
[INFO] [stdout] test cx_writer::uint_complete_source_condition_cells::uint_cell_text_consumer_smiles_cxtext_2147483647_cx_writer ... ok
[INFO] [stdout] test finalize_stereo::smiles_stereo_ring_matrix_tests::smiles_stereo_ring_matrix_one_hundred_forty_four_calls ... ok
[INFO] [stdout] test fragment::tests::fragment_preflight_checks_atom_symbols_before_bond_symbols ... ok
[INFO] [stdout] test tests::bracket_parser_rejects_source_invalid_charge_and_chiral_forms ... ok
[INFO] [stdout] test fragment::tests::fragment_preflight_checks_root_membership_before_symbols ... ok
[INFO] [stdout] test fragment::tests::fragment_preflight_checks_root_range_before_membership_and_symbols ... ok
[INFO] [stdout] test tests::bracket_parser_preserves_rdkit_atom_fields_and_repeated_charges ... ok
[INFO] [stdout] test fragment::tests::fragment_selection_masks_apply_root_guard_only_without_explicit_bonds ... ok
[INFO] [stdout] test fragment::tests::fragment_valence_preparation_honors_no_implicit_and_rejects_bad_lengths ... ok
[INFO] [stdout] test tests::cx_lowering_cleans_parser_only_bond_and_sgroup_indices ... ok
[INFO] [stdout] test tests::empty_ring_closure_pass_preserves_existing_bonds_and_placeholders ... ok
[INFO] [stdout] test fragment::tests::fragment_valence_preparation_recalculates_every_row_for_invalid_cache ... ok
[INFO] [stdout] test fragment::tests::fragment_valence_preparation_runs_for_nonisomeric_absent_cache ... ok
[INFO] [stdout] test tests::implicit_bonds_follow_rdkit_aromatic_endpoint_rules ... ok
[INFO] [stdout] test recovery_chem26::all_cx_bond_families_resolve_ordinary_and_ring_parse_slots ... ok
[INFO] [stdout] test recovery_chem26::outer_raw_bond_guard_stays_before_fallback_and_endpoint_checks ... ok
[INFO] [stdout] test tests::lowers_cx_enhanced_wedge_and_double_bond_stereo_like_rdkit ... ok
[INFO] [stdout] test tests::parser_converts_nontetrahedral_permutations_to_rdkit_storage_order ... ok
[INFO] [stdout] test tests::parses_and_writes_detached_ethanol ... ok
[INFO] [stdout] test tests::parse_name_false_preserves_rdkit_strict_cx_errors ... ok
[INFO] [stdout] test tests::parses_bracket_attributes_and_cx_coordinates ... ok
[INFO] [stdout] test tests::parser_adjusts_tetrahedral_tags_to_rdkit_storage_order ... ok
[INFO] [stdout] test tests::query_only_cx_records_are_atomic_strict_errors_and_nonstrict_recovery ... ok
[INFO] [stdout] test tests::lowers_cx_linknodes_sgroups_and_variable_attachments_like_rdkit ... ok
[INFO] [stdout] test tests::ring_closures_reject_self_and_existing_bond_pairs ... ok
[INFO] [stdout] test tests::ring_closures_support_extended_labels_and_source_ordering ... ok
[INFO] [stdout] test uint_complete_source_condition_cells::uint_cell_counter_2147483648_lib ... ok
[INFO] [stdout] test uint_complete_source_condition_cells::uint_cell_counter_0_lib ... ok
[INFO] [stdout] test uint_complete_source_condition_cells::uint_cell_counter_1_lib ... ok
[INFO] [stdout] test tests::bond_and_separator_tokens_require_the_source_grammar_operands ... ok
[INFO] [stdout] test uint_complete_source_condition_cells::uint_cell_counter_2147483646_lib ... ok
[INFO] [stdout] test tests::lowers_cx_coordinate_hydrogen_zero_bonds_and_radicals_like_rdkit ... ok
[INFO] [stdout] test writer::computed_clear_error_tests::singleton_subset_writer_retains_computed_list_error_and_input ... ok
[INFO] [stdout] test tests::tilde_query_identity_survives_chain_branch_ring_selection_and_serialization ... ok
[INFO] [stdout] test uint_complete_source_condition_cells::uint_cell_counter_4294967295_lib ... ok
[INFO] [stdout] test writer::enhanced_stereo_canonical_tests::enhanced_stereo_canonical_already_ccw_and_empty_groups_write_only_atom_marker ... ok
[INFO] [stdout] test writer::enhanced_stereo_canonical_tests::enhanced_stereo_canonical_atom_groups_sort_invert_and_write_source_indices ... ok
[INFO] [stdout] test writer::enhanced_stereo_canonical_tests::enhanced_stereo_canonical_fragment_entry_preserves_input_record ... ok
[INFO] [stdout] test writer::enhanced_stereo_canonical_tests::enhanced_stereo_canonical_no_groups_and_absolute_group_are_unchanged ... ok
[INFO] [stdout] test writer::enhanced_stereo_canonical_tests::enhanced_stereo_canonical_atom_reference_precedes_bond_reference ... ok
[INFO] [stdout] test writer::recovery_chem09::rdkit_2026_03_6_chem09_first_position_one_is_live_and_each_missing_controller_cleans_pair ... ok
[INFO] [stdout] test tests::dative_and_quadruple_ring_closures_preserve_source_orientation ... ok
[INFO] [stdout] test writer::recovery_chem09::rdkit_2026_03_6_chem09_initial_invalid_tags_clear_all_pairs_and_outer_slashes ... ok
[INFO] [stdout] test writer::recovery_chem09::rdkit_2026_03_6_chem09_live_invalid_bfs_cleanup_marks_seen_without_propagation ... ok
[INFO] [stdout] test writer::recovery_chem09::writer_cost_round2_borrowed_direction_neighbors_keep_enumeration_and_deduplication ... ok
[INFO] [stdout] test writer::recovery_chem09::rdkit_2026_03_6_chem09_source_stack_first_controller_and_unvisited_ring_relative ... ok
[INFO] [stdout] test writer::recovery_chem09::rdkit_2026_03_6_chem09_omitted_neighbor_is_enqueued_then_skipped_without_seen ... ok
[INFO] [stdout] test writer::computed_clear_error_tests::preserving_fragment_writer_retains_atom_computed_list_error_and_input ... ok
[INFO] [stdout] test writer::dative_ring_cache_tests::converting_dative_bonds_preserves_symm_sssr_membership_on_the_writer_copy ... ok
[INFO] [stdout] test writer::enhanced_stereo_canonical_tests::enhanced_stereo_canonical_atom_rank_ties_remain_source_equivalent ... ok
[INFO] [stdout] test writer::computed_clear_error_tests::preserving_fragment_writer_retains_bond_computed_list_error_and_input ... ok
[INFO] [stdout] test uint_complete_source_condition_cells::uint_cell_counter_2147483647_lib ... ok
[INFO] [stdout] test tests::preprocesses_plain_and_cx_names_like_rdkit ... ok
[INFO] [stdout] test writer::enhanced_stereo_canonical_tests::enhanced_stereo_canonical_nontetrahedral_reference_uses_source_group_state ... ok
[INFO] [stdout] test tests::preprocessing_borrows_input_without_changing_partition_rules ... ok
[INFO] [stdout] test writer::source1110_query_h_tests::composite_own_negation_does_not_propagate_to_h_child ... ok
[INFO] [stdout] test writer::recovery_chem09::rdkit_2026_03_6_chem09_duplicate_dequeue_skips_seen_before_reprocessing ... ok
[INFO] [stdout] test writer::source1110_query_h_tests::unrelated_and_or_branches_are_ignored_and_input_is_immutable ... ok
[INFO] [stdout] test tests::ring_closure_branch_status_and_cx_indices_follow_source_order ... ok
[INFO] [stdout] test writer::source1110_query_h_tests::first_h_child_returns_immediately_even_when_later_child_is_one ... ok
[INFO] [stdout] test writer::source578_organic_membership_tests::source578_native_signed_domain_zero_and_sentinel_boundaries ... ok
[INFO] [stdout] test tests::ring_closures_preserve_first_specification_orientation_and_direction ... ok
[INFO] [stdout] test writer::source582_dfs_tests::source582_child_property_clear_fails_before_branch_bond_and_traversal_append ... ok
[INFO] [stdout] test writer::source582_dfs_tests::source582_ring_capacity_is_source_value_error_without_property_write ... ok
[INFO] [stdout] test writer::source1110_query_h_tests::direct_child_reads_own_negation_and_exact_integer ... ok
[INFO] [stdout] test writer::enhanced_stereo_canonical_tests::enhanced_stereo_canonical_bond_pairs_sort_with_ties_and_invert_full_group ... ok
[INFO] [stdout] test writer::source582_dfs_tests::source582_random_branch_reads_actual_stream_and_skips_ring_and_symbol_inputs ... ok
[INFO] [stdout] test writer::source582_dfs_tests::source582_invalid_ring_property_preserves_native_prefix_and_outputs ... ok
[INFO] [stdout] test writer::recovery_chem27::official_9368_ten_cases_plain_borrowed_context_and_cx_share_prepass ... ok
[INFO] [stdout] test writer::source590_fragment_tests::source590_fragment_preconditions_precede_all_preparation_effects ... ok
[INFO] [stdout] test writer::source590_fragment_tests::source590_missing_stereo_done_commits_computed_marker_and_actual_sssr_cache ... ok
[INFO] [stdout] test writer::enhanced_stereo_canonical_tests::enhanced_stereo_canonical_non_ccw_non_atrop_bond_reference_uses_cw_fallback ... ok
[INFO] [stdout] test writer::source590_fragment_tests::source590_nonisomeric_skips_broken_chirality_and_permutation_property_getters ... ok
[INFO] [stdout] test writer::source590_fragment_tests::source590_ring_bad_any_cast_follows_actual_tag_change ... ok
[INFO] [stdout] test writer::source1110_query_h_tests::nested_and_false_result_continues_to_later_siblings ... ok
[INFO] [stdout] test writer::source590_fragment_tests::source590_ring_neighbor_prefix_survives_later_invalid_relation ... ok
[INFO] [stdout] test writer::source590_cycle_tests::source590_dfs_preconditions_precede_color_and_property_mutation ... ok
[INFO] [stdout] test writer::source1110_query_h_tests::bare_h_leaf_and_or_are_not_the_source_and_description ... ok
[INFO] [stdout] test writer::source590_cycle_tests::source590_random_cycle_pass_draws_for_black_neighbors_after_mask_and_incoming_filters ... ok
[INFO] [stdout] test writer::source594_mask_tests::source594_mask_selects_bond_endpoints_including_unvisited_black_atoms ... ok
[INFO] [stdout] test writer::source590_fragment_tests::candidate_raw_canon_lends_none_two_d_wedges_and_original_three_d_view ... ok
[INFO] [stdout] test writer::source590_fragment_tests::candidate_rdl_preparation_preserves_legacy_dictionary_and_reaches_startpoint_write ... ok
[INFO] [stdout] test writer::source590_fragment_tests::source590_stereo_done_false_is_presence_guard_and_traversal_changes_actual_child ... ok
[INFO] [stdout] test writer::source590_fragment_tests::source590_non_tetrahedral_getter_propagates_raw_numeric_errors_and_negative_zero_result ... ok
[INFO] [stdout] test writer::source582_dfs_tests::source582_ring_digits_closed_at_atom_reuse_only_after_all_closures ... ok
[INFO] [stdout] test writer::source594_mask_tests::source594_mask_bounds_are_reached_before_main_preconditions_or_state_changes ... ok
[INFO] [stdout] test writer::source590_fragment_tests::source590_non_tetrahedral_native_swap_table_writes_raw_int_and_emission_reads_it ... ok
[INFO] [stdout] test writer::source582_dfs_tests::source582_unsigned_rank_converts_to_signed_native_tuple_and_branches ... ok
[INFO] [stdout] test writer::source594_mask_tests::source594_absent_mask_includes_isolated_atoms_but_explicit_empty_selection_does_not ... ok
[INFO] [stdout] test writer::source590_cycle_tests::source590_cycle_discovery_preserves_caller_colors_and_builds_reciprocal_closures ... ok
[INFO] [stdout] test writer::source590_fragment_tests::source590_chiral_inversion_flag_controls_first_explicit_hydrogen_case ... ok
[INFO] [stdout] test writer::tests::random_root_uses_source_modulo_for_one_component_and_advances_once ... ok
[INFO] [stdout] test writer::tests::canonical_writer_matches_rdkit_for_non_stereo_components_and_cycles ... ok
[INFO] [stdout] test writer::tests::canonical_nonisomeric_stereo_fallback_is_deferred_until_after_ranking ... ok
[INFO] [stdout] test writer::tests::canonical_writer_matches_rdkit_double_bond_directions ... ok
[INFO] [stdout] test writer::tests::random_cycle_uses_each_adjacency_draw_and_records_seed42_closure ... ok
[INFO] [stdout] test writer::tests::source_order_writer_places_all_but_last_child_in_branches ... ok
[INFO] [stdout] test writer::tests::writer_canonicalizes_ring_relative_stereo_like_rdkit ... ok
[INFO] [stdout] test writer::tests::kekulize_failure_reports_remaining_worker_candidates ... ok
[INFO] [stdout] test writer::tests::s33_standard_component_order_matches_all_pinned_text_and_map_rows ... ok
[INFO] [stdout] test writer::tests::writer_component_storage_keeps_source_order_and_pinned_output ... ok
[INFO] [stdout] test writer::source590_fragment_tests::source590_stereo_group_inverts_unvisited_members_and_checks_source_size_t_tag ... ok
[INFO] [stdout] test writer::tests::random_cycle_rank_reorders_adjacency_and_records_seed247_closure ... ok
[INFO] [stdout] test writer::tests::detached_legacy_cip_ranks_match_rdkit_compute_atom_cip_ranks ... ok
[INFO] [stdout] test writer::tests::random_cycle_skips_masked_edges_without_draws ... ok
[INFO] [stdout] test writer::tests::random_root_draws_once_per_unrooted_component_in_source_order ... ok
[INFO] [stdout] test writer::tests::writer_kekulized_valence_rejects_missing_or_invalid_cache_without_fallback ... ok
[INFO] [stdout] test writer::tests::random_root_explicit_component_suppresses_only_its_draw ... ok
[INFO] [stdout] test writer::tests::ring_label_format_matches_smiles_writer_extensions ... ok
[INFO] [stdout] test writer::tests::writer_kekule_retains_assigned_fragment_ring_stereo ... ok
[INFO] [stdout] test writer::tests::writer_emits_bracket_fields_without_loss ... ok
[INFO] [stdout] test writer::tests::writer_matches_rdkit_nontetrahedral_permutation_reordering ... ok
[INFO] [stdout] test writer::tests::writer_matches_source_order_for_fused_bridged_and_spiro_cycles ... ok
[INFO] [stdout] test writer::tests::writer_subset_and_clone_prune_preserve_source_property_and_group_rules ... ok
[INFO] [stdout] test writer::tests::writer_matches_rdkit_tetrahedral_traversal_inversions ... ok
[INFO] [stdout] test writer::tests::writer_cost_round2_fragment_components_keep_original_orders_and_empty_groups ... ok
[INFO] [stdout] test writer::tests::writer_kekulized_fragment_retains_existing_explicit_cache_and_recalculates_implicit ... ok
[INFO] [stdout] test writer::tests::writer_kekulized_valence_maps_both_complete_cache_rows_without_recalculation ... ok
[INFO] [stdout] test writer::tests::writer_rejects_malformed_ring_relative_stereo_state ... ok
[INFO] [stdout] test writer::tests::writer_serializes_aliphatic_and_aromatic_cycles ... ok
[INFO] [stdout] test writer::tests::writer_stereo_merge_remaps_signed_ring_relative_ids_and_only_computed_props ... ok
[INFO] [stdout] test writer::uint_complete_source_condition_cells::uint_cell_strict_bool_vector_writer ... ok
[INFO] [stdout] test writer::tests::writer_singleton_subset_clears_computed_props_and_keeps_partial_group_membership ... ok
[INFO] [stdout] test writer::tests::writer_kekule_disconnected_ring_stereo_matches_source ... ok
[INFO] [stdout] test writer::tests::writer_preserves_dative_ring_orientation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 314 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/migration_smi_canonical.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/c24804540bef3716/out/migration_smi_canonical-c24804540bef3716)
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test canonical_rank::tests::ranking_fragment_keeps_forward_attachment_and_source_bond_row_order ... ok
[INFO] [stdout] test canonical_rank::tests::component_stereo_groups_keep_selected_members_and_source_order ... ok
[INFO] [stdout] test canonical_rank::tests::ranking_fragment_fails_when_a_carrier_loses_its_target ... ok
[INFO] [stdout] test canonical_rank::tests::prepared_component_ranks_are_local_and_keep_input_assignments ... ok
[INFO] [stdout] test canonical_rank::tests::ranking_fragment_remaps_surviving_template_attachment_targets ... ok
[INFO] [stdout] test canonical_writer_ignore_atom_maps_changes_traversal_and_preserves_labels ... ok
[INFO] [stdout] test canonical_rank::tests::component_selection_rejects_invalid_rows_and_marks_nonmembers ... ok
[INFO] [stdout] test canonical_cycle_discovery_resolves_symmetric_ranks_and_preserves_closures ... ok
[INFO] [stdout] test canonical_writer_reports_source_bad_any_cast_for_malformed_ring_stereo_property ... ok
[INFO] [stdout] test canonical_writer_keeps_pinned_disconnected_component_outputs ... ok
[INFO] [stdout] test canonical_rank::tests::detached_rank_mol_port_matches_rdkit_canonical_rank_atoms ... ok
[INFO] [stdout] test canonical_writer_maps_ring_relative_references_across_component_order ... ok
[INFO] [stdout] test canonical_writer_decodes_signed_ring_relative_stereo_ids_in_source_order ... ok
[INFO] [stdout] test canonical_rank_policy_toggles_isotope_chirality_groups_and_atom_maps ... ok
[INFO] [stderr]      Running tests/migration_smi_cx_lower.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/114a410fce0808ac/out/migration_smi_cx_lower-114a410fce0808ac)
[INFO] [stdout] test canonical_stack_orders_branch_children_from_the_rank_map ... ok
[INFO] [stdout] test canonical_writer_preserves_pinned_tetrahedral_ring_stereo_permutations ... ok
[INFO] [stdout] test canonical_writer_gates_tagged_nonpotential_chirality_after_clean_stereo_preparation ... ok
[INFO] [stdout] test canonical_writer_does_not_propagate_from_a_broken_relative_stereo_center ... ok
[INFO] [stdout] test canonical_writer_projects_isomeric_rank_flags_to_pinned_outputs ... ok
[INFO] [stdout] test canonical_rank::tests::ranking_fragment_selects_atom_and_bond_stereo_groups_in_source_order ... ok
[INFO] [stdout] test component_atom_selection_rejects_duplicate_and_out_of_range_indices ... ok
[INFO] [stdout] test canonical_rank::tests::stereo_write_id_fragment_preserves_explicit_state_independently_of_read_ids ... ok
[INFO] [stdout] test canonical_writer_preserves_valid_tetrahedral_and_nontetrahedral_guard_paths ... ok
[INFO] [stdout] test explicit_model_audit_rejects_duplicate_and_out_of_range_row_ids ... ok
[INFO] [stdout] test canonical_writer_orders_s33_components_with_the_pinned_standard_profile_and_preserves_input ... ok
[INFO] [stdout] test explicit_model_audit_rejects_stale_adjacency_before_fragment_mapping ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] BOND NOT FOUND! 0 involving atom 2
[INFO] [stdout] running 14 tests
[INFO] [stdout] test double_bond_stereo_uses_source_control_order_and_terminal_noop ... ok
[INFO] [stdout] test coordinates_lower_into_dimension_specific_typed_conformers ... ok
[INFO] [stdout] test coordinate_hydrogen_and_zero_bonds_validate_ranges_and_orientation ... ok
[INFO] [stdout] test radicals_link_nodes_and_variable_attachments_preserve_order_and_errors ... ok
[INFO] [stdout] test wedges_cover_all_directions_duplicate_rejection_and_cleanup ... ok
[INFO] [stderr] BOND NOT FOUND! 0 involving atom 2
[INFO] [stdout] test coordinates_preserve_explicit_source_infinity_and_nan_tokens ... ok
[INFO] [stderr] BOND NOT FOUND! 0 involving atom 2
[INFO] [stdout] test enhanced_stereo_merges_repeated_groups_and_filters_invalid_atoms ... ok
[INFO] [stdout] test labels_values_and_properties_preserve_source_order_and_special_label_policy ... ok
[INFO] [stdout] test polymer_crossings_are_typed_and_invalid_explicit_crossings_drop_the_group ... ok
[INFO] [stdout] test data_polymer_and_hierarchy_records_install_typed_sgroups ... ok
[INFO] [stdout] test query_only_and_late_lowering_failures_are_atomic_in_both_parser_modes ... ok
[INFO] [stdout] test unknown_records_are_ignored_and_parser_only_indices_are_removed ... ok
[INFO] [stdout] test cx_polymer_crossings_follow_batch_bond_remap_and_fail_structurally_if_stale ... ok
[INFO] [stdout] test cx_polymer_crossings_lower_and_write_as_ordered_typed_references ... ok
[INFO] [stderr]      Running tests/migration_smi_cx_write.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/c05d651404ac250c/out/migration_smi_cx_write-c05d651404ac250c)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 61 tests
[INFO] [stdout] test cx_writer_atom_properties_survive_clone_and_topology_remap ... ok
[INFO] [stdout] test cx_writer_atom_labels_follow_pseudo_attachment_and_fallback_order ... ok
[INFO] [stdout] test cpp_identifier_spellings_are_ordinary_property_keys_without_aliases ... ok
[INFO] [stdout] test cx_writer_atom_properties_preserve_source_insertion_order ... ok
[INFO] [stdout] test cx_writer_atom_properties_clear_then_reinsert_appends_the_key ... ok
[INFO] [stdout] test cx_writer_atom_properties_overwrite_without_moving_the_key ... ok
[INFO] [stdout] test cx_writer_atom_values_preserve_mapped_holes_and_literal_text ... ok
[INFO] [stdout] test cx_writer_atom_values_emit_present_empty_values_and_all_empty_slots ... ok
[INFO] [stdout] test cx_writer_atom_values_preserve_leading_interior_and_trailing_holes ... ok
[INFO] [stdout] test cx_writer_atom_property_quotes_non_ascii_bytes_with_source_char_signedness ... ok
[INFO] [stdout] test cx_labels_and_values_use_dict_string_conversion_for_scalar_tags ... ok
[INFO] [stdout] test cx_writer_bad_bond_config_propagates_source_typed_error_immutably ... ok
[INFO] [stdout] test cx_writer_atom_property_preserves_empty_values ... ok
[INFO] [stdout] test cx_writer_atom_label_holes_trailing_slots_and_text_follow_source ... ok
[INFO] [stdout] test cx_writer_clean_stereo_guard_and_group_cleanup_match_legacy_oracle ... ok
[INFO] [stdout] test cx_writer_bond_config_serializes_prepared_wedges_wiggly_indices_and_field_gate ... ok
[INFO] [stdout] test cx_writer_clean_stereo_matches_pinned_raw_large_ring_cis_output ... ok
[INFO] [stdout] test cx_writer_atom_properties_project_typed_values_after_source_filters ... ok
[INFO] [stdout] test cx_writer_coordinate_numbers_follow_percent_g_precision_rounding_and_sign_rules ... ok
[INFO] [stdout] test cx_writer_atom_properties_filter_interleaved_keys_without_reordering ... ok
[INFO] [stdout] test cx_writer_data_sgroups_emit_all_typed_values_and_empty_members ... ok
[INFO] [stdout] test cx_writer_default_clear_preserves_wiggly_cfg_after_pre_kekulization ... ok
[INFO] [stderr] Cannot convert values in LINKNODE '1 x 2 2 1 2 3' to unsigned ints
[INFO] [stdout] test cx_writer_data_sgroups_quote_decoded_fields_with_source_allowed_characters ... ok
[INFO] [stderr] not enough values in LINKNODE '1 3'
[INFO] [stdout] test cx_writer_atom_properties_exclude_skipped_private_and_computed_properties ... ok
[INFO] [stderr] not enough values in LINKNODE '1 3 2 2 1'
[INFO] [stdout] test cx_writer_atom_label_quotes_semicolon_before_separator_only_filter ... ok
[INFO] [stderr] bad counts in LINKNODE '0 3 2 2 1 2 3'
[INFO] [stdout] test cx_writer_coordinate_and_hydrogen_bonds_use_directed_begin_and_exact_type ... ok
[INFO] [stderr] bad counts in LINKNODE '3 1 2 2 1 2 3'
[INFO] [stdout] test cx_writer_data_sgroups_preserve_typed_members_fields_and_group_order ... ok
[INFO] [stderr] only link nodes with 2 bonds are currently supported
[INFO] [stdout] test cx_writer_atom_properties_use_exact_pseudoatom_exclusions ... ok
[INFO] [stderr] bonds don't start at the same atom for LINKNODE '1 4 2 2 1 3 4'
[INFO] [stdout] test cx_writer_atom_property_retains_periods_in_source_allowed_characters ... ok
[INFO] [stderr] bond not found between atoms in LINKNODE '1 4 2 2 4 2 3'
[INFO] [stdout] test cx_writer_default_clear_removes_nonwiggly_bond_config_and_direction ... ok
[INFO] [stderr] bond not found between atoms in LINKNODE '1 4 2 2 4 2 9'
[INFO] [stdout] test cx_writer_emits_selected_coordinate_dimension_and_rejects_invalid_rows ... ok
[INFO] [stdout] test cx_writer_kekulizes_before_wedge_work_on_a_private_copy ... ok
[INFO] [stdout] test cx_writer_link_nodes_apply_source_validation_and_degree_shapes ... ok
[INFO] [stdout] test cx_writer_link_nodes_propagate_source_range_failures ... ok
[INFO] [stdout] test cx_writer_link_nodes_preserve_direct_canonical_atom_order_mapping ... ok
[INFO] [stdout] test cx_writer_each_source_field_mask_dispatches_its_block ... ok
[INFO] [stdout] test cx_writer_polymer_crossings_apply_source_length_thresholds ... ok
[INFO] [stdout] test cx_writer_polymer_sgroups_map_all_supported_types_in_source_order ... ok
[INFO] [stdout] test cx_writer_multiple_component_coordinates_follow_base_output_maps ... ok
[INFO] [stdout] test cx_writer_nonisomeric_mask_removes_stereo_extensions_but_keeps_base_write ... ok
[INFO] [stdout] test cx_writer_nonisomeric_mask_removes_only_stereo_field_bits ... ok
[INFO] [stdout] test cx_writer_emits_source_field_order_and_comma_pipe_separators ... ok
[INFO] [stdout] test cx_writer_kekulize_error_preserves_typed_core_source_before_stereo_work ... ok
[INFO] [stdout] test cx_writer_nonisomeric_profile_masks_wiggly_bond_config ... ok
[INFO] [stdout] test cx_writer_polymer_sgroups_preserve_source_field_and_connection_order ... ok
[INFO] [stdout] test cx_writer_returns_empty_before_extensions_for_an_empty_molecule ... ok
[INFO] [stdout] test cx_writer_ring_stereo_concatenates_cis_trans_and_unknown_source_blocks ... ok
[INFO] [stdout] test cx_writer_polymer_crossings_use_direct_bond_order_index_and_pair_order ... ok
[INFO] [stdout] test cx_writer_selection_uses_dimension_scoped_ids_and_rejects_nonunique_or_missing_sets ... ok
[INFO] [stdout] test cx_writer_ring_stereo_filters_nonring_small_ring_and_non_double_bonds ... ok
[INFO] [stdout] test cx_writer_sgroup_hierarchy_maps_selected_parent_children_in_source_order ... ok
[INFO] [stdout] test cx_writer_zero_bonds_use_final_bond_positions_in_source_order ... ok
[INFO] [stdout] test cx_writer_ring_stereo_preserves_boolean_atom_order_subscripts ... ok
[INFO] [stdout] test cx_writer_radicals_group_supported_counts_and_keep_output_atom_order ... ok
[INFO] [stdout] test cx_writer_radicals_preserve_source_default_for_unsupported_counts ... ok
[INFO] [stdout] test cx_writer_stereo_group_ids_keep_type_namespaces_holes_and_tie_order ... ok
[INFO] [stdout] test cx_writer_enhanced_stereo_maps_atom_and_atrop_bond_members_in_group_order ... ok
[INFO] [stdout] test cx_writer_enhanced_stereo_preserves_overlapping_groups_with_atrop_wedge_map ... ok
[INFO] [stdout] test cx_writer_mixed_dimension_selection_is_explicit_for_both_record_orders ... ok
[INFO] [stdout] test cx_writer_zero_small_uses_strict_threshold_for_both_signs ... ok
[INFO] [stderr]      Running tests/migration_smi_fragment.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/4745124349a74cec/out/migration_smi_fragment-4745124349a74cec)
[INFO] [stdout] test cx_writer_radicals_emit_no_block_when_all_electron_counts_are_zero ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 61 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test fragment_writer_reuses_retained_ring_rows_for_nitrogen_and_skips_broken_centers ... ok
[INFO] [stdout] test fragment_cx_filters_fields_and_preserves_source_zero_sgroup_rows ... ok
[INFO] [stdout] test fragment_entry_matches_pinned_canonical_and_isomeric_profiles_with_original_maps ... ok
[INFO] [stdout] test fragment_entry_uses_full_index_custom_symbols_and_s60_map_policy ... ok
[INFO] [stdout] test fragment_entry_matches_pinned_selected_root_and_disconnected_components ... ok
[INFO] [stdout] test fragment_writer_gates_tagged_nonpotential_chirality_by_source_marker_presence ... ok
[INFO] [stdout] test fragment_entry_transfers_s59_cache_ring_and_stereo_preparation_cases ... ok
[INFO] [stdout] test fragment_writer_preserves_valid_tetrahedral_and_nontetrahedral_guard_paths ... ok
[INFO] [stdout] test fragment_entry_matches_pinned_enhanced_atom_bond_and_mixed_groups ... ok
[INFO] [stdout] test fragment_entry_kekulizes_full_and_partial_rings_at_source_masks ... ok
[INFO] [stderr]      Running tests/migration_smi_parser.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/230676f53b5f5af2/out/migration_smi_parser-230676f53b5f5af2)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test cleanup_debug_and_post_parse_chemistry_flags_keep_their_layer_boundaries ... ok
[INFO] [stdout] test branches_rings_and_stereo_finish_in_source_order ... ok
[INFO] [stdout] test stereo_finalization_propagates_typed_coordinate_failure ... ok
[INFO] [stdout] test nonconvergent_and_empty_replacement_keys_fail_structurally ... ok
[INFO] [stdout] test defaults_match_the_pinned_v2_constructor ... ok
[INFO] [stdout] test valence_transport_stereo_completion_marker_follows_source_flag_product ... ok
[INFO] [stdout] test zero_isotope_is_canonical_in_detached_parser_rows ... ok
[INFO] [stdout] test stereo_finalization_prefers_two_d_coordinates_and_keeps_stored_state ... ok
[INFO] [stdout] test empty_and_whitespace_graphs_are_valid_detached_records ... ok
[INFO] [stdout] test valence_transport_stereo_reuses_buffers_and_rejects_malformed_rows ... ok
[INFO] [stdout] test errors_preserve_offsets_ring_context_and_final_model_validation ... ok
[INFO] [stdout] test cx_and_name_policies_are_atomic_and_explicit ... ok
[INFO] [stdout] test ordered_replacements_repeat_until_a_full_pass_is_stable ... 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] [stderr]      Running tests/migration_smi_random.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/20eca8e06b7dd228/out/migration_smi_random-20eca8e06b7dd228)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test random_writer_and_vector_match_pinned_sequences_and_shared_stream_semantics ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/migration_smi_rank.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/f2dc95f0d87bc92f/out/migration_smi_rank-f2dc95f0d87bc92f)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test canonical_rank::tests::prepared_component_ranks_are_local_and_keep_input_assignments ... ok
[INFO] [stdout] test canonical_rank::tests::component_stereo_groups_keep_selected_members_and_source_order ... ok
[INFO] [stdout] test canonical_rank::tests::component_selection_rejects_invalid_rows_and_marks_nonmembers ... ok
[INFO] [stdout] test canonical_rank::tests::ranking_fragment_selects_atom_and_bond_stereo_groups_in_source_order ... ok
[INFO] [stdout] test canonical_rank::tests::detached_rank_mol_port_matches_rdkit_canonical_rank_atoms ... ok
[INFO] [stdout] test canonical_rank::tests::ranking_fragment_keeps_forward_attachment_and_source_bond_row_order ... ok
[INFO] [stdout] test canonical_rank::tests::ranking_fragment_remaps_surviving_template_attachment_targets ... ok
[INFO] [stdout] test canonical_rank::tests::ranking_fragment_fails_when_a_carrier_loses_its_target ... ok
[INFO] [stdout] test canonical_rank::tests::stereo_write_id_fragment_preserves_explicit_state_independently_of_read_ids ... ok
[INFO] [stdout] test source_rank_vectors_cover_chains_branches_rings_and_labels ... ok
[INFO] [stdout] test mask_errors_are_typed_and_empty_topology_is_stable ... ok
[INFO] [stdout] test component_projection_is_deterministic_and_rejects_bad_indices ... ok
[INFO] [stdout] test every_source_option_axis_reaches_the_unique_core_engine ... ok
[INFO] [stdout] test canonical_writer_uses_component_ranks_for_real_disconnected_inputs ... ok
[INFO] [stderr]      Running tests/migration_smi_source_cleanup_number.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/419bf035b4eea165/out/migration_smi_source_cleanup_number-419bf035b4eea165)
[INFO] [stdout] test tie_isotope_and_atom_map_options_remain_independent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test pinned_smiles_cleanup_preserves_original_sgroup_cx_index ... ok
[INFO] [stderr]      Running tests/migration_smi_stereo.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/6adcd3d79d3a55bc/out/migration_smi_stereo-6adcd3d79d3a55bc)
[INFO] [stdout] test pinned_atom_map_number_rejects_conservative_signed_overflow_boundary ... 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] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test bond_order_projection_covers_the_complete_vocabulary ... ok
[INFO] [stdout] test implicit_nontetrahedral_neighbors_follow_source_positions ... ok
[INFO] [stdout] test swap_counting_and_tetrahedral_helpers_cover_source_boundaries ... ok
[INFO] [stdout] test parser_and_writer_preserve_tetrahedral_storage_and_traversal_order ... ok
[INFO] [stdout] test parser_and_writer_roundtrip_sp_tb_oh_typed_permutations ... ok
[INFO] [stdout] test writer_preserves_existing_ring_basis_for_bridgehead_nitrogen_legality ... ok
[INFO] [stdout] test parser_rejects_invalid_source_permutations_without_partial_output ... ok
[INFO] [stderr]      Running tests/migration_smi_stereo_flag_event.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/65f9a4b4de076f42/out/migration_smi_stereo_flag_event-65f9a4b4de076f42)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test source_computed_list_cast_failure_is_propagated_by_actual_smiles_finalizer ... ok
[INFO] [stdout] test source_flag_effect_is_cleared_after_successful_direction_processing ... 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/migration_smi_writer.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/d82e5cec0191a184/out/migration_smi_writer-d82e5cec0191a184)
[INFO] [stdout] 
[INFO] [stdout] running 50 tests
[INFO] [stdout] test atom_and_bond_tokens_match_pinned_rdkit ... ok
[INFO] [stdout] test both_false_finalization_clears_unknown_direction_and_records_unknown_stereo ... ok
[INFO] [stdout] test canonical_double_bond_directions_follow_ring_and_isomeric_options ... ok
[INFO] [stdout] test clean_stereo_default_cleans_invalid_tetrahedral_tag ... ok
[INFO] [stdout] test atom_hydrogen_charge_and_isotope_fields_match_pinned_rdkit ... ok
[INFO] [stdout] test atom_bracket_predicate_matches_pinned_rdkit_branches ... ok
[INFO] [stdout] test both_false_smiles_finalization_retains_pending_marker_and_clears_directions ... ok
[INFO] [stdout] test current_stereo_wrapper_candidates_preserve_pinned_large_ring_cx_output ... ok
[INFO] [stdout] test clean_stereo_option_selects_source_cleanup_and_preservation ... ok
[INFO] [stdout] test cx_write_after_sanitize_and_smiles_finalization_uses_finalized_state ... ok
[INFO] [stdout] test aromatic_endpoint_bond_omission_matches_pinned_rdkit ... ok
[INFO] [stdout] test current_stereo_wrapper_candidates_match_pinned_writer_text ... ok
[INFO] [stdout] test bond_token_endpoints_and_canonical_slash_reversal_match_pinned_rdkit ... ok
[INFO] [stdout] test custom_symbols_and_supplemental_labels_are_appended_without_escaping ... ok
[INFO] [stdout] test both_false_finalization_clears_begin_wedge_and_dash_flags ... ok
[INFO] [stdout] test aromatic_custom_symbols_and_bracket_labels_match_pinned_rdkit ... ok
[INFO] [stdout] test dative_ring_closure_keeps_source_traversal_orientation ... ok
[INFO] [stdout] test nonisomeric_canonical_fallback_keeps_pinned_cx_output_maps ... ok
[INFO] [stdout] test multi_fragment_challenge_clone_prune_preserves_ordinary_done_marker ... ok
[INFO] [stdout] test ignored_atom_maps_change_canonical_ranking_but_remain_serialized ... ok
[INFO] [stdout] test multi_fragment_stereo_merge_remaps_signed_ring_ids_after_prefix ... ok
[INFO] [stdout] test nonisomeric_canonical_ranking_ignores_suppressed_double_bond_stereo ... ok
[INFO] [stdout] test nonisomeric_canonical_ranking_ignores_suppressed_isotope_and_is_renumbering_stable ... ok
[INFO] [stdout] test multi_fragment_challenge_clone_clears_computed_done_marker_on_prune ... ok
[INFO] [stdout] test non_tetrahedral_writer_emits_sp_tb_and_oh_permutations ... ok
[INFO] [stdout] test multi_fragment_stereo_merge_leaves_unassigned_challenge_component_untouched ... ok
[INFO] [stdout] test equal_canonical_fragments_sort_by_source_atom_and_bond_order ... ok
[INFO] [stdout] test pending_cx_direction_phase_is_the_first_large_ring_writer_divergence ... ok
[INFO] [stdout] test multi_fragment_subset_maps_noncontiguous_atom_and_bond_rows ... ok
[INFO] [stdout] test rooted_writer_preflight_error_precedes_kekulization_failure ... ok
[INFO] [stdout] test rooted_writer_rejects_out_of_range_atom_but_keeps_empty_molecule_behavior ... ok
[INFO] [stdout] test single_component_stereo_transport_keeps_source_identity_and_properties ... ok
[INFO] [stdout] test raw_pending_cx_writer_matches_the_unfinalized_source_boundary ... ok
[INFO] [stdout] test nonisomeric_canonical_ranking_ignores_suppressed_tetrahedral_stereo ... ok
[INFO] [stdout] test single_fragment_done_marker_observes_ordinary_and_computed_property_presence ... ok
[INFO] [stdout] test pending_cx_stereo_text_is_preserved_when_clean_stereo_is_false ... ok
[INFO] [stdout] test rooted_writer_starts_requested_component_at_atom_without_reordering_other_components ... ok
[INFO] [stdout] test ring_labels_follow_closure_order_and_reuse_the_lowest_display_slot ... ok
[INFO] [stdout] test rooted_writer_matches_source_compact_index_for_interleaved_component_rows ... ok
[INFO] [stdout] test writer_subset_reports_removed_template_attachment_target ... ok
[INFO] [stdout] test tetrahedral_writer_options_preserve_source_order_and_hydrogen_tokens ... ok
[INFO] [stdout] test writer_disconnected_kekulization_error_preserves_fragment_local_source_and_input ... ok
[INFO] [stdout] test writer_kekulization_error_preserves_typed_core_source ... ok
[INFO] [stdout] test traversal_emits_source_order_branches_and_fragment_order ... ok
[INFO] [stdout] test typed_custom_symbol_and_supplemental_label_use_source_string_conversion ... ok
[INFO] [stdout] test ordinary_writer_removes_modeled_stereo_groups_before_canonical_ranking ... ok
[INFO] [stdout] test writer_subset_remaps_forward_ring_stereo_references_after_renumbering ... ok
[INFO] [stdout] test writer_flags_control_isotope_direction_bond_hydrogen_and_kekule_tokens ... ok
[INFO] [stdout] test writer_ring_label_tokens_match_pinned_rdkit_at_9_10_99_100 ... ok
[INFO] [stdout] test writer_kekulized_explicit_hydrogens_preserve_source_np_charge_and_component_state ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 50 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/migration_tau_canonical_keys.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/72beee37a009ed23/out/migration_tau_canonical_keys-72beee37a009ed23)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test source_tautomer_canonical_keys_retain_the_pinned_fragment_order ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/migration_tau_smiles_any.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/3adcea13daf731e4/out/migration_tau_smiles_any-3adcea13daf731e4)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test source_stereo_any_serializes_the_writer_copy_without_changing_the_input ... 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/migration_tau_smiles_prepared_stereo.rs (/opt/rustwide/target/release/build/cosmolkit-smiles/f2b65145afc97def/out/migration_tau_smiles_prepared_stereo-f2b65145afc97def)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test completed_stereo_marker_does_not_reperceive_a_new_double_bond_from_stale_slashes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests cosmolkit_smiles
[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] running `Command { std: "docker" "inspect" "7e5c12f9eb80715a1c51dfbaec2c3a766b3ac16251dab9ee0399e482bd46756f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e5c12f9eb80715a1c51dfbaec2c3a766b3ac16251dab9ee0399e482bd46756f", kill_on_drop: false }`
[INFO] [stdout] 7e5c12f9eb80715a1c51dfbaec2c3a766b3ac16251dab9ee0399e482bd46756f
