Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Comparator ¶
type Comparator struct {
// contains filtered or unexported fields
}
Comparator compares analysis results to identify trends and changes.
The comparator takes two AnalysisResults (current and previous) and generates a ComparisonResult showing:
- Metric deltas (changes in numeric values)
- Trends (improving, worsening, or stable)
- Issue changes (new issues, fixed issues)
Used for historical comparison when --compare flag is used.
func NewComparator ¶
func NewComparator(stableThreshold float64) *Comparator
NewComparator creates a new comparator with the given stable threshold.
The stable threshold determines what percentage change is considered "stable" vs "improving/worsening". For example, with a 5% threshold:
- Complexity change of 2% is "stable"
- Complexity change of 8% is "improving" or "worsening"
Parameters:
- stableThreshold: Percentage (0-100) for stable detection (e.g., 5.0 for 5%)
Example:
comp := NewComparator(5.0) result := comp.Compare(currentResult, previousResult)
func (*Comparator) Compare ¶
func (c *Comparator) Compare(current, previous *analyzer.AnalysisResult, previousTimestamp time.Time) *ComparisonResult
Compare generates a comparison between current and previous analysis results.
Returns nil if previous is nil (nothing to compare against). Calculates deltas for all metrics, detects trends, and categorizes issues.
Parameters:
- current: The current analysis result
- previous: The previous analysis result to compare against
- previousTimestamp: The timestamp of the previous report
Returns:
- ComparisonResult with deltas, trends, and issue changes
Example:
comp := NewComparator(5.0)
comparison := comp.Compare(currentResult, previousResult, previousTimestamp)
if comparison.Trends.Complexity == TrendImproving {
fmt.Println("Complexity is improving!")
}
type ComparisonResult ¶
type ComparisonResult struct {
Current *analyzer.AnalysisResult
Previous *analyzer.AnalysisResult
PreviousTimestamp time.Time // Timestamp of the previous report
Deltas *MetricDeltas
Trends *Trends
NewIssues []*analyzer.Issue
FixedIssues []*analyzer.Issue
}
ComparisonResult contains the results of comparing two analysis runs.
type FloatDelta ¶
FloatDelta represents a change in a float metric.
type MetricDeltas ¶
type MetricDeltas struct {
TotalFiles IntDelta
TotalLines IntDelta
TotalFunctions IntDelta
AvgComplexity FloatDelta
AvgCoverage FloatDelta
IssueCount IntDelta
}
MetricDeltas contains the changes in metrics between two runs.
type TrendDirection ¶
type TrendDirection int
TrendDirection indicates whether a metric is improving, worsening, or stable.
const ( TrendStable TrendDirection = iota TrendImproving TrendWorsening )
func (TrendDirection) Icon ¶
func (t TrendDirection) Icon() string
Icon returns an emoji icon representing the trend.
func (TrendDirection) String ¶
func (t TrendDirection) String() string
String returns a human-readable representation of the trend.
type Trends ¶
type Trends struct {
Complexity TrendDirection
Coverage TrendDirection
IssueCount TrendDirection
}
Trends indicates the direction of change for key metrics.