pub struct VerifyConfig {
pub weights: Weights,
pub type3_min_composite: f64,
pub type2_min_lexical: f64,
pub high_confidence: f64,
pub medium_confidence: f64,
pub exact_epsilon: f64,
pub alignment_band: usize,
pub max_alignment_cells: usize,
}Expand description
Tuning for verification. Thresholds are provisional and calibrated against the mutation corpus.
Fields§
§weights: WeightsComposite-score weights.
type3_min_composite: f64Smallest composite a Type-3 pair must reach to be a clone at all.
Calibrated against the labelled corpora: the pairs deliberately built to share a skeleton while computing different things reach 0.69, and the weakest pair that is a real copy reaches 0.71. The threshold sits in that gap.
The gap is narrow, and which side an unlabelled pair falls on is decided almost entirely by lexical agreement — the lookalikes reach 0.77 there while the weakest real copy reaches 0.91. A composite near this threshold is therefore weak evidence by construction, which is what the low confidence band exists to say.
type2_min_lexical: f64Smallest lexical agreement required before an otherwise exact structural match can be called a safe Type-2 clone.
Below this floor, matching shape alone is insufficient evidence that the differing code is a consistent rename or literal substitution. Such pairs remain eligible for the ordinary Type-3 decision.
high_confidence: f64Composite at or above which a Type-3 finding is high confidence.
medium_confidence: f64Composite at or above which a Type-3 finding is medium confidence.
Kept above Self::type3_min_composite, or the low band could never
be reached and a finding sitting just over the acceptance threshold
would be reported as confidently as one well clear of it.
exact_epsilon: f64Tolerance for treating a similarity as exactly 1.0.
alignment_band: usizeHow far the statement alignment may stray from the diagonal that joins the two sequences’ ends, in statements.
The band bounds the alignment’s cost at O(min(n, m) * band) instead
of O(n * m). Widening it can only raise a pair’s similarity, so the
banded result is a lower bound: a real clone, whose alignment hugs that
diagonal, is measured exactly, while a pair that would need to wander
further is scored no higher than it deserves.
max_alignment_cells: usizeLargest alignment table, in cells.
The band alone bounds the table for units of comparable length; this bounds it for a pair whose lengths also differ widely, by narrowing the band further until the table fits. Narrowing only weakens the lower bound, so nothing is dropped — such a pair cannot align well enough to be a clone in any case.
Trait Implementations§
Source§impl Clone for VerifyConfig
impl Clone for VerifyConfig
Source§fn clone(&self) -> VerifyConfig
fn clone(&self) -> VerifyConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more