agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
27 lines (21 loc) • 781 B
JavaScript
/**
* @file Calculate average similarity for a group of blocks
* @description Single responsibility: Calculate average similarity score across multiple code blocks
*/
const { calculateSemanticSimilarity } = require('../../ast/semanticSimilarityCalculator');
/**
* Calculate average similarity for a group of blocks
*/
function calculateAverageSimilarity(blocks) {
if (blocks.length < 2) return 1.0;
let totalSimilarity = 0;
let comparisons = 0;
for (let i = 0; i < blocks.length - 1; i++) {
for (let j = i + 1; j < blocks.length; j++) {
totalSimilarity += calculateSemanticSimilarity(blocks[i], blocks[j]);
comparisons++;
}
}
return comparisons > 0 ? totalSimilarity / comparisons : 0;
}
module.exports = calculateAverageSimilarity;