[INFO] fetching crate vita-chem 0.2.0...
[INFO] testing vita-chem-0.2.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate vita-chem 0.2.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate vita-chem 0.2.0
[INFO] finished tweaking crates.io crate vita-chem 0.2.0
[INFO] tweaked toml for crates.io crate vita-chem 0.2.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate vita-chem 0.2.0 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 vita-chem 0.2.0 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-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 8e58726d2ce1dd5e666780cdf3c67477d8ef51134616d519d09eb8f7a206ac71
[INFO] running `Command { std: "docker" "start" "8e58726d2ce1dd5e666780cdf3c67477d8ef51134616d519d09eb8f7a206ac71", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8e58726d2ce1dd5e666780cdf3c67477d8ef51134616d519d09eb8f7a206ac71", 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" "8e58726d2ce1dd5e666780cdf3c67477d8ef51134616d519d09eb8f7a206ac71" "/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" "8e58726d2ce1dd5e666780cdf3c67477d8ef51134616d519d09eb8f7a206ac71", 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" "8e58726d2ce1dd5e666780cdf3c67477d8ef51134616d519d09eb8f7a206ac71" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling vita-core v0.4.0
[INFO] [stderr]    Compiling vita-chem v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.90s
[INFO] running `Command { std: "docker" "inspect" "8e58726d2ce1dd5e666780cdf3c67477d8ef51134616d519d09eb8f7a206ac71", 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" "8e58726d2ce1dd5e666780cdf3c67477d8ef51134616d519d09eb8f7a206ac71" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling vita-chem v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 26.99s
[INFO] running `Command { std: "docker" "inspect" "8e58726d2ce1dd5e666780cdf3c67477d8ef51134616d519d09eb8f7a206ac71", 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" "8e58726d2ce1dd5e666780cdf3c67477d8ef51134616d519d09eb8f7a206ac71" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/vita-chem/832a1cb6c4e95625/out/vita_chem-832a1cb6c4e95625)
[INFO] [stdout] 
[INFO] [stdout] running 1002 tests
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::azulene_kekulizes_its_non_alternant_rings ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::benzene_takes_three_alternating_double_bonds ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::biphenyl_kekulizes_each_ring_leaving_the_link ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::already_localized_molecule_resolves_to_empty ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::bound_view_answers_the_bond_order_capability ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::bound_view_forwards_the_skeleton ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::closed_shell_odd_ring_has_no_kekule_structure ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::cyclopentadienyl_anion_leaves_its_carbanion_single ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::every_aromatic_bond_is_localized ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::imidazole_leaves_its_pyrrole_nitrogen_single ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::orders_are_listed_in_ascending_bond_order ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::tropylium_cation_leaves_its_cation_single ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::len_counts_the_resolved_bonds ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::resolution_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::order_is_none_for_a_non_aromatic_bond ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::tropone_leaves_its_carbonyl_carbon_single ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::acyclic_molecule_is_not_aromatic ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::a_ring_radical_excludes_the_ring ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::pyrrole_leaves_its_nitrogen_single ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::naphthalene_takes_five_double_bonds ... ok
[INFO] [stdout] test algorithm::aromaticity::kekulize::tests::pyridine_takes_three_double_bonds ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::azulene_is_aromatic_on_its_perimeter ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::benzene_is_aromatic ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::bound_view_forwards_the_skeleton ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::biphenyl_rings_are_aromatic_but_the_link_is_not ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::bound_view_answers_the_aromaticity_capability ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::four_electron_ring_is_not_aromatic ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::empty_molecule_is_not_aromatic ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::counts_report_the_number_of_aromatic_sites_and_bonds ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::imidazole_is_aromatic_with_both_nitrogen_kinds ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::delocalized_input_is_not_perceived ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::cyclopentadienyl_anion_is_aromatic_through_its_carbanion ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::interrupted_conjugation_is_not_aromatic ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::tropone_is_aromatic_through_its_exocyclic_carbonyl ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::pyridine_is_aromatic ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::pyrrole_is_aromatic_through_its_nitrogen_lone_pair ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::saturated_ring_is_not_aromatic ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::sites_and_bonds_are_listed_in_ascending_order ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::tropylium_cation_is_aromatic_through_its_empty_orbital ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::naphthalene_is_aromatic_across_both_rings ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::a_bond_key_distinguishes_identity ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::non_aromatic_bond_is_not_reported ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::perception_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::asymmetric_sites_lie_in_different_orbits ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::canonicalization_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::unknown_bond_is_not_aromatic ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::distinct_structures_are_not_equal ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::empty_molecule_is_empty ... ok
[INFO] [stdout] test algorithm::aromaticity::perceive::tests::unknown_site_is_not_aromatic ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::a_bond_key_splits_a_symmetric_pair ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::isomorphic_molecules_share_a_canonical_form ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::orbit_of_a_site_is_its_symmetry_class ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::equal_canonicals_hash_equally ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::orbit_of_an_absent_site_is_none ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::a_site_key_distinguishes_identity ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::a_site_key_splits_a_symmetric_pair ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::a_symmetric_ring_is_a_single_orbit ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::orbits_group_the_symmetric_sites ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::order_enumerates_every_site ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::ordering_agrees_with_equality ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::same_is_false_for_an_absent_site ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::symmetric_sites_share_an_orbit ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::a_bare_charge_composition_is_empty ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::a_composition_with_atoms_is_not_empty ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::single_site_has_length_one ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::add_assign_accumulates_in_place ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::adding_compositions_sums_counts_and_charges ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::single_site_ranks_zero ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::addition_is_associative ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::addition_is_commutative ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::an_element_converts_into_a_natural_constituent ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::an_empty_composition_counts_no_atoms ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::an_empty_composition_has_no_constituents ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::an_empty_composition_yields_no_pairs ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::an_isotope_converts_into_a_nuclide_constituent ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::atom_count_totals_all_multiplicities ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::charge_returns_the_net_charge ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::rank_is_the_position_in_the_canonical_order ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::constituent_element_spans_both_precisions ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::constituent_mass_number_is_none_for_the_natural_mixture ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::rank_of_an_absent_site_is_none ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::constituent_mass_number_is_some_for_a_nuclide ... ok
[INFO] [stdout] test algorithm::canonical::canonicalize::tests::single_site_forms_one_orbit ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::constituents_order_by_element_before_precision ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::count_is_zero_for_an_absent_constituent ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::count_keeps_the_mixture_and_its_nuclides_apart ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::count_returns_the_multiplicity_of_a_present_constituent ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::element_count_is_zero_for_an_absent_element ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::element_count_totals_the_mixture_and_its_nuclides ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::empirical_divides_the_charge_with_the_counts ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::empirical_leaves_coprime_counts_unchanged ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::empirical_of_an_empty_composition_is_empty ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::empirical_reduces_a_bare_charge_to_a_single_unit ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::from_counts_sums_repeated_constituents ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::len_counts_distinct_constituents ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::iter_is_ordered_by_constituent ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::nuclides_order_by_ascending_mass_number ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::the_composition_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::the_default_composition_is_empty_and_chargeless ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::the_default_composition_is_the_additive_identity ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::empirical_reduces_counts_to_their_smallest_ratio ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::empirical_reduces_the_most_negative_charge_to_a_single_unit ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::iter_yields_each_constituent_with_its_count ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::the_empirical_of_a_doubled_fragment_recovers_the_fragment ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::an_empty_composition_is_empty ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::from_counts_drops_zero_counts ... ok
[INFO] [stdout] test algorithm::composition::elemental::tests::a_single_site_molecule_counts_one_atom ... ok
[INFO] [stdout] test algorithm::composition::elemental::tests::elemental_counts_every_site_under_its_element ... ok
[INFO] [stdout] test algorithm::composition::isotopic::tests::isotopic_counts_every_site_under_its_nuclide ... ok
[INFO] [stdout] test algorithm::composition::isotopic::tests::isotopic_sums_the_formal_charges ... ok
[INFO] [stdout] test algorithm::composition::isotopic::tests::elemental_and_isotopic_agree_on_totals_and_charge ... ok
[INFO] [stdout] test algorithm::composition::isotopic::tests::a_molecule_without_sites_has_an_empty_isotopic_composition ... ok
[INFO] [stdout] test algorithm::composition::constituent::tests::the_natural_mixture_orders_before_its_nuclides ... ok
[INFO] [stdout] test algorithm::composition::elemental::tests::a_molecule_without_sites_has_an_empty_elemental_composition ... ok
[INFO] [stdout] test algorithm::composition::elemental::tests::elemental_sums_the_formal_charges ... ok
[INFO] [stdout] test algorithm::composition::elemental::tests::the_elemental_composition_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_donor_joins_a_declared_aromatic_ring ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_declared_aromatic_ring_conjugates_with_its_substituent ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_donor_bridges_disjoint_pi_bonds ... ok
[INFO] [stdout] test algorithm::composition::isotopic::tests::the_isotopic_composition_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_kekule_heteroring_counts_its_donated_pair ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_charged_donor_joins_an_adjacent_pi_bond ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_kekule_ring_is_one_system ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_nitrile_lone_pair_points_along_the_axis ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_declared_aromatic_ring_is_a_system_with_indeterminate_electrons ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_frustrated_cumulated_cycle_merges_into_one_system ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_lone_pair_joins_an_adjacent_pi_bond ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_radical_joins_an_adjacent_pi_bond ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_d_block_site_never_participates ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_longer_even_cumulene_conjugates_within_each_plane ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_saturated_site_does_not_bridge ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_triple_bond_conjugates_in_one_plane ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_vacant_orbital_joins_an_adjacent_pi_bond ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::an_empty_molecule_has_no_systems ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_radical_or_vacant_donor_donates_no_pairs ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::an_even_cumulene_does_not_conjugate_through ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_saturated_molecule_has_no_systems ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_terminal_donor_donates_one_pair_per_plane ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::an_odd_cumulene_conjugates_end_to_end ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::cross_conjugation_merges_into_one_system ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::an_isolated_carbonyl_is_not_a_system ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::donated_pairs_counts_lone_pairs_given_to_the_system ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::a_terminal_donor_reaches_both_orthogonal_planes ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::adjacent_triple_bonds_conjugate_in_both_planes ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::an_isolated_multiple_bond_is_not_a_system ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::alternating_multiple_bonds_conjugate ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::adjacent_lone_pairs_alone_do_not_conjugate ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::donation_attribution_follows_the_declared_form ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::orthogonal_systems_coincide_on_their_sites ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::same_is_false_across_orthogonal_planes ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::conjugation_does_not_cross_a_hypervalent_center ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::of_site_of_an_absent_site_is_empty ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::orthogonal_planes_split_their_donations ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::donation_stays_exact_in_a_declared_aromatic_system ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::of_bond_of_an_unconjugated_bond_is_empty ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::of_site_of_a_saturated_site_is_empty ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::a_configuration_refines_its_centers_feature ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::a_radius_beyond_the_molecules_reach_adds_nothing ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::the_systems_are_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::a_configuration_among_indistinguishable_neighbors_separates_nothing ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::same_relates_sites_sharing_a_system ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::the_systems_are_independent_of_the_resonance_form ... ok
[INFO] [stdout] test algorithm::conjugation::systems::tests::systems_iterate_in_canonical_order ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::bond_colors_enter_the_environment ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::equivalent_environments_with_distinct_reaches_each_count ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::a_configuration_parts_mirror_forms_once_the_radius_resolves_its_neighbors ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::a_configuration_is_invisible_at_radius_zero ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::sites_of_different_colors_have_distinct_features ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::sites_of_one_color_share_a_feature ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::a_radius_zero_fingerprint_counts_the_sites_by_color ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::mirror_configurations_yield_distinct_fingerprints ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::the_fingerprint_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::a_fingerprint_round_trips_through_its_counts ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::a_fingerprint_with_a_feature_is_not_empty ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::a_single_code_becomes_one_feature ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::add_assign_agrees_with_add ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::an_absent_feature_has_a_count_of_zero ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::an_empty_code_sequence_yields_the_default_fingerprint ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::a_wider_radius_separates_distinct_environments ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::an_empty_fingerprint_has_zero_cardinality ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::cardinality_sums_the_counts ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::an_empty_molecule_has_an_empty_fingerprint ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::an_isolated_site_contributes_only_its_radius_zero_feature ... ok
[INFO] [stdout] test algorithm::fingerprint::circular::tests::sites_covering_the_same_bonds_pool_into_one_environment ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::disjoint_fingerprints_share_nothing ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::distinct_codes_become_distinct_features ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::features_sharing_a_bit_fold_indistinguishably ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::fingerprints_differing_only_in_counts_are_not_equal ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::a_single_code_is_counted_once ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::fold_drops_the_counts ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::a_zero_width_fold_is_empty ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::an_empty_count_sequence_yields_the_default_fingerprint ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::from_codes_and_from_counts_agree_on_the_same_multiset ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::an_empty_fingerprint_has_no_features ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::dot_multiplies_the_counts_of_shared_features ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::fold_maps_each_feature_to_its_bit_modulo_the_width ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::from_counts_sums_repeated_features ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::intersection_takes_the_lesser_count_of_each_shared_feature ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::iter_yields_features_in_ascending_order_with_their_counts ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::a_fold_of_no_codes_yields_no_bits ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::a_zero_width_fold_ignores_its_codes ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::cardinality_counts_the_reached_bits ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::colliding_codes_reach_one_bit ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::repeated_codes_accumulate_into_one_feature ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::the_fingerprint_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::the_default_fingerprint_is_empty ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::an_unreached_bit_is_not_contained ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::a_fold_of_no_codes_has_zero_cardinality ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::folds_reaching_the_same_bits_are_equal ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::folds_of_different_widths_are_not_equal ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::folds_reaching_different_bits_are_not_equal ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::folds_sharing_no_bit_have_zero_intersection ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::dot_agrees_with_intersection ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::each_code_reaches_its_bit_modulo_the_width ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::the_fold_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::fingerprint::pair::tests::a_pair_is_blind_to_which_atom_bears_which_color ... ok
[INFO] [stdout] test algorithm::fingerprint::pair::tests::a_single_site_forms_no_pair ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::intersection_counts_the_shared_bits ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::the_sum_of_fingerprints_pools_their_features ... ok
[INFO] [stdout] test algorithm::fingerprint::feature::tests::zero_count_features_are_dropped ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::iter_yields_the_reached_bits_in_ascending_order ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::width_reports_the_folded_width ... ok
[INFO] [stdout] test algorithm::fingerprint::pair::tests::equivalent_pairs_count_with_multiplicity ... ok
[INFO] [stdout] test algorithm::fingerprint::pair::tests::pairs_beyond_the_maximum_distance_are_skipped ... ok
[INFO] [stdout] test algorithm::fingerprint::pair::tests::the_distance_parts_pairs_of_equal_colors ... ok
[INFO] [stdout] test algorithm::fingerprint::pair::tests::a_zero_maximum_yields_an_empty_fingerprint ... ok
[INFO] [stdout] test algorithm::fingerprint::pair::tests::an_empty_molecule_has_an_empty_fingerprint ... ok
[INFO] [stdout] test algorithm::fingerprint::pair::tests::each_pair_within_reach_becomes_a_feature ... ok
[INFO] [stdout] test algorithm::fingerprint::pair::tests::the_fingerprint_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::fingerprint::pair::tests::pairs_in_different_components_are_skipped ... ok
[INFO] [stdout] test algorithm::fingerprint::pair::tests::the_maximum_distance_is_inclusive ... ok
[INFO] [stdout] test algorithm::fingerprint::path::tests::a_palindromic_path_is_counted_once ... ok
[INFO] [stdout] test algorithm::fingerprint::path::tests::an_empty_molecule_has_an_empty_fingerprint ... ok
[INFO] [stdout] test algorithm::fingerprint::path::tests::bond_colors_enter_the_path ... ok
[INFO] [stdout] test algorithm::fingerprint::path::tests::a_path_reads_the_same_from_both_ends ... ok
[INFO] [stdout] test algorithm::fingerprint::path::tests::a_zero_length_yields_an_empty_fingerprint ... ok
[INFO] [stdout] test algorithm::fingerprint::path::tests::a_bondless_molecule_has_an_empty_fingerprint ... ok
[INFO] [stdout] test algorithm::fingerprint::path::tests::a_path_never_revisits_a_site ... ok
[INFO] [stdout] test algorithm::fingerprint::path::tests::a_length_beyond_the_longest_path_adds_nothing ... ok
[INFO] [stdout] test algorithm::fingerprint::path::tests::each_simple_path_up_to_the_length_becomes_a_feature ... ok
[INFO] [stdout] test algorithm::fingerprint::path::tests::paths_longer_than_the_length_are_skipped ... ok
[INFO] [stdout] test algorithm::fingerprint::path::tests::equivalent_paths_count_with_multiplicity ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::cosine_is_symmetric ... ok
[INFO] [stdout] test algorithm::fingerprint::path::tests::the_fingerprint_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::cosine_is_the_dot_over_the_norms ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::cosine_and_tanimoto_diverge_on_repeated_features ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::cosine_of_a_vector_with_itself_is_one ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::cosine_of_an_empty_and_a_nonempty_vector_is_zero ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::cosine_of_two_empty_vectors_is_one ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::half_weights_give_the_dice_coefficient ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::tanimoto_is_symmetric ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::cosine_of_disjoint_vectors_is_zero ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::tanimoto_of_a_vector_with_itself_is_one ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::tanimoto_is_the_shared_count_over_the_union ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::tanimoto_of_an_empty_and_a_nonempty_vector_is_zero ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::tversky_with_equal_weights_is_symmetric ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::tversky_with_zero_weights_on_disjoint_vectors_is_zero ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::tanimoto_of_disjoint_vectors_is_zero ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::tanimoto_of_two_empty_vectors_is_one ... ok
[INFO] [stdout] test algorithm::fingerprint::tests::combine_depends_on_the_words ... ok
[INFO] [stdout] test algorithm::fingerprint::tests::combine_depends_on_word_count ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::tversky_weights_each_sides_surplus ... ok
[INFO] [stdout] test algorithm::fingerprint::tests::combine_depends_on_word_order ... ok
[INFO] [stdout] test algorithm::fingerprint::tests::combine_is_stable_across_builds ... ok
[INFO] [stdout] test algorithm::fingerprint::tests::combining_no_words_yields_the_seed ... ok
[INFO] [stdout] test algorithm::fingerprint::tests::index_wires_the_adjacency_over_the_indices ... ok
[INFO] [stdout] test algorithm::fingerprint::tests::index_preserves_bond_order ... ok
[INFO] [stdout] test algorithm::fingerprint::tests::index_preserves_site_order ... ok
[INFO] [stdout] test algorithm::fingerprint::tests::mix_of_zero_is_zero ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::a_d_block_site_is_unlabeled ... ok
[INFO] [stdout] test algorithm::fingerprint::tests::mix_is_stable_across_builds ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::a_declared_aromatic_site_is_sp2 ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::a_donation_free_molecule_keeps_plain_domain_labels ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::a_donor_into_both_planes_is_sp ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::a_hydrogen_is_s ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::a_saturated_carbon_is_sp3 ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::a_kekule_heteroring_donor_is_sp2 ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::a_hypervalent_center_keeps_its_domain_count ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::an_alkene_carbon_is_sp2 ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::an_alkyne_carbon_is_sp ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::a_radical_or_carbenium_center_is_sp2 ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::an_amide_nitrogen_is_sp2 ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::a_water_oxygen_is_sp3 ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::an_azide_is_linear_throughout ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::an_empty_molecule_has_no_labels ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::an_isolated_site_is_s ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::the_bound_view_answers_the_capability ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::expanded_octets_map_to_d_labels ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::the_bound_view_forwards_the_skeleton ... ok
[INFO] [stdout] test algorithm::fingerprint::similarity::tests::tversky_of_two_empty_vectors_is_one ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::an_aniline_nitrogen_is_sp2 ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::the_labels_are_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::an_overbonded_hydrogen_is_unlabeled ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::the_labels_are_independent_of_the_resonance_form ... ok
[INFO] [stdout] test algorithm::fingerprint::tests::an_empty_molecule_indexes_to_nothing ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::the_table_holds_only_the_labeled_sites ... ok
[INFO] [stdout] test algorithm::hybridization::perceive::tests::the_table_reports_and_iterates_its_labels ... ok
[INFO] [stdout] test algorithm::isomorphism::mcs::tests::a_shared_chain_is_found ... ok
[INFO] [stdout] test algorithm::isomorphism::mcs::tests::an_incompatible_atom_bounds_the_match ... ok
[INFO] [stdout] test algorithm::isomorphism::mcs::tests::a_smaller_molecule_is_shared_whole ... ok
[INFO] [stdout] test algorithm::isomorphism::mcs::tests::identical_molecules_share_every_bond ... ok
[INFO] [stdout] test algorithm::isomorphism::mcs::tests::molecules_sharing_no_bond_share_nothing ... ok
[INFO] [stdout] test algorithm::isomorphism::mcs::tests::an_unmatched_site_or_bond_has_no_image ... ok
[INFO] [stdout] test algorithm::isomorphism::mcs::tests::the_correspondence_satisfies_the_predicates ... ok
[INFO] [stdout] test algorithm::isomorphism::subgraph::tests::a_bond_matches_in_both_directions ... ok
[INFO] [stdout] test algorithm::isomorphism::mcs::tests::the_common_substructure_is_connected ... ok
[INFO] [stdout] test algorithm::isomorphism::mcs::tests::an_incompatible_bond_bounds_the_match ... ok
[INFO] [stdout] test algorithm::isomorphism::subgraph::tests::a_disjoint_pattern_matches_distinct_atoms ... ok
[INFO] [stdout] test algorithm::isomorphism::mcs::tests::empty_molecule_shares_nothing ... ok
[INFO] [stdout] test algorithm::isomorphism::subgraph::tests::a_mapping_has_no_target_for_an_absent_site ... ok
[INFO] [stdout] test algorithm::isomorphism::mcs::tests::the_common_substructure_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::isomorphism::subgraph::tests::a_mapping_resolves_each_pattern_site ... ok
[INFO] [stdout] test algorithm::isomorphism::subgraph::tests::a_path_matches_every_walk_of_a_ring ... ok
[INFO] [stdout] test algorithm::isomorphism::mcs::tests::each_matched_site_and_bond_maps_to_its_image ... ok
[INFO] [stdout] test algorithm::isomorphism::subgraph::tests::empty_pattern_matches_once ... ok
[INFO] [stdout] test algorithm::isomorphism::subgraph::tests::the_first_match_is_found_without_enumerating_all ... ok
[INFO] [stdout] test algorithm::notation::error::tests::at_returns_the_offset ... ok
[INFO] [stdout] test algorithm::notation::error::tests::display_shows_the_kind_then_the_offset ... ok
[INFO] [stdout] test algorithm::notation::error::tests::kind_returns_the_kind ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_bare_coefficient_part_contributes_nothing ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_bracketed_nuclide_parses ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_charge_magnitude_follows_its_sign ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_coefficient_multiplies_its_part ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_coefficient_scales_its_parts_charge ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_count_follows_its_symbol ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_count_multiplies_a_nuclide ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_dot_separates_summed_parts ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_lone_symbol_parses_to_one_atom ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_lowercase_letter_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_mass_number_below_the_atomic_number_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_missing_mass_number_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_real_symbol_outranks_an_alias ... ok
[INFO] [stdout] test algorithm::isomorphism::subgraph::tests::a_single_atom_matches_each_like_atom ... ok
[INFO] [stdout] test algorithm::isomorphism::subgraph::tests::a_bond_order_constrains_the_match ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_salt_with_nuclides_counts_and_charges_parses ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_sign_alone_parses_to_a_unit_charge ... ok
[INFO] [stdout] test algorithm::isomorphism::subgraph::tests::an_absent_substructure_yields_nothing ... ok
[INFO] [stdout] test algorithm::isomorphism::subgraph::tests::an_element_constrains_the_match ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_two_letter_symbol_parses_whole ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_unit_after_a_charge_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_zero_coefficient_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::an_alias_takes_a_count ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::an_empty_part_contributes_nothing ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::an_empty_string_parses_to_the_empty_composition ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::an_overflowing_count_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::an_overflowing_mass_number_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::a_zero_count_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::an_overflowing_merged_count_is_rejected ... ok
[INFO] [stdout] test algorithm::isomorphism::subgraph::tests::a_pattern_larger_than_the_target_does_not_match ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::an_overflowing_scaled_count_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::an_unknown_bracketed_symbol_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::an_unknown_symbol_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::charges_sum_across_parts ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::deuterium_aliases_to_hydrogen_two ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::parsing_is_independent_of_unit_order ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::an_overflowing_net_charge_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::parsing_recovers_what_write_produced ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::repeated_symbols_accumulate ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::the_longest_symbol_wins ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::the_most_negative_charge_parses ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::tritium_aliases_to_hydrogen_three ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::a_carbonaceous_formula_leads_with_carbon_then_hydrogen ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::a_carbonless_formula_orders_every_symbol_alphabetically ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::a_count_above_one_follows_its_symbol ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::a_larger_charge_writes_its_magnitude ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::whitespace_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::a_lone_element_writes_its_bare_symbol ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::a_neutral_composition_writes_no_charge ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::a_nuclide_writes_its_bracketed_mass_number ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::a_unit_charge_writes_only_its_sign ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::an_empty_composition_writes_the_empty_string ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::hydrogen_takes_no_precedence_without_carbon ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::an_error_kind_displays_its_condition ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::an_unclosed_bracket_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::parse::tests::an_overflowing_charge_magnitude_is_rejected ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::a_bare_charge_writes_only_the_charge ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::the_natural_mixture_precedes_its_nuclides ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::the_formula_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::a_carbon_with_two_like_substituents_is_not_a_stereocenter ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::a_candidate_off_its_anchor_is_not_a_stereocenter ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::the_remaining_symbols_run_alphabetically ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::a_double_bond_with_a_symmetric_end_is_not_a_stereocenter ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::a_center_short_of_its_substituents_is_not_a_stereocenter ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::a_carbon_with_four_distinct_substituents_is_a_stereocenter ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::a_dormant_pseudo_center_is_not_detected ... ok
[INFO] [stdout] test algorithm::notation::formula::write::tests::nuclides_ascend_by_mass_number ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::a_molecule_the_candidate_rejects_has_no_stereocenters ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::a_pseudo_asymmetric_center_is_detected ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::an_allene_with_distinct_termini_is_a_stereocenter ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::a_double_bond_with_distinct_ends_is_a_stereocenter ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::contains_is_false_for_an_absent_locus ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::empty_molecule_has_no_stereocenters ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::count_reports_the_number_of_stereocenters ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::detection_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::stereo::enumerate::tests::a_constitution_without_stereocenters_has_a_single_isomer ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::symmetry_equivalent_centers_are_each_detected ... ok
[INFO] [stdout] test algorithm::stereo::enumerate::tests::a_lone_isomer_is_not_empty ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::iter_yields_the_stereocenters_in_ascending_order ... ok
[INFO] [stdout] test algorithm::stereo::enumerate::tests::a_single_stereocenter_has_two_isomers ... ok
[INFO] [stdout] test algorithm::stereo::enumerate::tests::each_isomer_binds_a_configuration_to_the_stereocenter ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::a_dormant_pseudo_center_does_not_split_its_diastereomers ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::a_double_bond_geometry_is_achiral ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::a_form_relates_to_itself_as_identical ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::a_homochiral_form_is_chiral ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::a_meso_form_is_achiral ... ok
[INFO] [stdout] test algorithm::stereo::enumerate::tests::two_equivalent_centers_have_three_stereoisomers ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::a_molecule_without_configurations_is_achiral ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::a_single_stereocenter_is_chiral ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::dot_across_widths_panics - should panic ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::enantiomers_share_a_constitution ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::equal_forms_hash_equally ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::molecules_of_different_constitution_are_unrelated ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::opposite_configurations_are_enantiomers ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::enantiomers_have_distinct_forms ... ok
[INFO] [stdout] test algorithm::fingerprint::folded::tests::intersection_across_widths_panics - should panic ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::a_pseudo_asymmetric_center_distinguishes_its_diastereomers ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::the_double_bond_isomers_are_diastereomers ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::the_homochiral_and_meso_forms_are_diastereomers ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::the_form_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::an_octahedral_m_a5_b_center_is_not_a_stereocenter ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::ordering_agrees_with_equality ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::the_same_stereoisomer_has_equal_forms ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::a_degenerate_double_bond_fixes_no_configuration ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::a_planar_allene_fixes_no_configuration ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::a_square_planar_configuration_is_perceived ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::a_tetrahedral_configuration_is_perceived_in_positive_orientation ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::a_trans_double_bond_reverses_the_far_end ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::an_allene_is_perceived_in_reference_order ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::a_cis_double_bond_is_perceived_in_reference_order ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::a_coplanar_center_fixes_no_configuration ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::a_molecule_the_candidate_rejects_has_no_configurations ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::bound_view_answers_the_stereo_configuration_capability ... ok
[INFO] [stdout] test algorithm::stereo::identity::tests::the_pseudo_asymmetric_form_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::bound_view_forwards_the_skeleton ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::get_is_none_for_a_locus_without_a_configuration ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::an_octahedral_configuration_is_perceived_in_positive_orientation ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::empty_molecule_has_no_configurations ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::count_reports_the_number_of_configurations ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::iter_yields_the_perceived_configurations ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::get_returns_the_configuration_at_a_locus ... ok
[INFO] [stdout] test algorithm::stereo::tests::a_branched_double_bond_chain_has_no_frame ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::perception_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::stereo::center::tests::an_octahedral_m_a4_b2_center_is_a_stereocenter ... ok
[INFO] [stdout] test algorithm::stereo::tests::a_double_bond_frame_is_none_when_a_terminus_lacks_two_substituents ... ok
[INFO] [stdout] test algorithm::stereo::tests::a_cumulene_bond_frame_walks_out_to_the_chain_termini ... ok
[INFO] [stdout] test algorithm::stereo::tests::a_double_bond_frame_pairs_each_terminus_with_its_substituents ... ok
[INFO] [stdout] test algorithm::stereo::tests::a_site_frame_is_the_atom_and_its_neighbors ... ok
[INFO] [stdout] test algorithm::stereo::tests::a_reflected_signal_is_the_mirror_of_the_plain_signal ... ok
[INFO] [stdout] test algorithm::stereo::tests::an_allene_axis_frame_is_the_two_termini_and_their_substituents ... ok
[INFO] [stdout] test algorithm::stereo::tests::an_axis_frame_is_none_off_a_cumulene_center ... ok
[INFO] [stdout] test algorithm::stereo::tests::candidate_loci_offer_each_site_as_a_center_and_an_axis_and_each_bond ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::enantiomeric_coordinates_are_perceived_as_distinct_configurations ... ok
[INFO] [stdout] test algorithm::stereo::perceive::tests::the_opposite_allene_twist_swaps_the_first_terminus ... ok
[INFO] [stdout] test algorithm::stereo::tests::presentations_of_a_center_are_every_ordering ... ok
[INFO] [stdout] test algorithm::stereo::tests::presentations_of_an_edge_keep_each_end_within_itself ... ok
[INFO] [stdout] test algorithm::stereo::tests::configurations_of_a_center_are_one_per_stereoisomer ... ok
[INFO] [stdout] test algorithm::stereo::tests::configurations_collapse_a_repeated_substituent ... ok
[INFO] [stdout] test algorithm::stereo::tests::frame_mark_numbers_anchors_from_one_and_marks_outsiders_zero ... ok
[INFO] [stdout] test algorithm::stereo::tests::realizable_is_empty_when_the_substituents_miscount ... ok
[INFO] [stdout] test algorithm::stereo::tests::realizable_is_empty_without_a_frame ... ok
[INFO] [stdout] test algorithm::stereo::tests::refined_without_configurations_matches_the_bare_canonical_form ... ok
[INFO] [stdout] test algorithm::stereo::tests::refined_splits_a_symmetry_that_stereochemistry_breaks ... ok
[INFO] [stdout] test algorithm::stereo::tests::realizable_collapses_a_symmetric_center_to_one ... ok
[INFO] [stdout] test algorithm::stereo::tests::realizable_is_empty_off_an_anchor ... ok
[INFO] [stdout] test algorithm::stereo::tests::settle_files_a_bond_configuration_against_both_ends ... ok
[INFO] [stdout] test algorithm::stereo::tests::realizable_lists_a_stereogenic_centers_configurations ... ok
[INFO] [stdout] test algorithm::stereo::tests::settle_files_a_site_configuration_against_its_site ... ok
[INFO] [stdout] test algorithm::stereo::validate::tests::a_configuration_off_a_stereocenter_is_overspecified ... ok
[INFO] [stdout] test algorithm::stereo::validate::tests::a_configured_stereocenter_is_consistent ... ok
[INFO] [stdout] test algorithm::stereo::validate::tests::a_stereocenter_without_a_configuration_is_unspecified ... ok
[INFO] [stdout] test algorithm::stereo::tests::an_octahedral_m_a4_b2_has_a_cis_and_a_trans_configuration ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::a_bond_resolves_to_its_block ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::a_bridge_bond_is_a_bridge ... ok
[INFO] [stdout] test algorithm::stereo::validate::tests::empty_molecule_is_consistent ... ok
[INFO] [stdout] test algorithm::stereo::validate::tests::unspecified_lists_the_stereocenters_without_a_configuration ... ok
[INFO] [stdout] test algorithm::stereo::validate::tests::overspecified_lists_the_configurations_off_a_stereocenter ... ok
[INFO] [stdout] test algorithm::stereo::enumerate::tests::a_pseudo_asymmetric_constitution_has_four_stereoisomers ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::a_non_cut_site_belongs_to_one_block ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::a_ring_bond_is_not_a_bridge ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::block_counts_its_sites_and_bonds ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::block_lists_its_sites_and_bonds_in_ascending_order ... ok
[INFO] [stdout] test algorithm::stereo::validate::tests::reconciliation_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::stereo::validate::tests::both_kinds_of_disagreement_are_reported_together ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::a_cut_site_belongs_to_every_block_it_joins ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::blocks_partition_every_bond ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::block_reports_membership_of_its_sites_and_bonds ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::a_cycle_forms_one_ring_block ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::blocks_are_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::blocks_are_ordered_by_their_sites ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::chain_endpoints_are_not_cuts ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::chain_forms_one_block_per_bond ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::cuts_lists_articulation_points_in_ascending_order ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::is_biconnected_holds_for_a_single_cycle ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::isolated_site_forms_no_block ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::is_biconnected_fails_for_a_chain ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::is_biconnected_fails_when_a_site_is_isolated ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::molecule_with_a_bond_is_not_empty ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::empty_molecule_has_no_blocks ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::bridges_lists_bridge_bonds_in_ascending_order ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::chain_middle_site_is_a_cut ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::a_cycle_has_no_cut_sites ... ok
[INFO] [stdout] test algorithm::stereo::enumerate::tests::enumeration_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::single_bond_forms_one_bridge_block ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::unknown_site_is_in_no_block ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::components_are_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::components_partition_every_site ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::connected_molecule_is_a_single_component ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::disconnected_pieces_are_separate_components ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::empty_molecule_has_no_components ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::get_of_an_absent_site_is_none ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::a_site_shares_a_component_with_itself ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::get_returns_the_component_containing_the_site ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::isolated_sites_are_each_their_own_component ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::same_is_false_when_a_site_is_absent ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::same_is_symmetric ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::single_component_molecule_is_connected ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::single_site_is_one_component ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::sites_in_different_components_are_not_the_same ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::transitively_connected_sites_share_a_component ... ok
[INFO] [stdout] test algorithm::topology::path::bfs::tests::counts_the_sites_in_the_reachable_component ... ok
[INFO] [stdout] test algorithm::topology::path::bfs::tests::does_not_reach_other_components ... ok
[INFO] [stdout] test algorithm::topology::path::bfs::tests::exhausted_iterator_keeps_yielding_none ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::single_bond_block_holds_its_sites_and_bond ... ok
[INFO] [stdout] test algorithm::topology::connectivity::blocks::tests::unknown_bond_is_in_no_block ... ok
[INFO] [stdout] test algorithm::topology::path::bfs::tests::orders_equidistant_sites_by_the_order_their_bonds_are_reached ... ok
[INFO] [stdout] test algorithm::topology::path::bfs::tests::isolated_start_yields_only_itself ... ok
[INFO] [stdout] test algorithm::topology::path::bfs::tests::orders_a_path_outward_from_an_endpoint ... ok
[INFO] [stdout] test algorithm::topology::path::bfs::tests::reaches_every_site_in_a_connected_molecule ... ok
[INFO] [stdout] test algorithm::topology::path::bfs::tests::take_yields_only_the_requested_prefix ... ok
[INFO] [stdout] test algorithm::topology::path::bfs::tests::visits_a_cycle_without_revisiting_a_site ... ok
[INFO] [stdout] test algorithm::topology::path::bfs::tests::yields_nearer_sites_before_farther ... ok
[INFO] [stdout] test algorithm::topology::path::dfs::tests::counts_the_sites_in_the_reachable_component ... ok
[INFO] [stdout] test algorithm::topology::path::dfs::tests::descends_a_path_from_an_endpoint ... ok
[INFO] [stdout] test algorithm::topology::path::dfs::tests::does_not_reach_other_components ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::adjacent_sites_share_a_component ... ok
[INFO] [stdout] test algorithm::topology::path::dfs::tests::explores_a_branch_fully_before_a_sibling ... ok
[INFO] [stdout] test algorithm::topology::path::dfs::tests::reaches_every_site_in_a_connected_molecule ... ok
[INFO] [stdout] test algorithm::topology::path::dfs::tests::single_site_yields_only_itself ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::iter_yields_components_ordered_by_their_sites ... ok
[INFO] [stdout] test algorithm::topology::connectivity::components::tests::multi_component_molecule_is_not_connected ... ok
[INFO] [stdout] test algorithm::topology::path::dfs::tests::size_hint_lower_bound_never_exceeds_the_sites_remaining ... ok
[INFO] [stdout] test algorithm::topology::path::bfs::tests::single_site_yields_only_itself ... ok
[INFO] [stdout] test algorithm::topology::path::dfs::tests::isolated_start_yields_only_itself ... ok
[INFO] [stdout] test algorithm::topology::path::bfs::tests::size_hint_lower_bound_never_exceeds_the_sites_remaining ... ok
[INFO] [stdout] test algorithm::topology::path::bfs::tests::start_is_yielded_first ... ok
[INFO] [stdout] test algorithm::topology::path::dfs::tests::exhausted_iterator_keeps_yielding_none ... ok
[INFO] [stdout] test algorithm::topology::path::dfs::tests::visits_a_cycle_without_revisiting_a_site ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::center_and_periphery_split_a_path_into_middle_and_ends ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::center_holds_the_least_eccentric_sites ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::disconnected_molecule_has_an_empty_periphery ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::disconnected_molecule_has_no_diameter ... ok
[INFO] [stdout] test algorithm::topology::path::dfs::tests::start_is_yielded_first ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::disconnected_molecule_has_an_empty_center ... ok
[INFO] [stdout] test algorithm::topology::path::dfs::tests::take_yields_only_the_requested_prefix ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::distance_between_separate_components_is_none ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::distance_counts_the_bonds_along_a_path ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::disconnected_molecule_has_no_radius ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::distance_from_a_site_to_itself_is_zero ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::eccentricity_is_the_distance_to_the_farthest_site ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::distance_is_symmetric ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::distance_to_an_absent_site_is_none ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::eccentricity_of_a_site_that_cannot_reach_all_is_none ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::empty_molecule_has_no_diameter ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::eccentricity_of_an_absent_site_is_none ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::every_site_of_a_cycle_is_central ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::empty_molecule_has_no_radius ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::metrics_are_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::distance_around_a_cycle_takes_the_shorter_arc ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::radius_is_the_least_eccentricity ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::periphery_holds_the_most_eccentric_sites ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::distance_between_adjacent_sites_is_one ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::radius_never_exceeds_diameter ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::wiener_index_skips_pairs_in_separate_components ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::wiener_index_sums_every_pairwise_distance ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::single_site_is_its_own_periphery ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::single_site_radius_is_zero ... ok
[INFO] [stdout] test algorithm::topology::path::paths::tests::all_paths_share_the_minimal_length ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::diameter_is_the_greatest_eccentricity ... ok
[INFO] [stdout] test algorithm::topology::path::paths::tests::consecutive_sites_in_each_path_are_bonded ... ok
[INFO] [stdout] test algorithm::topology::path::paths::tests::a_tree_yields_its_unique_shortest_path ... ok
[INFO] [stdout] test algorithm::topology::path::dfs::tests::takes_branches_in_the_order_their_bonds_are_reached ... ok
[INFO] [stdout] test algorithm::topology::path::paths::tests::paths_are_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::topology::path::paths::tests::paths_are_listed_in_ascending_order ... ok
[INFO] [stdout] test algorithm::topology::path::paths::tests::start_equal_to_end_yields_the_lone_site ... ok
[INFO] [stdout] test algorithm::topology::path::shortest::tests::adjacent_sites_yield_a_two_site_path ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::single_site_diameter_is_zero ... ok
[INFO] [stdout] test algorithm::topology::path::shortest::tests::chooses_among_equal_length_paths_by_search_order ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::single_site_has_a_zero_wiener_index ... ok
[INFO] [stdout] test algorithm::topology::path::distances::tests::single_site_is_its_own_center ... ok
[INFO] [stdout] test algorithm::topology::path::paths::tests::a_cycle_yields_every_tied_shortest_path ... ok
[INFO] [stdout] test algorithm::topology::path::shortest::tests::connects_two_sites_ordered_from_start_to_end ... ok
[INFO] [stdout] test algorithm::topology::path::shortest::tests::path_sites_are_consecutively_bonded ... ok
[INFO] [stdout] test algorithm::topology::path::shortest::tests::path_to_an_absent_site_is_none ... ok
[INFO] [stdout] test algorithm::topology::path::shortest::tests::path_visits_no_site_twice ... ok
[INFO] [stdout] test algorithm::topology::path::shortest::tests::sites_in_different_components_have_no_path ... ok
[INFO] [stdout] test algorithm::topology::path::shortest::tests::start_equal_to_end_yields_a_single_site ... ok
[INFO] [stdout] test algorithm::topology::path::shortest::tests::takes_the_direct_bond_over_a_longer_route ... ok
[INFO] [stdout] test algorithm::topology::ring::bridgeheads::tests::an_acyclic_molecule_has_no_bridgeheads ... ok
[INFO] [stdout] test algorithm::topology::path::paths::tests::disconnected_sites_yield_no_path ... ok
[INFO] [stdout] test algorithm::topology::ring::bridgeheads::tests::a_bridgehead_shared_by_several_ring_pairs_is_listed_once ... ok
[INFO] [stdout] test algorithm::topology::ring::bridgeheads::tests::empty_molecule_has_no_bridgeheads ... ok
[INFO] [stdout] test algorithm::topology::ring::bridgeheads::tests::ortho_fused_rings_have_no_bridgeheads ... ok
[INFO] [stdout] test algorithm::topology::ring::bridgeheads::tests::single_ring_has_no_bridgeheads ... ok
[INFO] [stdout] test algorithm::topology::ring::bridgeheads::tests::spiro_rings_have_no_bridgeheads ... ok
[INFO] [stdout] test algorithm::topology::ring::bridgeheads::tests::unbridged_components_add_no_bridgeheads ... ok
[INFO] [stdout] test algorithm::topology::ring::count::tests::a_cyclic_and_an_acyclic_component_sum_their_ranks ... ok
[INFO] [stdout] test algorithm::topology::ring::count::tests::a_forest_has_rank_zero ... ok
[INFO] [stdout] test algorithm::topology::ring::count::tests::a_cycle_with_an_acyclic_tail_has_rank_one ... ok
[INFO] [stdout] test algorithm::topology::ring::count::tests::a_tree_has_rank_zero ... ok
[INFO] [stdout] test algorithm::topology::ring::count::tests::count_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::topology::ring::bridgeheads::tests::rings_sharing_exactly_two_bonds_yield_bridgeheads ... ok
[INFO] [stdout] test algorithm::topology::ring::count::tests::a_single_cycle_has_rank_one ... ok
[INFO] [stdout] test algorithm::topology::ring::count::tests::counts_all_independent_cycles_of_a_polycyclic_graph ... ok
[INFO] [stdout] test algorithm::topology::path::paths::tests::every_path_runs_from_start_to_end ... ok
[INFO] [stdout] test algorithm::topology::path::paths::tests::excludes_paths_longer_than_the_shortest ... ok
[INFO] [stdout] test algorithm::topology::ring::bridgeheads::tests::bridgeheads_are_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::topology::ring::count::tests::single_site_has_rank_zero ... ok
[INFO] [stdout] test algorithm::topology::ring::count::tests::rank_equals_edges_minus_sites_plus_components ... ok
[INFO] [stdout] test algorithm::topology::ring::count::tests::two_disjoint_cycles_have_rank_two ... ok
[INFO] [stdout] test algorithm::topology::ring::count::tests::fused_rings_have_rank_two ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::a_family_reports_membership_of_its_sites_and_bonds ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::a_bridged_system_fuses_interchangeable_rings ... ok
[INFO] [stdout] test algorithm::topology::ring::count::tests::empty_molecule_has_rank_zero ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::a_fusion_bond_is_reported ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::a_shared_bond_lies_in_two_families ... ok
[INFO] [stdout] test algorithm::topology::ring::bridgeheads::tests::bridgeheads_are_the_atoms_where_the_bridges_meet_the_rings ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::a_degenerate_ring_system_yields_a_family_per_relevant_cycle ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::a_shared_site_lies_in_two_families ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::a_spiro_atom_is_reported ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::a_site_of_one_ring_lies_in_one_family ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::a_triangle_family_is_a_three_membered_ring ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::a_triangle_is_one_family ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::acyclic_molecule_has_no_families ... ok
[INFO] [stdout] test algorithm::topology::ring::bridgeheads::tests::bridgeheads_report_membership ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::an_acyclic_molecule_has_no_girth ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::fused_rings_have_no_spiro_atom ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::fused_rings_yield_two_families ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::fused_rings_form_one_system ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::iter_orders_families_by_ascending_size ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::girth_is_the_smallest_family_size ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::families_are_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::membership_matches_the_membership_function ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::derived_queries_are_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::empty_molecule_has_no_families ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::of_bond_of_a_bridge_is_empty ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::of_site_in_an_acyclic_molecule_is_empty ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::of_bond_of_an_unknown_bond_is_empty ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::spiro_rings_form_one_system ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::of_site_of_an_unknown_site_is_empty ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::single_site_has_no_families ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::a_square_is_one_family_of_size_four ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::spiro_rings_have_no_fusion_bond ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::two_sites_of_one_ring_are_the_same ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::systems_partition_the_ring_sites ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::two_sites_in_distinct_rings_are_not_the_same ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::unique_ring_families_exceed_a_minimum_basis_when_degenerate ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::unique_ring_families_match_a_minimum_basis_when_unambiguous ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::a_bridge_is_not_a_ring_bond ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::a_tree_is_acyclic ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::an_unknown_site_is_not_a_ring_site ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::same_is_false_for_an_unknown_site ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::disjoint_cycles_are_each_perceived ... ok
[INFO] [stdout] test algorithm::topology::ring::families::tests::separate_rings_form_separate_systems ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::every_bond_of_a_cycle_is_a_ring_bond ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::a_bridge_joining_two_rings_is_not_a_ring_bond ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::every_site_of_a_cycle_is_a_ring_site ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::a_site_shared_by_a_ring_and_a_bridge_is_a_ring_site ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::ring_bonds_exclude_the_bridge_and_are_listed_in_ascending_order ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::a_molecule_with_a_cycle_is_not_acyclic ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::membership_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::an_unknown_bond_is_not_a_ring_bond ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::empty_molecule_is_acyclic ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::single_site_is_acyclic ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::ring_sites_are_listed_in_ascending_order ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::a_minimum_basis_of_the_cube_is_all_squares ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::a_bond_shared_by_fused_rings_lies_in_both ... ok
[INFO] [stdout] test algorithm::topology::ring::membership::tests::a_site_incident_only_to_bridges_is_not_a_ring_site ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::a_ring_starts_at_its_smallest_site ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::a_ring_system_reports_and_counts_its_sites ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::a_site_shared_by_spiro_rings_lies_in_both ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::chain_has_no_rings ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::each_triangle_site_lies_in_one_ring ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::girth_of_an_acyclic_molecule_is_none ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::girth_is_the_smallest_ring_size ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::of_site_of_an_absent_site_is_empty ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::membership_matches_the_free_function ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::of_bond_of_a_bridge_is_empty ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::ring_sites_are_consecutively_bonded ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::of_bond_of_an_absent_bond_is_empty ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::same_is_false_across_distinct_rings ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::of_site_of_an_acyclic_site_is_empty ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::ring_count_equals_the_cycle_rank ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::same_is_false_for_an_absent_site ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::rings_are_ordered_by_size ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::an_acyclic_molecule_has_no_ring_systems ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::an_acyclic_molecule_has_acyclic_membership ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::single_site_has_no_rings ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::square_has_one_ring_of_four_sites ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::same_is_true_within_a_ring ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::the_basis_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::triangle_has_one_ring ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::systems_partition_the_ring_sites ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::a_single_ring_has_no_linkers ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::systems_separate_disjoint_rings ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::absent_site_has_no_role ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::classifies_a_scaffold_with_every_role ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::systems_unite_fused_rings ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::triangle_ring_spans_three_sites_and_three_bonds ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::a_ring_is_entirely_framework ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::an_acyclic_molecule_is_entirely_side_chains ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::the_basis_is_deterministic ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::framework_is_the_ring_and_linker_atoms ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::ring_atom_has_the_ring_role ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::empty_molecule_has_no_framework_sites ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::single_atom_is_a_side_chain ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::linker_atom_has_the_linker_role ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::framework_and_side_chains_partition_the_atoms ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::side_chains_lists_only_the_stripped_atoms ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::linkers_lists_only_the_linker_atoms ... ok
[INFO] [stdout] test algorithm::topology::symmetry::orbits::tests::a_symmetric_ring_is_a_single_class ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::framework_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::topology::symmetry::orbits::tests::asymmetric_sites_are_in_different_classes ... ok
[INFO] [stdout] test algorithm::topology::symmetry::orbits::tests::get_is_none_for_an_absent_site ... ok
[INFO] [stdout] test algorithm::topology::symmetry::orbits::tests::get_returns_the_class_of_a_site ... ok
[INFO] [stdout] test algorithm::topology::symmetry::orbits::tests::isolated_sites_are_interchangeable ... ok
[INFO] [stdout] test algorithm::topology::symmetry::orbits::tests::orbits_are_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::topology::symmetry::orbits::tests::iter_lists_the_classes_in_site_order ... ok
[INFO] [stdout] test algorithm::topology::symmetry::orbits::tests::same_is_false_for_an_absent_site ... ok
[INFO] [stdout] test algorithm::topology::symmetry::orbits::tests::classes_partition_every_site ... ok
[INFO] [stdout] test algorithm::topology::symmetry::orbits::tests::symmetric_sites_are_in_the_same_class ... ok
[INFO] [stdout] test algorithm::topology::symmetry::orbits::tests::empty_molecule_has_no_classes ... ok
[INFO] [stdout] test algorithm::topology::scaffold::framework::tests::stripped_atom_has_the_side_chain_role ... ok
[INFO] [stdout] test algorithm::topology::symmetry::orbits::tests::a_single_site_is_one_class ... ok
[INFO] [stdout] test algorithm::topology::symmetry::orbits::tests::an_asymmetric_site_is_a_singleton_class ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::disconnected_node_has_no_neighbors ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::chain_internal_node_has_two_neighbors ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::edge_appears_at_first_endpoint ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::edge_id_is_preserved_at_first_endpoint ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::edge_appears_at_second_endpoint ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::edge_id_is_preserved_at_second_endpoint ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::edgeless_graph_has_no_neighbors_at_any_node ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::empty_graph_has_no_nodes ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::len_counts_nodes_not_edges ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::node_count_matches_n ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::single_edge_second_endpoint_has_one_neighbor ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::adjacency_is_independent_of_edge_order ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::empty_graph_is_empty ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::chain_endpoints_have_one_neighbor ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::index_operator_yields_same_slice_as_neighbors ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::single_edge_first_endpoint_has_one_neighbor ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::self_loop_appears_twice_at_same_node ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::single_node_has_no_neighbors ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::single_node_is_not_empty ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::triangle_each_node_has_two_neighbors ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::star_each_leaf_has_one_neighbor ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::triangle_node_one_neighbor_set_is_correct ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::count_ones_spans_multiple_words ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::count_and_of_disjoint_sets_is_zero ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::star_center_degree_equals_leaf_count ... ok
[INFO] [stdout] test algorithm::topology::ring::rings::tests::empty_molecule_has_no_rings ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::first_bit_in_second_word_is_settable ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::count_and_spans_multiple_words ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::count_and_with_self_is_count_ones ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::len_matches_capacity ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::lowest_set_crosses_word_boundary_correctly ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::empty_bitset_has_zero_length ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::last_bit_in_first_word_is_settable ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::lowest_set_returns_minimum_index ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::empty_bitset_is_empty ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::nonempty_bitset_is_not_empty ... ok
[INFO] [stdout] test algorithm::utils::adjacency::tests::triangle_node_zero_neighbor_set_is_correct ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::count_and_is_the_intersection_size ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::or_assign_is_commutative ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::or_assign_is_union ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::set_bit_is_lowest_set ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::or_assign_with_self_leaves_it_unchanged ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::multiple_set_bits_count_is_correct ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::first_bit_is_settable ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::set_bit_increments_count ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::xor_assign_is_symmetric_difference ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::set_is_idempotent ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::toggle_on_set_bit_clears_it ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::toggle_on_zero_sets_bit ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::unset_bit_tests_false ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::xor_assign_is_commutative ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::set_bit_tests_true ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::zeros_has_no_set_bits ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::zeros_is_zero ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::zeros_spanning_multiple_words_is_zero ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::connectivity_is_transitive ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::elements_of_different_sets_are_not_connected ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::empty_universe_has_length_zero ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::disjoint_unions_yield_separate_sets ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::distinct_elements_are_not_connected ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::empty_universe_has_no_groups ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::empty_universe_is_empty ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::fresh_universe_has_one_set_per_element ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::joined_elements_share_a_representative ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::lone_element_is_its_own_representative ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::groups_are_independent_of_union_order ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::groups_are_the_connected_sets ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::merging_a_chain_yields_a_single_set ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::nonempty_universe_is_not_empty ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::redundant_union_leaves_the_set_count_unchanged ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::an_element_is_connected_to_itself ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::empty_universe_has_no_sets ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::toggle_on_set_bit_restores_zero ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::zeros_lowest_set_is_none ... ok
[INFO] [stdout] test algorithm::utils::bitset::tests::xor_assign_with_self_yields_zero ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::union_of_separate_sets_returns_true ... ok
[INFO] [stdout] test algorithm::utils::electronegativity::tests::has_no_value_for_elements_without_an_established_number ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::union_reduces_the_set_count_by_one ... ok
[INFO] [stdout] test algorithm::utils::electronegativity::tests::every_value_lies_within_the_pauling_scale ... ok
[INFO] [stdout] test algorithm::utils::electronegativity::tests::returns_the_pauling_value ... ok
[INFO] [stdout] test algorithm::utils::electronegativity_rank::tests::follows_allen_where_the_scales_disagree ... ok
[INFO] [stdout] test algorithm::utils::electronegativity_rank::tests::orders_the_organic_elements ... ok
[INFO] [stdout] test algorithm::utils::electronegativity_rank::tests::ranks_every_element_through_lawrencium ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::union_of_already_joined_sets_returns_false ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::self_union_returns_false ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::universe_length_is_the_element_count ... ok
[INFO] [stdout] test algorithm::utils::disjoint_set::tests::union_connects_its_two_elements ... ok
[INFO] [stdout] test algorithm::utils::embedding::tests::a_cyclic_pattern_embeds_honoring_every_edge ... ok
[INFO] [stdout] test algorithm::utils::embedding::tests::a_disjoint_pattern_embeds_at_distinct_vertices ... ok
[INFO] [stdout] test algorithm::utils::electronegativity_rank::tests::runs_from_caesium_to_neon ... ok
[INFO] [stdout] test algorithm::utils::embedding::tests::empty_pattern_embeds_once ... ok
[INFO] [stdout] test algorithm::utils::electronegativity_rank::tests::the_tiers_fill_the_scale_without_gaps ... ok
[INFO] [stdout] test algorithm::utils::embedding::tests::a_path_embeds_along_every_adjacent_walk ... ok
[INFO] [stdout] test algorithm::utils::embedding::tests::an_edge_does_not_embed_without_a_target_edge ... ok
[INFO] [stdout] test algorithm::utils::embedding::tests::pattern_larger_than_target_does_not_embed ... ok
[INFO] [stdout] test algorithm::utils::embedding::tests::single_vertex_embeds_at_every_target_vertex ... ok
[INFO] [stdout] test algorithm::utils::electronegativity_rank::tests::keeps_published_ties_tied ... ok
[INFO] [stdout] test algorithm::utils::electronegativity_rank::tests::has_no_rank_beyond_lawrencium ... ok
[INFO] [stdout] test algorithm::utils::embedding::tests::every_embedding_preserves_edges ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::a_linear_combination_of_basis_vectors_reduces_to_zero ... ok
[INFO] [stdout] test algorithm::utils::embedding::tests::incompatible_vertices_are_rejected ... ok
[INFO] [stdout] test algorithm::utils::embedding::tests::an_edge_embeds_at_every_adjacent_pair ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::a_vector_outside_the_span_reduces_to_nonzero ... ok
[INFO] [stdout] test algorithm::utils::embedding::tests::incompatible_edges_are_rejected ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::inserting_a_dependent_vector_leaves_the_rank_unchanged ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::inserting_a_dependent_vector_returns_false ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::inserting_an_independent_vector_increases_the_rank ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::inserting_an_independent_vector_returns_true ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::reduce_yields_a_canonical_coset_representative ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::reducing_against_an_empty_basis_returns_the_vector ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::the_span_is_independent_of_insertion_order ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::the_zero_vector_is_never_independent ... ok
[INFO] [stdout] test algorithm::utils::hash::tests::distinct_byte_strings_hash_differently ... ok
[INFO] [stdout] test algorithm::utils::embedding::tests::the_search_is_lazy ... ok
[INFO] [stdout] test algorithm::utils::hash::tests::distinct_values_hash_differently ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::a_full_rank_basis_contains_every_vector ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::an_inserted_vector_lies_in_the_span ... ok
[INFO] [stdout] test algorithm::utils::hash::tests::map_returns_the_value_for_an_inserted_key ... ok
[INFO] [stdout] test algorithm::utils::hash::tests::default_set_is_empty ... ok
[INFO] [stdout] test algorithm::utils::hash::tests::set_holds_every_distinct_key ... ok
[INFO] [stdout] test algorithm::utils::hash::tests::set_reports_an_absent_key_as_missing ... ok
[INFO] [stdout] test algorithm::utils::hash::tests::set_reports_an_inserted_key_as_present ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::a_cycle_is_a_single_orbit ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::empty_basis_is_empty ... ok
[INFO] [stdout] test algorithm::utils::hash::tests::reordering_a_compound_value_changes_the_hash ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::rank_counts_only_the_independent_insertions ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::a_regular_but_asymmetric_graph_has_singleton_orbits ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::a_rigid_graph_has_singleton_orbits ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::an_asymmetric_vertex_lies_in_its_own_orbit ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::an_orbit_is_named_by_its_least_member ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::an_edge_color_splits_a_shared_orbit ... ok
[INFO] [stdout] test algorithm::utils::hash::tests::hashing_is_deterministic ... ok
[INFO] [stdout] test algorithm::utils::hash::tests::map_returns_none_for_an_absent_key ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::empty_graph_has_an_empty_labeling ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::ranks_are_a_permutation_of_the_vertices ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::single_vertex_ranks_zero_in_its_own_orbit ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::a_regular_graph_still_ranks_to_a_permutation ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::a_seed_color_splits_a_shared_orbit ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::the_labeling_is_independent_of_vertex_order ... ok
[INFO] [stdout] test algorithm::utils::matching::tests::blossom_is_contracted_to_reach_a_perfect_matching ... ok
[INFO] [stdout] test algorithm::utils::matching::tests::disconnected_components_are_each_matched ... ok
[INFO] [stdout] test algorithm::utils::matching::tests::even_cycle_is_perfectly_matched ... ok
[INFO] [stdout] test algorithm::utils::matching::tests::empty_graph_matches_nothing ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::disconnected_components_can_share_an_orbit ... ok
[INFO] [stdout] test algorithm::utils::matching::tests::joined_triangles_are_perfectly_matched ... ok
[INFO] [stdout] test algorithm::utils::matching::tests::every_matched_pair_is_a_symmetric_edge ... ok
[INFO] [stdout] test algorithm::utils::matching::tests::isolated_vertex_is_unmatched ... ok
[INFO] [stdout] test algorithm::utils::matching::tests::odd_cycle_leaves_one_vertex_unmatched ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::symmetric_vertices_share_an_orbit ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::contains_key_is_true_for_present_key ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::empty_map_get_is_none ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::empty_map_is_empty ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::get_finds_maximum_key ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::the_cube_is_a_single_orbit ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::get_is_none_below_minimum_key ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::get_is_none_for_key_in_a_gap ... ok
[INFO] [stdout] test algorithm::utils::gf2_basis::tests::empty_basis_has_rank_zero ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::get_resolves_each_key_to_its_value ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::get_returns_none_for_absent_key ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::get_finds_minimum_key ... ok
[INFO] [stdout] test algorithm::utils::matching::tests::single_edge_matches_its_two_vertices ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::get_returns_value_for_present_key ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::empty_map_has_no_entries ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::get_is_none_above_maximum_key ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::contains_key_is_false_for_absent_key ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::lookup_is_independent_of_insertion_order ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::single_entry_map_has_length_one ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::single_entry_map_is_not_empty ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::empty_multimap_get_yields_no_values ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::empty_multimap_is_empty ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::empty_multimap_has_no_keys ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::get_finds_the_minimum_key ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::get_returns_all_of_a_keys_values_in_ascending_order ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::get_yields_no_values_above_the_maximum_key ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::get_yields_no_values_below_the_minimum_key ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::iter_yields_entries_in_ascending_key_order ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::get_yields_no_values_for_a_key_in_a_gap ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::get_finds_the_maximum_key ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::contains_key_is_false_for_an_absent_key ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::lookup_is_independent_of_input_order ... ok
[INFO] [stdout] test algorithm::utils::sorted_map::tests::len_counts_all_entries ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::single_key_multimap_has_one_key ... ok
[INFO] [stdout] test algorithm::utils::labeling::tests::a_seed_fixes_the_canonical_ranking ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::contains_key_is_true_for_a_present_key ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::iter_yields_each_key_with_its_values_in_key_order ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::single_key_multimap_is_not_empty ... ok
[INFO] [stdout] test algorithm::utils::valence_electrons::tests::counts_valence_electrons_by_group ... ok
[INFO] [stdout] test algorithm::valence::explicit::tests::site_valences_sum_to_twice_the_total_bond_order ... ok
[INFO] [stdout] test algorithm::valence::explicit::tests::valence_sums_all_incident_bonds ... ok
[INFO] [stdout] test algorithm::utils::valence_electrons::tests::every_value_is_between_one_and_eight ... ok
[INFO] [stdout] test algorithm::utils::valence_electrons::tests::has_no_value_outside_the_main_group ... ok
[INFO] [stdout] test algorithm::valence::lone_pairs::tests::an_odd_free_electron_count_rounds_down ... ok
[INFO] [stdout] test algorithm::utils::sorted_multimap::tests::len_counts_distinct_keys_not_values ... ok
[INFO] [stdout] test algorithm::valence::lone_pairs::tests::counts_lone_pairs_of_neutral_atoms ... ok
[INFO] [stdout] test algorithm::valence::lone_pairs::tests::negative_formal_charge_adds_electrons ... ok
[INFO] [stdout] test algorithm::valence::explicit::tests::each_bond_order_adds_its_multiplicity ... ok
[INFO] [stdout] test algorithm::valence::explicit::tests::one_aromatic_among_localized_bonds_is_undefined ... ok
[INFO] [stdout] test algorithm::valence::lone_pairs::tests::a_bare_atom_pairs_all_its_valence_electrons ... ok
[INFO] [stdout] test algorithm::valence::lone_pairs::tests::positive_formal_charge_removes_electrons ... ok
[INFO] [stdout] test algorithm::valence::lone_pairs::tests::undefined_when_the_electron_count_goes_negative ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::a_bond_free_site_needs_no_ranking ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::a_double_bond_moves_twice_the_electrons ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::a_homonuclear_bond_moves_nothing ... ok
[INFO] [stdout] test algorithm::valence::lone_pairs::tests::undefined_for_a_d_block_element ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::a_rank_tie_moves_nothing ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::a_triple_bond_moves_three_times_the_electrons ... ok
[INFO] [stdout] test algorithm::valence::explicit::tests::a_bondless_site_has_zero_valence ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::defined_for_a_d_block_element ... ok
[INFO] [stdout] test algorithm::valence::explicit::tests::an_aromatic_bond_leaves_the_valence_undefined ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::higher_bond_orders_move_their_full_multiple ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::a_bond_free_site_keeps_its_formal_charge ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::the_formal_charge_seeds_the_state ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::the_states_sum_to_the_net_charge ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::undefined_beside_an_aromatic_bond ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::undefined_beside_an_element_beyond_lawrencium ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::a_hypervalent_site_still_answers ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::iodomethane_iodine_is_plus_one ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::methane_carbon_takes_all_four_bonds ... ok
[INFO] [stdout] test algorithm::valence::lone_pairs::tests::radical_electrons_stay_unpaired ... ok
[INFO] [stdout] test algorithm::valence::lone_pairs::tests::undefined_beside_an_aromatic_bond ... ok
[INFO] [stdout] test primitive::id::tests::from_nonzero_preserves_the_value ... ok
[INFO] [stdout] test primitive::id::tests::display_shows_the_integer_value ... ok
[INFO] [stdout] test primitive::id::tests::get_returns_the_value_passed_to_new ... ok
[INFO] [stdout] test primitive::id::tests::new_accepts_the_maximum_value ... ok
[INFO] [stdout] test primitive::id::tests::option_is_the_same_size_as_the_raw_integer ... ok
[INFO] [stdout] test primitive::id::tests::ids_compare_equal_when_their_values_match ... ok
[INFO] [stdout] test primitive::stereo::tests::a_bond_anchors_a_double_bond ... ok
[INFO] [stdout] test primitive::id::tests::ids_order_by_their_integer_value ... ok
[INFO] [stdout] test primitive::stereo::tests::a_centers_reflection_preserves_the_pairwise_angles ... ok
[INFO] [stdout] test primitive::stereo::tests::a_chiral_descriptor_differs_from_its_mirror ... ok
[INFO] [stdout] test primitive::id::tests::new_with_one_is_some ... ok
[INFO] [stdout] test primitive::stereo::tests::a_descriptor_carries_its_configurations_kind ... ok
[INFO] [stdout] test algorithm::valence::oxidation_state::tests::undefined_when_the_total_leaves_the_charge_range ... ok
[INFO] [stdout] test primitive::id::tests::new_with_zero_is_none ... ok
[INFO] [stdout] test primitive::bond_order::tests::aromatic_maps_to_one_and_a_half ... ok
[INFO] [stdout] test primitive::bond_order::tests::integer_orders_map_to_their_multiplicity ... ok
[INFO] [stdout] test primitive::stereo::tests::a_reflection_of_the_neighbors_yields_a_different_configuration ... ok
[INFO] [stdout] test primitive::stereo::tests::a_site_anchors_every_coordination_center ... ok
[INFO] [stdout] test primitive::stereo::tests::an_axis_anchors_an_allene ... ok
[INFO] [stdout] test primitive::stereo::tests::chiral_geometries_are_chiral ... ok
[INFO] [stdout] test primitive::stereo::tests::cis_trans_and_square_planar_are_not_chiral ... ok
[INFO] [stdout] test primitive::stereo::tests::configuration_count_is_the_number_of_distinct_stereoisomers ... ok
[INFO] [stdout] test primitive::stereo::tests::configurations_differ_when_their_locus_or_kind_or_neighbors_differ ... ok
[INFO] [stdout] test primitive::stereo::tests::every_geometry_group_contains_the_identity ... ok
[INFO] [stdout] test primitive::stereo::tests::an_achiral_descriptor_is_its_own_mirror ... ok
[INFO] [stdout] test primitive::stereo::tests::a_centers_group_is_the_rotation_group_of_its_reference_directions ... ok
[INFO] [stdout] test primitive::stereo::tests::every_geometry_group_is_closed_under_composition ... ok
[INFO] [stdout] test primitive::stereo::tests::every_geometry_group_permutes_its_slots ... ok
[INFO] [stdout] test primitive::stereo::tests::kind_returns_the_geometry ... ok
[INFO] [stdout] test primitive::stereo::tests::loci_order_by_anchor_then_by_identifier ... ok
[INFO] [stdout] test primitive::stereo::tests::kinds_order_by_neighbor_count_then_configuration_count_then_locus ... ok
[INFO] [stdout] test primitive::stereo::tests::a_descriptor_ignores_a_rotation_of_the_neighbors ... ok
[INFO] [stdout] test primitive::stereo::tests::a_rotation_of_the_neighbors_yields_an_equal_configuration ... ok
[INFO] [stdout] test primitive::stereo::tests::every_geometry_reflection_permutes_its_slots ... ok
[INFO] [stdout] test primitive::stereo::tests::a_descriptor_ignores_the_order_of_equally_ranked_neighbors ... ok
[INFO] [stdout] test primitive::stereo::tests::new_rejects_an_empty_neighbor_list ... ok
[INFO] [stdout] test primitive::stereo::tests::a_two_ended_geometry_has_no_reference_directions ... ok
[INFO] [stdout] test primitive::stereo::tests::locus_returns_the_anchor ... ok
[INFO] [stdout] test primitive::stereo::tests::neighbors_are_the_configuration_substituents ... ok
[INFO] [stdout] test primitive::stereo::tests::only_the_edge_geometries_have_two_ends ... ok
[INFO] [stdout] test primitive::stereo::tests::new_rejects_a_kind_off_its_anchor ... ok
[INFO] [stdout] test primitive::stereo::tests::slot_count_is_the_neighbor_count_of_the_geometry ... ok
[INFO] [stdout] test primitive::stereo::tests::the_edge_group_is_the_rotation_group_of_an_allene_frame ... ok
[INFO] [stdout] test primitive::stereo::tests::only_an_axis_anchors_an_allene ... ok
[INFO] [stdout] test primitive::stereo::tests::only_a_site_anchors_a_coordination_center ... ok
[INFO] [stdout] test primitive::stereo::tests::present_directions_number_the_slots ... ok
[INFO] [stdout] test primitive::stereo::tests::new_rejects_more_neighbors_than_the_slot_count ... ok
[INFO] [stdout] test primitive::stereo::tests::only_a_bond_anchors_a_double_bond ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1002 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests vita_chem
[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" "8e58726d2ce1dd5e666780cdf3c67477d8ef51134616d519d09eb8f7a206ac71", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8e58726d2ce1dd5e666780cdf3c67477d8ef51134616d519d09eb8f7a206ac71", kill_on_drop: false }`
[INFO] [stdout] 8e58726d2ce1dd5e666780cdf3c67477d8ef51134616d519d09eb8f7a206ac71
