Mutation
76.1%
score
none%
ratchet floor
601
mutants caught
189
mutants that survived
| File | Score | Caught | Survived | |
|---|---|---|---|---|
apps/advocate/src/eligibility/engine.ts | 64.8% | 215 | 117 | |
packages/gates/src/gate.ts | 74.4% | 29 | 10 | |
packages/runtime/src/approval.ts | 80.0% | 56 | 14 | |
packages/runtime/src/governor.ts | 96.4% | 80 | 3 | |
apps/advocate/src/domain/tone.ts | 77.3% | 102 | 30 | |
packages/gates/src/ratchet.ts | 84.1% | 74 | 14 | |
packages/gates/src/verdict.ts | 97.8% | 45 | 1 |
Survivors to kill next
| File | Line | Change that went unnoticed |
|---|---|---|
| apps/advocate/src/eligibility/engine.ts | 28 | ArithmeticOperator: extra / (size - arr.length) |
| apps/advocate/src/eligibility/engine.ts | 28 | EqualityOperator: size >= arr.length |
| apps/advocate/src/eligibility/engine.ts | 37 | StringLiteral: "" |
| apps/advocate/src/eligibility/engine.ts | 38 | StringLiteral: "" |
| apps/advocate/src/eligibility/engine.ts | 40 | StringLiteral: "" |
| apps/advocate/src/eligibility/engine.ts | 39 | StringLiteral: "" |
| apps/advocate/src/eligibility/engine.ts | 43 | ArrayDeclaration: [] |
| apps/advocate/src/eligibility/engine.ts | 43 | StringLiteral: "" |
| apps/advocate/src/eligibility/engine.ts | 43 | ArrayDeclaration: ["Stryker was here"] |
| apps/advocate/src/eligibility/engine.ts | 46 | ArrayDeclaration: ["Stryker was here"] |
| apps/advocate/src/eligibility/engine.ts | 48 | EqualityOperator: credits > 6 |
| apps/advocate/src/eligibility/engine.ts | 49 | OptionalChaining: s.receives.snap |
| apps/advocate/src/eligibility/engine.ts | 49 | ArrayDeclaration: ["Stryker was here"] |
| apps/advocate/src/eligibility/engine.ts | 58 | ConditionalExpression: true |
| apps/advocate/src/eligibility/engine.ts | 58 | ConditionalExpression: false |
| packages/gates/src/gate.ts | 46 | MethodExpression: cases.some(c => c.status === 'fail') |
| packages/gates/src/gate.ts | 55 | StringLiteral: "" |
| packages/gates/src/gate.ts | 56 | StringLiteral: "" |
| packages/gates/src/gate.ts | 57 | ConditionalExpression: false |
| packages/runtime/src/approval.ts | 36 | StringLiteral: "" |
| packages/runtime/src/approval.ts | 36 | StringLiteral: `` |
| packages/runtime/src/approval.ts | 49 | StringLiteral: "" |
| packages/runtime/src/approval.ts | 49 | ObjectLiteral: {} |
| packages/runtime/src/approval.ts | 53 | ConditionalExpression: false |
| packages/runtime/src/approval.ts | 53 | StringLiteral: "" |
| packages/runtime/src/approval.ts | 54 | ConditionalExpression: false |
| packages/runtime/src/approval.ts | 54 | StringLiteral: "" |
| packages/runtime/src/approval.ts | 55 | StringLiteral: "" |
| packages/runtime/src/approval.ts | 56 | EqualityOperator: new Date(token.expiresAt).getTime() <= now |
| packages/runtime/src/approval.ts | 27 | ArithmeticOperator: 30 / 60 |
| packages/runtime/src/approval.ts | 27 | BlockStatement: {} |
| packages/runtime/src/approval.ts | 28 | ConditionalExpression: false |
| packages/runtime/src/governor.ts | 30 | OptionalChaining: parts.find(p => p.type === t).value |
| packages/runtime/src/governor.ts | 38 | EqualityOperator: s < e |
| apps/advocate/src/domain/tone.ts | 25 | EqualityOperator: w.length < 3 |
| apps/advocate/src/domain/tone.ts | 26 | Regex: /(?:[laeiouy]es|ed|[^laeiouy]e)$/ |
| apps/advocate/src/domain/tone.ts | 26 | Regex: /(?:[^laeiouy]es|ed|[^laeiouy]e)/ |
| apps/advocate/src/domain/tone.ts | 26 | Regex: /y/ |
| apps/advocate/src/domain/tone.ts | 27 | OptionalChaining: groups.length |
| apps/advocate/src/domain/tone.ts | 39 | StringLiteral: "Stryker was here!" |
| apps/advocate/src/domain/tone.ts | 40 | Regex: /\b[A-Z][\w'.&-]*(?:\s(?:of|and|the|for|de|&)?\s*[A-Z][\w'.&-]*)+/g |
| apps/advocate/src/domain/tone.ts | 40 | Regex: /\b[A-Z][\w'.&-]*(?:\s+(?:of|and|the|for|de|&)?\S*[A-Z][\w'.&-]*)+/g |
| apps/advocate/src/domain/tone.ts | 40 | StringLiteral: "" |
| apps/advocate/src/domain/tone.ts | 41 | Regex: /[.!?](\s|$)/g |
| apps/advocate/src/domain/tone.ts | 41 | ArrayDeclaration: ["Stryker was here"] |
| apps/advocate/src/domain/tone.ts | 42 | Regex: /\s/ |
| apps/advocate/src/domain/tone.ts | 63 | StringLiteral: "" |
| apps/advocate/src/domain/tone.ts | 66 | StringLiteral: `` |
| apps/advocate/src/domain/tone.ts | 66 | EqualityOperator: grade >= targetGrade + lim.gradeSlack |
| packages/gates/src/ratchet.ts | 31 | StringLiteral: `` |
| packages/gates/src/ratchet.ts | 33 | StringLiteral: `` |
| packages/gates/src/ratchet.ts | 35 | EqualityOperator: current <= state.floor |
| packages/gates/src/ratchet.ts | 37 | StringLiteral: `` |
| packages/gates/src/ratchet.ts | 51 | StringLiteral: `` |
| packages/gates/src/ratchet.ts | 52 | EqualityOperator: after.floor <= before.floor |
| packages/gates/src/ratchet.ts | 53 | StringLiteral: "" |
| packages/gates/src/ratchet.ts | 54 | ConditionalExpression: true |
| packages/gates/src/ratchet.ts | 55 | StringLiteral: `` |
| packages/gates/src/ratchet.ts | 56 | StringLiteral: `` |
| packages/gates/src/ratchet.ts | 57 | MethodExpression: entry.reason |
| packages/gates/src/ratchet.ts | 57 | EqualityOperator: entry.reason.trim().length <= 20 |
| packages/gates/src/ratchet.ts | 57 | StringLiteral: "" |
| packages/gates/src/ratchet.ts | 58 | StringLiteral: `` |
| packages/gates/src/verdict.ts | 34 | StringLiteral: "" |