Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

search configuration hit part 1 #65

Closed
18 tasks
rrahn opened this issue Apr 27, 2020 · 0 comments · Fixed by seqan/seqan3#1639
Closed
18 tasks

search configuration hit part 1 #65

rrahn opened this issue Apr 27, 2020 · 0 comments · Fixed by seqan/seqan3#1639
Assignees
Labels
ready to tackle This story was discussed and can be immidietly tackled
Milestone

Comments

@rrahn
Copy link
Contributor

rrahn commented Apr 27, 2020

Description

Following the design decissions at seqan/seqan3#1580 restructure the configuration mode.
Here are the design decisions: https://docs.google.com/document/d/1Lv7zxtDUgAeHGcnJ6IWFzgIbJ6rFJlUt2linAOjlIBg/edit#heading=h.mfoteev73s87

See following code example:

//usage: 

seqan3::search_cfg::hit_all_best

// construction - no construction since it is a tag

seqan3::search_cfg::hit_all_best
// this is an instance of seqan3::search_cfg::hit_all_best_tag     

//access by seqan::get:

auto && var = seqan3::get<seqan3::search_cfg::hit_all_best_tag>(config);

//check if present:

constexpr bool has_hit_all_best_tag = config_t::template exists<seqan3::search_cfg::detail::hit_all_best_tag>();

The other configs are analoge, except for strata which captures an argument:

// construction

seqan3::search_cfg::hit_strata hit_strata(5)    

// later access and set

hit_strata.stratum = 5;    

// access by seqan::get:

auto && hit_strata = seqan3::get<seqan3::search_cfg::hit_strata>(config);
hit_strata.stratum = 5;

// check if present:

constexpr bool has_hit_strata = config_t::template exists<seqan3::search_cfg::detail::hit_strata>();

Acceptance Criteria

  • The seqan3::search_cfg::mode{seqan3::search_cfg::all} is a top level configuration element seqan3::search_cfg::hit_all
  • The seqan3::search_cfg::mode{seqan3::search_cfg::all_best} is a top level configuration element seqan3::search_cfg::hit_all_best
  • The seqan3::search_cfg::mode{seqan3::search_cfg::best} is a top level configuration element seqan3::search_cfg::hit_best
  • The seqan3::search_cfg::mode{seqan3::search_cfg::strate{3}} is a top level configuration element seqan3::search_cfg::hit_strata{3}
  • Combining any of these with each other will cause a static assertion

Tasks

  • Add seqan3::search_cfg::hit_all configuration mode with documentation
  • Add seqan3::search_cfg::hit_all_best configuration mode with documentation
  • Add seqan3::search_cfg::hit_best configuration mode with documentation
  • Add seqan3::search_cfg::hit_strata configuration mode with documentation
  • Write summary documentation on the seqan3/search/configuration/all.hpp module page.

Definition of Done

  • Implementation and design approved
  • Unit tests pass
  • Test coverage = 100%
  • Microbenchmarks added and/or affected microbenchmarks < 5% performance drop
  • API documentation added
  • Tutorial/teaching material added
  • Test suite compiles in less than 30 seconds (on travis)
  • Changelog entry added
@rrahn rrahn added the ready to tackle This story was discussed and can be immidietly tackled label Apr 27, 2020
@rrahn rrahn changed the title search configuration hit search configuration hit part 1 Apr 30, 2020
@rrahn rrahn added this to the Sprint 4 milestone May 12, 2020
@smehringer smehringer self-assigned this May 14, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready to tackle This story was discussed and can be immidietly tackled
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants