( actualValue: number | null, comparatorValue: number | null, metric: DiscoveryMetricName, tolerancePercent: number )
| 295 | } |
| 296 | |
| 297 | function compareMetricWithinTolerance( |
| 298 | actualValue: number | null, |
| 299 | comparatorValue: number | null, |
| 300 | metric: DiscoveryMetricName, |
| 301 | tolerancePercent: number |
| 302 | ): DiscoveryMetricComparison { |
| 303 | const lowerIsBetter = |
| 304 | metric === 'averagePayloadBytes' || |
| 305 | metric === 'averageEstimatedTokens' || |
| 306 | metric === 'averageFirstRelevantHit'; |
| 307 | const multiplier = 1 + tolerancePercent / 100; |
| 308 | const passes = |
| 309 | actualValue !== null && |
| 310 | comparatorValue !== null && |
| 311 | (lowerIsBetter |
| 312 | ? actualValue <= comparatorValue * multiplier |
| 313 | : actualValue >= comparatorValue * (1 - tolerancePercent / 100)); |
| 314 | |
| 315 | return { |
| 316 | metric, |
| 317 | comparatorValue, |
| 318 | actualValue, |
| 319 | passes |
| 320 | }; |
| 321 | } |
| 322 | |
| 323 | function evaluateBaselineGate( |
| 324 | summary: DiscoverySummaryType, |
no outgoing calls
no test coverage detected