forge-mutation-tester
Version:
Mutation testing tool for Solidity smart contracts using Gambit
66 lines • 2.03 kB
TypeScript
export interface CoverageReport {
overallCoverage: number;
lineCoverage: number;
functionCoverage: number;
branchCoverage: number;
uncoveredLines: UncoveredLine[];
uncoveredFunctions: UncoveredFunction[];
uncoveredBranches: UncoveredBranch[];
fileReports: FileCoverageReport[];
}
export interface UncoveredLine {
file: string;
lineNumber: number;
code: string;
importance: 'high' | 'medium' | 'low';
}
export interface UncoveredFunction {
file: string;
functionName: string;
lineNumber: number;
signature: string;
importance: 'high' | 'medium' | 'low';
}
export interface UncoveredBranch {
file: string;
lineNumber: number;
condition: string;
branchType: 'if' | 'for' | 'while' | 'require' | 'assert';
importance: 'high' | 'medium' | 'low';
}
export interface FileCoverageReport {
file: string;
lineCoverage: number;
functionCoverage: number;
branchCoverage: number;
totalLines: number;
coveredLines: number;
totalFunctions: number;
coveredFunctions: number;
}
export interface PrioritizedUncovered {
lines: UncoveredLine[];
functions: UncoveredFunction[];
branches: UncoveredBranch[];
files: string[];
}
export declare class CoverageService {
analyzeCoverage(projectPath: string): Promise<CoverageReport>;
private analyzeForgeProjectCoverage;
private analyzeHardhatProjectCoverage;
private parseCoverageData;
private parseLCOVData;
private findSourceFiles;
private analyzeFileForUncoveredCode;
prioritizeUncoveredCode(coverageReport: CoverageReport): Promise<PrioritizedUncovered>;
private isExecutableLine;
private identifyBranchType;
private assessLineImportance;
private assessFunctionImportance;
private assessBranchImportance;
private calculateAverageLineCoverage;
private calculateAverageFunctionCoverage;
private calculateAverageBranchCoverage;
private getImportanceScore;
}
//# sourceMappingURL=coverage.service.d.ts.map