<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="VB6Parse Test Coverage Report - Comprehensive test coverage metrics">
<title>Test Coverage - VB6Parse</title>
<link rel="stylesheet" href="assets/css/style.css">
<link rel="stylesheet" href="assets/css/docs-style.css">
<link rel="stylesheet" href="assets/css/coverage.css">
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns@3.0.0/dist/chartjs-adapter-date-fns.bundle.min.js"></script>
<script src="assets/js/theme-switcher.js"></script>
<script src="assets/js/stats.js"></script>
<script src="assets/js/coverage-history.js"></script>
</head>
<body>
<header class="docs-header">
<div class="container">
<h1><a href="index.html">VB6Parse</a> / <a href="documentation.html">Documentation</a> / Coverage Report</h1>
<p class="tagline">Test Coverage Metrics for <span id="test-count-header">5,000+</span> Tests</p>
</div>
</header>
<nav class="docs-nav">
<div class="container">
<a href="index.html">Home</a>
<a href="documentation.html">Documentation</a>
<a href="https://docs.rs/vb6parse" target="_blank">API Docs</a>
<a href="https://github.com/scriptandcompile/vb6parse" target="_blank">GitHub</a>
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle theme">
<span class="theme-icon">🌙</span>
</button>
</div>
</nav>
<main class="container" style="padding: 60px 20px;">
<div id="loading" class="loading">
<div class="loading-spinner"></div>
<p>Loading coverage data...</p>
</div>
<div id="error" class="error" style="display: none;">
<div class="error-icon">⚠️</div>
<h2>Failed to load coverage data</h2>
<p id="error-message"></p>
</div>
<div id="coverage-content" style="display: none;">
<div id="regression-alert" class="regression-alert" style="display: none;">
<div class="alert-icon">⚠️</div>
<div class="alert-content">
<strong>Coverage Regression Detected</strong>
<p id="regression-message">Coverage has decreased compared to previous snapshot.</p>
</div>
</div>
<div class="coverage-summary">
<div class="coverage-card">
<h3>Line Coverage</h3>
<div class="coverage-percent" id="line-percent">--%</div>
<div id="line-trend" class="trend-indicator"></div>
<div class="coverage-bar">
<div class="coverage-bar-fill" id="line-bar" style="width: 0%"></div>
</div>
<div class="coverage-details" id="line-details">- / - lines</div>
<p class="coverage-explanation">Percentage of executable code lines that were executed during testing</p>
</div>
<div class="coverage-card">
<h3>Function Coverage</h3>
<div class="coverage-percent" id="function-percent">--%</div>
<div id="function-trend" class="trend-indicator"></div>
<div class="coverage-bar">
<div class="coverage-bar-fill" id="function-bar" style="width: 0%"></div>
</div>
<div class="coverage-details" id="function-details">- / - functions</div>
<p class="coverage-explanation">Percentage of functions and methods that were called at least once</p>
</div>
<div class="coverage-card">
<h3>Region Coverage</h3>
<div class="coverage-percent" id="region-percent">--%</div>
<div id="region-trend" class="trend-indicator"></div>
<div class="coverage-bar">
<div class="coverage-bar-fill" id="region-bar" style="width: 0%"></div>
</div>
<div class="coverage-details" id="region-details">- / - regions</div>
<p class="coverage-explanation">Percentage of code regions (branches, conditionals) that were tested</p>
</div>
</div>
<div id="stats-loading" style="background: var(--card-bg); border: 1px solid var(--border-color); border-radius: 8px; padding: 3rem 2rem; text-align: center; margin: 2rem 0;">
<div style="width: 48px; height: 48px; border: 4px solid var(--border-color); border-top-color: var(--primary-color); border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto 1rem;"></div>
<p style="color: var(--text-secondary); margin: 0;">Test statistics being generated...</p>
<style>
@keyframes spin {
to { transform: rotate(360deg); }
}
</style>
</div>
<div class="stats-grid" id="stats-grid" style="display: none;">
<div class="stat-card">
<div class="stat-number" data-stat="lib_tests"></div>
<div class="stat-label">Library Tests</div>
</div>
<div class="stat-card">
<div class="stat-number" data-stat="doc_tests"></div>
<div class="stat-label">Doc Tests</div>
</div>
<div class="stat-card">
<div class="stat-number" data-stat="integration_tests"></div>
<div class="stat-label">Integration Tests</div>
</div>
<div class="stat-card">
<div class="stat-number" data-stat="fuzz_targets"></div>
<div class="stat-label">Fuzz Targets</div>
</div>
</div>
<p class="testing-info">
VB6Parse uses comprehensive testing including unit tests, snapshot testing with
<a href="https://docs.rs/insta" target="_blank">insta</a>, benchmarking with
<a href="https://github.com/bheisler/criterion.rs" target="_blank">criterion</a>,
and fuzz testing with <a href="https://github.com/rust-fuzz/cargo-fuzz" target="_blank">cargo-fuzz</a>.
</p>
<div id="historical-trends" class="historical-section" style="display: none;">
<h2>Historical Coverage Trends</h2>
<div class="time-range-selector">
<button class="time-range-btn active" data-range="7">Last 7 Days</button>
<button class="time-range-btn" data-range="30">Last 30 Days</button>
<button class="time-range-btn" data-range="90">Last 90 Days</button>
<button class="time-range-btn" data-range="all">All Time</button>
</div>
<div class="chart-container">
<canvas id="trends-chart"></canvas>
</div>
<div class="chart-legend">
<p><strong>Chart shows:</strong> Coverage percentage trends over time. Higher is better. <em>Click any data point to view that commit on GitHub.</em></p>
</div>
</div>
<div id="test-trends" class="historical-section" style="display: none;">
<h2>Test Count Growth</h2>
<div class="chart-container">
<canvas id="test-chart"></canvas>
</div>
<div class="chart-legend">
<p><strong>Chart shows:</strong> Total test count over time. Click any data point to view that commit on GitHub.</p>
</div>
</div>
<div id="recent-snapshots" class="historical-section" style="display: none;">
<h2>Recent Snapshots</h2>
<div class="snapshots-controls">
<button id="export-csv" class="export-btn">📊 Export CSV</button>
</div>
<div class="snapshots-table-wrapper">
<table class="snapshots-table">
<thead>
<tr>
<th>Date</th>
<th>Commit</th>
<th>Line %</th>
<th>Function %</th>
<th>Region %</th>
<th>Tests</th>
</tr>
</thead>
<tbody id="snapshots-table-body">
</tbody>
</table>
</div>
</div>
<div class="file-list">
<h2>Files Needing Coverage</h2>
<div class="file-filter">
<input type="text" id="file-search" placeholder="Filter files by name...">
</div>
<table class="file-table">
<thead>
<tr>
<th>File</th>
<th>Lines</th>
<th>Functions</th>
<th>Regions</th>
</tr>
</thead>
<tbody id="file-table-body">
</tbody>
</table>
</div>
<div class="file-list" id="complete-coverage-section" style="display: none;">
<h2>Files with 100% Coverage</h2>
<div class="file-filter">
<input type="text" id="complete-file-search" placeholder="Filter files by name...">
</div>
<table class="file-table">
<thead>
<tr>
<th>File</th>
<th>Lines</th>
<th>Functions</th>
<th>Regions</th>
</tr>
</thead>
<tbody id="complete-file-table-body">
</tbody>
</table>
</div>
</div>
</main>
<footer>
<div class="container">
<p>VB6Parse is licensed under the <a href="https://opensource.org/licenses/MIT" target="_blank">MIT License</a></p>
<p>Built with ❤️ by <a href="https://github.com/scriptandcompile" target="_blank">ScriptAndCompile</a></p>
</div>
</footer>
</body>
</html>