fedi-feed-router/backend/coverage-report/Services/dashboard.html

384 lines
34 KiB
HTML
Raw Normal View History

2025-08-03 20:59:09 +02:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Dashboard for /var/www/html/backend/app/Services</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="../_css/bootstrap.min.css?v=11.0.10" rel="stylesheet" type="text/css">
<link href="../_css/nv.d3.min.css?v=11.0.10" rel="stylesheet" type="text/css">
<link href="../_css/style.css?v=11.0.10" rel="stylesheet" type="text/css">
<link href="../_css/custom.css" rel="stylesheet" type="text/css">
</head>
<body>
<header>
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="../index.html">/var/www/html/backend/app</a></li>
<li class="breadcrumb-item"><a href="index.html">Services</a></li>
<li class="breadcrumb-item active">(Dashboard)</li>
</ol>
</nav>
</div>
</div>
</div>
</header>
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<h2>Classes</h2>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h3>Coverage Distribution</h3>
<div id="classCoverageDistribution" style="height: 300px;">
<svg></svg>
</div>
</div>
<div class="col-md-6">
<h3>Complexity</h3>
<div id="classComplexity" style="height: 300px;">
<svg></svg>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h3>Insufficient Coverage</h3>
<div class="scrollbox">
<table class="table">
<thead>
<tr>
<th>Class</th>
<th class="text-right">Coverage</th>
</tr>
</thead>
<tbody>
<tr><td><a href="Auth/LemmyAuthService.php.html#11">App\Services\Auth\LemmyAuthService</a></td><td class="text-right">0%</td></tr>
<tr><td><a href="OnboardingRedirectService.php.html#8">App\Services\OnboardingRedirectService</a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/BelgaArticlePageParser.php.html#5">App\Services\Parsers\BelgaArticlePageParser</a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/BelgaHomepageParser.php.html#5">App\Services\Parsers\BelgaHomepageParser</a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/VrtArticlePageParser.php.html#5">App\Services\Parsers\VrtArticlePageParser</a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/VrtHomepageParser.php.html#5">App\Services\Parsers\VrtHomepageParser</a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Publishing/ArticlePublishingService.php.html#17">App\Services\Publishing\ArticlePublishingService</a></td><td class="text-right">0%</td></tr>
<tr><td><a href="RoutingValidationService.php.html#10">App\Services\RoutingValidationService</a></td><td class="text-right">0%</td></tr>
<tr><td><a href="SystemStatusService.php.html#10">App\Services\SystemStatusService</a></td><td class="text-right">0%</td></tr>
2025-08-03 21:16:59 +02:00
<tr><td><a href="Http/HttpFetcher.php.html#8">App\Services\Http\HttpFetcher</a></td><td class="text-right">22%</td></tr>
2025-08-03 20:59:09 +02:00
<tr><td><a href="Parsers/BelgaHomepageParserAdapter.php.html#7">App\Services\Parsers\BelgaHomepageParserAdapter</a></td><td class="text-right">25%</td></tr>
<tr><td><a href="Parsers/VrtHomepageParserAdapter.php.html#7">App\Services\Parsers\VrtHomepageParserAdapter</a></td><td class="text-right">25%</td></tr>
2025-08-03 21:16:59 +02:00
<tr><td><a href="Parsers/BelgaArticleParser.php.html#7">App\Services\Parsers\BelgaArticleParser</a></td><td class="text-right">33%</td></tr>
<tr><td><a href="Parsers/VrtArticleParser.php.html#7">App\Services\Parsers\VrtArticleParser</a></td><td class="text-right">33%</td></tr>
<tr><td><a href="Factories/ArticleParserFactory.php.html#10">App\Services\Factories\ArticleParserFactory</a></td><td class="text-right">36%</td></tr>
<tr><td><a href="Article/ArticleFetcher.php.html#14">App\Services\Article\ArticleFetcher</a></td><td class="text-right">45%</td></tr>
2025-08-03 20:59:09 +02:00
<tr><td><a href="Article/ValidationService.php.html#7">App\Services\Article\ValidationService</a></td><td class="text-right">48%</td></tr>
<tr><td><a href="Log/LogSaver.php.html#9">App\Services\Log\LogSaver</a></td><td class="text-right">58%</td></tr>
<tr><td><a href="Factories/HomepageParserFactory.php.html#11">App\Services\Factories\HomepageParserFactory</a></td><td class="text-right">87%</td></tr>
</tbody>
</table>
</div>
</div>
<div class="col-md-6">
<h3>Project Risks</h3>
<div class="scrollbox">
<table class="table">
<thead>
<tr>
<th>Class</th>
<th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th>
</tr>
</thead>
<tbody>
<tr><td><a href="Parsers/BelgaArticlePageParser.php.html#5">App\Services\Parsers\BelgaArticlePageParser</a></td><td class="text-right">306</td></tr>
<tr><td><a href="Parsers/VrtArticlePageParser.php.html#5">App\Services\Parsers\VrtArticlePageParser</a></td><td class="text-right">210</td></tr>
<tr><td><a href="SystemStatusService.php.html#10">App\Services\SystemStatusService</a></td><td class="text-right">72</td></tr>
2025-08-03 21:16:59 +02:00
<tr><td><a href="Http/HttpFetcher.php.html#8">App\Services\Http\HttpFetcher</a></td><td class="text-right">46</td></tr>
2025-08-03 20:59:09 +02:00
<tr><td><a href="Auth/LemmyAuthService.php.html#11">App\Services\Auth\LemmyAuthService</a></td><td class="text-right">42</td></tr>
2025-08-03 21:16:59 +02:00
<tr><td><a href="Article/ArticleFetcher.php.html#14">App\Services\Article\ArticleFetcher</a></td><td class="text-right">30</td></tr>
2025-08-03 20:59:09 +02:00
<tr><td><a href="Publishing/ArticlePublishingService.php.html#17">App\Services\Publishing\ArticlePublishingService</a></td><td class="text-right">30</td></tr>
<tr><td><a href="RoutingValidationService.php.html#10">App\Services\RoutingValidationService</a></td><td class="text-right">30</td></tr>
2025-08-03 21:16:59 +02:00
<tr><td><a href="Factories/ArticleParserFactory.php.html#10">App\Services\Factories\ArticleParserFactory</a></td><td class="text-right">15</td></tr>
2025-08-03 20:59:09 +02:00
<tr><td><a href="Article/ValidationService.php.html#7">App\Services\Article\ValidationService</a></td><td class="text-right">8</td></tr>
<tr><td><a href="Log/LogSaver.php.html#9">App\Services\Log\LogSaver</a></td><td class="text-right">8</td></tr>
<tr><td><a href="OnboardingRedirectService.php.html#8">App\Services\OnboardingRedirectService</a></td><td class="text-right">6</td></tr>
<tr><td><a href="Factories/HomepageParserFactory.php.html#11">App\Services\Factories\HomepageParserFactory</a></td><td class="text-right">5</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<h2>Methods</h2>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h3>Coverage Distribution</h3>
<div id="methodCoverageDistribution" style="height: 300px;">
<svg></svg>
</div>
</div>
<div class="col-md-6">
<h3>Complexity</h3>
<div id="methodComplexity" style="height: 300px;">
<svg></svg>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h3>Insufficient Coverage</h3>
<div class="scrollbox">
<table class="table">
<thead>
<tr>
<th>Method</th>
<th class="text-right">Coverage</th>
</tr>
</thead>
<tbody>
<tr><td><a href="Article/ArticleFetcher.php.html#100"><abbr title="App\Services\Article\ArticleFetcher::saveArticle">saveArticle</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Article/ValidationService.php.html#39"><abbr title="App\Services\Article\ValidationService::validateByKeywords">validateByKeywords</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Auth/LemmyAuthService.php.html#16"><abbr title="App\Services\Auth\LemmyAuthService::getToken">getToken</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Factories/ArticleParserFactory.php.html#36"><abbr title="App\Services\Factories\ArticleParserFactory::getSupportedSources">getSupportedSources</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Factories/ArticleParserFactory.php.html#47"><abbr title="App\Services\Factories\ArticleParserFactory::registerParser">registerParser</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Http/HttpFetcher.php.html#33"><abbr title="App\Services\Http\HttpFetcher::fetchMultipleUrls">fetchMultipleUrls</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Log/LogSaver.php.html#38"><abbr title="App\Services\Log\LogSaver::debug">debug</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="OnboardingRedirectService.php.html#10"><abbr title="App\Services\OnboardingRedirectService::handleRedirect">handleRedirect</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/BelgaArticlePageParser.php.html#7"><abbr title="App\Services\Parsers\BelgaArticlePageParser::extractTitle">extractTitle</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/BelgaArticlePageParser.php.html#32"><abbr title="App\Services\Parsers\BelgaArticlePageParser::extractDescription">extractDescription</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/BelgaArticlePageParser.php.html#52"><abbr title="App\Services\Parsers\BelgaArticlePageParser::extractFullArticle">extractFullArticle</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/BelgaArticlePageParser.php.html#83"><abbr title="App\Services\Parsers\BelgaArticlePageParser::extractThumbnail">extractThumbnail</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/BelgaArticlePageParser.php.html#101"><abbr title="App\Services\Parsers\BelgaArticlePageParser::extractData">extractData</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/BelgaArticleParser.php.html#14"><abbr title="App\Services\Parsers\BelgaArticleParser::extractData">extractData</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/BelgaArticleParser.php.html#19"><abbr title="App\Services\Parsers\BelgaArticleParser::getSourceName">getSourceName</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/BelgaHomepageParser.php.html#10"><abbr title="App\Services\Parsers\BelgaHomepageParser::extractArticleUrls">extractArticleUrls</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/BelgaHomepageParserAdapter.php.html#14"><abbr title="App\Services\Parsers\BelgaHomepageParserAdapter::extractArticleUrls">extractArticleUrls</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/BelgaHomepageParserAdapter.php.html#19"><abbr title="App\Services\Parsers\BelgaHomepageParserAdapter::getHomepageUrl">getHomepageUrl</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/BelgaHomepageParserAdapter.php.html#24"><abbr title="App\Services\Parsers\BelgaHomepageParserAdapter::getSourceName">getSourceName</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/VrtArticlePageParser.php.html#7"><abbr title="App\Services\Parsers\VrtArticlePageParser::extractTitle">extractTitle</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/VrtArticlePageParser.php.html#27"><abbr title="App\Services\Parsers\VrtArticlePageParser::extractDescription">extractDescription</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/VrtArticlePageParser.php.html#42"><abbr title="App\Services\Parsers\VrtArticlePageParser::extractFullArticle">extractFullArticle</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/VrtArticlePageParser.php.html#67"><abbr title="App\Services\Parsers\VrtArticlePageParser::extractThumbnail">extractThumbnail</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/VrtArticlePageParser.php.html#83"><abbr title="App\Services\Parsers\VrtArticlePageParser::extractData">extractData</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/VrtArticleParser.php.html#14"><abbr title="App\Services\Parsers\VrtArticleParser::extractData">extractData</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/VrtArticleParser.php.html#19"><abbr title="App\Services\Parsers\VrtArticleParser::getSourceName">getSourceName</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/VrtHomepageParser.php.html#10"><abbr title="App\Services\Parsers\VrtHomepageParser::extractArticleUrls">extractArticleUrls</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/VrtHomepageParserAdapter.php.html#14"><abbr title="App\Services\Parsers\VrtHomepageParserAdapter::extractArticleUrls">extractArticleUrls</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/VrtHomepageParserAdapter.php.html#19"><abbr title="App\Services\Parsers\VrtHomepageParserAdapter::getHomepageUrl">getHomepageUrl</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Parsers/VrtHomepageParserAdapter.php.html#24"><abbr title="App\Services\Parsers\VrtHomepageParserAdapter::getSourceName">getSourceName</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Publishing/ArticlePublishingService.php.html#24"><abbr title="App\Services\Publishing\ArticlePublishingService::publishToRoutedChannels">publishToRoutedChannels</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Publishing/ArticlePublishingService.php.html#54"><abbr title="App\Services\Publishing\ArticlePublishingService::publishToChannel">publishToChannel</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="RoutingValidationService.php.html#16"><abbr title="App\Services\RoutingValidationService::validateLanguageCompatibility">validateLanguageCompatibility</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="SystemStatusService.php.html#15"><abbr title="App\Services\SystemStatusService::getSystemStatus">getSystemStatus</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="SystemStatusService.php.html#48"><abbr title="App\Services\SystemStatusService::canProcessArticles">canProcessArticles</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Article/ArticleFetcher.php.html#48"><abbr title="App\Services\Article\ArticleFetcher::getArticlesFromWebsiteFeed">getArticlesFromWebsiteFeed</abbr></a></td><td class="text-right">38%</td></tr>
<tr><td><a href="Article/ArticleFetcher.php.html#19"><abbr title="App\Services\Article\ArticleFetcher::getArticlesFromFeed">getArticlesFromFeed</abbr></a></td><td class="text-right">44%</td></tr>
<tr><td><a href="Log/LogSaver.php.html#46"><abbr title="App\Services\Log\LogSaver::log">log</abbr></a></td><td class="text-right">53%</td></tr>
<tr><td><a href="Article/ValidationService.php.html#9"><abbr title="App\Services\Article\ValidationService::validate">validate</abbr></a></td><td class="text-right">66%</td></tr>
2025-08-03 21:16:59 +02:00
<tr><td><a href="Factories/ArticleParserFactory.php.html#20"><abbr title="App\Services\Factories\ArticleParserFactory::getParser">getParser</abbr></a></td><td class="text-right">80%</td></tr>
2025-08-03 20:59:09 +02:00
<tr><td><a href="Factories/HomepageParserFactory.php.html#24"><abbr title="App\Services\Factories\HomepageParserFactory::getParser">getParser</abbr></a></td><td class="text-right">80%</td></tr>
2025-08-03 21:16:59 +02:00
<tr><td><a href="Article/ArticleFetcher.php.html#83"><abbr title="App\Services\Article\ArticleFetcher::fetchArticleData">fetchArticleData</abbr></a></td><td class="text-right">88%</td></tr>
2025-08-03 20:59:09 +02:00
</tbody>
</table>
</div>
</div>
<div class="col-md-6">
<h3>Project Risks</h3>
<div class="scrollbox">
<table class="table">
<thead>
<tr>
<th>Method</th>
<th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th>
</tr>
</thead>
<tbody>
<tr><td><a href="SystemStatusService.php.html#15"><abbr title="App\Services\SystemStatusService::getSystemStatus">getSystemStatus</abbr></a></td><td class="text-right">56</td></tr>
<tr><td><a href="Auth/LemmyAuthService.php.html#16"><abbr title="App\Services\Auth\LemmyAuthService::getToken">getToken</abbr></a></td><td class="text-right">42</td></tr>
<tr><td><a href="Http/HttpFetcher.php.html#33"><abbr title="App\Services\Http\HttpFetcher::fetchMultipleUrls">fetchMultipleUrls</abbr></a></td><td class="text-right">42</td></tr>
<tr><td><a href="Parsers/BelgaArticlePageParser.php.html#7"><abbr title="App\Services\Parsers\BelgaArticlePageParser::extractTitle">extractTitle</abbr></a></td><td class="text-right">30</td></tr>
<tr><td><a href="RoutingValidationService.php.html#16"><abbr title="App\Services\RoutingValidationService::validateLanguageCompatibility">validateLanguageCompatibility</abbr></a></td><td class="text-right">30</td></tr>
<tr><td><a href="Parsers/BelgaArticlePageParser.php.html#32"><abbr title="App\Services\Parsers\BelgaArticlePageParser::extractDescription">extractDescription</abbr></a></td><td class="text-right">20</td></tr>
<tr><td><a href="Parsers/BelgaArticlePageParser.php.html#52"><abbr title="App\Services\Parsers\BelgaArticlePageParser::extractFullArticle">extractFullArticle</abbr></a></td><td class="text-right">20</td></tr>
<tr><td><a href="Parsers/VrtArticlePageParser.php.html#7"><abbr title="App\Services\Parsers\VrtArticlePageParser::extractTitle">extractTitle</abbr></a></td><td class="text-right">20</td></tr>
<tr><td><a href="Article/ValidationService.php.html#39"><abbr title="App\Services\Article\ValidationService::validateByKeywords">validateByKeywords</abbr></a></td><td class="text-right">12</td></tr>
<tr><td><a href="Parsers/BelgaArticlePageParser.php.html#83"><abbr title="App\Services\Parsers\BelgaArticlePageParser::extractThumbnail">extractThumbnail</abbr></a></td><td class="text-right">12</td></tr>
<tr><td><a href="Parsers/VrtArticlePageParser.php.html#27"><abbr title="App\Services\Parsers\VrtArticlePageParser::extractDescription">extractDescription</abbr></a></td><td class="text-right">12</td></tr>
<tr><td><a href="Parsers/VrtArticlePageParser.php.html#42"><abbr title="App\Services\Parsers\VrtArticlePageParser::extractFullArticle">extractFullArticle</abbr></a></td><td class="text-right">12</td></tr>
<tr><td><a href="Parsers/VrtArticlePageParser.php.html#67"><abbr title="App\Services\Parsers\VrtArticlePageParser::extractThumbnail">extractThumbnail</abbr></a></td><td class="text-right">12</td></tr>
<tr><td><a href="Publishing/ArticlePublishingService.php.html#24"><abbr title="App\Services\Publishing\ArticlePublishingService::publishToRoutedChannels">publishToRoutedChannels</abbr></a></td><td class="text-right">12</td></tr>
<tr><td><a href="Article/ArticleFetcher.php.html#100"><abbr title="App\Services\Article\ArticleFetcher::saveArticle">saveArticle</abbr></a></td><td class="text-right">6</td></tr>
<tr><td><a href="Factories/ArticleParserFactory.php.html#47"><abbr title="App\Services\Factories\ArticleParserFactory::registerParser">registerParser</abbr></a></td><td class="text-right">6</td></tr>
<tr><td><a href="OnboardingRedirectService.php.html#10"><abbr title="App\Services\OnboardingRedirectService::handleRedirect">handleRedirect</abbr></a></td><td class="text-right">6</td></tr>
<tr><td><a href="Publishing/ArticlePublishingService.php.html#54"><abbr title="App\Services\Publishing\ArticlePublishingService::publishToChannel">publishToChannel</abbr></a></td><td class="text-right">6</td></tr>
<tr><td><a href="Article/ArticleFetcher.php.html#48"><abbr title="App\Services\Article\ArticleFetcher::getArticlesFromWebsiteFeed">getArticlesFromWebsiteFeed</abbr></a></td><td class="text-right">5</td></tr>
<tr><td><a href="Article/ArticleFetcher.php.html#19"><abbr title="App\Services\Article\ArticleFetcher::getArticlesFromFeed">getArticlesFromFeed</abbr></a></td><td class="text-right">4</td></tr>
2025-08-03 21:16:59 +02:00
<tr><td><a href="Factories/ArticleParserFactory.php.html#20"><abbr title="App\Services\Factories\ArticleParserFactory::getParser">getParser</abbr></a></td><td class="text-right">3</td></tr>
2025-08-03 20:59:09 +02:00
<tr><td><a href="Factories/HomepageParserFactory.php.html#24"><abbr title="App\Services\Factories\HomepageParserFactory::getParser">getParser</abbr></a></td><td class="text-right">3</td></tr>
<tr><td><a href="Log/LogSaver.php.html#46"><abbr title="App\Services\Log\LogSaver::log">log</abbr></a></td><td class="text-right">2</td></tr>
<tr><td><a href="Article/ValidationService.php.html#9"><abbr title="App\Services\Article\ValidationService::validate">validate</abbr></a></td><td class="text-right">2</td></tr>
<tr><td><a href="Article/ArticleFetcher.php.html#83"><abbr title="App\Services\Article\ArticleFetcher::fetchArticleData">fetchArticleData</abbr></a></td><td class="text-right">2</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<footer>
<hr/>
<p>
2025-08-03 21:16:59 +02:00
<small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 11.0.10</a> using <a href="https://www.php.net/" target="_top">PHP 8.4.10</a> and <a href="https://phpunit.de/">PHPUnit 11.5.28</a> at Sun Aug 3 19:15:34 UTC 2025.</small>
2025-08-03 20:59:09 +02:00
</p>
</footer>
</div>
<script src="../_js/jquery.min.js?v=11.0.10" type="text/javascript"></script>
<script src="../_js/d3.min.js?v=11.0.10" type="text/javascript"></script>
<script src="../_js/nv.d3.min.js?v=11.0.10" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
nv.addGraph(function() {
var chart = nv.models.multiBarChart();
chart.tooltips(false)
.showControls(false)
.showLegend(false)
.reduceXTicks(false)
.staggerLabels(true)
.yAxis.tickFormat(d3.format('d'));
d3.select('#classCoverageDistribution svg')
2025-08-03 21:16:59 +02:00
.datum(getCoverageDistributionData([9,0,0,3,3,2,1,0,0,1,0,1], "Class Coverage"))
2025-08-03 20:59:09 +02:00
.transition().duration(500).call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
nv.addGraph(function() {
var chart = nv.models.multiBarChart();
chart.tooltips(false)
.showControls(false)
.showLegend(false)
.reduceXTicks(false)
.staggerLabels(true)
.yAxis.tickFormat(d3.format('d'));
d3.select('#methodCoverageDistribution svg')
2025-08-03 21:16:59 +02:00
.datum(getCoverageDistributionData([35,0,0,0,1,1,1,1,0,3,0,14], "Method Coverage"))
2025-08-03 20:59:09 +02:00
.transition().duration(500).call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
function getCoverageDistributionData(data, label) {
var labels = [
'0%',
'0-10%',
'10-20%',
'20-30%',
'30-40%',
'40-50%',
'50-60%',
'60-70%',
'70-80%',
'80-90%',
'90-100%',
'100%'
];
var values = [];
$.each(labels, function(key) {
values.push({x: labels[key], y: data[key]});
});
return [
{
key: label,
values: values,
color: "#4572A7"
}
];
}
nv.addGraph(function() {
var chart = nv.models.scatterChart()
.showDistX(true)
.showDistY(true)
.showLegend(false)
.forceX([0, 100]);
chart.tooltipContent(function(graph) {
return '<p>' + graph.point.class + '</p>';
});
chart.xAxis.axisLabel('Code Coverage (in percent)');
chart.yAxis.axisLabel('Cyclomatic Complexity');
d3.select('#classComplexity svg')
2025-08-03 21:16:59 +02:00
.datum(getComplexityData([[45.45454545454545,11,"<a href=\"Article\/ArticleFetcher.php.html#14\">App\\Services\\Article\\ArticleFetcher<\/a>"],[48,5,"<a href=\"Article\/ValidationService.php.html#7\">App\\Services\\Article\\ValidationService<\/a>"],[0,6,"<a href=\"Auth\/LemmyAuthService.php.html#11\">App\\Services\\Auth\\LemmyAuthService<\/a>"],[100,13,"<a href=\"DashboardStatsService.php.html#9\">App\\Services\\DashboardStatsService<\/a>"],[36.36363636363637,6,"<a href=\"Factories\/ArticleParserFactory.php.html#10\">App\\Services\\Factories\\ArticleParserFactory<\/a>"],[87.5,5,"<a href=\"Factories\/HomepageParserFactory.php.html#11\">App\\Services\\Factories\\HomepageParserFactory<\/a>"],[22.727272727272727,9,"<a href=\"Http\/HttpFetcher.php.html#8\">App\\Services\\Http\\HttpFetcher<\/a>"],[58.82352941176471,6,"<a href=\"Log\/LogSaver.php.html#9\">App\\Services\\Log\\LogSaver<\/a>"],[0,2,"<a href=\"OnboardingRedirectService.php.html#8\">App\\Services\\OnboardingRedirectService<\/a>"],[0,17,"<a href=\"Parsers\/BelgaArticlePageParser.php.html#5\">App\\Services\\Parsers\\BelgaArticlePageParser<\/a>"],[33.33333333333333,3,"<a href=\"Parsers\/BelgaArticleParser.php.html#7\">App\\Services\\Parsers\\BelgaArticleParser<\/a>"],[0,1,"<a href=\"Parsers\/BelgaHomepageParser.php.html#5\">App\\Services\\Parsers\\BelgaHomepageParser<\/a>"],[25,4,"<a href=\"Parsers\/BelgaHomepageParserAdapter.php.html#7\">App\\Services\\Parsers\\BelgaHomepageParserAdapter<\/a>"],[0,14,"<a href=\"Parsers\/VrtArticlePageParser.php.html#5\">App\\Services\\Parsers\\VrtArticlePageParser<\/a>"],[33.33333333333333,3,"<a href=\"Parsers\/VrtArticleParser.php.html#7\">App\\Services\\Parsers\\VrtArticleParser<\/a>"],[0,1,"<a href=\"Parsers\/VrtHomepageParser.php.html#5\">App\\Services\\Parsers\\VrtHomepageParser<\/a>"],[25,4,"<a href=\"Parsers\/VrtHomepageParserAdapter.php.html#7\">App\\Services\\Parsers\\VrtHomepageParserAdapter<\/a>"],[0,5,"<a href=\"Publishing\/ArticlePublishingService.php.html#17\">App\\Services\\Publishing\\ArticlePublishingService<\/a>"],[0,5,"<a href=\"RoutingValidationService.php.html#10\">App\\Services\\RoutingValidationService<\/a>"],[0,8,"<a href=\"SystemStatusService.php.html#10\">App\\Services\\SystemStatusService<\/a>"]], 'Class Complexity'))
2025-08-03 20:59:09 +02:00
.transition()
.duration(500)
.call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
nv.addGraph(function() {
var chart = nv.models.scatterChart()
.showDistX(true)
.showDistY(true)
.showLegend(false)
.forceX([0, 100]);
chart.tooltipContent(function(graph) {
return '<p>' + graph.point.class + '</p>';
});
chart.xAxis.axisLabel('Code Coverage (in percent)');
chart.yAxis.axisLabel('Method Complexity');
d3.select('#methodComplexity svg')
2025-08-03 21:16:59 +02:00
.datum(getComplexityData([[44.44444444444444,3,"<a href=\"Article\/ArticleFetcher.php.html#19\">App\\Services\\Article\\ArticleFetcher::getArticlesFromFeed<\/a>"],[100,1,"<a href=\"Article\/ArticleFetcher.php.html#38\">App\\Services\\Article\\ArticleFetcher::getArticlesFromRssFeed<\/a>"],[38.88888888888889,3,"<a href=\"Article\/ArticleFetcher.php.html#48\">App\\Services\\Article\\ArticleFetcher::getArticlesFromWebsiteFeed<\/a>"],[88.88888888888889,2,"<a href=\"Article\/ArticleFetcher.php.html#83\">App\\Services\\Article\\ArticleFetcher::fetchArticleData<\/a>"],[0,2,"<a href=\"Article\/ArticleFetcher.php.html#100\">App\\Services\\Article\\ArticleFetcher::saveArticle<\/a>"],[66.66666666666666,2,"<a href=\"Article\/ValidationService.php.html#9\">App\\Services\\Article\\ValidationService::validate<\/a>"],[0,3,"<a href=\"Article\/ValidationService.php.html#39\">App\\Services\\Article\\ValidationService::validateByKeywords<\/a>"],[0,6,"<a href=\"Auth\/LemmyAuthService.php.html#16\">App\\Services\\Auth\\LemmyAuthService::getToken<\/a>"],[100,4,"<a href=\"DashboardStatsService.php.html#14\">App\\Services\\DashboardStatsService::getStats<\/a>"],[100,1,"<a href=\"DashboardStatsService.php.html#46\">App\\Services\\DashboardStatsService::getAvailablePeriods<\/a>"],[100,7,"<a href=\"DashboardStatsService.php.html#60\">App\\Services\\DashboardStatsService::getDateRange<\/a>"],[100,1,"<a href=\"DashboardStatsService.php.html#77\">App\\Services\\DashboardStatsService::getSystemStats<\/a>"],[80,3,"<a href=\"Factories\/ArticleParserFactory.php.html#20\">App\\Services\\Factories\\ArticleParserFactory::getParser<\/a>"],[0,1,"<a href=\"Factories\/ArticleParserFactory.php.html#36\">App\\Services\\Factories\\ArticleParserFactory::getSupportedSources<\/a>"],[0,2,"<a href=\"Factories\/ArticleParserFactory.php.html#47\">App\\Services\\Factories\\ArticleParserFactory::registerParser<\/a>"],[80,3,"<a href=\"Factories\/HomepageParserFactory.php.html#24\">App\\Services\\Factories\\HomepageParserFactory::getParser<\/a>"],[100,2,"<a href=\"Factories\/HomepageParserFactory.php.html#37\">App\\Services\\Factories\\HomepageParserFactory::getParserForFeed<\/a>"],[100,3,"<a href=\"Http\/HttpFetcher.php.html#10\">App\\Services\\Http\\HttpFetcher::fetchHtml<\/a>"],[0,6,"<a href=\"Http\/HttpFetcher.php.html#33\">App\\Services\\Http\\HttpFetcher::fetchMultipleUrls<\/a>"],[100,1,"<a href=\"Log\/LogSaver.php.html#14\">App\\Services\\Log\\LogSaver::info<\/a>"],[100,1,"<a href=\"Log\/LogSaver.php.html#22\">App\\Services\\Log\\LogSaver::error<\/a>"],[100,1,"<a href=\"Log\/LogSaver.php.html#30\">App\\Services\\Log\\LogSaver::warning<\/a>"],[0,1,"<a href=\"Log\/LogSaver.php.html#38\">App\\Services\\Log\\LogSaver::debug<\/a>"],[53.84615384615385,2,"<a href=\"Log\/LogSaver.php.html#46\">App\\Services\\Log\\LogSaver::log<\/a>"],[0,2,"<a href=\"OnboardingRedirectService.php.html#10\">App\\Services\\OnboardingRedirectService::handleRedirect<\/a>"],[0,5,"<a href=\"Parsers\/BelgaArticlePageParser.php.html#7\">App\\Services\\Parsers\\BelgaArticlePageParser::extractTitle<\/a>"],[0,4,"<a href=\"Parsers\/BelgaArticlePageParser.php.html#32\">App\\Services\\Parsers\\BelgaArticlePageParser::extractDescription<\/a>"],[0,4,"<a href=\"Parsers\/BelgaArticlePageParser.php.html#52\">App\\Services\\Parsers\\BelgaArticlePageParser::extractFullArticle<\/a>"],[0,3,"<a href=\"Parsers\/BelgaArticlePageParser.php.html#83\">App\\Services\\Parsers\\BelgaArticlePageParser::extractThumbnail<\/a>"],[0,1,"<a href=\"Parsers\/BelgaArticlePageParser.php.html#101\">App\\Services\\Parsers\\BelgaArticlePageParser::extractData<\/a>"],[100,1,"<a href=\"Parsers\/BelgaArticleParser.php.html#9\">App\\Services\\Parsers\\BelgaArticleParser::canParse<\/a>"],[0,1,"<a href=\"Parsers\/BelgaArticleParser.php.html#14\">App\\Services\\Parsers\\BelgaArticleParser::extractData<\/a>"],[0,1,"<a href=\"Parsers\/BelgaArticleParser.php.html#19\">App\\Services\\Parsers\\BelgaArticleParser::getSourceName<\/a>"],[0,1,"<a href=\"Parsers\/BelgaHomepageParser.php.html#10\">App\\Services\\Parsers\\BelgaHomepageParser::extractAr
2025-08-03 20:59:09 +02:00
.transition()
.duration(500)
.call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
function getComplexityData(data, label) {
var values = [];
$.each(data, function(key) {
var value = Math.round(data[key][0]*100) / 100;
values.push({
x: value,
y: data[key][1],
class: data[key][2],
size: 0.05,
shape: 'diamond'
});
});
return [
{
key: label,
values: values,
color: "#4572A7"
}
];
}
});
</script>
</body>
</html>