UNPKG

agentsqripts

Version:

Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems

44 lines (40 loc) 1.92 kB
/** * @file Difference type aggregation utility for duplication pattern classification * @description Single responsibility: Aggregate and categorize different types of differences between code blocks * * This utility performs systematic aggregation of difference types identified during code * block comparison, providing quantitative analysis of variation patterns that help determine * whether detected similarities represent true duplication opportunities. The categorization * enables sophisticated analysis of refactoring potential and parameterization opportunities. * * Design rationale: * - Categorical difference aggregation enables systematic duplication analysis * - Quantitative totals provide statistical foundation for similarity assessment * - Type-specific counting reveals patterns in code variation (variables vs literals vs structure) * - Comprehensive categorization supports advanced duplication classification algorithms * - Systematic aggregation ensures consistent difference pattern analysis * * Difference categorization framework: * - Variable name differences: Indicates parameterizable variations in identifier usage * - String literal differences: Suggests configuration or data parameterization opportunities * - Numeric differences: Reveals mathematical or threshold parameterization potential * - Function call differences: Indicates behavioral variation that might be parameterizable * - Structural differences: Represents fundamental algorithmic or logic variations */ function analyzeDifferenceTypes(differences) { const totals = { total: 0, variableNames: 0, stringLiterals: 0, numbers: 0, functionCalls: 0, structure: 0 }; differences.forEach(diff => { Object.keys(totals).forEach(key => { if (diff[key]) totals[key] += diff[key]; }); }); return totals; } module.exports = analyzeDifferenceTypes;