pub enum BasicStrategyKind {
Linear,
LinearReverse,
Binary,
}
Expand description
The possible strategies for searching the graph.
Variants§
Linear
Search the nodes in the order that they were provided.
LinearReverse
Search the nodes in the reverse order that they were provided.
Binary
Conduct a binary search on the nodes by partitioning the nodes into two groups of approximately equal size.
TODO: Partitioning into groups of approximately equal size isn’t
actually optimal for the DAG case. Really, we want to maximize the
information that we gain from each test. The git bisect
algorithm at
https://git-scm.com/docs/git-bisect-lk2009#_bisection_algorithm_discussed
discusses a metric to find the best partition for the subgraph which
remains to be tested.
See also git-bisect
’s skip algorithm:
https://git-scm.com/docs/git-bisect-lk2009#_skip_algorithm. This does
not use the same skip algorithm, and instead uses a deterministic
approach. In order to solve the following problem:
sometimes the best bisection points all happened to be in an area where all the commits are untestable. And in this case the user was asked to test many untestable commits, which could be very inefficient.
We instead consider the hypothetical case that the node is a success, and yield further nodes as if it were a success, and then interleave those nodes with the hypothetical failure case.
Resources:
Trait Implementations§
Source§impl Clone for BasicStrategyKind
impl Clone for BasicStrategyKind
Source§fn clone(&self) -> BasicStrategyKind
fn clone(&self) -> BasicStrategyKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for BasicStrategyKind
impl Debug for BasicStrategyKind
Source§impl Hash for BasicStrategyKind
impl Hash for BasicStrategyKind
Source§impl PartialEq for BasicStrategyKind
impl PartialEq for BasicStrategyKind
impl Copy for BasicStrategyKind
impl Eq for BasicStrategyKind
impl StructuralPartialEq for BasicStrategyKind
Auto Trait Implementations§
impl Freeze for BasicStrategyKind
impl RefUnwindSafe for BasicStrategyKind
impl Send for BasicStrategyKind
impl Sync for BasicStrategyKind
impl Unpin for BasicStrategyKind
impl UnwindSafe for BasicStrategyKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.