{
  "scenarios": [
    {
      "name": "Handle empty scenario titles without division by zero crash",
      "testMappings": [
        {
          "file": "src/utils/__tests__/scenario-similarity.test.ts",
          "lines": "29-50",
          "implMappings": [
            {
              "file": "src/utils/scenario-similarity.ts",
              "lines": [
                71,
                72,
                73
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Strip Gherkin keywords before step comparison",
      "testMappings": [
        {
          "file": "src/utils/__tests__/scenario-similarity.test.ts",
          "lines": "56-75",
          "implMappings": [
            {
              "file": "src/utils/scenario-similarity.ts",
              "lines": [
                95,
                96,
                97,
                98,
                99,
                100
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Extract technical terms with numbers as keywords",
      "testMappings": [
        {
          "file": "src/utils/__tests__/scenario-similarity.test.ts",
          "lines": "81-113",
          "implMappings": [
            {
              "file": "src/utils/scenario-similarity.ts",
              "lines": [
                141,
                142,
                143,
                144,
                145
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Handle scenarios with no extractable keywords",
      "testMappings": [
        {
          "file": "src/utils/__tests__/scenario-similarity.test.ts",
          "lines": "119-143",
          "implMappings": [
            {
              "file": "src/utils/similarity-algorithms.ts",
              "lines": [
                259,
                260,
                261,
                262,
                263,
                264
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Match scenarios with reordered Given steps",
      "testMappings": [
        {
          "file": "src/utils/__tests__/scenario-similarity.test.ts",
          "lines": "149-172",
          "implMappings": [
            {
              "file": "src/utils/similarity-algorithms.ts",
              "lines": [
                129,
                130,
                131,
                132,
                133,
                134,
                135,
                136,
                137,
                138,
                139,
                140,
                141,
                142,
                143,
                144,
                145,
                146,
                147,
                148,
                149,
                150,
                151,
                152,
                153,
                154,
                155,
                156,
                157,
                158,
                159,
                160,
                161,
                162,
                163,
                164,
                165,
                166,
                167,
                168,
                169,
                170,
                171,
                172,
                173
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Support partial step matching",
      "testMappings": [
        {
          "file": "src/utils/__tests__/scenario-similarity.test.ts",
          "lines": "178-201",
          "implMappings": [
            {
              "file": "src/utils/scenario-similarity.ts",
              "lines": [
                103,
                104,
                105,
                106,
                107,
                108,
                109,
                110,
                111,
                112,
                113,
                114,
                115,
                116,
                117,
                118,
                119,
                120
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Prevent false positives for short scenario titles",
      "testMappings": [
        {
          "file": "src/utils/__tests__/scenario-similarity.test.ts",
          "lines": "207-223",
          "implMappings": [
            {
              "file": "src/utils/scenario-similarity.ts",
              "lines": [
                89,
                90,
                91,
                92
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Jaro-Winkler algorithm for prefix matching",
      "testMappings": [
        {
          "file": "src/utils/__tests__/scenario-similarity.test.ts",
          "lines": "229-246",
          "implMappings": [
            {
              "file": "src/utils/similarity-algorithms.ts",
              "lines": [
                41,
                42,
                43,
                44,
                45,
                46,
                47,
                48,
                49,
                50,
                51,
                52,
                53,
                54,
                55,
                56,
                57,
                58,
                59,
                60,
                61,
                62,
                63,
                64,
                65,
                66,
                67,
                68,
                69,
                70,
                71,
                72,
                73,
                74,
                75,
                76,
                77,
                78,
                79,
                80,
                81,
                82,
                83,
                84,
                85,
                86,
                87,
                88,
                89,
                90,
                91,
                92,
                93,
                94,
                95,
                96,
                97,
                98,
                99,
                100,
                101,
                102,
                103,
                104,
                105,
                106,
                107,
                108,
                109,
                110,
                111,
                112,
                113,
                114,
                115,
                116,
                117,
                118,
                119
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Token Set Ratio for word order independence",
      "testMappings": [
        {
          "file": "src/utils/__tests__/scenario-similarity.test.ts",
          "lines": "252-273",
          "implMappings": [
            {
              "file": "src/utils/similarity-algorithms.ts",
              "lines": [
                129,
                130,
                131,
                132,
                133,
                134,
                135,
                136,
                137,
                138,
                139,
                140,
                141,
                142,
                143,
                144,
                145,
                146,
                147,
                148,
                149,
                150,
                151,
                152,
                153,
                154,
                155,
                156,
                157,
                158,
                159,
                160,
                161,
                162,
                163,
                164,
                165,
                166,
                167,
                168,
                169,
                170,
                171,
                172,
                173
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Trigram similarity for typo tolerance",
      "testMappings": [
        {
          "file": "src/utils/__tests__/scenario-similarity.test.ts",
          "lines": "279-296",
          "implMappings": [
            {
              "file": "src/utils/similarity-algorithms.ts",
              "lines": [
                183,
                184,
                185,
                186,
                187,
                188,
                189,
                190,
                191,
                192,
                193,
                194,
                195,
                196,
                197,
                198,
                199,
                200,
                201,
                202,
                203,
                204,
                205,
                206,
                207,
                208,
                209,
                210,
                211,
                212,
                213,
                214,
                215,
                216,
                217,
                218,
                219,
                220,
                221,
                222
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Gherkin Structural analysis with weighted steps",
      "testMappings": [
        {
          "file": "src/utils/__tests__/scenario-similarity.test.ts",
          "lines": "302-349",
          "implMappings": [
            {
              "file": "src/utils/similarity-algorithms.ts",
              "lines": [
                282,
                283,
                284,
                285,
                286,
                287,
                288,
                289,
                290,
                291,
                292,
                293,
                294,
                295,
                296,
                297,
                298,
                299,
                300,
                301,
                302,
                303,
                304,
                305,
                306,
                307,
                308,
                309,
                310,
                311,
                312,
                313,
                314,
                315,
                316,
                317,
                318,
                319,
                320,
                321,
                322,
                323,
                324,
                325,
                326,
                327,
                328,
                329,
                330,
                331,
                332,
                333,
                334,
                335,
                336,
                337,
                338,
                339,
                340,
                341,
                342
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Hybrid algorithm achieves 88% accuracy",
      "testMappings": [
        {
          "file": "src/utils/__tests__/scenario-similarity.test.ts",
          "lines": "355-399",
          "implMappings": [
            {
              "file": "src/utils/similarity-algorithms.ts",
              "lines": [
                353,
                354,
                355,
                356,
                357,
                358,
                359,
                360,
                361,
                362,
                363,
                364,
                365,
                366,
                367,
                368,
                369,
                370,
                371,
                372,
                373,
                374,
                375,
                376,
                377,
                378,
                379,
                380,
                381,
                382,
                383,
                384,
                385,
                386,
                387,
                388
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Configure algorithm weights dynamically",
      "testMappings": [
        {
          "file": "src/utils/__tests__/scenario-similarity.test.ts",
          "lines": "405-452",
          "implMappings": [
            {
              "file": "src/utils/similarity-algorithms.ts",
              "lines": [
                20,
                21,
                22,
                23,
                24,
                25,
                26,
                27,
                28,
                29,
                30,
                31
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Maintain backward compatibility with Levenshtein algorithm",
      "testMappings": [
        {
          "file": "src/utils/__tests__/scenario-similarity.test.ts",
          "lines": "458-496",
          "implMappings": [
            {
              "file": "src/utils/similarity-algorithms.ts",
              "lines": [
                358,
                359,
                360
              ]
            }
          ]
        }
      ]
    }
  ],
  "stats": {
    "totalScenarios": 14,
    "coveredScenarios": 14,
    "coveragePercent": 100,
    "testFiles": [
      "src/utils/__tests__/scenario-similarity.test.ts"
    ],
    "implFiles": [
      "src/utils/scenario-similarity.ts",
      "src/utils/similarity-algorithms.ts"
    ],
    "totalLinesCovered": 766
  }
}