any_noncopyable & pipeline_base_base::fetch_any(std::string key) { node_map::ptr map = m_nodeMap->find_authority(); runtime rt(map); std::vector<node *> sinks; rt.get_item_sinks(sinks); for (size_t j = 0; j < sinks.size(); ++j) { if (sinks[j]->can_fetch(key)) return sinks[j]->fetch_any(key); } std::stringstream ss; ss << "Tried to fetch nonexistent key '" << key << '\''; throw invalid_argument_exception(ss.str()); }
/// \brief TODOCUMENT hrc_duration view_cache_index_entry_test_suite_fixture::time_comparison(const vcie_vcie_vec_pair &arg_vcies_pair ///< TODOCUMENT ) { const auto &vcies_1 = arg_vcies_pair.first; const auto &vcies_2 = arg_vcies_pair.second; if ( vcies_1.size() != vcies_2.size() ) { BOOST_THROW_EXCEPTION(invalid_argument_exception("")); } const hrc_time_point before_time_point = high_resolution_clock::now(); compare( vcies_1, vcies_2, make_default_vcie_match_criteria() ); return high_resolution_clock::now() - before_time_point; }
/// \brief TODOCUMENT hrc_duration_vec view_cache_index_entry_test_suite_fixture::time_comparisons(const vcie_vcie_vec_pair &arg_vcies_pair, ///< TODOCUMENT const size_t &arg_num_repeats ///< TODOCUMENT ) { const auto vcies_1 = arg_vcies_pair.first; const auto vcies_2 = arg_vcies_pair.second; if ( vcies_1.size() != vcies_1.size() ) { BOOST_THROW_EXCEPTION(invalid_argument_exception("")); } return generate_n_build<hrc_duration_vec>( arg_num_repeats, [&] () { return time_comparison( arg_vcies_pair ); } ); }
/// Return the indices (offset 0) of the first and last trues in the list of bools /// /// \pre The deque<bool> must contain at least one true value /// /// \returns A pair<size_t, size_t> containing the indices of the first and last true values respectively static size_size_pair get_indices_of_first_and_last_trues(const bool_deq &arg_entry ///< The list of bools to query ) { if ( ! contains( arg_entry, true) ) { BOOST_THROW_EXCEPTION(invalid_argument_exception("Cannot find indices of first and last true values because there are no true values")); } const size_t first_true_idx = numeric_cast<size_t>( distance( common::cbegin ( arg_entry ), find( arg_entry, true ) ) ); const size_t last_true_ridx = numeric_cast<size_t>( distance( common::crbegin( arg_entry ), find( common::crbegin( arg_entry ), common::crend( arg_entry), true ) ) ); const size_t last_true_idx = arg_entry.size() - last_true_ridx - 1; // cerr << "First and last indices for "; // for (const bool &value : arg_entry) { // cerr << " " << boolalpha << value; // } // cerr << " are " << first_true_idx << " and " << last_true_idx << endl; return make_pair(first_true_idx, last_true_idx); }
/// \brief TODOCUMENT view_cache_index_entry_vec view_cache_index_entry_test_suite_fixture::build_random_vcies(const size_t &arg_num_entries, ///< TODOCUMENT const protein &arg_protein, ///< TODOCUMENT mt19937 &arg_rng ///< TODOCUMENT ) { if ( arg_protein.get_length() < 2 ) { BOOST_THROW_EXCEPTION(invalid_argument_exception("Cannot build random vcies if the protein has fewer than two residues")); } const auto &length = arg_protein.get_length(); return generate_n_build<view_cache_index_entry_vec>( arg_num_entries, [&] () { const auto index_pair = pick_random_pair( 0_z, length - 1, arg_rng ); return make_view_cache_index_entry( arg_protein, index_pair.first, index_pair.second ); } ); }