{ "schema_version": 1, "case_id": "quality-identity-metamorphic", "case_type": "metamorphic", "origin": "metamorphic", "backend": "source", "name": "quality_identity_metamorphic", "description": "Quality finding identities and multiplicities remain stable under TU ordering and process fanout.", "detectors": "clone,complexity,dead-statement,unused-function,redundant-store", "standard": "c++20", "min_body_stmts": 1, "require_unique_finding_ids": true, "validate_clone_families": true, "expect": { "min_findings": 3, "min_rule_findings": { "fold.clone": 1 } }, "relation": { "kind": "finding-multiset-invariance", "comparisons": [ { "name": "tu-order-and-worker-count", "baseline": { "sources": [ "../../fixtures/quality/structural_debt.cpp", "../../fixtures/quality/structural_clean.cpp", "../../fixtures/clones/exact.cpp", "../../fixtures/clones/renamed.cpp", "../../fixtures/clones/near_miss.cpp" ], "processes": 1 }, "transformed": { "sources": [ "../../fixtures/clones/near_miss.cpp", "../../fixtures/clones/renamed.cpp", "../../fixtures/clones/exact.cpp", "../../fixtures/quality/structural_clean.cpp", "../../fixtures/quality/structural_debt.cpp" ], "processes": 2 }, "mapping": { "fields": ["finding_id", "rule_id", "backend"] } } ] } }