Class: Necropsy::Bench::PrecisionGate
- Inherits:
-
Object
- Object
- Necropsy::Bench::PrecisionGate
- Defined in:
- lib/necropsy/bench/precision_gate.rb
Constant Summary collapse
- MAX_FEATURES =
100- IMPROVEMENT_DIRECTIONS =
{ 'candidate_precision' => :increase, 'known_positive_recall' => :increase, 'candidate_count' => :increase, 'candidate_loc' => :increase, 'blocked_count' => :decrease, 'blocked_rate' => :decrease, 'unknown_finding_count' => :decrease, 'unknown_finding_rate' => :decrease, 'unknown_resolution_rate' => :decrease }.freeze
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(policy:, candidate_union_summary:, feature_ablation:) ⇒ PrecisionGate
constructor
A new instance of PrecisionGate.
Constructor Details
#initialize(policy:, candidate_union_summary:, feature_ablation:) ⇒ PrecisionGate
Returns a new instance of PrecisionGate.
19 20 21 22 23 |
# File 'lib/necropsy/bench/precision_gate.rb', line 19 def initialize(policy:, candidate_union_summary:, feature_ablation:) @policy = policy @candidate_union_summary = candidate_union_summary @feature_ablation = feature_ablation end |
Instance Method Details
#call ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/necropsy/bench/precision_gate.rb', line 25 def call validate! quality = quality_status features = feature_status checks = { 'precision' => quality.fetch('precision_passed'), 'candidate_yield' => quality.fetch('yield_passed'), 'default_features_evaluated' => features.values.all? { |feature| feature['evaluated'] }, 'default_features_improve' => features.values.all? { |feature| feature['passed'] } } { 'schema_version' => 1, 'enforced' => true, 'policy' => normalized_policy, 'quality' => quality, 'features' => features, 'checks' => checks, 'passed' => checks.values.all? } end |