capability_skeleton_validation/
deviation_flag.rs

1// ---------------- [ File: capability-skeleton-validation/src/deviation_flag.rs ]
2crate::ix!();
3
4/// Enumerates every possible way a Skeleton can deviate from GrowerTreeConfiguration,
5/// storing only numeric data (no strings).
6#[derive(Debug, Clone, PartialEq)]
7pub enum DeviationFlag {
8    // 1) Core Depth & Breadth
9    DepthExceeded {
10        expected: u8,
11        actual: u8,
12    },
13    DepthUnder {
14        expected: u8,
15        actual: u8,
16    },
17    BreadthExceeded {
18        node_id: u16,
19        expected: u8,
20        actual: u8,
21    },
22    BreadthUnder {
23        node_id: u16,
24        expected: u8,
25        actual: u8,
26    },
27
28    // 2) Level-Specific Breadth / Density
29    LevelSpecificBreadthExceeded {
30        level: u8,
31        expected: u8,
32        actual: u8,
33    },
34    LevelSpecificBreadthUnder {
35        level: u8,
36        expected: u8,
37        actual: u8,
38    },
39    LevelSpecificDensityExceeded {
40        level: u8,
41        expected: u8,
42        actual: u8,
43    },
44    LevelSpecificDensityUnder {
45        level: u8,
46        expected: u8,
47        actual: u8,
48    },
49
50    // 3) Weighted Branching
51    WeightedBranchingVarianceOutOfRange {
52        node_id: u16,
53        min_allowed: u8,
54        max_allowed: u8,
55        actual: u8,
56    },
57    WeightedBranchingAverageOff {
58        expected_mean: u8,
59        actual_mean: f32,
60    },
61
62    // 4) Level-Skipping
63    LevelSkippingUnderUsed {
64        level: u8,
65        expected_probability: f32,
66        actual_probability: f32,
67    },
68    LevelSkippingOverUsed {
69        level: u8,
70        expected_probability: f32,
71        actual_probability: f32,
72    },
73
74    // 5) Capstone
75    CapstoneMissingSingle,
76    CapstoneMissingProbabilistic {
77        expected_fraction: f32,
78        actual_fraction: f32,
79    },
80    CapstoneExcessProbabilistic {
81        expected_fraction: f32,
82        actual_fraction: f32,
83    },
84
85    // 6) AI Confidence
86    AIConfidenceUnused {
87        base_factor: u8,
88        factor_multiplier: f32,
89    },
90    AIConfidenceOverApplied {
91        node_id: u16,
92        expected: u8,
93        actual: u8,
94    },
95
96    // 7) Missing Root
97    MissingRoot,
98}