/** * Mutation Testing - Inject faults into test assertions to verify test quality. * * Tests the tests: mutate assertions and check if the test suite catches the mutations. */ import type { TestCase } from './types'; export type MutationType = 'remove_assertion' | 'change_expected_output' | 'weaken_threshold' | 'swap_tool_name' | 'remove_tool_sequence' | 'negate_assertion'; export interface Mutation { type: MutationType; description: string; testName: string; field: string; original: any; mutated: any; } export interface MutationResult { mutation: Mutation; caught: boolean; message?: string; } export interface MutationReport { total: number; caught: number; escaped: number; score: number; results: MutationResult[]; } /** * Generate mutations for a test case. */ export declare function generateMutations(test: TestCase): Mutation[]; /** * Apply a mutation to a test case, returning a mutated copy. */ export declare function applyMutation(test: TestCase, mutation: Mutation): TestCase; /** * Run mutation analysis on a set of test cases. * Accepts a test runner function that returns pass/fail for a test. */ export declare function runMutationAnalysis(tests: TestCase[], runTest: (test: TestCase) => Promise): Promise; /** * Format mutation report for terminal display. */ export declare function formatMutationReport(report: MutationReport): string; //# sourceMappingURL=mutation.d.ts.map