Add: Added Coverage Screenshots And htlmReport.
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 242 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 241 KiB |
@@ -0,0 +1,154 @@
|
||||
/*
|
||||
* Copyright 2000-2021 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #fff;
|
||||
font-family: helvetica neue, tahoma, arial, sans-serif;
|
||||
font-size: 82%;
|
||||
color: #151515;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin: 0.5em 0;
|
||||
color: #010101;
|
||||
font-weight: normal;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin: 0.5em 0;
|
||||
color: #010101;
|
||||
font-weight: normal;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #1564C2;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
span.separator {
|
||||
color: #9BA9BA;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
div.content {
|
||||
width: 99%;
|
||||
}
|
||||
|
||||
table.coverageStats {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table.overallStats {
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
table.coverageStats td, table.coverageStats th {
|
||||
padding: 4px 2px;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
table.coverageStats th {
|
||||
background-color: #959BA4;
|
||||
border: none;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
table.coverageStats th.coverageStat {
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
table.coverageStats th a {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
table.coverageStats th a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
table.coverageStats th.sortedDesc a {
|
||||
background: url(../img/arrowDown.gif) no-repeat 100% 2px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
table.coverageStats th.sortedAsc a {
|
||||
background: url(../img/arrowUp.gif) no-repeat 100% 2px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
div.footer {
|
||||
margin: 2em .5em;
|
||||
font-size: 85%;
|
||||
text-align: left;
|
||||
line-height: 140%;
|
||||
}
|
||||
|
||||
code.sourceCode {
|
||||
width: 100%;
|
||||
border: 1px solid #ccc;
|
||||
font: normal 12px 'Menlo', 'Bitstream Vera Sans Mono', 'Courier New', 'Courier', monospace;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
code.sourceCode b {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
code.sourceCode span.number {
|
||||
color: #151515;
|
||||
}
|
||||
|
||||
code.sourceCode .fc {
|
||||
background-color: #cfc;
|
||||
}
|
||||
|
||||
code.sourceCode .pc {
|
||||
background-color: #ffc;
|
||||
}
|
||||
|
||||
code.sourceCode .nc {
|
||||
background-color: #fcc;
|
||||
}
|
||||
|
||||
.percent, .absValue {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
.percent .green, .absValue .green {
|
||||
color: #32cc32;
|
||||
}
|
||||
|
||||
.percent .red, .absValue .red {
|
||||
color: #f00;
|
||||
}
|
||||
|
||||
.percent .totalDiff {
|
||||
color: #3f3f3f;
|
||||
}
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
/*
|
||||
* Copyright 2000-2021 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
Intellij Idea-like styling (c) Vasily Polovnyov <vast@whiteants.net>
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
color: #000;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.hljs-subst,
|
||||
.hljs-title {
|
||||
font-weight: normal;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #808080;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-meta {
|
||||
color: #808000;
|
||||
}
|
||||
|
||||
.hljs-tag {
|
||||
background: #efefef;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-name,
|
||||
.hljs-literal,
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-type,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
font-weight: bold;
|
||||
color: #000080;
|
||||
}
|
||||
|
||||
.hljs-attribute,
|
||||
.hljs-number,
|
||||
.hljs-regexp,
|
||||
.hljs-link {
|
||||
font-weight: bold;
|
||||
color: #0000ff;
|
||||
}
|
||||
|
||||
.hljs-number,
|
||||
.hljs-regexp,
|
||||
.hljs-link {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.hljs-string {
|
||||
color: #008000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-formula {
|
||||
color: #000;
|
||||
background: #d0eded;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-doctag {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.hljs-variable,
|
||||
.hljs-template-variable {
|
||||
color: #660e7a;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background: #baeeba;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background: #ffc8bd;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-ln-numbers {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 3em;
|
||||
border-right: 1px solid #ccc;
|
||||
font-style: normal;
|
||||
text-align: right;
|
||||
background-color: #eee;
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 89 B |
Binary file not shown.
|
After Width: | Height: | Size: 91 B |
@@ -0,0 +1,782 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > Summary</title>
|
||||
<style type="text/css">
|
||||
@import "./css/coverage.css";
|
||||
@import "./css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="./js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: all classes
|
||||
</div>
|
||||
|
||||
<h1>Overall Coverage Summary </h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">all classes</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(45/89)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(333/734)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
43.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(664/1536)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
36%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1326/3684)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<h2>Coverage Breakdown</h2>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_NAME_DESC.html">Package</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-1/index.html">it.polimi.ingsw.gc14</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-2/index.html">it.polimi.ingsw.gc14.Controller</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/31)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
69.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(18/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
65.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(42/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-3/index.html">it.polimi.ingsw.gc14.Model</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
77.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(97/125)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
73.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(349/475)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(547/667)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-4/index.html">it.polimi.ingsw.gc14.Model.Cards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(20/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(25/25)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(58/58)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-5/index.html">it.polimi.ingsw.gc14.Model.Cards.Building</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-6/index.html">it.polimi.ingsw.gc14.Model.Cards.Building.Effects</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(38/38)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
92%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(46/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(129/129)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-7/index.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(15/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(29/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-8/index.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(6/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(49/49)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/40)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(108/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-9/index.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Events</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(48/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(91/91)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-a/index.html">it.polimi.ingsw.gc14.Model.GamePackage</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(3/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
94.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(33/35)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(31/32)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(120/136)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-b/index.html">it.polimi.ingsw.gc14.Model.Orders</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(5/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(17/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(67/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(111/115)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-c/index.html">it.polimi.ingsw.gc14.Network</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-d/index.html">it.polimi.ingsw.gc14.Network.NetworkEvents</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/41)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/175)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-e/index.html">it.polimi.ingsw.gc14.Network.RMI.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/18)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/68)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-f/index.html">it.polimi.ingsw.gc14.Network.RMI.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/36)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/113)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-10/index.html">it.polimi.ingsw.gc14.Network.TCP.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-11/index.html">it.polimi.ingsw.gc14.Network.TCP.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-12/index.html">it.polimi.ingsw.gc14.View.GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-13/index.html">it.polimi.ingsw.gc14.View.TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,782 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > Summary</title>
|
||||
<style type="text/css">
|
||||
@import "./css/coverage.css";
|
||||
@import "./css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="./js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: all classes
|
||||
</div>
|
||||
|
||||
<h1>Overall Coverage Summary </h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">all classes</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(45/89)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(333/734)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
43.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(664/1536)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
36%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1326/3684)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<h2>Coverage Breakdown</h2>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Package</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-5/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Model.Cards.Building</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-7/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(15/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(29/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-1/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-c/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Network</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-d/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Network.NetworkEvents</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/41)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/175)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-e/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Network.RMI.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/18)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/68)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-f/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Network.RMI.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/36)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/113)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-10/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Network.TCP.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-11/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Network.TCP.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-12/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.View.GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-13/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.View.TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-2/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Controller</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/31)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
69.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(18/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
65.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(42/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-3/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Model</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
77.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(97/125)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
73.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(349/475)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(547/667)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-b/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Model.Orders</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(5/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(17/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(67/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(111/115)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-6/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Model.Cards.Building.Effects</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(38/38)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
92%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(46/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(129/129)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-a/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Model.GamePackage</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(3/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
94.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(33/35)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(31/32)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(120/136)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-4/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Model.Cards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(20/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(25/25)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(58/58)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-8/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(6/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(49/49)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/40)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(108/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-9/index_SORT_BY_BLOCK.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Events</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(48/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(91/91)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,782 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > Summary</title>
|
||||
<style type="text/css">
|
||||
@import "./css/coverage.css";
|
||||
@import "./css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="./js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: all classes
|
||||
</div>
|
||||
|
||||
<h1>Overall Coverage Summary </h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">all classes</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(45/89)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(333/734)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
43.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(664/1536)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
36%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1326/3684)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<h2>Coverage Breakdown</h2>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Package</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-9/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Events</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(48/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(91/91)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-8/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(6/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(49/49)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/40)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(108/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-4/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Model.Cards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(20/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(25/25)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(58/58)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-a/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Model.GamePackage</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(3/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
94.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(33/35)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(31/32)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(120/136)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-6/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Model.Cards.Building.Effects</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(38/38)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
92%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(46/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(129/129)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-b/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Model.Orders</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(5/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(17/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(67/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(111/115)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-3/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Model</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
77.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(97/125)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
73.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(349/475)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(547/667)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-2/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Controller</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/31)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
69.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(18/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
65.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(42/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-13/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.View.TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-12/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.View.GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-11/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Network.TCP.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-10/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Network.TCP.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-f/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Network.RMI.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/36)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/113)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-e/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Network.RMI.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/18)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/68)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-d/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Network.NetworkEvents</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/41)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/175)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-c/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Network</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-1/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-7/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(15/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(29/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-5/index_SORT_BY_BLOCK_DESC.html">it.polimi.ingsw.gc14.Model.Cards.Building</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,782 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > Summary</title>
|
||||
<style type="text/css">
|
||||
@import "./css/coverage.css";
|
||||
@import "./css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="./js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: all classes
|
||||
</div>
|
||||
|
||||
<h1>Overall Coverage Summary </h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">all classes</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(45/89)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(333/734)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
43.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(664/1536)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
36%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1326/3684)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<h2>Coverage Breakdown</h2>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Package</a> </th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-1/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-c/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Network</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-d/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Network.NetworkEvents</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/41)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/175)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-e/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Network.RMI.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/18)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/68)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-f/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Network.RMI.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/36)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/113)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-10/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Network.TCP.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-11/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Network.TCP.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-12/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.View.GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-2/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Controller</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/31)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
69.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(18/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
65.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(42/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-13/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.View.TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-3/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Model</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
77.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(97/125)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
73.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(349/475)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(547/667)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-4/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Model.Cards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(20/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(25/25)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(58/58)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-5/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Model.Cards.Building</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-6/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Model.Cards.Building.Effects</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(38/38)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
92%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(46/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(129/129)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-7/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(15/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(29/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-8/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(6/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(49/49)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/40)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(108/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-9/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Events</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(48/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(91/91)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-a/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Model.GamePackage</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(3/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
94.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(33/35)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(31/32)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(120/136)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-b/index_SORT_BY_CLASS.html">it.polimi.ingsw.gc14.Model.Orders</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(5/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(17/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(67/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(111/115)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,782 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > Summary</title>
|
||||
<style type="text/css">
|
||||
@import "./css/coverage.css";
|
||||
@import "./css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="./js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: all classes
|
||||
</div>
|
||||
|
||||
<h1>Overall Coverage Summary </h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">all classes</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(45/89)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(333/734)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
43.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(664/1536)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
36%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1326/3684)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<h2>Coverage Breakdown</h2>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Package</a> </th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-b/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Model.Orders</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(5/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(17/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(67/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(111/115)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-a/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Model.GamePackage</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(3/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
94.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(33/35)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(31/32)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(120/136)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-9/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Events</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(48/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(91/91)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-8/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(6/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(49/49)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/40)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(108/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-7/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(15/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(29/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-6/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Model.Cards.Building.Effects</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(38/38)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
92%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(46/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(129/129)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-5/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Model.Cards.Building</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-4/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Model.Cards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(20/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(25/25)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(58/58)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-3/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Model</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
77.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(97/125)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
73.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(349/475)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(547/667)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-13/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.View.TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-2/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Controller</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/31)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
69.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(18/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
65.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(42/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-12/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.View.GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-11/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Network.TCP.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-10/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Network.TCP.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-f/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Network.RMI.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/36)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/113)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-e/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Network.RMI.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/18)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/68)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-d/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Network.NetworkEvents</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/41)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/175)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-c/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14.Network</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-1/index_SORT_BY_CLASS_DESC.html">it.polimi.ingsw.gc14</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,782 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > Summary</title>
|
||||
<style type="text/css">
|
||||
@import "./css/coverage.css";
|
||||
@import "./css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="./js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: all classes
|
||||
</div>
|
||||
|
||||
<h1>Overall Coverage Summary </h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">all classes</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(45/89)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(333/734)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
43.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(664/1536)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
36%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1326/3684)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<h2>Coverage Breakdown</h2>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Package</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-1/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-c/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Network</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-d/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Network.NetworkEvents</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/41)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/175)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-e/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Network.RMI.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/18)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/68)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-f/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Network.RMI.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/36)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/113)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-10/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Network.TCP.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-11/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Network.TCP.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-12/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.View.GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-13/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.View.TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-2/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Controller</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/31)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
69.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(18/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
65.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(42/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-3/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Model</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
77.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(97/125)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
73.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(349/475)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(547/667)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-a/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Model.GamePackage</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(3/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
94.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(33/35)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(31/32)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(120/136)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-b/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Model.Orders</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(5/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(17/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(67/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(111/115)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-4/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Model.Cards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(20/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(25/25)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(58/58)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-5/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Model.Cards.Building</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-6/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Model.Cards.Building.Effects</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(38/38)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
92%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(46/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(129/129)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-7/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(15/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(29/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-8/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(6/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(49/49)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/40)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(108/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-9/index_SORT_BY_LINE.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Events</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(48/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(91/91)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,782 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > Summary</title>
|
||||
<style type="text/css">
|
||||
@import "./css/coverage.css";
|
||||
@import "./css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="./js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: all classes
|
||||
</div>
|
||||
|
||||
<h1>Overall Coverage Summary </h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">all classes</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(45/89)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(333/734)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
43.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(664/1536)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
36%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1326/3684)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<h2>Coverage Breakdown</h2>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Package</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-9/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Events</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(48/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(91/91)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-8/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(6/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(49/49)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/40)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(108/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-7/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(15/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(29/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-6/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Model.Cards.Building.Effects</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(38/38)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
92%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(46/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(129/129)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-5/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Model.Cards.Building</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-4/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Model.Cards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(20/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(25/25)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(58/58)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-b/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Model.Orders</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(5/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(17/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(67/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(111/115)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-a/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Model.GamePackage</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(3/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
94.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(33/35)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(31/32)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(120/136)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-3/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Model</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
77.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(97/125)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
73.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(349/475)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(547/667)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-2/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Controller</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/31)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
69.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(18/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
65.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(42/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-13/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.View.TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-12/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.View.GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-11/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Network.TCP.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-10/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Network.TCP.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-f/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Network.RMI.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/36)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/113)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-e/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Network.RMI.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/18)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/68)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-d/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Network.NetworkEvents</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/41)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/175)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-c/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14.Network</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-1/index_SORT_BY_LINE_DESC.html">it.polimi.ingsw.gc14</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,782 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > Summary</title>
|
||||
<style type="text/css">
|
||||
@import "./css/coverage.css";
|
||||
@import "./css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="./js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: all classes
|
||||
</div>
|
||||
|
||||
<h1>Overall Coverage Summary </h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">all classes</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(45/89)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(333/734)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
43.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(664/1536)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
36%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1326/3684)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<h2>Coverage Breakdown</h2>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Package</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-1/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-c/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Network</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-d/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Network.NetworkEvents</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/41)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/175)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-e/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Network.RMI.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/18)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/68)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-f/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Network.RMI.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/36)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/113)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-10/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Network.TCP.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-11/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Network.TCP.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-12/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.View.GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-2/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Controller</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/31)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
69.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(18/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
65.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(42/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-13/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.View.TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-3/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Model</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
77.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(97/125)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
73.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(349/475)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(547/667)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-a/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Model.GamePackage</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(3/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
94.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(33/35)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(31/32)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(120/136)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-4/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Model.Cards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(20/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(25/25)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(58/58)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-5/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Model.Cards.Building</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-6/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Model.Cards.Building.Effects</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(38/38)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
92%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(46/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(129/129)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-7/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(15/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(29/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-8/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(6/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(49/49)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/40)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(108/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-9/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Events</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(48/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(91/91)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-b/index_SORT_BY_METHOD.html">it.polimi.ingsw.gc14.Model.Orders</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(5/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(17/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(67/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(111/115)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,782 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > Summary</title>
|
||||
<style type="text/css">
|
||||
@import "./css/coverage.css";
|
||||
@import "./css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="./js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: all classes
|
||||
</div>
|
||||
|
||||
<h1>Overall Coverage Summary </h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">all classes</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(45/89)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(333/734)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
43.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(664/1536)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
36%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1326/3684)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<h2>Coverage Breakdown</h2>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Package</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-b/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Model.Orders</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(5/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(17/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(67/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(111/115)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-9/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Events</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(48/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(91/91)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-8/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(6/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(49/49)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/40)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(108/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-7/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(15/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(29/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-6/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Model.Cards.Building.Effects</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(38/38)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
92%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(46/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(129/129)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-5/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Model.Cards.Building</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-4/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Model.Cards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(20/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(25/25)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(58/58)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-a/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Model.GamePackage</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(3/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
94.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(33/35)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(31/32)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(120/136)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-3/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Model</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
77.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(97/125)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
73.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(349/475)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(547/667)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-13/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.View.TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-2/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Controller</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/31)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
69.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(18/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
65.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(42/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-12/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.View.GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-11/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Network.TCP.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-10/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Network.TCP.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-f/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Network.RMI.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/36)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/113)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-e/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Network.RMI.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/18)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/68)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-d/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Network.NetworkEvents</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/41)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/175)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-c/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14.Network</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-1/index_SORT_BY_METHOD_DESC.html">it.polimi.ingsw.gc14</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,782 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > Summary</title>
|
||||
<style type="text/css">
|
||||
@import "./css/coverage.css";
|
||||
@import "./css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="./js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: all classes
|
||||
</div>
|
||||
|
||||
<h1>Overall Coverage Summary </h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">all classes</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(45/89)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(333/734)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
43.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(664/1536)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
36%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1326/3684)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<h2>Coverage Breakdown</h2>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedDesc
|
||||
">
|
||||
<a href="index.html">Package</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-13/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.View.TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-12/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.View.GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-11/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Network.TCP.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-10/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Network.TCP.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-f/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Network.RMI.Server</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/36)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/113)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-e/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Network.RMI.Client</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/18)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/68)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-d/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Network.NetworkEvents</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/41)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/175)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-c/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Network</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-b/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Model.Orders</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(5/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(17/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(67/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(111/115)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-a/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Model.GamePackage</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(3/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
94.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(33/35)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
96.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(31/32)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(120/136)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-9/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Events</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(48/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(91/91)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-8/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards.Characters</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(6/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(49/49)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/40)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(108/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-7/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Model.Cards.TribeCards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(4/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(15/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(29/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-6/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Model.Cards.Building.Effects</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(38/38)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
92%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(46/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(129/129)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-5/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Model.Cards.Building</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(7/7)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-4/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Model.Cards</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(20/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(25/25)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(58/58)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-3/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Model</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
77.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(97/125)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
73.5%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(349/475)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(547/667)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-2/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14.Controller</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
50%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
45.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/31)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
69.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(18/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
65.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(42/64)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="ns-1/index_SORT_BY_NAME_DESC.html">it.polimi.ingsw.gc14</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+1388
File diff suppressed because one or more lines are too long
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2017 Yauheni Pakala
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
!function(r,o){"use strict";var e,i="hljs-ln",l="hljs-ln-line",h="hljs-ln-code",s="hljs-ln-numbers",c="hljs-ln-n",m="data-line-number",a=/\r\n|\r|\n/g;function u(e){for(var n=e.toString(),t=e.anchorNode;"TD"!==t.nodeName;)t=t.parentNode;for(var r=e.focusNode;"TD"!==r.nodeName;)r=r.parentNode;var o=parseInt(t.dataset.lineNumber),a=parseInt(r.dataset.lineNumber);if(o==a)return n;var i,l=t.textContent,s=r.textContent;for(a<o&&(i=o,o=a,a=i,i=l,l=s,s=i);0!==n.indexOf(l);)l=l.slice(1);for(;-1===n.lastIndexOf(s);)s=s.slice(0,-1);for(var c=l,u=function(e){for(var n=e;"TABLE"!==n.nodeName;)n=n.parentNode;return n}(t),d=o+1;d<a;++d){var f=p('.{0}[{1}="{2}"]',[h,m,d]);c+="\n"+u.querySelector(f).textContent}return c+="\n"+s}function n(e){try{var n=o.querySelectorAll("code.hljs,code.nohighlight");for(var t in n)n.hasOwnProperty(t)&&(n[t].classList.contains("nohljsln")||d(n[t],e))}catch(e){r.console.error("LineNumbers error: ",e)}}function d(e,n){"object"==typeof e&&r.setTimeout(function(){e.innerHTML=f(e,n)},0)}function f(e,n){var t,r,o=(t=e,{singleLine:function(e){return!!e.singleLine&&e.singleLine}(r=(r=n)||{}),startFrom:function(e,n){var t=1;isFinite(n.startFrom)&&(t=n.startFrom);var r=function(e,n){return e.hasAttribute(n)?e.getAttribute(n):null}(e,"data-ln-start-from");return null!==r&&(t=function(e,n){if(!e)return n;var t=Number(e);return isFinite(t)?t:n}(r,1)),t}(t,r)});return function e(n){var t=n.childNodes;for(var r in t){var o;t.hasOwnProperty(r)&&(o=t[r],0<(o.textContent.trim().match(a)||[]).length&&(0<o.childNodes.length?e(o):v(o.parentNode)))}}(e),function(e,n){var t=g(e);""===t[t.length-1].trim()&&t.pop();if(1<t.length||n.singleLine){for(var r="",o=0,a=t.length;o<a;o++)r+=p('<tr><td class="{0} {1}" {3}="{5}"><div class="{2}" {3}="{5}"></div></td><td class="{0} {4}" {3}="{5}">{6}</td></tr>',[l,s,c,m,h,o+n.startFrom,0<t[o].length?t[o]:" "]);return p('<table class="{0}">{1}</table>',[i,r])}return e}(e.innerHTML,o)}function v(e){var n=e.className;if(/hljs-/.test(n)){for(var t=g(e.innerHTML),r=0,o="";r<t.length;r++){o+=p('<span class="{0}">{1}</span>\n',[n,0<t[r].length?t[r]:" "])}e.innerHTML=o.trim()}}function g(e){return 0===e.length?[]:e.split(a)}function p(e,t){return e.replace(/\{(\d+)\}/g,function(e,n){return void 0!==t[n]?t[n]:e})}r.hljs?(r.hljs.initLineNumbersOnLoad=function(e){"interactive"===o.readyState||"complete"===o.readyState?n(e):r.addEventListener("DOMContentLoaded",function(){n(e)})},r.hljs.lineNumbersBlock=d,r.hljs.lineNumbersValue=function(e,n){if("string"!=typeof e)return;var t=document.createElement("code");return t.innerHTML=e,f(t,n)},(e=o.createElement("style")).type="text/css",e.innerHTML=p(".{0}{border-collapse:collapse}.{0} td{padding:0}.{1}:before{content:attr({2})}",[i,c,m]),o.getElementsByTagName("head")[0].appendChild(e)):r.console.error("highlight.js not detected!"),document.addEventListener("copy",function(e){var n,t=window.getSelection();!function(e){for(var n=e;n;){if(n.className&&-1!==n.className.indexOf("hljs-ln-code"))return 1;n=n.parentNode}}(t.anchorNode)||(n=-1!==window.navigator.userAgent.indexOf("Edge")?u(t):t.toString(),e.clipboardData.setData("text/plain",n),e.preventDefault())})}(window,document);
|
||||
@@ -0,0 +1,356 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_NAME_DESC.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientLauncherGUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">ClientLauncherTUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/142)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">ErrorType</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">GameEventProcessor</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">LimitedMap</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/10)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">SaveManager</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-7.html">ServerLauncher</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/72)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,356 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_BLOCK.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientLauncherGUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">ErrorType</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">SaveManager</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">ClientLauncherTUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/142)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">GameEventProcessor</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">LimitedMap</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/10)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-7.html">ServerLauncher</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/72)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,356 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-7.html">ServerLauncher</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/72)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">LimitedMap</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/10)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">GameEventProcessor</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">ClientLauncherTUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/142)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">SaveManager</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">ErrorType</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientLauncherGUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,356 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_CLASS.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientLauncherGUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">ClientLauncherTUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/142)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">ErrorType</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">GameEventProcessor</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">LimitedMap</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/10)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">SaveManager</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-7.html">ServerLauncher</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/72)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,356 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-7.html">ServerLauncher</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/72)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">SaveManager</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">LimitedMap</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/10)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">GameEventProcessor</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">ErrorType</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">ClientLauncherTUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/142)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientLauncherGUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,356 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_LINE.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientLauncherGUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">ClientLauncherTUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/142)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">ErrorType</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">GameEventProcessor</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">LimitedMap</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/10)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">SaveManager</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-7.html">ServerLauncher</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/72)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,356 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-7.html">ServerLauncher</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/72)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">SaveManager</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">LimitedMap</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/10)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">GameEventProcessor</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">ErrorType</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">ClientLauncherTUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/142)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientLauncherGUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,356 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_METHOD.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientLauncherGUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">ClientLauncherTUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/142)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">ErrorType</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">GameEventProcessor</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">LimitedMap</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/10)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">SaveManager</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-7.html">ServerLauncher</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/72)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,356 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-7.html">ServerLauncher</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/72)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">SaveManager</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">LimitedMap</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/10)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">GameEventProcessor</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">ErrorType</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">ClientLauncherTUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/142)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientLauncherGUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,356 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/149)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/394)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedDesc
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-7.html">ServerLauncher</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/72)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">SaveManager</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">LimitedMap</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/10)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">GameEventProcessor</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">ErrorType</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">ClientLauncherTUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/142)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientLauncherGUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,161 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > ClientLauncherGUI</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: ClientLauncherGUI (it.polimi.ingsw.gc14)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">ClientLauncherGUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">ClientLauncherGUI$GUIApp</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/5)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><strong>Total</strong></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/9)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14;
|
||||
|
||||
import it.polimi.ingsw.gc14.Controller.ClientController;
|
||||
import it.polimi.ingsw.gc14.View.GUI.GUI;
|
||||
import javafx.application.Application;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
/** Entry point for launching the game client with the JavaFX GUI. */
|
||||
<b class="nc"> public class ClientLauncherGUI {</b>
|
||||
|
||||
/**
|
||||
* Launches the GUI application.
|
||||
*
|
||||
* @param args command-line arguments passed to the JavaFX runtime.
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
<b class="nc"> System.setProperty("glass.gtk.uiScale", "1.0");</b>
|
||||
<b class="nc"> System.setProperty("glass.win.uiScale", "1.0");</b>
|
||||
<b class="nc"> Application.launch(GUIApp.class, args);</b>
|
||||
}
|
||||
//TODO
|
||||
<b class="nc"> public static class GUIApp extends Application {</b>
|
||||
@Override
|
||||
public void start(Stage stage) throws Exception {
|
||||
<b class="nc"> GUI view = new GUI();</b>
|
||||
<b class="nc"> ClientController controller = new ClientController(view);</b>
|
||||
<b class="nc"> view.setController(controller);</b>
|
||||
<b class="nc"> view.start(stage);</b>
|
||||
}
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,436 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > ClientLauncherTUI</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: ClientLauncherTUI (it.polimi.ingsw.gc14)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">ClientLauncherTUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/67)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/142)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14;
|
||||
|
||||
import it.polimi.ingsw.gc14.Controller.ClientController;
|
||||
import it.polimi.ingsw.gc14.Model.GamePackage.GameStages;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkConfig;
|
||||
import it.polimi.ingsw.gc14.Network.InterfaceResolver;
|
||||
import it.polimi.ingsw.gc14.Network.RMI.Client.RMIClient;
|
||||
import it.polimi.ingsw.gc14.Network.TCP.Client.TCPClient;
|
||||
import it.polimi.ingsw.gc14.View.TUI.TUI;
|
||||
|
||||
import org.jline.builtins.Completers.TreeCompleter;
|
||||
import org.jline.reader.*;
|
||||
import org.jline.reader.impl.completer.StringsCompleter;
|
||||
import org.jline.terminal.Terminal;
|
||||
import org.jline.terminal.TerminalBuilder;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.PrintStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import static org.jline.builtins.Completers.TreeCompleter.node;
|
||||
|
||||
/**
|
||||
* Entry point for the TUI-based game client.
|
||||
* Handles login, connects to the server, and drives the JLine-powered command loop.
|
||||
*/
|
||||
<b class="nc"> public class ClientLauncherTUI {</b>
|
||||
//TODO
|
||||
private TUI view;
|
||||
//TODO
|
||||
private Terminal terminal;
|
||||
//TODO
|
||||
private LineReader gameReader;
|
||||
//TODO
|
||||
<b class="nc"> private String currentUsername = "";</b>
|
||||
|
||||
private static final String BUILDING_DETAILS =
|
||||
"ID 0 — Each time you complete a set of 6 different Character cards, take 5 \uD83C\uDF56. (Sets completed before acquiring don't count.)\n" +
|
||||
"ID 1 — During the Sustenance Event, pay 1 less \uD83C\uDF56 for each Artist/Inventor/Gatherer in your tribe.\n" +
|
||||
"ID 2 — During the Shamanic Ritual Event, you do not lose Prestige Points if you have fewer ⭐ than all other players.\n" +
|
||||
"ID 3 — When you move your Totem to a Food-bonus space, take 1 extra \uD83C\uDF56. If placed last, pay 1 \uD83C\uDF56 normally (no effect).\n" +
|
||||
"ID 4 — Each time you obtain a pair of identical Inventors (same icon), take 3 \uD83C\uDF56. (Pairs owned before don't count.)\n" +
|
||||
"ID 5 — During the Shamanic Ritual Event, your tribe has 3 additional ⭐ icons.\n" +
|
||||
"ID 6 — During the Shamanic Ritual Event, if you have more ⭐ than any other player, gain double Prestige. Ties still count.\n" +
|
||||
"ID 7 — During the Hunt Event, take 1 \uD83C\uDF56 and gain 1 extra Prestige Point for each Hunter in your tribe.\n" +
|
||||
"ID 8 — At end of game, gain double the Prestige Points shown on Builder cards in your tribe.\n" +
|
||||
"ID 9 — During the Cave Paintings Event, take 1 \uD83C\uDF56 for each Artist in your tribe.\n" +
|
||||
"ID 10 — At end of game, gain 6 Prestige Points for each complete set of 6 different Character cards.\n" +
|
||||
"ID 11 — At end of game, gain the indicated Prestige Points for each Character card of the indicated type.\n" +
|
||||
"ID 12 — After all Totems return to Turn Order (before End of Round), take 1 Character or 1 Building card from the top row (paying its cost).\n" +
|
||||
"ID 13 — At end of game, gain 25 Prestige Points.";
|
||||
|
||||
private static final String EVENT_DETAILS =
|
||||
"SUSTENANCE — Pay 1 \uD83C\uDF56 per Character (Buildings don't count). If you can't feed all Characters, lose the\n" +
|
||||
" Prestige Points shown on the card for each one you couldn't feed. Each Gatherer gives a 3\uD83C\uDF56 discount.\n" +
|
||||
" You cannot choose to lose PP to avoid paying Food. Sustenance resolves last if multiple Events occur.\n" +
|
||||
"\n" +
|
||||
"HUNT — Take 1 \uD83C\uDF56 and gain the Prestige Points shown on the card for each Hunter in your tribe.\n" +
|
||||
"\n" +
|
||||
"SHAMANIC RITUAL — Player with the most \uD83C\uDF1F icons gains the Prestige Points on the card.\n" +
|
||||
" Player with the fewest \uD83C\uDF1F icons loses those Prestige Points. In case of a tie, all tied players gain/lose.\n" +
|
||||
"\n" +
|
||||
"CAVE PAINTINGS — If you have fewer Artists than the top-line threshold, lose the indicated Prestige Points.\n" +
|
||||
" If you meet the bottom-line threshold, gain the indicated Prestige Points for each Artist in your tribe.";
|
||||
|
||||
private static final String CHARACTER_DETAILS =
|
||||
"INVENTORS — At end of game, gain PP equal to (number of Inventors) × (number of different Invention icons).\n" +
|
||||
" There are 10 different Invention icons.\n" +
|
||||
"\n" +
|
||||
"GATHERERS — During Sustenance, each Gatherer gives a 3\uD83C\uDF56 discount on what you owe.\n" +
|
||||
" Note: you do not take any Food from Gatherers under any circumstances.\n" +
|
||||
"\n" +
|
||||
"SHAMANS — Each Shaman shows 1–3 \uD83C\uDF1F icons. During Shamanic Ritual, majority = gain PP; minority = lose PP.\n" +
|
||||
"\n" +
|
||||
"BUILDERS — During the game, each Builder reduces the \uD83C\uDF56 cost of every Building card by the amount\n" +
|
||||
" shown in the top-right corner. At end of game, each Builder gives the PP shown in the bottom-left corner.\n" +
|
||||
"\n" +
|
||||
"ARTISTS — During Cave Paintings, gain or lose PP based on Artist count (see 'details events').\n" +
|
||||
" At end of game, gain 10 PP for every 2 Artists in your tribe.\n" +
|
||||
"\n" +
|
||||
"HUNTERS — Adding a Hunter without the \uD83C\uDF56 icon: nothing. Adding a Hunter WITH the \uD83C\uDF56 icon:\n" +
|
||||
" immediately take 1 \uD83C\uDF56 for each Hunter in your tribe (with or without the icon).\n" +
|
||||
" During Hunt Event, take \uD83C\uDF56 and gain PP based on your Hunter count (see 'details events').";
|
||||
//TODO
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
<b class="nc"> new ClientLauncherTUI().start();</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the TUI client. Creates a JLine terminal, loops through login → game → rematch.
|
||||
*
|
||||
* @throws InterruptedException if the thread is interrupted while waiting.
|
||||
*/
|
||||
private void start() throws InterruptedException {
|
||||
try {
|
||||
<b class="nc"> System.setOut(new PrintStream(System.out, true, StandardCharsets.UTF_8));</b>
|
||||
<b class="nc"> System.setErr(new PrintStream(System.err, true, StandardCharsets.UTF_8));</b>
|
||||
<b class="nc"> terminal = TerminalBuilder.builder()</b>
|
||||
<b class="nc"> .system(true)</b>
|
||||
<b class="nc"> .encoding(StandardCharsets.UTF_8)</b>
|
||||
<b class="nc"> .build();</b>
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> System.err.println("Could not initialise terminal: " + e.getMessage());</b>
|
||||
return;
|
||||
}
|
||||
<b class="nc"> terminal.writer().print("\033[H\033[2J");</b>
|
||||
<b class="nc"> terminal.writer().flush();</b>
|
||||
|
||||
<b class="nc"> view = new TUI(null);</b>
|
||||
<b class="nc"> ClientController controller = new ClientController(view);</b>
|
||||
<b class="nc"> gameReader = buildGameReader();</b>
|
||||
<b class="nc"> view.setLineReader(gameReader);</b>
|
||||
|
||||
while (true) {
|
||||
<b class="nc"> if (!doLogin(controller)) continue;</b>
|
||||
|
||||
<b class="nc"> while (controller.getClient() != null) {</b>
|
||||
<b class="nc"> String prompt = buildPrompt(controller);</b>
|
||||
String line;
|
||||
try {
|
||||
<b class="nc"> line = gameReader.readLine(prompt);</b>
|
||||
} catch (UserInterruptException e) {
|
||||
<b class="nc"> safeQuit(controller);</b>
|
||||
return;
|
||||
} catch (EndOfFileException e) {
|
||||
<b class="nc"> safeQuit(controller);</b>
|
||||
return;
|
||||
}
|
||||
<b class="nc"> if (line == null || line.isBlank()) continue;</b>
|
||||
<b class="nc"> boolean rematch = handleCommand(line.trim(), controller);</b>
|
||||
<b class="nc"> if (rematch) break;</b>
|
||||
}
|
||||
}
|
||||
}
|
||||
//TODO
|
||||
private boolean doLogin(ClientController controller) {
|
||||
<b class="nc"> LineReader loginReader = LineReaderBuilder.builder()</b>
|
||||
<b class="nc"> .terminal(terminal)</b>
|
||||
<b class="nc"> .completer(new StringsCompleter("rmi", "tcp"))</b>
|
||||
<b class="nc"> .build();</b>
|
||||
<b class="nc"> LineReader ipReader = LineReaderBuilder.builder()</b>
|
||||
<b class="nc"> .terminal(terminal)</b>
|
||||
<b class="nc"> .completer(new StringsCompleter("localhost"))</b>
|
||||
<b class="nc"> .build();</b>
|
||||
|
||||
String username, networkStr, ip;
|
||||
int nPlayers;
|
||||
|
||||
try {
|
||||
<b class="nc"> username = loginReader.readLine("Username: ").trim();</b>
|
||||
<b class="nc"> nPlayers = Integer.parseInt(loginReader.readLine("Number of players [2-5]: ").trim());</b>
|
||||
<b class="nc"> networkStr = loginReader.readLine("Network [rmi/tcp]: ").trim().toLowerCase();</b>
|
||||
<b class="nc"> ip = ipReader.readLine("Server IP [localhost]: ").trim();</b>
|
||||
<b class="nc"> if (ip.isEmpty()) ip = "localhost";</b>
|
||||
} catch (UserInterruptException | EndOfFileException e) {
|
||||
<b class="nc"> System.exit(0);</b>
|
||||
<b class="nc"> return false;</b>
|
||||
} catch (NumberFormatException e) {
|
||||
<b class="nc"> System.out.println("Invalid number of players.");</b>
|
||||
<b class="nc"> return false;</b>
|
||||
}
|
||||
|
||||
<b class="nc"> currentUsername = username;</b>
|
||||
<b class="nc"> view.setUsername(username);</b>
|
||||
<b class="nc"> controller.setMyUsername(username);</b>
|
||||
|
||||
<b class="nc"> if (networkStr.equals("rmi")) {</b>
|
||||
String myIP;
|
||||
try {
|
||||
<b class="nc"> myIP = InterfaceResolver.resolveLocalInterface(ip);</b>
|
||||
} catch (Exception e) {
|
||||
<b class="nc"> System.out.println("Cannot resolve local interface: " + e.getMessage());</b>
|
||||
<b class="nc"> return false;</b>
|
||||
}
|
||||
<b class="nc"> System.setProperty("java.rmi.server.hostname", myIP);</b>
|
||||
<b class="nc"> RMIClient client = new RMIClient(controller, ip, NetworkConfig.RMI_PORT, myIP);</b>
|
||||
<b class="nc"> ErrorType err = client.connect(username, nPlayers);</b>
|
||||
<b class="nc"> if (err != null) {</b>
|
||||
<b class="nc"> terminal.writer().print("\033[H\033[2J");</b>
|
||||
<b class="nc"> terminal.writer().flush();</b>
|
||||
<b class="nc"> System.out.println("Errore: " + err);</b>
|
||||
<b class="nc"> return false;</b>
|
||||
}
|
||||
<b class="nc"> System.out.println("Connected via RMI.");</b>
|
||||
<b class="nc"> controller.setClient(client);</b>
|
||||
|
||||
<b class="nc"> } else if (networkStr.equals("tcp")) {</b>
|
||||
<b class="nc"> TCPClient client = new TCPClient(controller, ip, NetworkConfig.TCP_PORT, NetworkConfig.HEARTBEAT_PORT);</b>
|
||||
<b class="nc"> ErrorType err = client.connect(username, nPlayers);</b>
|
||||
<b class="nc"> if (err != null) {</b>
|
||||
<b class="nc"> terminal.writer().print("\033[H\033[2J");</b>
|
||||
<b class="nc"> terminal.writer().flush();</b>
|
||||
<b class="nc"> System.out.println("Errore: " + err);</b>
|
||||
<b class="nc"> return false;</b>
|
||||
}
|
||||
<b class="nc"> System.out.println("Connected via TCP.");</b>
|
||||
<b class="nc"> controller.setClient(client);</b>
|
||||
|
||||
} else {
|
||||
<b class="nc"> System.out.println("Unknown network type '" + networkStr + "'. Use rmi or tcp.");</b>
|
||||
<b class="nc"> return false;</b>
|
||||
}
|
||||
<b class="nc"> return true;</b>
|
||||
}
|
||||
//TODO
|
||||
private LineReader buildGameReader() {
|
||||
<b class="nc"> Completer completer = new TreeCompleter(</b>
|
||||
<b class="nc"> node("slot"),</b>
|
||||
<b class="nc"> node("draw",</b>
|
||||
<b class="nc"> node("upper",</b>
|
||||
<b class="nc"> node("tribe"),</b>
|
||||
<b class="nc"> node("building")),</b>
|
||||
<b class="nc"> node("lower",</b>
|
||||
<b class="nc"> node("tribe"),</b>
|
||||
<b class="nc"> node("building"))),</b>
|
||||
<b class="nc"> node("totem"),</b>
|
||||
<b class="nc"> node("skip"),</b>
|
||||
<b class="nc"> node("render"),</b>
|
||||
<b class="nc"> node("help"),</b>
|
||||
<b class="nc"> node("details", node("buildings"), node("events"), node("characters")),</b>
|
||||
<b class="nc"> node("rematch"),</b>
|
||||
<b class="nc"> node("quit")</b>
|
||||
);
|
||||
<b class="nc"> return LineReaderBuilder.builder()</b>
|
||||
<b class="nc"> .terminal(terminal)</b>
|
||||
<b class="nc"> .completer(completer)</b>
|
||||
<b class="nc"> .option(LineReader.Option.DISABLE_EVENT_EXPANSION, true)</b>
|
||||
<b class="nc"> .build();</b>
|
||||
}
|
||||
//TODO
|
||||
private String buildPrompt(ClientController controller) {
|
||||
<b class="nc"> return currentUsername.isEmpty() ? "> " : currentUsername + "> ";</b>
|
||||
}
|
||||
|
||||
/** Returns {@code true} when the caller should break out of the game loop (rematch requested). */
|
||||
private boolean handleCommand(String line, ClientController controller) {
|
||||
<b class="nc"> String[] parts = line.split("\\s+");</b>
|
||||
<b class="nc"> String cmd = parts[0].toLowerCase();</b>
|
||||
|
||||
<b class="nc"> switch (cmd) {</b>
|
||||
case "slot" -> {
|
||||
<b class="nc"> int pos = parsePos(parts, 1);</b>
|
||||
<b class="nc"> if (pos >= 0) controller.slotChoice(pos);</b>
|
||||
}
|
||||
<b class="nc"> case "draw" -> handleDraw(parts, controller);</b>
|
||||
case "totem" -> {
|
||||
<b class="nc"> int pos = parsePos(parts, 1);</b>
|
||||
<b class="nc"> if (pos >= 0) controller.totemChoice(pos);</b>
|
||||
}
|
||||
<b class="nc"> case "skip" -> controller.skipTurn();</b>
|
||||
<b class="nc"> case "render" -> handleRender(parts);</b>
|
||||
<b class="nc"> case "help" -> gameReader.printAbove("Commands: slot, draw, totem, skip, render, help, details, rematch, quit");</b>
|
||||
case "details" -> {
|
||||
<b class="nc"> if (parts.length > 1 && parts[1].equalsIgnoreCase("buildings"))</b>
|
||||
<b class="nc"> gameReader.printAbove(BUILDING_DETAILS);</b>
|
||||
<b class="nc"> else if (parts.length > 1 && parts[1].equalsIgnoreCase("events"))</b>
|
||||
<b class="nc"> gameReader.printAbove(EVENT_DETAILS);</b>
|
||||
<b class="nc"> else if (parts.length > 1 && parts[1].equalsIgnoreCase("characters"))</b>
|
||||
<b class="nc"> gameReader.printAbove(CHARACTER_DETAILS);</b>
|
||||
else
|
||||
<b class="nc"> gameReader.printAbove("Usage: details buildings | details events | details characters");</b>
|
||||
}
|
||||
case "rematch" -> {
|
||||
<b class="nc"> if (controller.getMiniModel() == null</b>
|
||||
<b class="nc"> || !controller.getMiniModel().currentState.getGameStage().equals(GameStages.ENDED)) {</b>
|
||||
<b class="nc"> System.out.println("Game not ended yet. Use 'quit' to disconnect.");</b>
|
||||
<b class="nc"> return false;</b>
|
||||
}
|
||||
<b class="nc"> controller.disconnect();</b>
|
||||
<b class="nc"> controller.setClient(null);</b>
|
||||
<b class="nc"> controller.setModel(null);</b>
|
||||
<b class="nc"> return true;</b>
|
||||
}
|
||||
case "quit" -> {
|
||||
<b class="nc"> safeQuit(controller);</b>
|
||||
<b class="nc"> System.exit(0);</b>
|
||||
}
|
||||
<b class="nc"> default -> view.showError(ErrorType.GENERIC_ERROR, "Unknown command: " + cmd);</b>
|
||||
}
|
||||
<b class="nc"> return false;</b>
|
||||
}
|
||||
//TODO
|
||||
private void handleDraw(String[] parts, ClientController controller) {
|
||||
<b class="nc"> if (parts.length < 4) {</b>
|
||||
<b class="nc"> view.showError(ErrorType.GENERIC_ERROR, "Usage: draw upper|lower tribe|building <pos>");</b>
|
||||
return;
|
||||
}
|
||||
<b class="nc"> boolean upper = parts[1].equalsIgnoreCase("upper");</b>
|
||||
<b class="nc"> boolean tribe = parts[2].equalsIgnoreCase("tribe");</b>
|
||||
<b class="nc"> int pos = parsePos(parts, 3);</b>
|
||||
<b class="nc"> if (pos < 0) return;</b>
|
||||
|
||||
<b class="nc"> if (upper && tribe) controller.drawUpperTribeCard(pos);</b>
|
||||
<b class="nc"> else if (upper) controller.drawUpperBuildingCard(pos);</b>
|
||||
<b class="nc"> else if (tribe) controller.drawLowerTribeCard(pos);</b>
|
||||
<b class="nc"> else controller.drawLowerBuildingCard(pos);</b>
|
||||
}
|
||||
//TODO
|
||||
private void handleRender(String[] parts) {
|
||||
<b class="nc"> view.renderBoard();</b>
|
||||
}
|
||||
//TODO
|
||||
private int parsePos(String[] parts, int idx) {
|
||||
<b class="nc"> if (parts.length <= idx) {</b>
|
||||
<b class="nc"> view.showError(ErrorType.GENERIC_ERROR, "Missing position argument.");</b>
|
||||
<b class="nc"> return -1;</b>
|
||||
}
|
||||
try {
|
||||
<b class="nc"> return Integer.parseInt(parts[idx]);</b>
|
||||
} catch (NumberFormatException e) {
|
||||
<b class="nc"> view.showError(ErrorType.GENERIC_ERROR,</b>
|
||||
"Invalid position '" + parts[idx] + "' — expected integer.");
|
||||
<b class="nc"> return -1;</b>
|
||||
}
|
||||
}
|
||||
//TODO
|
||||
private void safeQuit(ClientController controller) {
|
||||
<b class="nc"> if (controller.getClient() != null) controller.disconnect();</b>
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,126 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > ErrorType</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: ErrorType (it.polimi.ingsw.gc14)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">ErrorType</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/12)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14;
|
||||
|
||||
/** Enumeration of error types that can be returned by server-side operations. */
|
||||
<b class="nc"> public enum ErrorType {</b>
|
||||
<b class="nc"> USER_NOT_FOUND("User not found"),</b>
|
||||
<b class="nc"> USERNAME_ALREADY_USED("Username is already in use"),</b>
|
||||
<b class="nc"> USER_ALREADY_CONNECTED("User is already connected"),</b>
|
||||
<b class="nc"> WRONG_PLAYER_NUMBER("Wrong player number"),</b>
|
||||
<b class="nc"> SERVER_CRASHED("Server crashed"),</b>
|
||||
<b class="nc"> GENERIC_ERROR("Generic error"),</b>
|
||||
<b class="nc"> GAME_ALREADY_STARTED("Game already started"),</b>
|
||||
<b class="nc"> WRONG_ACTION("Wrong action");</b>
|
||||
//TODO
|
||||
private final String description;
|
||||
<b class="nc"> ErrorType(String description) {</b>
|
||||
<b class="nc"> this.description = description;</b>
|
||||
}
|
||||
@Override
|
||||
public String toString() {
|
||||
<b class="nc"> return description;</b>
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,523 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > GameEventProcessor</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: GameEventProcessor (it.polimi.ingsw.gc14)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">GameEventProcessor</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/107)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">GameEventProcessor$1</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><strong>Total</strong></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/20)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/48)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/108)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14;
|
||||
|
||||
import it.polimi.ingsw.gc14.Controller.GameController;
|
||||
import it.polimi.ingsw.gc14.Model.Game;
|
||||
import it.polimi.ingsw.gc14.Model.GamePackage.GameStages;
|
||||
import it.polimi.ingsw.gc14.Network.CompositeClientBroadcaster;
|
||||
import it.polimi.ingsw.gc14.Network.EventType;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkEvent;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkEvents.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Processes game events from the action queue and routes each one
|
||||
* based on the current game state.
|
||||
*
|
||||
* <p>The three top-level states that determine routing are:
|
||||
* <ul>
|
||||
* <li><b>Inactive</b> – no game model is present, or the game has ended.
|
||||
* Only disconnection clean-up is performed.</li>
|
||||
* <li><b>Suspended</b> – a forfeit timer is running because exactly one
|
||||
* player remains online. Only reconnection events are accepted.</li>
|
||||
* <li><b>Active</b> – normal gameplay; every event is applied, saved,
|
||||
* and broadcast.</li>
|
||||
* </ul>
|
||||
*
|
||||
* <p>This class is not thread-safe by itself: it relies on the caller
|
||||
* (the game loop in {@code ServerLauncher}) to drive it from a single
|
||||
* thread via {@link #doFirstEvent()}.
|
||||
*/
|
||||
public class GameEventProcessor {
|
||||
|
||||
private final BlockingQueue<NetworkEvent> actionQueue;
|
||||
private final GameController gameController;
|
||||
private final LimitedMap<String, Boolean> playerList;
|
||||
private final CompositeClientBroadcaster broadcaster;
|
||||
private final SaveManager saveManager;
|
||||
|
||||
/** Single-thread executor used exclusively for the forfeit timer. Daemon so it does not block JVM shutdown. */
|
||||
<b class="nc"> private final ScheduledExecutorService timerExecutor =</b>
|
||||
<b class="nc"> Executors.newSingleThreadScheduledExecutor(r -> {</b>
|
||||
<b class="nc"> Thread t = new Thread(r, "forfeit-timer");</b>
|
||||
<b class="nc"> t.setDaemon(true);</b>
|
||||
<b class="nc"> return t;</b>
|
||||
});
|
||||
|
||||
/**
|
||||
* Handle to the running forfeit timer, or {@code null} when no timer is active.
|
||||
* A non-null value signals that the game is in the {@em suspended} state.
|
||||
*/
|
||||
private ScheduledFuture<?> disconnectionTimer;
|
||||
|
||||
/**
|
||||
* Constructs a {@code GameEventProcessor} with all required dependencies.
|
||||
*
|
||||
* @param actionQueue the queue from which incoming events are consumed.
|
||||
* @param gameController the server-side game controller.
|
||||
* @param playerList the shared map tracking each player's online status.
|
||||
* @param broadcaster the broadcaster used to notify all connected clients.
|
||||
* @param saveManager the save manager used to persist the game state.
|
||||
*/
|
||||
public GameEventProcessor(
|
||||
BlockingQueue<NetworkEvent> actionQueue,
|
||||
GameController gameController,
|
||||
LimitedMap<String, Boolean> playerList,
|
||||
CompositeClientBroadcaster broadcaster,
|
||||
<b class="nc"> SaveManager saveManager) {</b>
|
||||
<b class="nc"> this.actionQueue = actionQueue;</b>
|
||||
<b class="nc"> this.gameController = gameController;</b>
|
||||
<b class="nc"> this.playerList = playerList;</b>
|
||||
<b class="nc"> this.broadcaster = broadcaster;</b>
|
||||
<b class="nc"> this.saveManager = saveManager;</b>
|
||||
}
|
||||
|
||||
// ── Public entry point ────────────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Blocks until one event is available in the queue, then routes it to the
|
||||
* appropriate handler based on the current game state.
|
||||
*
|
||||
* @throws InterruptedException if the thread is interrupted while waiting
|
||||
* for the next event.
|
||||
*/
|
||||
public void doFirstEvent() throws InterruptedException {
|
||||
<b class="nc"> NetworkEvent event = actionQueue.take();</b>
|
||||
|
||||
<b class="nc"> if (!isGameActive()) {</b>
|
||||
<b class="nc"> handleInactiveGame(event);</b>
|
||||
<b class="nc"> } else if (isSuspended()) {</b>
|
||||
<b class="nc"> handleSuspendedGame(event);</b>
|
||||
} else {
|
||||
<b class="nc"> applyAndBroadcast(event);</b>
|
||||
}
|
||||
}
|
||||
|
||||
// ── State guards ──────────────────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Returns {@code true} when there is an ongoing game that has not yet ended.
|
||||
*/
|
||||
private boolean isGameActive() {
|
||||
<b class="nc"> Game model = gameController.getModel();</b>
|
||||
<b class="nc"> return model != null</b>
|
||||
<b class="nc"> && model.getCurrentState().getGameStage() != GameStages.ENDED;</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns {@code true} when the forfeit timer is running, meaning only one
|
||||
* player is currently online and the game is waiting for a reconnection.
|
||||
*/
|
||||
private boolean isSuspended() {
|
||||
<b class="nc"> return disconnectionTimer != null;</b>
|
||||
}
|
||||
|
||||
// ── Inactive game path ────────────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Handles events that arrive when no active game exists (not yet started,
|
||||
* or already ended). Only disconnection clean-up is relevant here.
|
||||
*
|
||||
* @param event the incoming event.
|
||||
*/
|
||||
private void handleInactiveGame(NetworkEvent event) {
|
||||
<b class="nc"> if (event.getEventType() != EventType.DISCONNECTED_PLAYER) return;</b>
|
||||
|
||||
<b class="nc"> synchronized (gameController) {</b>
|
||||
<b class="nc"> playerList.remove(event.getUsername());</b>
|
||||
<b class="nc"> if (playerList.isEmpty()) {</b>
|
||||
<b class="nc"> gameController.setModel(null);</b>
|
||||
<b class="nc"> System.out.println("\n!!! Player list is now empty, ready for a new game init !!!\n");</b>
|
||||
}
|
||||
<b class="nc"> }</b>
|
||||
}
|
||||
|
||||
// ── Suspended game path ───────────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Routes events while the game is suspended waiting for a reconnection.
|
||||
* <ul>
|
||||
* <li>A second disconnection while suspended means no player remains
|
||||
* online: the game is aborted entirely.</li>
|
||||
* <li>Any non-reconnection event is rejected with an error.</li>
|
||||
* <li>A reconnection event is allowed through to {@link #applyAndBroadcast}.</li>
|
||||
* </ul>
|
||||
*
|
||||
* @param event the incoming event.
|
||||
*/
|
||||
private void handleSuspendedGame(NetworkEvent event) {
|
||||
<b class="nc"> switch (event.getEventType()) {</b>
|
||||
<b class="nc"> case DISCONNECTED_PLAYER -> abortGame();</b>
|
||||
<b class="nc"> case RECONNECT_PLAYER -> applyAndBroadcast(event);</b>
|
||||
<b class="nc"> default -> rejectEvent(event);</b>
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancels the forfeit timer, clears the player list, and resets the model.
|
||||
* Called when the last remaining player disconnects while the game is suspended.
|
||||
*/
|
||||
private void abortGame() {
|
||||
<b class="nc"> disconnectionTimer.cancel(true);</b>
|
||||
<b class="nc"> disconnectionTimer = null;</b>
|
||||
<b class="nc"> playerList.clear();</b>
|
||||
<b class="nc"> gameController.setModel(null);</b>
|
||||
<b class="nc"> System.out.println("\n!!! All players disconnected — game aborted, ready for a new game init !!!\n");</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Marks the event as an error and broadcasts it back to the requesting
|
||||
* player. Used to reject actions that are not permitted in the current state.
|
||||
*
|
||||
* @param event the event to reject.
|
||||
*/
|
||||
private void rejectEvent(NetworkEvent event) {
|
||||
<b class="nc"> event.setIsError(true);</b>
|
||||
<b class="nc"> broadcaster.notifyAll(event);</b>
|
||||
}
|
||||
|
||||
// ── Active game path ──────────────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Applies the event to the game controller, saves the updated state,
|
||||
* and broadcasts the result to connected clients.
|
||||
*
|
||||
* <p>The entire method body is synchronized on {@code gameController} to
|
||||
* prevent concurrent modification of the game model by the network threads.
|
||||
*
|
||||
* @param event the event to apply.
|
||||
*/
|
||||
private void applyAndBroadcast(NetworkEvent event) {
|
||||
<b class="nc"> synchronized (gameController) {</b>
|
||||
<b class="nc"> int roundBefore = gameController.getModel().getCurrentState().getRound();</b>
|
||||
|
||||
<b class="nc"> event.setIsError(!event.apply(gameController));</b>
|
||||
<b class="nc"> Game game = gameController.getModel();</b>
|
||||
|
||||
<b class="nc"> if (event.isError()) {</b>
|
||||
<b class="nc"> broadcaster.notifyAll(event);</b>
|
||||
<b class="nc"> return;</b>
|
||||
}
|
||||
|
||||
<b class="nc"> cancelForfeitTimerIfReconnect(event);</b>
|
||||
|
||||
<b class="nc"> if (!saveManager.save(game)) {</b>
|
||||
<b class="nc"> System.out.println("\n!!! Save failed !!!\n");</b>
|
||||
}
|
||||
|
||||
// During the lobby phase a disconnection only removes the player
|
||||
// from the list; no broadcast is needed.
|
||||
<b class="nc"> if (event.getEventType() == EventType.DISCONNECTED_PLAYER</b>
|
||||
<b class="nc"> && game.getCurrentState().getGameStage() == GameStages.WAITING) {</b>
|
||||
<b class="nc"> playerList.remove(event.getUsername());</b>
|
||||
<b class="nc"> return;</b>
|
||||
}
|
||||
|
||||
<b class="nc"> enrichEvent(event, game);</b>
|
||||
<b class="nc"> startForfeitTimerIfNeeded(event, game);</b>
|
||||
<b class="nc"> broadcastResult(event, game, roundBefore);</b>
|
||||
<b class="nc"> }</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancels the forfeit timer if the event is a successful reconnection.
|
||||
*
|
||||
* @param event the event that was just successfully applied.
|
||||
*/
|
||||
private void cancelForfeitTimerIfReconnect(NetworkEvent event) {
|
||||
<b class="nc"> if (event.getEventType() == EventType.RECONNECT_PLAYER</b>
|
||||
&& disconnectionTimer != null
|
||||
<b class="nc"> && !disconnectionTimer.isDone()) {</b>
|
||||
<b class="nc"> disconnectionTimer.cancel(false);</b>
|
||||
<b class="nc"> disconnectionTimer = null;</b>
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Populates the event with the current game state so that clients can
|
||||
* update their mini-model after receiving it.
|
||||
*
|
||||
* <p>Each event subclass overrides {@link NetworkEvent#enrichWithGameState}
|
||||
* to append any type-specific extra fields (available totems, etc.).
|
||||
*
|
||||
* @param event the event to enrich.
|
||||
* @param game the current game model.
|
||||
*/
|
||||
private void enrichEvent(NetworkEvent event, Game game) {
|
||||
<b class="nc"> event.enrichWithGameState(game, buildDisconnectedList(game));</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Schedules the 60-second forfeit timer if a disconnection has left
|
||||
* exactly one player online.
|
||||
*
|
||||
* <p>If a previous timer is still pending it is cancelled first to avoid
|
||||
* duplicate timers.
|
||||
*
|
||||
* @param event the event that was just applied.
|
||||
* @param game the current game model.
|
||||
*/
|
||||
private void startForfeitTimerIfNeeded(NetworkEvent event, Game game) {
|
||||
<b class="nc"> if (event.getEventType() != EventType.DISCONNECTED_PLAYER) return;</b>
|
||||
<b class="nc"> if (game.getCurrentState().getGameStage() == GameStages.ENDED) return;</b>
|
||||
<b class="nc"> if (onlinePlayerCount() != 1) return;</b>
|
||||
|
||||
<b class="nc"> if (disconnectionTimer != null && !disconnectionTimer.isDone()) {</b>
|
||||
<b class="nc"> disconnectionTimer.cancel(false);</b>
|
||||
}
|
||||
|
||||
<b class="nc"> disconnectionTimer = timerExecutor.schedule(</b>
|
||||
<b class="nc"> () -> endGameForfeit(game),</b>
|
||||
1, TimeUnit.MINUTES
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ends the game by forfeit when the timer expires without a reconnection.
|
||||
* Broadcasts an {@link EndedGame} event, deletes the save, and resets state.
|
||||
*
|
||||
* @param game the game model captured when the timer was scheduled.
|
||||
*/
|
||||
private void endGameForfeit(Game game) {
|
||||
<b class="nc"> synchronized (gameController) {</b>
|
||||
<b class="nc"> gameController.endGameForfeit();</b>
|
||||
<b class="nc"> EndedGame forfeitEnd = new EndedGame(</b>
|
||||
<b class="nc"> game.getSlotMap(), game.getOrderLogicCard(),</b>
|
||||
<b class="nc"> game.getCurrentState(), game.getPlayerStanding()</b>
|
||||
);
|
||||
<b class="nc"> broadcaster.notifyAll(forfeitEnd);</b>
|
||||
<b class="nc"> System.out.println("Timer expired: no player reconnected in 60 s.");</b>
|
||||
<b class="nc"> removeOfflinePlayers();</b>
|
||||
<b class="nc"> if (!saveManager.delete()) {</b>
|
||||
<b class="nc"> System.out.println("\n!!! Couldn't delete save !!!\n");</b>
|
||||
}
|
||||
<b class="nc"> disconnectionTimer = null;</b>
|
||||
<b class="nc"> }</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines what to broadcast after a successful event application:
|
||||
* <ul>
|
||||
* <li>If the round advanced, an {@link ApplyNextRound} event (with updated
|
||||
* card lists) replaces the original event.</li>
|
||||
* <li>If the game has ended, an {@link EndedGame} event is sent and the
|
||||
* save file is deleted.</li>
|
||||
* <li>Otherwise the original event is broadcast as-is.</li>
|
||||
* </ul>
|
||||
*
|
||||
* @param event the event that was applied.
|
||||
* @param game the current game model (post-apply).
|
||||
* @param roundBefore the round number before the event was applied.
|
||||
*/
|
||||
private void broadcastResult(NetworkEvent event, Game game, int roundBefore) {
|
||||
<b class="nc"> broadcaster.notifyAll(event);</b>
|
||||
<b class="nc"> if (game.getCurrentState().getRound() != roundBefore) {</b>
|
||||
<b class="nc"> ApplyNextRound nextRound = new ApplyNextRound(</b>
|
||||
<b class="nc"> game.getSlotMap(), game.getOrderLogicCard(), game.getCurrentState(),</b>
|
||||
<b class="nc"> game.getPlayers(),</b>
|
||||
<b class="nc"> game.getUpperListTribeCards(), game.getLowerListTribeCards(),</b>
|
||||
<b class="nc"> game.getUpperListBuilding(), game.getLowerListBuilding()</b>
|
||||
);
|
||||
<b class="nc"> broadcaster.notifyAll(nextRound);</b>
|
||||
<b class="nc"> } else if (game.getCurrentState().getGameStage() == GameStages.ENDED) {</b>
|
||||
<b class="nc"> EndedGame endedGame = new EndedGame(</b>
|
||||
<b class="nc"> game.getSlotMap(), game.getOrderLogicCard(),</b>
|
||||
<b class="nc"> game.getCurrentState(), game.getPlayerStanding()</b>
|
||||
);
|
||||
<b class="nc"> broadcaster.notifyAll(endedGame);</b>
|
||||
<b class="nc"> if (!saveManager.delete()) {</b>
|
||||
<b class="nc"> System.out.println("\n!!! Couldn't delete save !!!\n");</b>
|
||||
}
|
||||
<b class="nc"> removeOfflinePlayers();</b>
|
||||
}
|
||||
}
|
||||
|
||||
// ── Utilities ─────────────────────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Returns the number of players currently marked as online in the player list.
|
||||
*/
|
||||
private long onlinePlayerCount() {
|
||||
<b class="nc"> return playerList.values().stream().filter(v -> v).count();</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds the list of usernames of players currently marked as disconnected
|
||||
* in the game model.
|
||||
*
|
||||
* @param game the current game model.
|
||||
* @return a new {@link ArrayList} of disconnected usernames.
|
||||
*/
|
||||
private ArrayList<String> buildDisconnectedList(Game game) {
|
||||
<b class="nc"> return game.getDisconnectedPlayers().entrySet().stream()</b>
|
||||
<b class="nc"> .filter(Map.Entry::getValue)</b>
|
||||
<b class="nc"> .map(e -> e.getKey().getUserName())</b>
|
||||
<b class="nc"> .collect(Collectors.toCollection(ArrayList::new));</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes all offline entries (value {@code false}) from the player list.
|
||||
* Online players remain until they disconnect naturally.
|
||||
*/
|
||||
private void removeOfflinePlayers() {
|
||||
<b class="nc"> List<String> toRemove = playerList.entrySet().stream()</b>
|
||||
<b class="nc"> .filter(e -> !e.getValue())</b>
|
||||
<b class="nc"> .map(Map.Entry::getKey)</b>
|
||||
<b class="nc"> .toList();</b>
|
||||
<b class="nc"> toRemove.forEach(playerList::remove);</b>
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,236 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > LimitedMap</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: LimitedMap (it.polimi.ingsw.gc14)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">LimitedMap</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/10)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
/**
|
||||
* A {@link ConcurrentHashMap}-backed map with a configurable size limit and an associated action.
|
||||
* When the number of elements reaches or exceeds the limit, the specified action is automatically triggered.
|
||||
* This implementation is thread-safe for {@code put}; callers that need compound operations must synchronize externally.
|
||||
*
|
||||
* @param <K> the type of keys maintained by this map.
|
||||
* @param <V> the type of mapped values.
|
||||
*/
|
||||
public class LimitedMap<K, V> implements Map<K, V> {
|
||||
|
||||
<b class="nc"> private final ConcurrentHashMap<K, V> map = new ConcurrentHashMap<>();</b>
|
||||
|
||||
/**
|
||||
* The maximum number of elements allowed in the map before the action is triggered.
|
||||
*/
|
||||
private volatile int limit;
|
||||
|
||||
/**
|
||||
* The action to execute when the map size reaches or exceeds the limit.
|
||||
*/
|
||||
private volatile Runnable action;
|
||||
|
||||
/**
|
||||
* Creates a new {@code LimitedMap} with the specified limit and action.
|
||||
*
|
||||
* @param limit the maximum number of elements before the action is triggered.
|
||||
* @param action the action to execute when the limit is reached.
|
||||
*/
|
||||
<b class="nc"> public LimitedMap(int limit, Runnable action) {</b>
|
||||
<b class="nc"> this.limit = limit;</b>
|
||||
<b class="nc"> this.action = action;</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Associates the specified value with the specified key in this map.
|
||||
* If the map size reaches or exceeds the limit after the insertion, the configured action is triggered.
|
||||
*
|
||||
* @param key the key with which the specified value is to be associated.
|
||||
* @param value the value to be associated with the specified key.
|
||||
* @return the previous value associated with the key, or {@code null} if there was no mapping.
|
||||
*/
|
||||
@Override
|
||||
public synchronized V put(K key, V value) {
|
||||
<b class="nc"> boolean added = true;</b>
|
||||
<b class="nc"> if (map.size() == limit) {</b>
|
||||
<b class="nc"> if (!map.containsKey(key))</b>
|
||||
<b class="nc"> return null;</b>
|
||||
<b class="nc"> added = false;</b>
|
||||
}
|
||||
<b class="nc"> V result = map.put(key, value);</b>
|
||||
<b class="nc"> if (map.size() >= limit && added) {</b>
|
||||
<b class="nc"> action.run();</b>
|
||||
}
|
||||
<b class="nc"> return result;</b>
|
||||
}
|
||||
|
||||
@Override
|
||||
<b class="nc"> public synchronized V remove(Object key) { return map.remove(key); }</b>
|
||||
|
||||
@Override
|
||||
<b class="nc"> public V get(Object key) { return map.get(key); }</b>
|
||||
|
||||
@Override
|
||||
<b class="nc"> public boolean containsKey(Object key) { return map.containsKey(key); }</b>
|
||||
|
||||
@Override
|
||||
<b class="nc"> public boolean containsValue(Object value) { return map.containsValue(value); }</b>
|
||||
|
||||
@Override
|
||||
<b class="nc"> public int size() { return map.size(); }</b>
|
||||
|
||||
@Override
|
||||
<b class="nc"> public boolean isEmpty() { return map.isEmpty(); }</b>
|
||||
|
||||
@Override
|
||||
<b class="nc"> public void putAll(Map<? extends K, ? extends V> m) { m.forEach(this::put); }</b>
|
||||
|
||||
@Override
|
||||
<b class="nc"> public void clear() { map.clear(); }</b>
|
||||
|
||||
@Override
|
||||
<b class="nc"> public Set<K> keySet() { return map.keySet(); }</b>
|
||||
|
||||
@Override
|
||||
<b class="nc"> public Collection<V> values() { return map.values(); }</b>
|
||||
|
||||
@Override
|
||||
<b class="nc"> public Set<Entry<K, V>> entrySet() { return map.entrySet(); }</b>
|
||||
|
||||
/**
|
||||
* Sets a new size limit for this map.
|
||||
*
|
||||
* @param num the new limit.
|
||||
*/
|
||||
<b class="nc"> public void setLimit(int num) { this.limit = num; }</b>
|
||||
|
||||
/**
|
||||
* Returns the current size limit of this map.
|
||||
*
|
||||
* @return the current limit.
|
||||
*/
|
||||
<b class="nc"> public int getLimit() { return limit; }</b>
|
||||
|
||||
/**
|
||||
* Sets a new action to execute when the map size reaches or exceeds the limit.
|
||||
*
|
||||
* @param action the new action to set; must not be {@code null}.
|
||||
*/
|
||||
public void setAction(Runnable action) {
|
||||
<b class="nc"> if (action == null) throw new IllegalArgumentException("action must not be null");</b>
|
||||
<b class="nc"> this.action = action;</b>
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,216 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > SaveManager</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: SaveManager (it.polimi.ingsw.gc14)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">SaveManager</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/23)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14;
|
||||
|
||||
import it.polimi.ingsw.gc14.Model.Game;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.net.URISyntaxException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
/**
|
||||
* Handles persistence of the game model to and from disk.
|
||||
*
|
||||
* <p>The save file is stored at {@code GameSaves/save.dat} relative to the
|
||||
* directory containing the running JAR. The anchor class passed to the
|
||||
* constructor is used to resolve that directory at construction time.
|
||||
*
|
||||
* <p>All three operations ({@link #save}, {@link #load}, {@link #delete})
|
||||
* are independent and safe to call in any order; missing files are treated
|
||||
* as a normal condition (no save present) rather than an error.
|
||||
*/
|
||||
public class SaveManager {
|
||||
|
||||
/** Relative sub-path of the save file inside the JAR directory. */
|
||||
private static final String SAVE_RELATIVE_PATH = "GameSaves/save.dat";
|
||||
|
||||
/** Absolute path of the save file, resolved once at construction. */
|
||||
private final Path filePath;
|
||||
|
||||
/**
|
||||
* Constructs a {@code SaveManager} whose save file is located relative
|
||||
* to the JAR directory of the given anchor class.
|
||||
*
|
||||
* @param anchorClass the class whose code-source location is used as
|
||||
* the base directory for the save file.
|
||||
* @throws RuntimeException if the JAR path cannot be resolved.
|
||||
*/
|
||||
<b class="nc"> public SaveManager(Class<?> anchorClass) {</b>
|
||||
try {
|
||||
<b class="nc"> Path jarDir = Paths.get(</b>
|
||||
<b class="nc"> anchorClass.getProtectionDomain().getCodeSource().getLocation().toURI()</b>
|
||||
<b class="nc"> ).getParent();</b>
|
||||
<b class="nc"> this.filePath = jarDir.resolve(SAVE_RELATIVE_PATH);</b>
|
||||
} catch (URISyntaxException e) {
|
||||
<b class="nc"> throw new RuntimeException("Could not resolve save file path", e);</b>
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Serializes the game model to disk, creating parent directories if needed.
|
||||
*
|
||||
* @param game the game model to persist.
|
||||
* @return {@code true} if the save succeeded, {@code false} on I/O error.
|
||||
*/
|
||||
public boolean save(Game game) {
|
||||
try {
|
||||
<b class="nc"> Files.createDirectories(filePath.getParent());</b>
|
||||
<b class="nc"> try (ObjectOutputStream oos = new ObjectOutputStream(</b>
|
||||
<b class="nc"> new BufferedOutputStream(new FileOutputStream(filePath.toFile())))) {</b>
|
||||
<b class="nc"> oos.writeObject(game);</b>
|
||||
<b class="nc"> System.out.println("Game saved to: " + filePath.toAbsolutePath());</b>
|
||||
<b class="nc"> return true;</b>
|
||||
}
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> e.printStackTrace();</b>
|
||||
<b class="nc"> return false;</b>
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deserializes the game model from disk.
|
||||
*
|
||||
* @return the saved {@link Game} instance, or {@code null} if no save file
|
||||
* exists or an I/O error prevents reading.
|
||||
* @throws RuntimeException if the serialized class cannot be found on
|
||||
* the classpath (indicates a deployment mismatch).
|
||||
*/
|
||||
public Game load() {
|
||||
<b class="nc"> try (ObjectInputStream ois = new ObjectInputStream(</b>
|
||||
<b class="nc"> new BufferedInputStream(new FileInputStream(filePath.toFile())))) {</b>
|
||||
<b class="nc"> return (Game) ois.readObject();</b>
|
||||
} catch (FileNotFoundException e) {
|
||||
<b class="nc"> return null;</b>
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> e.printStackTrace();</b>
|
||||
<b class="nc"> return null;</b>
|
||||
} catch (ClassNotFoundException e) {
|
||||
<b class="nc"> throw new RuntimeException("Save file references an unknown class", e);</b>
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes the save file.
|
||||
*
|
||||
* @return {@code true} if the file was deleted, {@code false} otherwise
|
||||
* (including when the file did not exist).
|
||||
*/
|
||||
public boolean delete() {
|
||||
try {
|
||||
<b class="nc"> return Files.deleteIfExists(filePath);</b>
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> return false;</b>
|
||||
}
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,340 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > ServerLauncher</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: ServerLauncher (it.polimi.ingsw.gc14)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">ServerLauncher</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/72)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14;
|
||||
|
||||
import it.polimi.ingsw.gc14.Controller.GameController;
|
||||
import it.polimi.ingsw.gc14.Model.Game;
|
||||
import it.polimi.ingsw.gc14.Model.MiniModel;
|
||||
import it.polimi.ingsw.gc14.Model.Player;
|
||||
import it.polimi.ingsw.gc14.Network.CompositeClientBroadcaster;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkEvent;
|
||||
import it.polimi.ingsw.gc14.Network.RMI.Server.RMIServer;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkConfig;
|
||||
import it.polimi.ingsw.gc14.Network.TCP.Server.TCPServer;
|
||||
|
||||
import java.net.*;
|
||||
import java.rmi.RemoteException;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Main server entry point.
|
||||
*
|
||||
* <p>Responsibilities of this class are intentionally limited to wiring:
|
||||
* it creates all components, connects them together, restores a previously
|
||||
* saved game if one exists, and starts the event-processing loop and the
|
||||
* network servers.
|
||||
*
|
||||
* <p>All game-logic and event-routing decisions are delegated to
|
||||
* {@link GameEventProcessor}; persistence is delegated to {@link SaveManager}.
|
||||
*
|
||||
* <p>The original {@code ServerLauncher} class is preserved and untouched.
|
||||
* This class is a clean replacement that uses the new component structure.
|
||||
*/
|
||||
public class ServerLauncher {
|
||||
|
||||
/** Drives the main game-event loop. */
|
||||
private final GameEventProcessor eventProcessor;
|
||||
|
||||
/**
|
||||
* Constructs a {@code ServerLauncherTest} and wires all components together.
|
||||
*
|
||||
* @param actionQueue the shared event queue.
|
||||
* @param gameController the server-side game controller.
|
||||
* @param playerList the shared player-status map.
|
||||
* @param broadcaster the broadcaster used to reach all connected clients.
|
||||
* @param saveManager the save manager used to persist game state.
|
||||
*/
|
||||
public ServerLauncher(
|
||||
BlockingQueue<NetworkEvent> actionQueue,
|
||||
GameController gameController,
|
||||
LimitedMap<String, Boolean> playerList,
|
||||
CompositeClientBroadcaster broadcaster,
|
||||
<b class="nc"> SaveManager saveManager) {</b>
|
||||
<b class="nc"> this.eventProcessor = new GameEventProcessor(</b>
|
||||
actionQueue, gameController, playerList, broadcaster, saveManager);
|
||||
}
|
||||
|
||||
// ── Entry point ───────────────────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Initialises all server components, wires them together, restores a saved
|
||||
* game if available, and starts the event-processing loop and both network
|
||||
* servers.
|
||||
*
|
||||
* @param args command-line arguments (unused).
|
||||
* @throws RemoteException if the RMI server cannot be created.
|
||||
*/
|
||||
public static void main(String[] args) throws RemoteException {
|
||||
<b class="nc"> LimitedMap<String, Boolean> playerList = new LimitedMap<>(5, () -> {});</b>
|
||||
<b class="nc"> BlockingQueue<NetworkEvent> actionQueue = new LinkedBlockingQueue<>();</b>
|
||||
<b class="nc"> GameController gameController = new GameController();</b>
|
||||
|
||||
String ip;
|
||||
try {
|
||||
<b class="nc"> ip = chooseNetworkInterface(new Scanner(System.in));</b>
|
||||
<b class="nc"> System.out.println(ip);</b>
|
||||
} catch (Exception e) {
|
||||
<b class="nc"> throw new RuntimeException(e);</b>
|
||||
}
|
||||
<b class="nc"> System.setProperty("java.rmi.server.hostname", ip);</b>
|
||||
|
||||
<b class="nc"> RMIServer rmiServer = new RMIServer(gameController, NetworkConfig.RMI_PORT, actionQueue, playerList, ip);</b>
|
||||
<b class="nc"> TCPServer tcpServer = new TCPServer(gameController, NetworkConfig.TCP_PORT, NetworkConfig.HEARTBEAT_PORT, actionQueue, playerList);</b>
|
||||
<b class="nc"> CompositeClientBroadcaster broadcaster = new CompositeClientBroadcaster(rmiServer, tcpServer);</b>
|
||||
<b class="nc"> SaveManager saveManager = new SaveManager(ServerLauncher.class);</b>
|
||||
|
||||
<b class="nc"> restoreGameIfSaved(gameController, playerList, saveManager);</b>
|
||||
|
||||
<b class="nc"> ServerLauncher launcher = new ServerLauncher(</b>
|
||||
actionQueue, gameController, playerList, broadcaster, saveManager);
|
||||
|
||||
// When all required players have joined, broadcast the initial MiniModel.
|
||||
<b class="nc"> playerList.setAction(() -> new Thread(() -> {</b>
|
||||
MiniModel miniModel;
|
||||
<b class="nc"> synchronized (gameController) {</b>
|
||||
<b class="nc"> Game game = gameController.getModel();</b>
|
||||
<b class="nc"> miniModel = new MiniModel(</b>
|
||||
<b class="nc"> game.getSlotMap(), game.getOrderLogicCard(), game.getCurrentState(),</b>
|
||||
<b class="nc"> game.getPlayers(), game.getAvailableTotems(),</b>
|
||||
<b class="nc"> game.getUpperListTribeCards(), game.getLowerListTribeCards(),</b>
|
||||
<b class="nc"> game.getUpperListBuilding(), game.getLowerListBuilding(),</b>
|
||||
<b class="nc"> game.getDisconnectedPlayers().entrySet().stream()</b>
|
||||
<b class="nc"> .filter(Map.Entry::getValue)</b>
|
||||
<b class="nc"> .map(e -> e.getKey().getUserName())</b>
|
||||
<b class="nc"> .collect(Collectors.toCollection(ArrayList::new))</b>
|
||||
);
|
||||
<b class="nc"> }</b>
|
||||
<b class="nc"> broadcaster.notifyAll(miniModel);</b>
|
||||
<b class="nc"> }).start());</b>
|
||||
|
||||
<b class="nc"> new Thread(() -> {</b>
|
||||
<b class="nc"> try { launcher.run(); }</b>
|
||||
catch (Exception e) {
|
||||
<b class="nc"> System.out.println("Unexpected exception in game loop");</b>
|
||||
<b class="nc"> e.printStackTrace();</b>
|
||||
}
|
||||
<b class="nc"> }).start();</b>
|
||||
|
||||
<b class="nc"> rmiServer.start();</b>
|
||||
<b class="nc"> new Thread(() -> tcpServer.start()).start();</b>
|
||||
<b class="nc"> System.out.println("Server RMI: " + System.getProperty("java.rmi.server.hostname"));</b>
|
||||
}
|
||||
|
||||
// ── Game loop ─────────────────────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Runs the event-processing loop until the thread is interrupted.
|
||||
*
|
||||
* <p>A {@link ConcurrentModificationException} is caught and logged rather
|
||||
*/
|
||||
public void run() {
|
||||
while (true) {
|
||||
try {
|
||||
<b class="nc"> eventProcessor.doFirstEvent();</b>
|
||||
} catch (InterruptedException e) {
|
||||
<b class="nc"> Thread.currentThread().interrupt();</b>
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ── Crash recovery ────────────────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Attempts to restore a previously saved game.
|
||||
*
|
||||
* <p>The save is discarded if all but at most one player was offline at the
|
||||
* time of the crash, since there would be nobody to resume the game with.
|
||||
* Otherwise the model is restored, the player-list limit is set, and each
|
||||
* player who was offline at crash time is pre-populated as offline so the
|
||||
* reconnection flow can handle them correctly.
|
||||
*
|
||||
* @param gameController the controller that will receive the restored model.
|
||||
* @param playerList the player-status map to populate.
|
||||
* @param saveManager the save manager to load from.
|
||||
*/
|
||||
private static void restoreGameIfSaved(
|
||||
GameController gameController,
|
||||
LimitedMap<String, Boolean> playerList,
|
||||
SaveManager saveManager) {
|
||||
|
||||
<b class="nc"> Game game = saveManager.load();</b>
|
||||
<b class="nc"> if (game == null) return;</b>
|
||||
|
||||
<b class="nc"> long disconnectedCount = game.getDisconnectedPlayers().entrySet().stream()</b>
|
||||
<b class="nc"> .filter(Map.Entry::getValue).count();</b>
|
||||
|
||||
<b class="nc"> if (disconnectedCount >= game.getNPlayers() - 1) {</b>
|
||||
<b class="nc"> saveManager.delete();</b>
|
||||
<b class="nc"> System.out.println("Save discarded: too many players were offline at crash time.");</b>
|
||||
return;
|
||||
}
|
||||
|
||||
<b class="nc"> gameController.setModel(game);</b>
|
||||
<b class="nc"> playerList.setLimit(game.getNPlayers());</b>
|
||||
|
||||
<b class="nc"> for (Map.Entry<Player, Boolean> entry : game.getDisconnectedPlayers().entrySet()) {</b>
|
||||
<b class="nc"> if (entry.getValue()) {</b>
|
||||
<b class="nc"> playerList.put(entry.getKey().getUserName(), false);</b>
|
||||
}
|
||||
}
|
||||
<b class="nc"> System.out.println("Game restored from save (" + game.getNPlayers() + " players).");</b>
|
||||
}
|
||||
|
||||
// ── Network interface selection ───────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Lists active non-loopback IPv4 network interfaces and prompts the operator
|
||||
* to choose one. If only one interface is available it is selected automatically.
|
||||
*
|
||||
* @param scanner the scanner used to read the operator's choice.
|
||||
* @return the IPv4 address of the selected interface.
|
||||
* @throws Exception if no valid network interface is available.
|
||||
*/
|
||||
public static String chooseNetworkInterface(Scanner scanner) throws Exception {
|
||||
<b class="nc"> List<String> ips = new ArrayList<>();</b>
|
||||
|
||||
<b class="nc"> Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();</b>
|
||||
<b class="nc"> while (interfaces.hasMoreElements()) {</b>
|
||||
<b class="nc"> NetworkInterface ni = interfaces.nextElement();</b>
|
||||
<b class="nc"> if (!ni.isUp() || ni.isLoopback() || ni.isVirtual()) continue;</b>
|
||||
|
||||
<b class="nc"> Enumeration<InetAddress> addresses = ni.getInetAddresses();</b>
|
||||
<b class="nc"> while (addresses.hasMoreElements()) {</b>
|
||||
<b class="nc"> InetAddress addr = addresses.nextElement();</b>
|
||||
<b class="nc"> if (addr instanceof Inet4Address) {</b>
|
||||
<b class="nc"> System.out.println("[" + ips.size() + "] " + ni.getDisplayName()</b>
|
||||
<b class="nc"> + " -> " + addr.getHostAddress());</b>
|
||||
<b class="nc"> ips.add(addr.getHostAddress());</b>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<b class="nc"> if (ips.isEmpty()) throw new Exception("No active network interface available");</b>
|
||||
|
||||
<b class="nc"> if (ips.size() == 1) {</b>
|
||||
<b class="nc"> System.out.println("One interface found, using: " + ips.get(0));</b>
|
||||
<b class="nc"> return ips.get(0);</b>
|
||||
}
|
||||
|
||||
<b class="nc"> System.out.print("Choose interface: ");</b>
|
||||
<b class="nc"> int choice = Integer.parseInt(scanner.nextLine().trim());</b>
|
||||
<b class="nc"> return ips.get(choice);</b>
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,167 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Client</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Client</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Client</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Client</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_NAME_DESC.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">TCPClient</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,167 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Client</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_BLOCK.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Client</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Client</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Client</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">TCPClient</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,167 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Client</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Client</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Client</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Client</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">TCPClient</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,167 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Client</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_CLASS.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Client</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Client</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Client</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">TCPClient</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,167 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Client</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Client</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Client</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Client</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">TCPClient</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,167 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Client</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_LINE.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Client</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Client</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Client</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">TCPClient</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,167 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Client</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Client</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Client</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Client</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">TCPClient</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,167 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Client</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_METHOD.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Client</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Client</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Client</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">TCPClient</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,167 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Client</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Client</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Client</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Client</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">TCPClient</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,167 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Client</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Client</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Client</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Client</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedDesc
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">TCPClient</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,429 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > TCPClient</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14.Network.TCP.Client</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: TCPClient (it.polimi.ingsw.gc14.Network.TCP.Client)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">TCPClient</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/26)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/83)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14.Network.TCP.Client;
|
||||
|
||||
import it.polimi.ingsw.gc14.Controller.ClientController;
|
||||
import it.polimi.ingsw.gc14.ErrorType;
|
||||
import it.polimi.ingsw.gc14.Model.MiniModel;
|
||||
import it.polimi.ingsw.gc14.Network.IClient;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkEvent;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkConfig;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkEvents.*;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.*;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* Client TCP. Sends and receives messages with the TCP server.
|
||||
*/
|
||||
public class TCPClient implements IClient {
|
||||
private static final int PING = 1;
|
||||
private static final int PONG = 2;
|
||||
|
||||
/** Socket TCP */
|
||||
private Socket communicationSocket;
|
||||
|
||||
/** Input stream used receive objects from the server */
|
||||
private ObjectInputStream socketReceive;
|
||||
|
||||
/** Output stream used to send objects to the server */
|
||||
private ObjectOutputStream socketSend;
|
||||
|
||||
/** Client game's controller */
|
||||
private ClientController controller;
|
||||
|
||||
/** IP address of the server to connect to */
|
||||
private String hostname;
|
||||
|
||||
private boolean running;
|
||||
/** TCP port */
|
||||
private int mainPort;
|
||||
|
||||
private int heartbeatPort;
|
||||
private Socket heartbeatSocket;
|
||||
private OutputStream heartbeatOut;
|
||||
private InputStream heartbeatIn;
|
||||
|
||||
|
||||
/**
|
||||
* Constructs a TCP client and initializes its connection parameters.
|
||||
*
|
||||
* @param controller the client controller.
|
||||
* @param hostname the IP address or hostname of the server.
|
||||
* @param mainPort the main TCP port of the server.
|
||||
* @param heartbeatPort the TCP port used for heartbeat communication.
|
||||
*/
|
||||
<b class="nc"> public TCPClient(ClientController controller, String hostname, int mainPort,int heartbeatPort ) {</b>
|
||||
<b class="nc"> this.controller = controller;</b>
|
||||
<b class="nc"> this.hostname = hostname;</b>
|
||||
<b class="nc"> this.mainPort = mainPort;</b>
|
||||
<b class="nc"> this.heartbeatPort = heartbeatPort;</b>
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Starts the TCP connection with the server.
|
||||
* Sends an {@link AddPlayer} event, if the server responds with {@code -1}, the connection is refused and the method returns {@code false}.
|
||||
* Otherwise, a listener thread is started.
|
||||
* @param user The username of the player
|
||||
* @param proposedNPlayers The desired number of players for the game
|
||||
* @return true if the connection is successful, false otherwise.
|
||||
*/
|
||||
public ErrorType connect(String user, int proposedNPlayers) {
|
||||
try {
|
||||
<b class="nc"> communicationSocket = new Socket(hostname, mainPort);</b>
|
||||
<b class="nc"> socketSend = new ObjectOutputStream(communicationSocket.getOutputStream());</b>
|
||||
<b class="nc"> socketReceive = new ObjectInputStream(communicationSocket.getInputStream());</b>
|
||||
<b class="nc"> NetworkEvent event= new AddPlayer(user, proposedNPlayers);</b>
|
||||
<b class="nc"> socketSend.writeObject(event);</b>
|
||||
try {
|
||||
<b class="nc"> if( socketReceive.readObject() instanceof AddPlayer x)</b>
|
||||
{
|
||||
<b class="nc"> if(x.isError())</b>
|
||||
<b class="nc"> return x.getErrorType();</b>
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
<b class="nc"> return ErrorType.GENERIC_ERROR;</b>
|
||||
}
|
||||
|
||||
<b class="nc"> running = true;</b>
|
||||
|
||||
<b class="nc"> new Thread(this::receiveMessage, "tcp-reader").start();</b>
|
||||
|
||||
// heartbeat socket
|
||||
<b class="nc"> this.heartbeatSocket = new Socket(hostname, heartbeatPort);</b>
|
||||
<b class="nc"> this.heartbeatOut = heartbeatSocket.getOutputStream();</b>
|
||||
<b class="nc"> this.heartbeatIn = heartbeatSocket.getInputStream();</b>
|
||||
|
||||
// send username immediately so server can associate the two sockets
|
||||
<b class="nc"> new ObjectOutputStream(heartbeatSocket.getOutputStream()).writeObject(user);</b>
|
||||
<b class="nc"> heartbeatOut.flush();</b>
|
||||
<b class="nc"> new Thread(this::heartbeatLoop, "heartbeat").start();</b>
|
||||
|
||||
<b class="nc"> return null;</b>
|
||||
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> e.printStackTrace();</b>
|
||||
<b class="nc"> return ErrorType.GENERIC_ERROR;</b>
|
||||
}
|
||||
}
|
||||
|
||||
private void heartbeatLoop() {
|
||||
<b class="nc"> ScheduledExecutorService sender = Executors.newSingleThreadScheduledExecutor();</b>
|
||||
<b class="nc"> sender.scheduleAtFixedRate(() -> {</b>
|
||||
try {
|
||||
<b class="nc"> synchronized (heartbeatOut)</b>
|
||||
{
|
||||
<b class="nc"> heartbeatOut.write(PING);</b>
|
||||
<b class="nc"> heartbeatOut.flush();</b>
|
||||
<b class="nc"> }</b>
|
||||
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> sender.shutdownNow();</b>
|
||||
<b class="nc"> if(running)</b>
|
||||
{
|
||||
<b class="nc"> disconnect();</b>
|
||||
<b class="nc"> controller.getView().showError(ErrorType.SERVER_CRASHED,ErrorType.SERVER_CRASHED.toString());</b>
|
||||
}
|
||||
|
||||
}
|
||||
}, 0, 3, TimeUnit.SECONDS);
|
||||
|
||||
try {
|
||||
<b class="nc"> heartbeatSocket.setSoTimeout((int) NetworkConfig.SILENCE_THRESHOLD_MS);</b>
|
||||
<b class="nc"> while (running) {</b>
|
||||
<b class="nc"> int b = heartbeatIn.read();</b>
|
||||
<b class="nc"> if (b == -1 || b != PONG) {</b>
|
||||
<b class="nc"> disconnect();</b>
|
||||
<b class="nc"> controller.getView().showError(ErrorType.SERVER_CRASHED, ErrorType.SERVER_CRASHED.toString());</b>
|
||||
break;
|
||||
}
|
||||
// pong received: server is alive
|
||||
}
|
||||
} catch (SocketTimeoutException e) {
|
||||
<b class="nc"> System.out.println("Server heartbeat timeout");</b>
|
||||
<b class="nc"> disconnect();</b>
|
||||
<b class="nc"> controller.getView().showError(ErrorType.SERVER_CRASHED, ErrorType.SERVER_CRASHED.toString());</b>
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> if (running) {</b>
|
||||
<b class="nc"> disconnect();</b>
|
||||
<b class="nc"> controller.getView().showError(ErrorType.SERVER_CRASHED, ErrorType.SERVER_CRASHED.toString());</b>
|
||||
}
|
||||
} finally {
|
||||
<b class="nc"> sender.shutdownNow();</b>
|
||||
}
|
||||
}
|
||||
private synchronized void disconnect() {
|
||||
<b class="nc"> if (!running) return;</b>
|
||||
<b class="nc"> running = false;</b>
|
||||
<b class="nc"> try { communicationSocket.close(); } catch (IOException ignored) {}</b>
|
||||
<b class="nc"> try { heartbeatSocket.close(); } catch (IOException ignored) {}</b>
|
||||
<b class="nc"> controller.setClient(null);</b>
|
||||
<b class="nc"> controller.setModel(null);</b>
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Listens continuously for incoming objects from the server.
|
||||
* - If the received object is a {@link NetworkEvent} flagged as an error, it is printed.
|
||||
* - If the received object is a valid {@link NetworkEvent}, it is applied to the game controller.
|
||||
* - If the received object is a {@link MiniModel}, the controller's model is set.
|
||||
*/
|
||||
private void receiveMessage() {
|
||||
while (true) {
|
||||
try {
|
||||
Object read;
|
||||
try {
|
||||
<b class="nc"> read = socketReceive.readObject();</b>
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> if (running) disconnect();</b>
|
||||
break;
|
||||
}
|
||||
|
||||
<b class="nc"> if (read instanceof NetworkEvent event) {</b>
|
||||
<b class="nc"> if (event.isError()) {</b>
|
||||
<b class="nc"> if(event.getErrorType() == ErrorType.WRONG_ACTION) {</b>
|
||||
<b class="nc"> controller.getView().showError(ErrorType.WRONG_ACTION,event.toString());</b>
|
||||
}
|
||||
else
|
||||
<b class="nc"> controller.getView().showError(event.getErrorType(),event.getErrorType().toString());</b>
|
||||
} else {
|
||||
<b class="nc"> event.apply(controller.getMiniModel());</b>
|
||||
<b class="nc"> controller.getView().render();</b>
|
||||
}
|
||||
|
||||
<b class="nc"> } else if (read instanceof MiniModel model) {</b>
|
||||
<b class="nc"> controller.setModel(model);</b>
|
||||
<b class="nc"> controller.getView().render();</b>
|
||||
}
|
||||
|
||||
} catch (ClassNotFoundException e) {
|
||||
<b class="nc"> e.printStackTrace();</b>
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Requests to draw a tribe card from the upper list.
|
||||
* Creates a NetworkEvent and sends it through the network client.
|
||||
* @param playerUsername the name of the player performing the action
|
||||
* @param pos the index of the card to draw
|
||||
*/
|
||||
public void drawUpperTribeCard(String playerUsername, int pos) {
|
||||
<b class="nc"> doEvent(new DrawUpperTribeCard(playerUsername,pos));</b>
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Requests to draw a tribe card from the lower list.
|
||||
* Creates a NetworkEvent and sends it through the network client.
|
||||
* @param playerUsername the name of the player performing the action
|
||||
* @param pos the index of the card to draw
|
||||
*/
|
||||
public void drawLowerTribeCard(String playerUsername,int pos) {
|
||||
<b class="nc"> doEvent(new DrawLowerTribeCard(playerUsername,pos));</b>
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Requests to draw a building card from the upper list.
|
||||
* Creates a NetworkEvent and sends it through the network client.
|
||||
* @param playerUsername the name of the player performing the action
|
||||
* @param pos the index of the card to draw
|
||||
*/
|
||||
public void drawUpperBuildingCard(String playerUsername,int pos) {
|
||||
<b class="nc"> doEvent(new DrawUpperBuildingCard(playerUsername,pos));</b>
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Requests to draw a building card from the lower list.
|
||||
* Creates a NetworkEvent and sends it through the network client.
|
||||
* @param playerUsername the name of the player performing the action
|
||||
* @param pos the index of the card to draw
|
||||
*/
|
||||
public void drawLowerBuildingCard(String playerUsername,int pos) {
|
||||
<b class="nc"> doEvent(new DrawLowerBuildingCard(playerUsername,pos));</b>
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Requests to skip drawing turn.
|
||||
* This action is available only when the player cannot draw any tribe card, but still can buy some buildings.
|
||||
* @param playerUsername the name of the player performing the action
|
||||
*/
|
||||
public void skipTurn(String playerUsername) {
|
||||
<b class="nc"> doEvent(new SkipTurn(playerUsername));</b>
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Used to perform the slot choice action for the specified player at the specified position.
|
||||
* @param playerUsername the name of the player performing the action
|
||||
* @param pos the index of the selected slot
|
||||
*/
|
||||
public void slotChoice(String playerUsername,int pos) {
|
||||
<b class="nc"> doEvent(new SlotChoice(playerUsername,pos));</b>
|
||||
}
|
||||
/**
|
||||
* Sends a {@link NetworkEvent} to the server.
|
||||
* @param event The NetworkEvent to send.
|
||||
*/
|
||||
private void doEvent(NetworkEvent event) {
|
||||
try {
|
||||
<b class="nc"> synchronized (socketSend) {</b>
|
||||
<b class="nc"> socketSend.writeObject(event);</b>
|
||||
<b class="nc"> }</b>
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> e.printStackTrace();</b>
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a totem choice event to the server for the specified player.
|
||||
*
|
||||
* @param playerUsername the username of the player choosing the totem.
|
||||
* @param totems the name of the chosen totem.
|
||||
*/
|
||||
public void totemChoice(String playerUsername,String totems) {
|
||||
<b class="nc"> doEvent(new TotemChoice(playerUsername,totems));</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Notifies the server of a voluntary disconnection by sending a sentinel value
|
||||
* on the heartbeat channel, then closes the connection.
|
||||
*/
|
||||
public void notifyDisconnection()
|
||||
{
|
||||
<b class="nc"> synchronized (heartbeatOut)</b>
|
||||
{
|
||||
try {
|
||||
<b class="nc"> heartbeatOut.write(-1);</b>
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> disconnect();</b>
|
||||
}
|
||||
<b class="nc"> }</b>
|
||||
<b class="nc"> disconnect();</b>
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,237 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Server</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Server</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Server</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Server</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_NAME_DESC.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/32)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">HeartbeatHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TCPServer</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/105)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,237 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Server</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_BLOCK.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Server</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Server</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Server</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/32)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">HeartbeatHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TCPServer</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/105)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,237 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Server</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Server</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Server</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Server</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TCPServer</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/105)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">HeartbeatHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/32)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,237 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Server</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_CLASS.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Server</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Server</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Server</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/32)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">HeartbeatHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TCPServer</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/105)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,237 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Server</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Server</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Server</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Server</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TCPServer</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/105)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">HeartbeatHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/32)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,237 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Server</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_LINE.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Server</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Server</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Server</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/32)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">HeartbeatHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TCPServer</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/105)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,237 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Server</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Server</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Server</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Server</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TCPServer</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/105)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">HeartbeatHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/32)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,237 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Server</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_METHOD.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Server</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Server</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Server</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/32)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">HeartbeatHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TCPServer</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/105)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,237 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Server</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Server</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Server</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Server</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TCPServer</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/105)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">HeartbeatHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/32)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,237 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.TCP.Server</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.TCP.Server</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.TCP.Server</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.TCP.Server</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/166)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedDesc
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TCPServer</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/105)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">HeartbeatHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">ClientHandler</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/32)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,267 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > ClientHandler</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14.Network.TCP.Server</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: ClientHandler (it.polimi.ingsw.gc14.Network.TCP.Server)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">ClientHandler</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/32)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14.Network.TCP.Server;
|
||||
|
||||
import it.polimi.ingsw.gc14.LimitedMap;
|
||||
import it.polimi.ingsw.gc14.Model.Game;
|
||||
import it.polimi.ingsw.gc14.Model.MiniModel;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkEvent;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkEvents.DisconnectedPlayer;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.*;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
|
||||
/**
|
||||
* Handles the TCP connection with a single client.
|
||||
* Each instance runs on a dedicated thread and is responsible for receiving {@link NetworkEvent} from its client and adding them
|
||||
* to the {@link #actionQueue}.
|
||||
* It is also responsible to send events and game model updates back to the client.
|
||||
*/
|
||||
public class ClientHandler implements Runnable {
|
||||
/**
|
||||
* The username of the connected client on this handler
|
||||
*/
|
||||
private final String username;
|
||||
|
||||
private volatile boolean running;
|
||||
|
||||
/**
|
||||
* Returns the username associated with this client.
|
||||
*
|
||||
* @return the username associated with this client.
|
||||
*/
|
||||
public String getUsername() {
|
||||
<b class="nc"> return username;</b>
|
||||
}
|
||||
/** The TCP socket */
|
||||
private Socket clientSocket;
|
||||
|
||||
/** Input stream used to receive objects from the client */
|
||||
private ObjectInputStream in;
|
||||
|
||||
/** Output stream used to send objects to the client */
|
||||
private ObjectOutputStream out;
|
||||
|
||||
/**
|
||||
* Shared list of all client handlers.
|
||||
* This handler removes itself from the list when disconnected.
|
||||
*/
|
||||
private List<ClientHandler> clientHandlers;
|
||||
|
||||
/** Maps each connected player's username to their connection state (true = connected). */
|
||||
private LimitedMap<String, Boolean> limitedMap;
|
||||
|
||||
/** Queue containing the events to be applied to the game model */
|
||||
private BlockingQueue<NetworkEvent> actionQueue;
|
||||
|
||||
|
||||
/**
|
||||
* Class constructor that initializes the attributes.
|
||||
*
|
||||
* @param username the username associated with the client.
|
||||
* @param clientSocket the socket representing the client's TCP connection.
|
||||
* @param out the output stream used to send data to the client.
|
||||
* @param in the input stream used to receive data from the client.
|
||||
* @param clientHandlers the shared list of all active client handlers.
|
||||
* @param playersMap the shared map containing the connected players.
|
||||
* @param actionQueue the queue containing incoming events.
|
||||
*/
|
||||
<b class="nc"> public ClientHandler(String username, Socket clientSocket, ObjectOutputStream out, ObjectInputStream in, List<ClientHandler> clientHandlers, LimitedMap<String,Boolean> playersMap, BlockingQueue<NetworkEvent> actionQueue) {</b>
|
||||
<b class="nc"> this.username=username;</b>
|
||||
<b class="nc"> this.clientSocket = clientSocket;</b>
|
||||
<b class="nc"> this.in = in;</b>
|
||||
<b class="nc"> this.out = out;</b>
|
||||
<b class="nc"> this.clientHandlers = clientHandlers;</b>
|
||||
<b class="nc"> this.actionQueue = actionQueue;</b>
|
||||
<b class="nc"> this.limitedMap = playersMap;</b>
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Listens for incoming {@link NetworkEvent}s from the client and adds them to the {@link #actionQueue}.
|
||||
* Upon disconnection, this handler removes itself from {@link #clientHandlers}.
|
||||
*/
|
||||
@Override
|
||||
public void run() {
|
||||
<b class="nc"> running = true;</b>
|
||||
try {
|
||||
<b class="nc"> while (running) {</b>
|
||||
<b class="nc"> NetworkEvent event = (NetworkEvent) in.readObject();</b>
|
||||
<b class="nc"> if (!actionQueue.offer(event)) {</b>
|
||||
<b class="nc"> System.out.println("Error inserting action into queue");</b>
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> System.err.println("Error in incoming connection/disconnection: " + username);</b>
|
||||
} catch (ClassNotFoundException e) {
|
||||
<b class="nc"> System.err.println("Class not found: " + username);</b>
|
||||
} finally {
|
||||
<b class="nc"> if (running) disconnect();</b>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Sends a {@link NetworkEvent} to the client.
|
||||
* @param event The network event to send to the client.
|
||||
*/
|
||||
public synchronized void notifyEvent(NetworkEvent event) {
|
||||
try {
|
||||
<b class="nc"> out.reset();</b>
|
||||
<b class="nc"> out.writeObject(event);</b>
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> e.printStackTrace();</b>
|
||||
<b class="nc"> disconnect();</b>
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sends the current game model to this client.
|
||||
* @param game The current state of the game to send to the client.
|
||||
*/
|
||||
public synchronized void notifyMiniModel(MiniModel game) {
|
||||
try {
|
||||
<b class="nc"> out.reset();</b>
|
||||
<b class="nc"> out.writeObject(game);</b>
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> e.printStackTrace();</b>
|
||||
<b class="nc"> disconnect();</b>
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Disconnects the client from the server.
|
||||
*
|
||||
* <p>The client handler is stopped and removed from the list of active handlers.
|
||||
* The player is marked as disconnected, a {@link DisconnectedPlayer} event is
|
||||
* added to the action queue, and the associated socket is closed.
|
||||
*/
|
||||
public synchronized void disconnect() {
|
||||
<b class="nc"> if (!running) return;</b>
|
||||
<b class="nc"> running = false;</b>
|
||||
<b class="nc"> clientHandlers.remove(this);</b>
|
||||
<b class="nc"> limitedMap.put(username, false);</b>
|
||||
<b class="nc"> actionQueue.add(new DisconnectedPlayer(username));</b>
|
||||
<b class="nc"> System.out.println("Disconnected player: " + username);</b>
|
||||
<b class="nc"> try { clientSocket.close(); } catch (IOException ignored) {}</b>
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,247 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > HeartbeatHandler</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14.Network.TCP.Server</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: HeartbeatHandler (it.polimi.ingsw.gc14.Network.TCP.Server)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">HeartbeatHandler</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/5)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/29)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14.Network.TCP.Server;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.*;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkConfig;
|
||||
|
||||
/**
|
||||
* Handles the heartbeat communication associated with a TCP client.
|
||||
*
|
||||
* <p>This component listens for heartbeat {@code PING} messages from the client,
|
||||
* replies with {@code PONG} messages, and periodically checks whether the client
|
||||
* has remained silent for too long. If a timeout or communication error occurs,
|
||||
* both the heartbeat connection and the main client connection are disconnected.
|
||||
*/
|
||||
public class HeartbeatHandler implements Runnable {
|
||||
|
||||
private final String username;
|
||||
private final Socket socket;
|
||||
private final InputStream in;
|
||||
private final OutputStream out;
|
||||
|
||||
/**
|
||||
* Byte value representing a heartbeat ping message.
|
||||
*/
|
||||
private static final int PING = 1;
|
||||
|
||||
/**
|
||||
* Byte value representing a heartbeat pong response.
|
||||
*/
|
||||
private static final int PONG = 2;
|
||||
|
||||
/**
|
||||
* Main client handler associated with this heartbeat connection.
|
||||
*/
|
||||
private final ClientHandler mainHandler;
|
||||
|
||||
/**
|
||||
* Timestamp of the last received heartbeat message.
|
||||
*/
|
||||
<b class="nc"> private volatile long lastReceivedTime = System.currentTimeMillis();</b>
|
||||
|
||||
/**
|
||||
* Indicates whether the heartbeat handler is still active.
|
||||
*/
|
||||
<b class="nc"> private volatile boolean running = true;</b>
|
||||
|
||||
|
||||
/**
|
||||
* Executor used to periodically check heartbeat timeouts.
|
||||
*/
|
||||
<b class="nc"> private final ScheduledExecutorService watchdog =</b>
|
||||
<b class="nc"> Executors.newSingleThreadScheduledExecutor();</b>
|
||||
|
||||
/**
|
||||
* Constructs a heartbeat handler for the specified client.
|
||||
*
|
||||
* @param username the username of the connected client.
|
||||
* @param socket the socket dedicated to heartbeat communication.
|
||||
* @param mainHandler the main client handler associated with the same player.
|
||||
* @throws IOException if the input or output stream cannot be obtained from the socket.
|
||||
*/
|
||||
public HeartbeatHandler(String username, Socket socket, ClientHandler mainHandler)
|
||||
<b class="nc"> throws IOException {</b>
|
||||
<b class="nc"> this.username = username;</b>
|
||||
<b class="nc"> this.socket = socket;</b>
|
||||
<b class="nc"> this.mainHandler = mainHandler;</b>
|
||||
<b class="nc"> this.in = socket.getInputStream();</b>
|
||||
<b class="nc"> this.out = socket.getOutputStream();</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the heartbeat listening loop.
|
||||
*
|
||||
* <p>The method activates the watchdog task, then waits for incoming heartbeat
|
||||
* messages. When a {@code PING} is received, the last-received timestamp is
|
||||
* updated and a {@code PONG} response is sent back to the client.
|
||||
* If the stream is closed or an I/O error occurs, the client is disconnected.
|
||||
*/
|
||||
@Override
|
||||
public void run() {
|
||||
<b class="nc"> startWatchdog();</b>
|
||||
try {
|
||||
<b class="nc"> while (running) {</b>
|
||||
<b class="nc"> int b = in.read(); // blocks until a byte arrives</b>
|
||||
<b class="nc"> if (b == -1) {</b>
|
||||
<b class="nc"> disconnect();</b>
|
||||
break; // stream closed
|
||||
}
|
||||
<b class="nc"> if (b == PING) {</b>
|
||||
<b class="nc"> lastReceivedTime = System.currentTimeMillis();</b>
|
||||
<b class="nc"> out.write(PONG);</b>
|
||||
<b class="nc"> out.flush();</b>
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> disconnect();</b>
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the periodic watchdog task that detects heartbeat timeouts.
|
||||
*
|
||||
* <p>If no heartbeat message is received within the configured silence threshold,
|
||||
* the associated client is disconnected.
|
||||
*/
|
||||
private void startWatchdog() {
|
||||
<b class="nc"> watchdog.scheduleAtFixedRate(() -> {</b>
|
||||
<b class="nc"> if (System.currentTimeMillis() - lastReceivedTime > NetworkConfig.SILENCE_THRESHOLD_MS) {</b>
|
||||
<b class="nc"> System.out.println("Heartbeat timeout: " + username);</b>
|
||||
<b class="nc"> disconnect();</b>
|
||||
}
|
||||
}, 1, 1, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Disconnects the heartbeat channel and the associated main client connection.
|
||||
*
|
||||
* <p>The handler is stopped, the watchdog task is terminated, the main
|
||||
* {@link ClientHandler} is disconnected, and the heartbeat socket is closed.
|
||||
*/
|
||||
private synchronized void disconnect() {
|
||||
<b class="nc"> running = false;</b>
|
||||
<b class="nc"> watchdog.shutdownNow();</b>
|
||||
<b class="nc"> mainHandler.disconnect(); // disconnette anche il socket principale</b>
|
||||
<b class="nc"> System.out.println("Disconnected: " + username);</b>
|
||||
<b class="nc"> try { socket.close(); } catch (IOException ignored) {}</b>
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,438 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > TCPServer</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14.Network.TCP.Server</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: TCPServer (it.polimi.ingsw.gc14.Network.TCP.Server)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">TCPServer</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/28)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/105)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14.Network.TCP.Server;
|
||||
|
||||
import it.polimi.ingsw.gc14.Controller.GameController;
|
||||
import it.polimi.ingsw.gc14.ErrorType;
|
||||
import it.polimi.ingsw.gc14.LimitedMap;
|
||||
import it.polimi.ingsw.gc14.Model.Game;
|
||||
import it.polimi.ingsw.gc14.Model.GamePackage.GameStages;
|
||||
import it.polimi.ingsw.gc14.Model.MiniModel;
|
||||
import it.polimi.ingsw.gc14.Network.EventType;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkConfig;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkEvent;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkEvents.AddPlayer;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkEvents.ReconnectPlayer;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* TCP server responsible for accepting client connections,
|
||||
* handling player registration and reconnection, and sending
|
||||
* game updates to connected clients.
|
||||
*
|
||||
* <p>The server also manages a dedicated heartbeat channel used
|
||||
* to detect disconnected clients and associate each heartbeat
|
||||
* connection with the corresponding {@link ClientHandler}.
|
||||
*/
|
||||
public class TCPServer {
|
||||
|
||||
/**
|
||||
* Main TCP port used for standard client-server communication.
|
||||
*/
|
||||
private int port;
|
||||
|
||||
/**
|
||||
* TCP port dedicated to heartbeat communication.
|
||||
*/
|
||||
private int heartbeatPort;
|
||||
|
||||
/**
|
||||
* Main server socket used to accept client connections.
|
||||
*/
|
||||
private ServerSocket socketTCP;
|
||||
|
||||
/**
|
||||
* Server socket used to accept heartbeat connections.
|
||||
*/
|
||||
private ServerSocket heartbeatSocketTCP;
|
||||
|
||||
/**
|
||||
* Game controller used to manage the server-side game logic.
|
||||
*/
|
||||
private final GameController controller;
|
||||
|
||||
/**
|
||||
* Queue containing network events received from clients.
|
||||
*/
|
||||
private BlockingQueue<NetworkEvent> actionQueue;
|
||||
|
||||
/**
|
||||
* Map storing the online/offline status of connected players.
|
||||
*/
|
||||
private LimitedMap<String, Boolean> playerList;
|
||||
|
||||
/**
|
||||
* List of active TCP client handlers.
|
||||
*/
|
||||
private CopyOnWriteArrayList<ClientHandler> clientHandlers;
|
||||
|
||||
|
||||
/**
|
||||
* Temporary map associating each username with the corresponding
|
||||
* {@link ClientHandler} waiting for its heartbeat connection.
|
||||
*/
|
||||
<b class="nc"> private final Map<String, ClientHandler> pendingHeartbeat = new ConcurrentHashMap<>();</b>
|
||||
|
||||
/**
|
||||
* Constructs a TCP server with the required game and network components.
|
||||
*
|
||||
* @param controller the game controller used to manage the game logic.
|
||||
* @param port the main TCP port used for client communication.
|
||||
* @param heartbeatPort the TCP port dedicated to heartbeat connections.
|
||||
* @param actionQueue the queue containing incoming network events.
|
||||
* @param playerList the map storing the connection status of the players.
|
||||
*/
|
||||
public TCPServer(GameController controller,
|
||||
int port,
|
||||
int heartbeatPort,
|
||||
BlockingQueue<NetworkEvent> actionQueue,
|
||||
<b class="nc"> LimitedMap<String, Boolean> playerList) {</b>
|
||||
<b class="nc"> this.port = port;</b>
|
||||
<b class="nc"> this.heartbeatPort = heartbeatPort;</b>
|
||||
<b class="nc"> this.controller = controller;</b>
|
||||
<b class="nc"> this.actionQueue = actionQueue;</b>
|
||||
<b class="nc"> this.playerList = playerList;</b>
|
||||
<b class="nc"> this.clientHandlers = new CopyOnWriteArrayList<>();</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the TCP server and begins accepting client connections.
|
||||
*
|
||||
* <p>The method opens both the main TCP server socket and the dedicated
|
||||
* heartbeat server socket. It then starts a separate thread for heartbeat
|
||||
* connections and continuously waits for new players or reconnecting clients.
|
||||
*
|
||||
* <p>When a new connection is received, the first event must be an
|
||||
* {@link AddPlayer} request. Depending on the current server state,
|
||||
* the connection is handled either as a new player joining the game
|
||||
* or as a reconnection attempt.
|
||||
*
|
||||
*/
|
||||
public void start() {
|
||||
try {
|
||||
<b class="nc"> socketTCP = new ServerSocket(port);</b>
|
||||
<b class="nc"> heartbeatSocketTCP = new ServerSocket(heartbeatPort);</b>
|
||||
} catch (IOException e) {
|
||||
<b class="nc"> System.out.println("Could not start TCP server");</b>
|
||||
<b class="nc"> e.printStackTrace();</b>
|
||||
return;
|
||||
}
|
||||
|
||||
<b class="nc"> System.out.println("TCP server started on port: " + port);</b>
|
||||
<b class="nc"> System.out.println("Heartbeat server started on port: " + heartbeatPort);</b>
|
||||
|
||||
<b class="nc"> new Thread(this::acceptHeartbeat, "heartbeat-acceptor").start();</b>
|
||||
|
||||
while (true) {
|
||||
try {
|
||||
<b class="nc"> Socket clientSocket = socketTCP.accept();</b>
|
||||
|
||||
<b class="nc"> ObjectOutputStream clientSend = new ObjectOutputStream(clientSocket.getOutputStream());</b>
|
||||
<b class="nc"> clientSend.flush();</b>
|
||||
<b class="nc"> ObjectInputStream clientReceive = new ObjectInputStream(clientSocket.getInputStream());</b>
|
||||
|
||||
<b class="nc"> NetworkEvent event = (NetworkEvent) clientReceive.readObject();</b>
|
||||
|
||||
<b class="nc"> if (!(event.getEventType() == EventType.ADD_PLAYER)) {</b>
|
||||
clientSocket.close();
|
||||
<b class="nc"> System.out.println("Invalid parameters. Connection terminated.");</b>
|
||||
continue;
|
||||
}
|
||||
|
||||
<b class="nc"> AddPlayer eventAddPlayer = (AddPlayer) event;</b>
|
||||
|
||||
<b class="nc"> if (eventAddPlayer.getProposedNPlayer() < NetworkConfig.MIN_PLAYERS</b>
|
||||
<b class="nc"> || eventAddPlayer.getProposedNPlayer() > NetworkConfig.MAX_PLAYERS) {</b>
|
||||
<b class="nc"> eventAddPlayer.setErrorType(ErrorType.WRONG_PLAYER_NUMBER);</b>
|
||||
<b class="nc"> eventAddPlayer.setIsError(true);</b>
|
||||
<b class="nc"> clientSend.writeObject(eventAddPlayer);</b>
|
||||
clientSocket.close();
|
||||
<b class="nc"> System.out.println("Invalid parameters. Connection terminated.");</b>
|
||||
continue;
|
||||
}
|
||||
|
||||
<b class="nc"> synchronized (controller) {</b>
|
||||
<b class="nc"> String username = eventAddPlayer.getUsername();</b>
|
||||
//reconnect players after a server crash
|
||||
<b class="nc"> if (playerList.isEmpty()&& controller.getModel()==null) {</b>
|
||||
<b class="nc"> Game model = new Game(eventAddPlayer.getProposedNPlayer());</b>
|
||||
<b class="nc"> controller.setModel(model);</b>
|
||||
<b class="nc"> playerList.setLimit(eventAddPlayer.getProposedNPlayer());</b>
|
||||
<b class="nc"> System.out.println("Game Created With :"+eventAddPlayer.getProposedNPlayer()+" Players");</b>
|
||||
}
|
||||
<b class="nc"> if(controller.getModel().getCurrentState().getGameStage()!= GameStages.WAITING ) {</b>
|
||||
<b class="nc"> if (controller.getModel().getPlayers().stream().noneMatch(p -> p.getUserName().equals(username))|| controller.getModel().getCurrentState().getGameStage()==GameStages.ENDED) {</b>
|
||||
<b class="nc"> eventAddPlayer.setErrorType(ErrorType.GAME_ALREADY_STARTED);</b>
|
||||
<b class="nc"> eventAddPlayer.setIsError(true);</b>
|
||||
<b class="nc"> clientSend.writeObject(eventAddPlayer);</b>
|
||||
clientSocket.close();
|
||||
<b class="nc"> System.out.println("Invalid parameters. Connection terminated.");</b>
|
||||
<b class="nc"> continue;</b>
|
||||
}
|
||||
}
|
||||
else {
|
||||
<b class="nc"> if (controller.addPlayer(username)) {</b>
|
||||
<b class="nc"> playerList.put(username, true);</b>
|
||||
<b class="nc"> System.out.println("Accepted player: " + username);</b>
|
||||
<b class="nc"> clientSend.writeObject(eventAddPlayer);</b>
|
||||
<b class="nc"> ClientHandler handler = createAndRegisterHandler(</b>
|
||||
username, clientSocket, clientSend, clientReceive);
|
||||
<b class="nc"> new Thread(handler).start();</b>
|
||||
<b class="nc"> continue;</b>
|
||||
} else {
|
||||
<b class="nc"> eventAddPlayer.setErrorType(ErrorType.USERNAME_ALREADY_USED);</b>
|
||||
<b class="nc"> eventAddPlayer.setIsError(true);</b>
|
||||
<b class="nc"> clientSend.writeObject(eventAddPlayer);</b>
|
||||
clientSocket.close();
|
||||
<b class="nc"> System.out.println("Invalid parameters. Connection terminated.");</b>
|
||||
<b class="nc"> continue;</b>
|
||||
}
|
||||
}
|
||||
|
||||
<b class="nc"> if (!playerList.containsKey(username)) {</b>
|
||||
<b class="nc"> playerList.put(username, true);</b>
|
||||
<b class="nc"> System.out.println("(After crash)Reconnected player: " + username);</b>
|
||||
<b class="nc"> clientSend.writeObject(eventAddPlayer);</b>
|
||||
<b class="nc"> ClientHandler handler = createAndRegisterHandler(</b>
|
||||
username, clientSocket, clientSend, clientReceive);
|
||||
<b class="nc"> new Thread(handler).start();</b>
|
||||
<b class="nc"> } else if (!playerList.get(username)) {</b>
|
||||
// reconnect a previously disconnected player
|
||||
<b class="nc"> playerList.put(username, true);</b>
|
||||
<b class="nc"> System.out.println("Reconnected player: " + username);</b>
|
||||
<b class="nc"> clientSend.writeObject(eventAddPlayer);</b>
|
||||
<b class="nc"> ClientHandler handler = createAndRegisterHandler(</b>
|
||||
username, clientSocket, clientSend, clientReceive);
|
||||
<b class="nc"> Game game = controller.getModel();</b>
|
||||
<b class="nc"> handler.notifyMiniModel(new MiniModel(</b>
|
||||
<b class="nc"> game.getSlotMap(), game.getOrderLogicCard(),</b>
|
||||
<b class="nc"> game.getCurrentState(), game.getPlayers(),</b>
|
||||
<b class="nc"> game.getAvailableTotems(),</b>
|
||||
<b class="nc"> game.getUpperListTribeCards(), game.getLowerListTribeCards(),</b>
|
||||
<b class="nc"> game.getUpperListBuilding(), game.getLowerListBuilding(),</b>
|
||||
<b class="nc"> disconnectedUsernames(game)));</b>
|
||||
<b class="nc"> new Thread(handler).start();</b>
|
||||
<b class="nc"> actionQueue.add(new ReconnectPlayer(username));</b>
|
||||
} else {
|
||||
<b class="nc"> eventAddPlayer.setErrorType(ErrorType.USER_ALREADY_CONNECTED);</b>
|
||||
<b class="nc"> eventAddPlayer.setIsError(true);</b>
|
||||
<b class="nc"> clientSend.writeObject(eventAddPlayer);</b>
|
||||
clientSocket.close();
|
||||
<b class="nc"> System.out.println("Invalid parameters. Connection terminated.");</b>
|
||||
}
|
||||
<b class="nc"> }</b>
|
||||
} catch (IOException | ClassNotFoundException e) {
|
||||
<b class="nc"> e.printStackTrace();</b>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Accepts heartbeat connections and associates them with the correct client handler.
|
||||
*
|
||||
* <p>Each client immediately sends its username on the heartbeat channel.
|
||||
* The method uses that username to retrieve the pending {@link ClientHandler}
|
||||
* and starts a dedicated {@link HeartbeatHandler}. If no pending handler is found,
|
||||
* the heartbeat socket is closed.
|
||||
*/
|
||||
private void acceptHeartbeat() {
|
||||
while (true) {
|
||||
try {
|
||||
<b class="nc"> Socket hbSocket = heartbeatSocketTCP.accept();</b>
|
||||
<b class="nc"> ObjectInputStream hbIn =</b>
|
||||
<b class="nc"> new ObjectInputStream(hbSocket.getInputStream());</b>
|
||||
|
||||
<b class="nc"> String username = (String) hbIn.readObject();</b>
|
||||
|
||||
<b class="nc"> ClientHandler handler = pendingHeartbeat.remove(username);</b>
|
||||
|
||||
<b class="nc"> if (handler != null) {</b>
|
||||
<b class="nc"> HeartbeatHandler hb =</b>
|
||||
new HeartbeatHandler(username, hbSocket, handler);
|
||||
|
||||
<b class="nc"> new Thread(hb, "heartbeat-" + username).start();</b>
|
||||
<b class="nc"> System.out.println("Heartbeat connected for: " + username);</b>
|
||||
} else {
|
||||
<b class="nc"> System.out.println(</b>
|
||||
"No pending handler for: " + username + ", closing heartbeat."
|
||||
);
|
||||
hbSocket.close();
|
||||
}
|
||||
|
||||
} catch (IOException | ClassNotFoundException e) {
|
||||
<b class="nc"> e.printStackTrace();</b>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Notifies connected TCP clients of a new network event.
|
||||
*
|
||||
* <p>If the event does not represent an error, it is sent to all connected clients.
|
||||
* If it represents an error, it is sent only to the client that requested the action.
|
||||
*
|
||||
* @param event the network event to send to the clients.
|
||||
*/
|
||||
public void notifyAll(NetworkEvent event) {
|
||||
<b class="nc"> clientHandlers.forEach(h -> {</b>
|
||||
<b class="nc"> if (!event.isError() || event.getUsername().equals(h.getUsername())) {</b>
|
||||
<b class="nc"> h.notifyEvent(event);</b>
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Notifies all connected TCP clients of a new game model.
|
||||
*
|
||||
* @param model the updated mini model to send to the clients.
|
||||
*/
|
||||
public void notifyAll(MiniModel model) {
|
||||
<b class="nc"> clientHandlers.forEach(h -> h.notifyMiniModel(model));</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a {@link ClientHandler}, registers it in {@code pendingHeartbeat}
|
||||
* and {@code clientHandlers}, but does NOT start its thread — callers start
|
||||
* the thread after any extra setup (e.g. sending a model snapshot).
|
||||
*/
|
||||
private ClientHandler createAndRegisterHandler(String username,
|
||||
Socket socket,
|
||||
ObjectOutputStream out,
|
||||
ObjectInputStream in) {
|
||||
<b class="nc"> ClientHandler handler = new ClientHandler(</b>
|
||||
username, socket, out, in, clientHandlers, playerList, actionQueue);
|
||||
<b class="nc"> pendingHeartbeat.put(username, handler);</b>
|
||||
<b class="nc"> clientHandlers.add(handler);</b>
|
||||
<b class="nc"> return handler;</b>
|
||||
}
|
||||
|
||||
/** Returns usernames of players currently marked as disconnected in the given game. */
|
||||
private static ArrayList<String> disconnectedUsernames(Game game) {
|
||||
<b class="nc"> return game.getDisconnectedPlayers().entrySet().stream()</b>
|
||||
<b class="nc"> .filter(Map.Entry::getValue)</b>
|
||||
<b class="nc"> .map(e -> e.getKey().getUserName())</b>
|
||||
<b class="nc"> .collect(Collectors.toCollection(ArrayList::new));</b>
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,342 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.GUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.GUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.GUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.GUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_NAME_DESC.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">FireParticleSystem</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/73)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/123)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/22)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/116)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">LeaderboardFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/34)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/182)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">LoginFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/63)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">MainFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/124)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/426)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">TotemFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/90)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,342 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.GUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_BLOCK.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.GUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.GUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.GUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">FireParticleSystem</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/73)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/123)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/22)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/116)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">LeaderboardFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/34)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/182)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">LoginFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/63)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">MainFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/124)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/426)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">TotemFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/90)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,342 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.GUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.GUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.GUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.GUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">TotemFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/90)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">MainFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/124)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/426)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">LoginFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/63)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">LeaderboardFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/34)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/182)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/22)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/116)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">FireParticleSystem</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/73)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/123)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,342 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.GUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_CLASS.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.GUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.GUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.GUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">FireParticleSystem</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/73)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/123)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/22)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/116)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">LeaderboardFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/34)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/182)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">LoginFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/63)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">MainFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/124)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/426)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">TotemFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/90)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,342 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.GUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.GUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.GUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.GUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">TotemFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/90)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">MainFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/124)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/426)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">LoginFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/63)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">LeaderboardFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/34)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/182)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/22)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/116)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">FireParticleSystem</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/73)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/123)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,342 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.GUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_LINE.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.GUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.GUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.GUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">FireParticleSystem</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/73)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/123)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/22)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/116)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">LeaderboardFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/34)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/182)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">LoginFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/63)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">MainFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/124)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/426)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">TotemFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/90)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,342 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.GUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.GUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.GUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.GUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">TotemFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/90)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">MainFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/124)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/426)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">LoginFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/63)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">LeaderboardFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/34)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/182)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/22)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/116)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">FireParticleSystem</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/73)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/123)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,342 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.GUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_METHOD.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.GUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.GUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.GUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">FireParticleSystem</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/73)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/123)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/22)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/116)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">LeaderboardFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/34)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/182)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">LoginFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/63)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">MainFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/124)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/426)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">TotemFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/90)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,342 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.GUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.GUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.GUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.GUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">TotemFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/90)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">MainFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/124)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/426)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">LoginFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/63)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">LeaderboardFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/34)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/182)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/22)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/116)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">FireParticleSystem</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/73)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/123)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,342 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.GUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.GUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.GUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.GUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/8)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/130)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/291)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1000)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedDesc
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-6.html">TotemFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/90)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-5.html">MainFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/124)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/426)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-4.html">LoginFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/63)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">LeaderboardFXMLController</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/34)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/182)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">GUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/22)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/116)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">FireParticleSystem</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/73)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/123)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,413 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > FireParticleSystem</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14.View.GUI</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: FireParticleSystem (it.polimi.ingsw.gc14.View.GUI)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">FireParticleSystem</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/6)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/31)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">FireParticleSystem$1</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/2)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/4)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">FireParticleSystem$Particle</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/7)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/40)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/69)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><strong>Total</strong></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/15)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/73)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/123)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14.View.GUI;
|
||||
|
||||
import javafx.animation.AnimationTimer;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.layout.Pane;
|
||||
import javafx.scene.paint.Color;
|
||||
import javafx.scene.shape.Circle;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
//TODO ALL JAVADOC
|
||||
public class FireParticleSystem {
|
||||
|
||||
private static final int MAX_PARTICLES = 30;
|
||||
private static final long SPAWN_INTERVAL_NS = 100_000_000L;
|
||||
private static final long FRAME_INTERVAL_NS = 1_000_000_000L / 30; // 30 fps cap
|
||||
private static final int STEPS_PER_FRAME = 3; // physics steps per frame → 3× speed
|
||||
|
||||
private final Pane pane;
|
||||
private final Scene scene;
|
||||
<b class="nc"> private final List<Particle> particles = new ArrayList<>();</b>
|
||||
<b class="nc"> private final Random rnd = new Random();</b>
|
||||
private AnimationTimer timer;
|
||||
<b class="nc"> private long lastSpawn = 0;</b>
|
||||
<b class="nc"> private long lastFrame = 0;</b>
|
||||
<b class="nc"> private boolean warmedUp = false;</b>
|
||||
|
||||
<b class="nc"> public FireParticleSystem(Scene scene) {</b>
|
||||
<b class="nc"> this.scene = scene;</b>
|
||||
<b class="nc"> pane = new Pane();</b>
|
||||
<b class="nc"> pane.setMouseTransparent(true);</b>
|
||||
<b class="nc"> pane.setPickOnBounds(false);</b>
|
||||
}
|
||||
|
||||
/** Returns the transparent overlay pane that holds all particle nodes. */
|
||||
<b class="nc"> public Pane getPane() { return pane; }</b>
|
||||
|
||||
/** Starts the animation timer. */
|
||||
public void start() {
|
||||
<b class="nc"> timer = new AnimationTimer() {</b>
|
||||
@Override
|
||||
public void handle(long now) {
|
||||
<b class="nc"> if (now - lastFrame < FRAME_INTERVAL_NS) return;</b>
|
||||
<b class="nc"> lastFrame = now;</b>
|
||||
<b class="nc"> tick(now);</b>
|
||||
}
|
||||
};
|
||||
<b class="nc"> timer.start();</b>
|
||||
}
|
||||
|
||||
/** Stops the animation timer. */
|
||||
public void stop() {
|
||||
<b class="nc"> if (timer != null) timer.stop();</b>
|
||||
}
|
||||
|
||||
private void tick(long now) {
|
||||
<b class="nc"> double w = scene.getWidth();</b>
|
||||
<b class="nc"> double h = scene.getHeight();</b>
|
||||
<b class="nc"> if (w == 0 || h == 0) return;</b>
|
||||
|
||||
<b class="nc"> if (!warmedUp) {</b>
|
||||
<b class="nc"> warmedUp = true;</b>
|
||||
<b class="nc"> for (int i = 0; i < MAX_PARTICLES; i++) {</b>
|
||||
<b class="nc"> Particle p = spawnParticle(w, h);</b>
|
||||
<b class="nc"> int advance = rnd.nextInt(800) + 100;</b>
|
||||
<b class="nc"> for (int f = 0; f < advance; f++) p.update();</b>
|
||||
<b class="nc"> if (!p.isDead(w, h)) {</b>
|
||||
<b class="nc"> p.addTo(pane);</b>
|
||||
<b class="nc"> p.updateVisual(w, h);</b>
|
||||
<b class="nc"> particles.add(p);</b>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<b class="nc"> if (now - lastSpawn > SPAWN_INTERVAL_NS && particles.size() < MAX_PARTICLES) {</b>
|
||||
<b class="nc"> lastSpawn = now;</b>
|
||||
<b class="nc"> int count = rnd.nextInt(2) + 1;</b>
|
||||
<b class="nc"> for (int i = 0; i < count && particles.size() < MAX_PARTICLES; i++) {</b>
|
||||
<b class="nc"> Particle p = spawnParticle(w, h);</b>
|
||||
<b class="nc"> p.addTo(pane);</b>
|
||||
<b class="nc"> particles.add(p);</b>
|
||||
}
|
||||
}
|
||||
|
||||
<b class="nc"> Iterator<Particle> it = particles.iterator();</b>
|
||||
<b class="nc"> while (it.hasNext()) {</b>
|
||||
<b class="nc"> Particle p = it.next();</b>
|
||||
<b class="nc"> for (int s = 0; s < STEPS_PER_FRAME; s++) p.update();</b>
|
||||
<b class="nc"> if (p.isDead(w, h)) {</b>
|
||||
<b class="nc"> p.removeFrom(pane);</b>
|
||||
<b class="nc"> it.remove();</b>
|
||||
} else {
|
||||
<b class="nc"> p.updateVisual(w, h);</b>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Particle spawnParticle(double w, double h) {
|
||||
<b class="nc"> int corner = rnd.nextInt(4);</b>
|
||||
<b class="nc"> double margin = 0.12;</b>
|
||||
double x, y;
|
||||
<b class="nc"> switch (corner) {</b>
|
||||
<b class="nc"> case 0 -> { x = rnd.nextDouble() * w * margin; y = h - rnd.nextDouble() * h * margin; }</b>
|
||||
<b class="nc"> case 1 -> { x = w - rnd.nextDouble() * w * margin; y = h - rnd.nextDouble() * h * margin; }</b>
|
||||
<b class="nc"> case 2 -> { x = rnd.nextDouble() * w * margin; y = rnd.nextDouble() * h * margin; }</b>
|
||||
<b class="nc"> default -> { x = w - rnd.nextDouble() * w * margin; y = rnd.nextDouble() * h * margin; }</b>
|
||||
}
|
||||
<b class="nc"> return new Particle(x, y, w, h, corner, rnd);</b>
|
||||
}
|
||||
|
||||
// ── Particle ──────────────────────────────────────────────────────────────
|
||||
|
||||
private static class Particle {
|
||||
|
||||
double x, y, vx, vy;
|
||||
double life;
|
||||
double size;
|
||||
double wobblePhase, wobbleSpeed, wobbleAmp;
|
||||
final int type;
|
||||
final Random rnd;
|
||||
|
||||
final Circle core;
|
||||
final Circle glow; // non-null only for embers
|
||||
|
||||
<b class="nc"> Particle(double x, double y, double w, double h, int corner, Random rnd) {</b>
|
||||
<b class="nc"> this.x = x;</b>
|
||||
<b class="nc"> this.y = y;</b>
|
||||
<b class="nc"> this.life = 1.0;</b>
|
||||
<b class="nc"> this.rnd = rnd;</b>
|
||||
<b class="nc"> this.type = weightedType(rnd);</b>
|
||||
|
||||
<b class="nc"> double targetX = (corner == 0 || corner == 2) ? w * 0.75 : w * 0.25;</b>
|
||||
<b class="nc"> double targetY = (corner == 0 || corner == 1) ? h * 0.25 : h * 0.75;</b>
|
||||
<b class="nc"> double baseAngle = Math.atan2(targetY - y, targetX - x);</b>
|
||||
<b class="nc"> double angle = baseAngle + (rnd.nextDouble() - 0.5) * (Math.PI / 3.5);</b>
|
||||
|
||||
double speed;
|
||||
<b class="nc"> if (type == 0) { // ember</b>
|
||||
<b class="nc"> speed = 0.5 + rnd.nextDouble() * 0.7;</b>
|
||||
<b class="nc"> size = rnd.nextDouble() * 3 + 2;</b>
|
||||
<b class="nc"> glow = new Circle(size * 2.2);</b>
|
||||
<b class="nc"> core = new Circle(size / 2);</b>
|
||||
<b class="nc"> } else if (type == 1) { // spark</b>
|
||||
<b class="nc"> speed = 1.5 + rnd.nextDouble() * 2.0;</b>
|
||||
<b class="nc"> size = rnd.nextDouble() * 1.5 + 0.5;</b>
|
||||
<b class="nc"> glow = null;</b>
|
||||
<b class="nc"> core = new Circle(size / 2);</b>
|
||||
} else { // dust
|
||||
<b class="nc"> speed = 0.2 + rnd.nextDouble() * 0.35;</b>
|
||||
<b class="nc"> size = rnd.nextDouble() * 8 + 5;</b>
|
||||
<b class="nc"> glow = null;</b>
|
||||
<b class="nc"> core = new Circle(size);</b>
|
||||
<b class="nc"> core.setFill(Color.color(0.55, 0.38, 0.22));</b>
|
||||
}
|
||||
|
||||
<b class="nc"> vx = Math.cos(angle) * speed;</b>
|
||||
<b class="nc"> vy = Math.sin(angle) * speed;</b>
|
||||
<b class="nc"> wobblePhase = rnd.nextDouble() * Math.PI * 2;</b>
|
||||
<b class="nc"> wobbleSpeed = 0.025 + rnd.nextDouble() * 0.04;</b>
|
||||
<b class="nc"> wobbleAmp = 0.1 + rnd.nextDouble() * 0.4;</b>
|
||||
}
|
||||
|
||||
private static int weightedType(Random rnd) {
|
||||
<b class="nc"> double r = rnd.nextDouble();</b>
|
||||
<b class="nc"> if (r < 0.55) return 0;</b>
|
||||
<b class="nc"> if (r < 0.78) return 1;</b>
|
||||
<b class="nc"> return 2;</b>
|
||||
}
|
||||
|
||||
void addTo(Pane pane) {
|
||||
<b class="nc"> if (glow != null) pane.getChildren().add(glow);</b>
|
||||
<b class="nc"> pane.getChildren().add(core);</b>
|
||||
}
|
||||
|
||||
void removeFrom(Pane pane) {
|
||||
<b class="nc"> pane.getChildren().remove(core);</b>
|
||||
<b class="nc"> if (glow != null) pane.getChildren().remove(glow);</b>
|
||||
}
|
||||
|
||||
void update() {
|
||||
<b class="nc"> wobblePhase += wobbleSpeed;</b>
|
||||
<b class="nc"> vx += Math.sin(wobblePhase) * wobbleAmp * 0.05;</b>
|
||||
<b class="nc"> vy += Math.cos(wobblePhase) * wobbleAmp * 0.02;</b>
|
||||
<b class="nc"> x += vx;</b>
|
||||
<b class="nc"> y += vy;</b>
|
||||
<b class="nc"> if (type == 1) life -= 0.008 + rnd.nextDouble() * 0.006;</b>
|
||||
}
|
||||
|
||||
boolean isDead(double w, double h) {
|
||||
<b class="nc"> double pad = size * 4;</b>
|
||||
<b class="nc"> return x < -pad || x > w + pad || y < -pad || y > h + pad</b>
|
||||
|| (type == 1 && life <= 0);
|
||||
}
|
||||
|
||||
void updateVisual(double w, double h) {
|
||||
<b class="nc"> double edge = Math.min(w, h) * 0.05;</b>
|
||||
<b class="nc"> double fadeX = Math.min(x / edge, Math.min((w - x) / edge, 1.0));</b>
|
||||
<b class="nc"> double fadeY = Math.min(y / edge, Math.min((h - y) / edge, 1.0));</b>
|
||||
<b class="nc"> double posAlpha = Math.max(0, Math.min(fadeX, fadeY));</b>
|
||||
<b class="nc"> double lifeAlpha = (type == 1) ? Math.min(life * 2.0, 1.0) : 1.0;</b>
|
||||
<b class="nc"> double alpha = posAlpha * lifeAlpha;</b>
|
||||
|
||||
<b class="nc"> core.setTranslateX(x);</b>
|
||||
<b class="nc"> core.setTranslateY(y);</b>
|
||||
|
||||
<b class="nc"> if (type == 0) {</b>
|
||||
<b class="nc"> double dist = Math.sqrt((x - w/2) * (x - w/2) + (y - h/2) * (y - h/2));</b>
|
||||
<b class="nc"> double hotness = Math.max(0, 1.0 - dist / (Math.sqrt(w * w + h * h) * 0.4));</b>
|
||||
<b class="nc"> double g = 0.3 + hotness * 0.5;</b>
|
||||
<b class="nc"> core.setFill(Color.color(1.0, g, 0.0));</b>
|
||||
<b class="nc"> core.setOpacity(alpha * 0.88);</b>
|
||||
<b class="nc"> glow.setTranslateX(x);</b>
|
||||
<b class="nc"> glow.setTranslateY(y);</b>
|
||||
<b class="nc"> glow.setFill(Color.color(1.0, g * 0.35, 0.0));</b>
|
||||
<b class="nc"> glow.setOpacity(alpha * 0.10);</b>
|
||||
<b class="nc"> } else if (type == 1) {</b>
|
||||
<b class="nc"> double brightness = Math.min(life * 2.5, 1.0);</b>
|
||||
<b class="nc"> core.setFill(Color.color(1.0, brightness * 0.85 + 0.15, brightness * 0.15));</b>
|
||||
<b class="nc"> core.setOpacity(alpha);</b>
|
||||
} else {
|
||||
<b class="nc"> core.setOpacity(alpha * 0.20);</b>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,398 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > GUI</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14.View.GUI</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: GUI (it.polimi.ingsw.gc14.View.GUI)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">GUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/22)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/116)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14.View.GUI;
|
||||
|
||||
import it.polimi.ingsw.gc14.Controller.ClientController;
|
||||
import it.polimi.ingsw.gc14.ErrorType;
|
||||
import it.polimi.ingsw.gc14.Model.MiniModel;
|
||||
import it.polimi.ingsw.gc14.View.IView;
|
||||
import javafx.animation.FadeTransition;
|
||||
import javafx.application.Application;
|
||||
import javafx.application.Platform;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.geometry.Rectangle2D;
|
||||
import javafx.scene.Parent;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.input.KeyCode;
|
||||
import javafx.scene.input.KeyEvent;
|
||||
import javafx.scene.input.KeyCombination;
|
||||
import javafx.scene.layout.StackPane;
|
||||
import javafx.scene.media.Media;
|
||||
import javafx.scene.media.MediaPlayer;
|
||||
import javafx.scene.paint.Color;
|
||||
import javafx.scene.shape.Rectangle;
|
||||
import javafx.stage.Screen;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.util.Duration;
|
||||
|
||||
import static it.polimi.ingsw.gc14.Model.GamePackage.GameStages.ENDED;
|
||||
import static it.polimi.ingsw.gc14.Model.GamePackage.GameStages.TOTEM_CHOICE;
|
||||
|
||||
/**
|
||||
* JavaFX-based GUI implementation of {@link it.polimi.ingsw.gc14.View.IView IView}.
|
||||
*
|
||||
* <p>Manages the primary stage and switches between the login, totem choice,
|
||||
* main game, and leaderboard scenes based on the current game state.
|
||||
*/
|
||||
<b class="nc"> public class GUI extends Application implements IView {</b>
|
||||
//TODO
|
||||
private Stage primaryStage;
|
||||
//TODO
|
||||
private volatile MiniModel miniModel;
|
||||
//TODO
|
||||
private FXMLLoader loaderLogin;
|
||||
//TODO
|
||||
private Scene loginScene;
|
||||
//TODO
|
||||
private LoginFXMLController controllerLogin;
|
||||
//TODO
|
||||
private FXMLLoader loaderTotem;
|
||||
//TODO
|
||||
private Scene totemScene;
|
||||
//TODO
|
||||
private TotemFXMLController controllerTotem;
|
||||
//TODO
|
||||
private FXMLLoader loaderMain;
|
||||
|
||||
//TODO
|
||||
private Scene mainScene;
|
||||
//TODO
|
||||
private MainFXMLController controllerMain;
|
||||
//TODO
|
||||
private FXMLLoader loaderLeaderboard;
|
||||
//TODO
|
||||
private Scene leaderboardScene;
|
||||
//TODO
|
||||
private LeaderboardFXMLController controllerLeaderboard;
|
||||
|
||||
//TODO
|
||||
private ClientController controller;
|
||||
//TODO
|
||||
<b class="nc"> private boolean autoReenterFullscreen = true;</b>
|
||||
//TODO
|
||||
<b class="nc"> private boolean isFading = false;</b>
|
||||
//TODO
|
||||
private MediaPlayer bgMusic;
|
||||
|
||||
|
||||
/**
|
||||
* JavaFX entry point: loads all FXML scenes, wires up controllers,
|
||||
* configures fullscreen behaviour, and shows the login scene.
|
||||
*
|
||||
* @param stage the primary stage provided by the JavaFX runtime.
|
||||
* @throws Exception if any FXML resource cannot be loaded.
|
||||
*/
|
||||
@Override
|
||||
public void start(Stage stage) throws Exception {
|
||||
<b class="nc"> this.primaryStage = stage;</b>
|
||||
<b class="nc"> loaderLogin = new FXMLLoader(getClass().getResource("/GUIScene/login.fxml"));</b>
|
||||
<b class="nc"> loginScene = new Scene(loaderLogin.load());</b>
|
||||
<b class="nc"> controllerLogin = loaderLogin.getController();</b>
|
||||
<b class="nc"> controllerLogin.setController(controller);</b>
|
||||
|
||||
|
||||
<b class="nc"> loaderTotem = new FXMLLoader(getClass().getResource("/GUIScene/totem.fxml"));</b>
|
||||
<b class="nc"> totemScene = new Scene(loaderTotem.load());</b>
|
||||
<b class="nc"> controllerTotem = loaderTotem.getController();</b>
|
||||
<b class="nc"> controllerTotem.setController(controller);</b>
|
||||
|
||||
|
||||
<b class="nc"> loaderMain = new FXMLLoader(getClass().getResource("/GUIScene/main.fxml"));</b>
|
||||
<b class="nc"> mainScene = new Scene(loaderMain.load());</b>
|
||||
<b class="nc"> controllerMain = loaderMain.getController();</b>
|
||||
<b class="nc"> controllerMain.setController(controller);</b>
|
||||
|
||||
<b class="nc"> loaderLeaderboard = new FXMLLoader(getClass().getResource("/GUIScene/standing.fxml"));</b>
|
||||
<b class="nc"> leaderboardScene = new Scene(loaderLeaderboard.load());</b>
|
||||
<b class="nc"> controllerLeaderboard = loaderLeaderboard.getController();</b>
|
||||
<b class="nc"> controllerLeaderboard.setController(controller, () -> {</b>
|
||||
<b class="nc"> controllerLogin.updateLoginButton(true);</b>
|
||||
<b class="nc"> controllerLogin.showError("");</b>
|
||||
<b class="nc"> fadeToScene(loginScene);</b>
|
||||
}, loginScene);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<b class="nc"> wrapScene(loginScene);</b>
|
||||
<b class="nc"> wrapScene(totemScene);</b>
|
||||
<b class="nc"> wrapScene(mainScene);</b>
|
||||
<b class="nc"> wrapScene(leaderboardScene);</b>
|
||||
|
||||
<b class="nc"> FireParticleSystem fireParticles = new FireParticleSystem(mainScene);</b>
|
||||
<b class="nc"> ((StackPane) mainScene.getRoot()).getChildren().add(fireParticles.getPane());</b>
|
||||
<b class="nc"> fireParticles.start();</b>
|
||||
|
||||
<b class="nc"> primaryStage.setScene(loginScene);</b>
|
||||
<b class="nc"> Rectangle2D tmp = Screen.getPrimary().getVisualBounds();</b>
|
||||
<b class="nc"> primaryStage.setWidth(tmp.getWidth());</b>
|
||||
<b class="nc"> primaryStage.setHeight(tmp.getHeight());</b>
|
||||
<b class="nc"> primaryStage.setX(tmp.getMinX());</b>
|
||||
<b class="nc"> primaryStage.setY(tmp.getMinY());</b>
|
||||
<b class="nc"> primaryStage.setResizable(false);</b>
|
||||
<b class="nc"> primaryStage.setFullScreenExitHint("");</b>
|
||||
<b class="nc"> primaryStage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);</b>
|
||||
|
||||
<b class="nc"> primaryStage.fullScreenProperty().addListener((obs, was, isNow) -> {</b>
|
||||
<b class="nc"> if (!isNow && autoReenterFullscreen) {</b>
|
||||
<b class="nc"> Platform.runLater(() -> primaryStage.setFullScreen(true));</b>
|
||||
}
|
||||
});
|
||||
|
||||
<b class="nc"> primaryStage.addEventFilter(KeyEvent.KEY_PRESSED, e -> {</b>
|
||||
<b class="nc"> if (e.getCode() == KeyCode.ESCAPE) {</b>
|
||||
<b class="nc"> autoReenterFullscreen = false;</b>
|
||||
<b class="nc"> primaryStage.setFullScreen(false);</b>
|
||||
<b class="nc"> e.consume();</b>
|
||||
<b class="nc"> } else if (e.getCode() == KeyCode.F11) {</b>
|
||||
<b class="nc"> autoReenterFullscreen = true;</b>
|
||||
<b class="nc"> primaryStage.setFullScreen(true);</b>
|
||||
<b class="nc"> e.consume();</b>
|
||||
}
|
||||
});
|
||||
|
||||
<b class="nc"> primaryStage.setTitle("Mesos");</b>
|
||||
<b class="nc"> primaryStage.setOnCloseRequest(e -> {</b>
|
||||
<b class="nc"> Platform.exit();</b>
|
||||
<b class="nc"> System.exit(0);</b>
|
||||
});
|
||||
<b class="nc"> primaryStage.show();</b>
|
||||
<b class="nc"> Platform.runLater(() -> primaryStage.setFullScreen(true));</b>
|
||||
|
||||
try {
|
||||
<b class="nc"> String musicUrl = getClass().getResource("/Audio/Music.mp3").toExternalForm();</b>
|
||||
<b class="nc"> bgMusic = new MediaPlayer(new Media(musicUrl));</b>
|
||||
<b class="nc"> bgMusic.setCycleCount(MediaPlayer.INDEFINITE);</b>
|
||||
<b class="nc"> bgMusic.setVolume(0.4);</b>
|
||||
<b class="nc"> bgMusic.play();</b>
|
||||
} catch (Exception e) {
|
||||
<b class="nc"> System.err.println("Audio unavailable: " + e.getMessage());</b>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Updates the local mini model reference used by the GUI.
|
||||
*
|
||||
* @param miniModel the latest mini model received from the server.
|
||||
*/
|
||||
@Override
|
||||
public void setModel(MiniModel miniModel) {
|
||||
<b class="nc"> this.miniModel = miniModel;</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Injects the client controller into this GUI.
|
||||
*
|
||||
* @param controller the client controller to use.
|
||||
*/
|
||||
public void setController(ClientController controller) {
|
||||
<b class="nc"> this.controller=controller;</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-renders the GUI on the JavaFX application thread, switching to the
|
||||
* appropriate scene based on the current game stage.
|
||||
*/
|
||||
public void render() {
|
||||
<b class="nc"> Platform.runLater(() -> {</b>
|
||||
<b class="nc"> if (miniModel == null) return;</b>
|
||||
<b class="nc"> if (controller.getMiniModel().currentState.getGameStage() == TOTEM_CHOICE) {</b>
|
||||
<b class="nc"> controllerTotem.render();</b>
|
||||
<b class="nc"> fadeToScene(totemScene);</b>
|
||||
<b class="nc"> } else if (controller.getMiniModel().currentState.getGameStage() == ENDED) {</b>
|
||||
<b class="nc"> controllerLeaderboard.render();</b>
|
||||
<b class="nc"> fadeToScene(leaderboardScene);</b>
|
||||
} else {
|
||||
<b class="nc"> controllerMain.render();</b>
|
||||
<b class="nc"> fadeToScene(mainScene);</b>
|
||||
}
|
||||
});
|
||||
}
|
||||
//TODO
|
||||
private void wrapScene(Scene scene) {
|
||||
<b class="nc"> Parent root = scene.getRoot();</b>
|
||||
<b class="nc"> scene.setRoot(new StackPane(root));</b>
|
||||
}
|
||||
//TODO
|
||||
private void fadeToScene(Scene newScene) {
|
||||
<b class="nc"> Scene currentScene = primaryStage.getScene();</b>
|
||||
<b class="nc"> if (currentScene == newScene || isFading) return;</b>
|
||||
<b class="nc"> isFading = true;</b>
|
||||
|
||||
<b class="nc"> StackPane currentRoot = (StackPane) currentScene.getRoot();</b>
|
||||
<b class="nc"> Rectangle overlay = new Rectangle();</b>
|
||||
<b class="nc"> overlay.setFill(Color.BLACK);</b>
|
||||
<b class="nc"> overlay.setOpacity(0);</b>
|
||||
<b class="nc"> overlay.widthProperty().bind(currentRoot.widthProperty());</b>
|
||||
<b class="nc"> overlay.heightProperty().bind(currentRoot.heightProperty());</b>
|
||||
<b class="nc"> currentRoot.getChildren().add(overlay);</b>
|
||||
|
||||
<b class="nc"> FadeTransition fadeOut = new FadeTransition(Duration.millis(500), overlay);</b>
|
||||
<b class="nc"> fadeOut.setFromValue(0);</b>
|
||||
<b class="nc"> fadeOut.setToValue(1);</b>
|
||||
<b class="nc"> fadeOut.setOnFinished(e -> {</b>
|
||||
<b class="nc"> currentRoot.getChildren().remove(overlay);</b>
|
||||
|
||||
<b class="nc"> StackPane newRoot = (StackPane) newScene.getRoot();</b>
|
||||
<b class="nc"> Rectangle newOverlay = new Rectangle();</b>
|
||||
<b class="nc"> newOverlay.setFill(Color.BLACK);</b>
|
||||
<b class="nc"> newOverlay.setOpacity(1);</b>
|
||||
<b class="nc"> newOverlay.widthProperty().bind(newRoot.widthProperty());</b>
|
||||
<b class="nc"> newOverlay.heightProperty().bind(newRoot.heightProperty());</b>
|
||||
<b class="nc"> newRoot.getChildren().add(newOverlay);</b>
|
||||
|
||||
<b class="nc"> primaryStage.setScene(newScene);</b>
|
||||
|
||||
<b class="nc"> FadeTransition fadeIn = new FadeTransition(Duration.millis(500), newOverlay);</b>
|
||||
<b class="nc"> fadeIn.setFromValue(1);</b>
|
||||
<b class="nc"> fadeIn.setToValue(0);</b>
|
||||
<b class="nc"> fadeIn.setOnFinished(ev -> {</b>
|
||||
<b class="nc"> newRoot.getChildren().remove(newOverlay);</b>
|
||||
<b class="nc"> isFading = false;</b>
|
||||
});
|
||||
<b class="nc"> fadeIn.play();</b>
|
||||
});
|
||||
<b class="nc"> fadeOut.play();</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays an error on the JavaFX application thread.
|
||||
*
|
||||
* <p>If the server crashed, returns to the login scene and re-enables the login button.
|
||||
* Otherwise delegates to the active scene's error display.
|
||||
*
|
||||
* @param error the error type.
|
||||
* @param message a human-readable description of the error.
|
||||
*/
|
||||
@Override
|
||||
public void showError(ErrorType error,String message) {
|
||||
<b class="nc"> Platform.runLater(() -> {</b>
|
||||
<b class="nc"> if (error == ErrorType.SERVER_CRASHED) {</b>
|
||||
<b class="nc"> controllerLogin.updateLoginButton(true);</b>
|
||||
<b class="nc"> controllerLogin.showError(error);</b>
|
||||
<b class="nc"> fadeToScene(loginScene);</b>
|
||||
} else {
|
||||
<b class="nc"> if (miniModel == null) return;</b>
|
||||
<b class="nc"> controllerMain.setError(true);</b>
|
||||
<b class="nc"> controllerMain.render();</b>
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,498 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > LeaderboardFXMLController</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14.View.GUI</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: LeaderboardFXMLController (it.polimi.ingsw.gc14.View.GUI)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">LeaderboardFXMLController</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/19)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/34)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/182)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14.View.GUI;
|
||||
|
||||
import it.polimi.ingsw.gc14.Controller.ClientController;
|
||||
import it.polimi.ingsw.gc14.Model.Player;
|
||||
import javafx.animation.ScaleTransition;
|
||||
import it.polimi.ingsw.gc14.Model.PlayableCard;
|
||||
import javafx.event.Event;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.ScrollPane;
|
||||
import javafx.stage.Popup;
|
||||
import javafx.geometry.Insets;
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.scene.Cursor;
|
||||
import javafx.scene.Node;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.effect.DropShadow;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.image.ImageView;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
import javafx.scene.layout.*;
|
||||
import javafx.scene.paint.Color;
|
||||
import javafx.scene.paint.LinearGradient;
|
||||
import javafx.scene.paint.Stop;
|
||||
import javafx.scene.paint.CycleMethod;
|
||||
import javafx.scene.text.Font;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.stage.Window;
|
||||
import javafx.util.Duration;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* FXML controller for the end-of-game leaderboard scene.
|
||||
*
|
||||
* <p>Displays the final player rankings and a winner/game-over banner.
|
||||
*/
|
||||
<b class="nc"> public class LeaderboardFXMLController {</b>
|
||||
|
||||
@FXML private StackPane rootPane;
|
||||
@FXML private VBox mainVBox;
|
||||
@FXML private VBox rankingList;
|
||||
// title label removed; outcome text is added dynamically in render()
|
||||
//TODO
|
||||
private ClientController controller;
|
||||
//TODO
|
||||
private Popup popup;
|
||||
//TODO
|
||||
private VBox popupContent;
|
||||
//TODO
|
||||
<b class="nc"> private static final Map<String, Image> imageCache = new HashMap<>();</b>
|
||||
//TODO
|
||||
private Scene loginScene;
|
||||
|
||||
//TODO
|
||||
private Runnable action;
|
||||
|
||||
/** Returns a cached {@link Image} for the given classpath {@code path}, loading it on first access. */
|
||||
private Image loadImage(String path) {
|
||||
<b class="nc"> return imageCache.computeIfAbsent(path,</b>
|
||||
<b class="nc"> p -> new Image(getClass().getResourceAsStream(p)));</b>
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Injects the client controller, a post-game action, and the login scene reference.
|
||||
*
|
||||
* @param controller the client controller.
|
||||
* @param action the action to run when the player returns to the login screen.
|
||||
* @param loginScene the login scene to show on exit.
|
||||
*/
|
||||
public void setController(ClientController controller, Runnable action, Scene loginScene) {
|
||||
<b class="nc"> this.controller = controller;</b>
|
||||
<b class="nc"> this.loginScene = loginScene;</b>
|
||||
<b class="nc"> this.action = action;</b>
|
||||
}
|
||||
|
||||
|
||||
/** Initializes the scene: loads fonts, sets up the background, and initializes the popup. */
|
||||
@FXML
|
||||
public void initialize() {
|
||||
<b class="nc"> Font.loadFont(getClass().getResourceAsStream("/Fonts/InknutAntiqua-Regular.ttf"), 14);</b>
|
||||
<b class="nc"> mainVBox.sceneProperty().addListener((obs, oldScene, newScene) -> {</b>
|
||||
<b class="nc"> if (newScene != null) newScene.getRoot().applyCss();</b>
|
||||
});
|
||||
<b class="nc"> renderBackground();</b>
|
||||
<b class="nc"> initPopup();</b>
|
||||
}
|
||||
|
||||
|
||||
/** Populates the ranking list with the final player standings and shows the outcome banner. */
|
||||
public void render() {
|
||||
<b class="nc"> rankingList.getChildren().clear();</b>
|
||||
<b class="nc"> if(!controller.getMiniModel().standingPlayers.isEmpty())</b>
|
||||
{
|
||||
<b class="nc"> List<Player> sorted = controller.getMiniModel().standingPlayers;</b>
|
||||
|
||||
<b class="nc"> boolean iWon = sorted.get(0).getUserName().equals(controller.getMyUsername());</b>
|
||||
|
||||
// Label grande Winner / Game Over
|
||||
<b class="nc"> Label outcomeLabel = new Label(iWon ? "\uD83C\uDFC6 WINNER! \uD83C\uDFC6" : "GAME OVER");</b>
|
||||
<b class="nc"> outcomeLabel.setStyle(</b>
|
||||
"-fx-font-size: 64px;" +
|
||||
"-fx-font-weight: bold;" +
|
||||
<b class="nc"> "-fx-text-fill: " + (iWon ? "#FFD700;" : "#FF4444;")</b>
|
||||
);
|
||||
<b class="nc"> DropShadow glow = new DropShadow();</b>
|
||||
<b class="nc"> glow.setColor(iWon ? Color.rgb(255, 200, 0, 0.95) : Color.rgb(220, 0, 0, 0.95));</b>
|
||||
<b class="nc"> glow.setRadius(35);</b>
|
||||
<b class="nc"> glow.setSpread(0.35);</b>
|
||||
<b class="nc"> outcomeLabel.setEffect(glow);</b>
|
||||
<b class="nc"> rankingList.getChildren().add(outcomeLabel);</b>
|
||||
|
||||
<b class="nc"> Region sep = new Region();</b>
|
||||
<b class="nc"> sep.setPrefHeight(16);</b>
|
||||
<b class="nc"> rankingList.getChildren().add(sep);</b>
|
||||
|
||||
<b class="nc"> for (int i = 0; i < sorted.size(); i++) {</b>
|
||||
<b class="nc"> rankingList.getChildren().add(createPlayerRow(i + 1, sorted.get(i)));</b>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ==== EFFECTS ====
|
||||
/** Scales {@code node} to 1.02× on hover and sets a hand cursor. */
|
||||
private void addHoverZoom(Node node) {
|
||||
<b class="nc"> ScaleTransition scaleUp = new ScaleTransition(Duration.millis(150), node);</b>
|
||||
<b class="nc"> scaleUp.setToX(1.02);</b>
|
||||
<b class="nc"> scaleUp.setToY(1.02);</b>
|
||||
<b class="nc"> ScaleTransition scaleDown = new ScaleTransition(Duration.millis(150), node);</b>
|
||||
<b class="nc"> scaleDown.setToX(1.0);</b>
|
||||
<b class="nc"> scaleDown.setToY(1.0);</b>
|
||||
<b class="nc"> node.addEventHandler(MouseEvent.MOUSE_ENTERED, e -> { scaleUp.play(); node.setCursor(Cursor.HAND); });</b>
|
||||
<b class="nc"> node.addEventHandler(MouseEvent.MOUSE_EXITED, e -> { scaleDown.play(); node.setCursor(Cursor.DEFAULT); });</b>
|
||||
}
|
||||
|
||||
/** Applies a static drop-shadow to {@code node}. */
|
||||
private void addShadow(Node node) {
|
||||
<b class="nc"> DropShadow shadow = new DropShadow();</b>
|
||||
<b class="nc"> shadow.setColor(Color.rgb(0, 0, 0, 0.6));</b>
|
||||
<b class="nc"> shadow.setRadius(12);</b>
|
||||
<b class="nc"> shadow.setOffsetX(3);</b>
|
||||
<b class="nc"> shadow.setOffsetY(3);</b>
|
||||
<b class="nc"> node.setEffect(shadow);</b>
|
||||
}
|
||||
|
||||
|
||||
// ==== ROW ====
|
||||
/** Builds a styled leaderboard row showing rank, totem, username, stats, and prestige for {@code player}. */
|
||||
private HBox createPlayerRow(int position, Player player) {
|
||||
<b class="nc"> HBox row = new HBox(20);</b>
|
||||
<b class="nc"> row.setAlignment(Pos.CENTER_LEFT);</b>
|
||||
<b class="nc"> row.setPadding(new Insets(14, 28, 14, 28));</b>
|
||||
<b class="nc"> row.setMaxWidth(Double.MAX_VALUE);</b>
|
||||
|
||||
<b class="nc"> LinearGradient gradient = new LinearGradient(</b>
|
||||
0, 0, 1, 0, true, CycleMethod.NO_CYCLE,
|
||||
<b class="nc"> new Stop(0.0, Color.rgb(0, 0, 0, 0.75)),</b>
|
||||
<b class="nc"> new Stop(0.5, Color.rgb(0, 0, 0, 0.60)),</b>
|
||||
<b class="nc"> new Stop(1.0, Color.rgb(0, 0, 0, 0.75))</b>
|
||||
);
|
||||
<b class="nc"> row.setBackground(new Background(new BackgroundFill(</b>
|
||||
gradient,
|
||||
new CornerRadii(12),
|
||||
Insets.EMPTY
|
||||
)));
|
||||
<b class="nc"> addShadow(row);</b>
|
||||
<b class="nc"> addHoverZoom(row);</b>
|
||||
|
||||
<b class="nc"> Label posLabel = new Label(position + "°");</b>
|
||||
<b class="nc"> posLabel.setMinWidth(55);</b>
|
||||
<b class="nc"> String medalColor = switch (position) {</b>
|
||||
<b class="nc"> case 1 -> "#FFD700"; // oro</b>
|
||||
<b class="nc"> case 2 -> "#C0C0C0"; // argento</b>
|
||||
<b class="nc"> case 3 -> "#CD7F32"; // bronzo</b>
|
||||
<b class="nc"> default -> "#EEEEEE";</b>
|
||||
<b class="nc"> };</b>
|
||||
<b class="nc"> posLabel.setStyle("-fx-font-size: 28px; -fx-font-weight: bold; -fx-text-fill: " + medalColor + ";");</b>
|
||||
|
||||
|
||||
<b class="nc"> ImageView totem = new ImageView(loadImage(</b>
|
||||
<b class="nc"> "/GUIImages/Totems/totem_" + player.getTotem().toString().toLowerCase(Locale.ROOT) + ".png"));</b>
|
||||
<b class="nc"> totem.setFitHeight(55);</b>
|
||||
<b class="nc"> totem.setPreserveRatio(true);</b>
|
||||
|
||||
<b class="nc"> Label nameLabel = new Label(player.getUserName());</b>
|
||||
<b class="nc"> nameLabel.setStyle(</b>
|
||||
"-fx-font-size: 22px; -fx-font-weight: bold; -fx-text-fill: " +
|
||||
<b class="nc"> (player.getUserName().equals(controller.getMyUsername()) ? "#ff6b6b;" : "#FFFFFF;")</b>
|
||||
);
|
||||
<b class="nc"> HBox.setHgrow(nameLabel, Priority.ALWAYS);</b>
|
||||
|
||||
<b class="nc"> HBox stats = createStatsBox(player);</b>
|
||||
|
||||
<b class="nc"> HBox ppBox = new HBox(6);</b>
|
||||
<b class="nc"> ppBox.setAlignment(Pos.CENTER);</b>
|
||||
<b class="nc"> ImageView ppIcon = new ImageView(loadImage("/GUIImages/Icons/PrestigePoint.png"));</b>
|
||||
<b class="nc"> ppIcon.setFitHeight(45);</b>
|
||||
<b class="nc"> ppIcon.setPreserveRatio(true);</b>
|
||||
<b class="nc"> Label ppLabel = new Label(String.valueOf(player.getPrestigeValue()));</b>
|
||||
<b class="nc"> ppLabel.setStyle("-fx-font-size: 28px; -fx-font-weight: bold; -fx-text-fill: #FFD700;");</b>
|
||||
<b class="nc"> ppBox.getChildren().addAll(ppIcon, ppLabel);</b>
|
||||
|
||||
<b class="nc"> row.getChildren().addAll(posLabel, totem, nameLabel, stats, ppBox);</b>
|
||||
<b class="nc"> row.setOnMouseClicked(e -> openPlayerPopup(player));</b>
|
||||
<b class="nc"> return row;</b>
|
||||
}
|
||||
|
||||
/** Creates a compact icon+count stats strip for all card types of {@code player}. */
|
||||
private HBox createStatsBox(Player player) {
|
||||
<b class="nc"> HBox stats = new HBox(14);</b>
|
||||
<b class="nc"> stats.setAlignment(Pos.CENTER);</b>
|
||||
|
||||
<b class="nc"> stats.getChildren().add(createStatItem("/GUIImages/Icons/Food.png", String.valueOf(player.getFoodValue()), 26));</b>
|
||||
<b class="nc"> stats.getChildren().add(createStatItem("/GUIImages/Icons/Artist.png", String.valueOf(player.getArtists().size()), 26));</b>
|
||||
<b class="nc"> stats.getChildren().add(createStatItem("/GUIImages/Icons/Gatherer.png", String.valueOf(player.getGatherers().size()), 26));</b>
|
||||
<b class="nc"> stats.getChildren().add(createStatItem("/GUIImages/Icons/Inventor.png", String.valueOf(player.getInventors().size()), 26));</b>
|
||||
<b class="nc"> stats.getChildren().add(createStatItem("/GUIImages/Icons/Builder.png", String.valueOf(player.getBuilders().size()), 26));</b>
|
||||
<b class="nc"> stats.getChildren().add(createStatItem("/GUIImages/Icons/Shaman.png", String.valueOf(player.getShamans().size()), 26));</b>
|
||||
<b class="nc"> stats.getChildren().add(createStatItem("/GUIImages/Icons/Hunter.png", String.valueOf(player.getHunters().size()), 26));</b>
|
||||
<b class="nc"> stats.getChildren().add(createStatItem("/GUIImages/Icons/Building.png", String.valueOf(player.getBuildingCards().size()), 26));</b>
|
||||
|
||||
<b class="nc"> return stats;</b>
|
||||
}
|
||||
|
||||
/** Creates a single icon + label widget for one stat type. */
|
||||
private HBox createStatItem(String iconPath, String value, double iconHeight) {
|
||||
<b class="nc"> HBox box = new HBox(4);</b>
|
||||
<b class="nc"> box.setAlignment(Pos.CENTER);</b>
|
||||
<b class="nc"> ImageView icon = new ImageView(loadImage(iconPath));</b>
|
||||
<b class="nc"> icon.setFitHeight(iconHeight);</b>
|
||||
<b class="nc"> icon.setPreserveRatio(true);</b>
|
||||
<b class="nc"> Label label = new Label(value);</b>
|
||||
<b class="nc"> label.setStyle("-fx-font-size: 16px; -fx-text-fill: #FFFFFF; -fx-font-weight: bold;");</b>
|
||||
<b class="nc"> DropShadow textShadow = new DropShadow();</b>
|
||||
<b class="nc"> textShadow.setColor(Color.rgb(0, 0, 0, 0.9));</b>
|
||||
<b class="nc"> textShadow.setRadius(4);</b>
|
||||
<b class="nc"> label.setEffect(textShadow);</b>
|
||||
<b class="nc"> box.getChildren().addAll(icon, label);</b>
|
||||
<b class="nc"> return box;</b>
|
||||
}
|
||||
|
||||
|
||||
// ==== POPUP ====
|
||||
/** Creates and configures the auto-hiding player-detail popup. */
|
||||
private void initPopup() {
|
||||
<b class="nc"> popupContent = new VBox(12);</b>
|
||||
<b class="nc"> popupContent.setAlignment(Pos.CENTER);</b>
|
||||
<b class="nc"> popupContent.setPadding(new Insets(16));</b>
|
||||
<b class="nc"> popupContent.setStyle(</b>
|
||||
"-fx-background-color: rgba(20,10,5,0.97);" +
|
||||
"-fx-border-color: #8B4513;" +
|
||||
"-fx-border-width: 3;" +
|
||||
"-fx-border-radius: 14;" +
|
||||
"-fx-background-radius: 14;"
|
||||
);
|
||||
|
||||
<b class="nc"> popup = new Popup();</b>
|
||||
<b class="nc"> popup.getContent().add(popupContent);</b>
|
||||
<b class="nc"> popup.setAutoHide(true);</b>
|
||||
<b class="nc"> popup.addEventHandler(Event.ANY, e -> {</b>
|
||||
<b class="nc"> if (popup.getScene() != null) popup.getScene().setFill(Color.TRANSPARENT);</b>
|
||||
});
|
||||
}
|
||||
|
||||
/** Opens the player-detail popup showing all cards held by {@code player}, grouped by type. */
|
||||
private void openPlayerPopup(Player player) {
|
||||
<b class="nc"> popupContent.getChildren().clear();</b>
|
||||
|
||||
<b class="nc"> HBox header = new HBox(10);</b>
|
||||
<b class="nc"> header.setAlignment(Pos.CENTER);</b>
|
||||
<b class="nc"> ImageView totem = new ImageView(loadImage(</b>
|
||||
<b class="nc"> "/GUIImages/Totems/totem_" + player.getTotem().toString().toLowerCase(Locale.ROOT) + ".png"));</b>
|
||||
<b class="nc"> totem.setFitHeight(30);</b>
|
||||
<b class="nc"> totem.setPreserveRatio(true);</b>
|
||||
<b class="nc"> Label nameLabel = new Label(player.getUserName());</b>
|
||||
<b class="nc"> nameLabel.setStyle("-fx-font-size: 18px; -fx-font-weight: bold; -fx-text-fill: #FFD700;");</b>
|
||||
<b class="nc"> header.getChildren().addAll(totem, nameLabel);</b>
|
||||
<b class="nc"> popupContent.getChildren().add(header);</b>
|
||||
|
||||
<b class="nc"> String[][] types = {</b>
|
||||
{"Artist", "artists"},
|
||||
{"Gatherer", "gatherers"},
|
||||
{"Inventor", "inventors"},
|
||||
{"Builder", "builders"},
|
||||
{"Shaman", "shamans"},
|
||||
{"Hunter", "hunters"},
|
||||
{"Building", "buildingCards"}
|
||||
};
|
||||
|
||||
<b class="nc"> VBox grid = new VBox(6);</b>
|
||||
<b class="nc"> grid.setAlignment(Pos.CENTER_LEFT);</b>
|
||||
<b class="nc"> boolean hasAnyCard = false;</b>
|
||||
|
||||
<b class="nc"> for (String[] type : types) {</b>
|
||||
<b class="nc"> String typeName = type[0];</b>
|
||||
<b class="nc"> String field = type[1];</b>
|
||||
<b class="nc"> ArrayList<PlayableCard> cards = getPlayerCards(player.getUserName(), field);</b>
|
||||
<b class="nc"> if (cards.isEmpty()) continue;</b>
|
||||
<b class="nc"> hasAnyCard = true;</b>
|
||||
|
||||
<b class="nc"> HBox row = new HBox(6);</b>
|
||||
<b class="nc"> row.setAlignment(Pos.CENTER_LEFT);</b>
|
||||
|
||||
<b class="nc"> ImageView typeIcon = new ImageView(loadImage("/GUIImages/Icons/"+typeName+".png"));</b>
|
||||
<b class="nc"> typeIcon.setFitHeight(22);</b>
|
||||
<b class="nc"> typeIcon.setPreserveRatio(true);</b>
|
||||
<b class="nc"> row.getChildren().add(typeIcon);</b>
|
||||
|
||||
<b class="nc"> for (PlayableCard card : cards) {</b>
|
||||
<b class="nc"> ImageView img = new ImageView(loadImage("/GUIImages/Fronts/card-" + card.getIdIMG() + ".png"));</b>
|
||||
<b class="nc"> img.setFitHeight(230);</b>
|
||||
<b class="nc"> img.setPreserveRatio(true);</b>
|
||||
<b class="nc"> img.setCursor(Cursor.HAND);</b>
|
||||
<b class="nc"> row.getChildren().add(img);</b>
|
||||
}
|
||||
|
||||
<b class="nc"> grid.getChildren().add(row);</b>
|
||||
}
|
||||
|
||||
<b class="nc"> if (!hasAnyCard) {</b>
|
||||
<b class="nc"> Label empty = new Label("No cards");</b>
|
||||
<b class="nc"> empty.setStyle("-fx-font-size: 14px; -fx-text-fill: #888888;");</b>
|
||||
<b class="nc"> grid.getChildren().add(empty);</b>
|
||||
}
|
||||
|
||||
<b class="nc"> ScrollPane scrollPane = new ScrollPane(grid);</b>
|
||||
<b class="nc"> scrollPane.setFitToWidth(true);</b>
|
||||
<b class="nc"> scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);</b>
|
||||
<b class="nc"> scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.AS_NEEDED);</b>
|
||||
<b class="nc"> scrollPane.setStyle("-fx-background: transparent; -fx-background-color: transparent;");</b>
|
||||
|
||||
<b class="nc"> Window window = rootPane.getScene().getWindow();</b>
|
||||
<b class="nc"> scrollPane.setMaxHeight(window.getHeight() * 0.8); // cap scroll area to 80% of window height</b>
|
||||
<b class="nc"> popupContent.getChildren().add(scrollPane);</b>
|
||||
<b class="nc"> popup.show(window, 0, 0);</b>
|
||||
<b class="nc"> popup.getScene().setFill(Color.TRANSPARENT);</b>
|
||||
<b class="nc"> popup.setX(window.getX() + (window.getWidth() - popup.getWidth()) / 2);</b>
|
||||
<b class="nc"> popup.setY(window.getY() + (window.getHeight() - popup.getHeight()) / 2);</b>
|
||||
}
|
||||
|
||||
/** Returns a copy of the named card collection for {@code username}. */
|
||||
private ArrayList<PlayableCard> getPlayerCards(String username, String type) {
|
||||
<b class="nc"> Player p = controller.getMiniModel().players.get(username);</b>
|
||||
<b class="nc"> return switch (type) {</b>
|
||||
<b class="nc"> case "artists" -> new ArrayList<>(p.getArtists());</b>
|
||||
<b class="nc"> case "gatherers" -> new ArrayList<>(p.getGatherers());</b>
|
||||
<b class="nc"> case "inventors" -> new ArrayList<>(p.getInventors());</b>
|
||||
<b class="nc"> case "builders" -> new ArrayList<>(p.getBuilders());</b>
|
||||
<b class="nc"> case "shamans" -> new ArrayList<>(p.getShamans());</b>
|
||||
<b class="nc"> case "hunters" -> new ArrayList<>(p.getHunters());</b>
|
||||
<b class="nc"> case "buildingCards" -> new ArrayList<>(p.getBuildingCards());</b>
|
||||
<b class="nc"> default -> new ArrayList<>();</b>
|
||||
};
|
||||
}
|
||||
|
||||
// ==== BACKGROUND ====
|
||||
/** Sets the full-cover background image on the root pane. */
|
||||
private void renderBackground() {
|
||||
<b class="nc"> BackgroundSize size = new BackgroundSize(</b>
|
||||
BackgroundSize.AUTO, BackgroundSize.AUTO,
|
||||
false, false, true, true
|
||||
);
|
||||
<b class="nc"> rootPane.setBackground(new Background(new BackgroundImage(</b>
|
||||
<b class="nc"> loadImage("/GUIImages/Background.png"),</b>
|
||||
BackgroundRepeat.NO_REPEAT,
|
||||
BackgroundRepeat.NO_REPEAT,
|
||||
BackgroundPosition.CENTER,
|
||||
size
|
||||
)));
|
||||
}
|
||||
|
||||
|
||||
// ==== ACTIONS ====
|
||||
/** Disconnects the client and invokes the post-game action to return to the login scene. */
|
||||
@FXML
|
||||
private void onNewGame() {
|
||||
<b class="nc"> controller.disconnect();</b>
|
||||
<b class="nc"> action.run();</b>
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,329 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > LoginFXMLController</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14.View.GUI</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: LoginFXMLController (it.polimi.ingsw.gc14.View.GUI)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">LoginFXMLController</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/14)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/63)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14.View.GUI;
|
||||
|
||||
import it.polimi.ingsw.gc14.Controller.ClientController;
|
||||
import it.polimi.ingsw.gc14.ErrorType;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkConfig;
|
||||
import it.polimi.ingsw.gc14.Network.InterfaceResolver;
|
||||
import it.polimi.ingsw.gc14.Network.RMI.Client.RMIClient;
|
||||
import it.polimi.ingsw.gc14.Network.TCP.Client.TCPClient;
|
||||
import javafx.animation.*;
|
||||
import javafx.application.Platform;
|
||||
import javafx.css.PseudoClass;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.geometry.Rectangle2D;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.image.ImageView;
|
||||
import javafx.scene.layout.*;
|
||||
import javafx.scene.paint.Color;
|
||||
import javafx.stage.Screen;
|
||||
import javafx.util.Duration;
|
||||
|
||||
import java.net.*;
|
||||
import java.util.Enumeration;
|
||||
|
||||
/**
|
||||
* FXML controller for the login scene.
|
||||
*
|
||||
* <p>Handles username/IP/player-count input, protocol selection (TCP/RMI),
|
||||
* and initiates the connection to the server.
|
||||
*/
|
||||
<b class="nc"> public class LoginFXMLController {</b>
|
||||
//TODO
|
||||
@FXML private ImageView backgroundImage;
|
||||
//TODO
|
||||
@FXML private TextField campoNome;
|
||||
//TODO
|
||||
@FXML private TextField campoNumPlayers;
|
||||
//TODO
|
||||
@FXML private TextField campoIP;
|
||||
//TODO
|
||||
@FXML private Button btnAccedi;
|
||||
//TODO
|
||||
@FXML private Label labelErrore;
|
||||
//TODO
|
||||
@FXML private VBox formPanel;
|
||||
//TODO
|
||||
@FXML private StackPane protocolToggle;
|
||||
//TODO
|
||||
@FXML private Region toggleThumb;
|
||||
//TODO
|
||||
@FXML private Label labelRMI;
|
||||
//TODO
|
||||
@FXML private Label labelTCP;
|
||||
//TODO
|
||||
<b class="nc"> private boolean isRMI = true;</b>
|
||||
//TODO
|
||||
private ClientController controller;
|
||||
//TODO
|
||||
<b class="nc"> private final PseudoClass activeProtocolPseudo = PseudoClass.getPseudoClass("active-protocol");</b>
|
||||
|
||||
/**
|
||||
* Injects the client controller into this FXML controller.
|
||||
*
|
||||
* @param controller the client controller to use.
|
||||
*/
|
||||
public void setController(ClientController controller) {
|
||||
<b class="nc"> this.controller = controller;</b>
|
||||
}
|
||||
|
||||
/** Initializes the scene: loads background, sets up animations, and binds input listeners. */
|
||||
@FXML
|
||||
public void initialize() {
|
||||
// Background setup
|
||||
<b class="nc"> Image img = new Image(getClass().getResourceAsStream("/GUIImages/BackgroundLogin.png"));</b>
|
||||
<b class="nc"> backgroundImage.setImage(img);</b>
|
||||
<b class="nc"> Rectangle2D screenBounds = Screen.getPrimary().getBounds();</b>
|
||||
<b class="nc"> backgroundImage.setFitWidth(screenBounds.getWidth());</b>
|
||||
<b class="nc"> backgroundImage.setFitHeight(screenBounds.getHeight());</b>
|
||||
|
||||
// Protocol toggle configuration
|
||||
<b class="nc"> protocolToggle.setOnMouseClicked(e -> switchProtocol());</b>
|
||||
<b class="nc"> protocolToggle.setStyle(protocolToggle.getStyle() + " -fx-cursor: hand;");</b>
|
||||
|
||||
<b class="nc"> labelRMI.pseudoClassStateChanged(activeProtocolPseudo, true);</b>
|
||||
<b class="nc"> labelTCP.pseudoClassStateChanged(activeProtocolPseudo, false);</b>
|
||||
|
||||
// Login Action
|
||||
<b class="nc"> btnAccedi.setOnAction(e -> onAccediClick());</b>
|
||||
}
|
||||
|
||||
/** Toggles the selected protocol between RMI and TCP, animating the toggle thumb and updating label styles. */
|
||||
private void switchProtocol() {
|
||||
<b class="nc"> isRMI = !isRMI;</b>
|
||||
|
||||
<b class="nc"> TranslateTransition tt = new TranslateTransition(Duration.millis(200), toggleThumb);</b>
|
||||
<b class="nc"> tt.setToX(isRMI ? 0 : 110);</b>
|
||||
<b class="nc"> tt.play();</b>
|
||||
|
||||
// pseudoClassStateChanged preserves layout properties unlike direct style mutation
|
||||
<b class="nc"> labelRMI.pseudoClassStateChanged(activeProtocolPseudo, isRMI);</b>
|
||||
<b class="nc"> labelTCP.pseudoClassStateChanged(activeProtocolPseudo, !isRMI);</b>
|
||||
}
|
||||
|
||||
/** Validates form input and starts a background thread to connect to the server. */
|
||||
@FXML
|
||||
private void onAccediClick() {
|
||||
<b class="nc"> String name = campoNome.getText().trim();</b>
|
||||
<b class="nc"> String ip = campoIP.getText().trim();</b>
|
||||
|
||||
<b class="nc"> if (name.isEmpty()) {</b>
|
||||
<b class="nc"> showError("Please select a name.");</b>
|
||||
return;
|
||||
}
|
||||
|
||||
int numPlayers;
|
||||
try {
|
||||
<b class="nc"> numPlayers = Integer.parseInt(campoNumPlayers.getText().trim());</b>
|
||||
} catch (NumberFormatException e) {
|
||||
<b class="nc"> showError("Invalid number of players.");</b>
|
||||
return;
|
||||
}
|
||||
|
||||
<b class="nc"> updateLoginButton(false);</b>
|
||||
<b class="nc"> controller.setMyUsername(name);</b>
|
||||
|
||||
<b class="nc"> new Thread(() -> {</b>
|
||||
try {
|
||||
<b class="nc"> String localInterface = InterfaceResolver.resolveLocalInterface(ip);</b>
|
||||
<b class="nc"> System.setProperty("java.rmi.server.hostname", localInterface);</b>
|
||||
<b class="nc"> connect(name, ip, numPlayers, localInterface);</b>
|
||||
} catch (Exception ex) {
|
||||
<b class="nc"> Platform.runLater(() -> {</b>
|
||||
<b class="nc"> showError("Network error: " + ex.getMessage());</b>
|
||||
<b class="nc"> updateLoginButton(true);</b>
|
||||
});
|
||||
}
|
||||
<b class="nc"> }).start();</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Enables or disables the login button and updates its visual style.
|
||||
*
|
||||
* @param enabled {@code true} to enable the button, {@code false} to disable it.
|
||||
*/
|
||||
public void updateLoginButton(boolean enabled) {
|
||||
<b class="nc"> btnAccedi.setDisable(!enabled);</b>
|
||||
<b class="nc"> btnAccedi.setStyle(</b>
|
||||
"-fx-font-family: 'Cinzel'; -fx-font-size: 12; -fx-font-weight: bold;" +
|
||||
"-fx-letter-spacing: 4; -fx-text-fill: #0c0601;" +
|
||||
"-fx-background-color: linear-gradient(to right, #f4c05a, #c8791a, #f4c05a);" +
|
||||
"-fx-padding: 13 48 13 48; -fx-background-radius: 2;" +
|
||||
<b class="nc"> "-fx-opacity: " + (enabled ? "1.0" : "0.3") + ";" +</b>
|
||||
<b class="nc"> "-fx-cursor: " + (enabled ? "hand" : "default") + ";"</b>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/** Connects to the server using the selected protocol and transitions to the waiting state on success. */
|
||||
private void connect(String nome, String ip, int numPlayers, String localInterface) {
|
||||
<b class="nc"> if (isRMI) {</b>
|
||||
<b class="nc"> RMIClient client = new RMIClient(controller, ip, NetworkConfig.RMI_PORT, localInterface);</b>
|
||||
<b class="nc"> ErrorType serverResponse = client.connect(nome, numPlayers);</b>
|
||||
<b class="nc"> if (serverResponse == null) {</b>
|
||||
<b class="nc"> controller.setClient(client);</b>
|
||||
<b class="nc"> Platform.runLater(() -> showSuccess("Connected! Waiting for other players…"));</b>
|
||||
} else {
|
||||
<b class="nc"> Platform.runLater(() -> {</b>
|
||||
<b class="nc"> showError(serverResponse);</b>
|
||||
<b class="nc"> updateLoginButton(true);</b>
|
||||
});
|
||||
}
|
||||
} else {
|
||||
<b class="nc"> TCPClient client = new TCPClient(controller, ip, NetworkConfig.TCP_PORT, NetworkConfig.HEARTBEAT_PORT);</b>
|
||||
<b class="nc"> ErrorType serverResponse = client.connect(nome, numPlayers);</b>
|
||||
<b class="nc"> if (serverResponse == null) {</b>
|
||||
<b class="nc"> controller.setClient(client);</b>
|
||||
<b class="nc"> Platform.runLater(() -> showSuccess("Connected! Waiting for other players…"));</b>
|
||||
} else {
|
||||
<b class="nc"> Platform.runLater(() -> {</b>
|
||||
<b class="nc"> showError(serverResponse);</b>
|
||||
<b class="nc"> updateLoginButton(true);</b>
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Displays an error from an {@link ErrorType} constant in the login form label.
|
||||
*
|
||||
* @param errorType the error to display.
|
||||
*/
|
||||
public void showError(ErrorType errorType) {
|
||||
<b class="nc"> labelErrore.setTextFill(Color.web("#e05050"));</b>
|
||||
<b class="nc"> labelErrore.setText(errorType.toString());</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays an arbitrary error message in the login form label.
|
||||
*
|
||||
* @param msg the error message to display.
|
||||
*/
|
||||
public void showError(String msg) {
|
||||
<b class="nc"> labelErrore.setTextFill(Color.web("#e05050"));</b>
|
||||
<b class="nc"> labelErrore.setText(msg);</b>
|
||||
}
|
||||
|
||||
/** Displays a success message in green in the login form label. */
|
||||
private void showSuccess(String msg) {
|
||||
<b class="nc"> labelErrore.setTextFill(Color.web("#6fcf8a"));</b>
|
||||
<b class="nc"> labelErrore.setText(msg);</b>
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,902 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > MainFXMLController</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14.View.GUI</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: MainFXMLController (it.polimi.ingsw.gc14.View.GUI)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">MainFXMLController</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/50)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/124)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/426)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14.View.GUI;
|
||||
|
||||
import it.polimi.ingsw.gc14.Controller.ClientController;
|
||||
import it.polimi.ingsw.gc14.Model.*;
|
||||
import it.polimi.ingsw.gc14.Model.Cards.BuildingCard;
|
||||
import it.polimi.ingsw.gc14.Model.Cards.TribeCard;
|
||||
import it.polimi.ingsw.gc14.Model.Orders.OrderPlayer;
|
||||
import it.polimi.ingsw.gc14.Network.EventType;
|
||||
import it.polimi.ingsw.gc14.Network.NetworkEvent;
|
||||
import javafx.animation.ScaleTransition;
|
||||
import javafx.animation.TranslateTransition;
|
||||
import javafx.application.Platform;
|
||||
import javafx.beans.value.ChangeListener;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.event.Event;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.geometry.Bounds;
|
||||
import javafx.geometry.Insets;
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.geometry.Rectangle2D;
|
||||
import javafx.scene.Cursor;
|
||||
import javafx.scene.Node;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.ScrollPane;
|
||||
import javafx.scene.effect.ColorAdjust;
|
||||
import javafx.scene.effect.DropShadow;
|
||||
import javafx.scene.image.*;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
import javafx.scene.layout.*;
|
||||
import javafx.scene.paint.Color;
|
||||
import javafx.scene.shape.*;
|
||||
import javafx.scene.text.Font;
|
||||
import javafx.stage.Popup;
|
||||
import javafx.stage.Screen;
|
||||
import javafx.stage.Window;
|
||||
import javafx.util.Duration;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* FXML controller for the main game scene.
|
||||
*
|
||||
* <p>Renders the board (upper/lower tribe and building card rows), player stats,
|
||||
* the player's hand, and action buttons (skip, details).
|
||||
*/
|
||||
<b class="nc"> public class MainFXMLController {</b>
|
||||
//TODO
|
||||
@FXML private GridPane leftGrid;
|
||||
//TODO
|
||||
@FXML private ScrollPane playerSide;
|
||||
//TODO
|
||||
@FXML private HBox mainHBox;
|
||||
//TODO
|
||||
@FXML private ImageView backgroundImage;
|
||||
//TODO
|
||||
@FXML private HBox board;
|
||||
//TODO
|
||||
@FXML private HBox upperList;
|
||||
//TODO
|
||||
@FXML private HBox lowerList;
|
||||
//TODO
|
||||
@FXML private HBox myHand;
|
||||
//TODO
|
||||
@FXML private Button skipBtn;
|
||||
//TODO
|
||||
@FXML private Button detailsBtn;
|
||||
//TODO
|
||||
@FXML private Label infoText;
|
||||
//TODO
|
||||
<b class="nc"> private final Map<String, Label> foodLabels = new HashMap<>();</b>
|
||||
//TODO
|
||||
<b class="nc"> private final Map<String, Label> prestigeLabels = new HashMap<>();</b>
|
||||
//TODO
|
||||
<b class="nc"> private final Map<String, VBox> playerCards = new HashMap<>();</b>
|
||||
//TODO
|
||||
<b class="nc"> private final Map<String, List<ImageView>> iconViews = new HashMap<>();</b>
|
||||
//TODO
|
||||
private Popup popup;
|
||||
//TODO
|
||||
private HBox popupCards;
|
||||
//TODO
|
||||
private ClientController controller;
|
||||
|
||||
/** {@code true} when the last received event was an error response. */
|
||||
private boolean isError;
|
||||
|
||||
/** Sets the error flag; called by {@link GUI} before delegating to {@link #render()}. */
|
||||
<b class="nc"> public void setError(boolean error) { this.isError = error; }</b>
|
||||
|
||||
// ==== IMAGE CACHE ====
|
||||
<b class="nc"> private static final Map<String, Image> imageCache = new HashMap<>();</b>
|
||||
|
||||
/** Returns a cached {@link Image} for the given classpath {@code path}, loading it on first access. */
|
||||
private Image loadImage(String path) {
|
||||
<b class="nc"> return imageCache.computeIfAbsent(path,</b>
|
||||
<b class="nc"> p -> new Image(getClass().getResourceAsStream(p)));</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Injects the client controller and wires up the skip-turn button action.
|
||||
*
|
||||
* @param controller the client controller to use.
|
||||
*/
|
||||
public void setController(ClientController controller) {
|
||||
<b class="nc"> this.controller = controller;</b>
|
||||
<b class="nc"> skipBtn.setOnAction(e -> controller.skipTurn());</b>
|
||||
}
|
||||
|
||||
/** Initializes the scene: loads fonts, sets up the popup, and registers input listeners. */
|
||||
@FXML
|
||||
public void initialize() {
|
||||
<b class="nc"> Font.loadFont(getClass().getResourceAsStream("/Fonts/InknutAntiqua-Regular.ttf"), 14);</b>
|
||||
|
||||
<b class="nc"> addHoverZoom(skipBtn);</b>
|
||||
<b class="nc"> addHoverZoom(detailsBtn);</b>
|
||||
<b class="nc"> popup = new Popup();</b>
|
||||
<b class="nc"> mainHBox.sceneProperty().addListener((obs, oldScene, newScene) -> {</b>
|
||||
<b class="nc"> if (newScene != null) {</b>
|
||||
<b class="nc"> newScene.addEventFilter(MouseEvent.MOUSE_PRESSED, e -> {</b>
|
||||
<b class="nc"> if (popup.isShowing()) popup.hide();</b>
|
||||
});
|
||||
<b class="nc"> newScene.getRoot().applyCss();</b>
|
||||
<b class="nc"> newScene.windowProperty().addListener((o2, ow, nw) -> {</b>
|
||||
<b class="nc"> if (nw != null) {</b>
|
||||
<b class="nc"> nw.focusedProperty().addListener((o3, wf, nf) -> {</b>
|
||||
<b class="nc"> if (!nf) popup.hide();</b>
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
<b class="nc"> popup.hide();</b>
|
||||
}
|
||||
});
|
||||
<b class="nc"> initPopup();</b>
|
||||
<b class="nc"> detailsBtn.setOnAction(e -> openDetailsPopup());</b>
|
||||
<b class="nc"> renderBackground();</b>
|
||||
<b class="nc"> isError=false;</b>
|
||||
}
|
||||
|
||||
|
||||
// ==== RENDER ====
|
||||
/** Incrementally re-renders only the parts of the scene affected by the last network event. */
|
||||
public void render() {
|
||||
<b class="nc"> if(foodLabels.isEmpty() || controller.getMiniModel().lastEvent == null</b>
|
||||
<b class="nc"> || controller.getMiniModel().lastEvent.getEventType().equals(EventType.TOTEM_CHOICE))</b>
|
||||
<b class="nc"> buildSidePanel();</b>
|
||||
<b class="nc"> if(isError)</b>
|
||||
{
|
||||
<b class="nc"> updateSidePanel();</b>
|
||||
<b class="nc"> isError=false;</b>
|
||||
return;
|
||||
}
|
||||
<b class="nc"> if(controller.getMiniModel().lastEvent==null ||controller.getMiniModel().lastEvent.getEventType().equals(EventType.TOTEM_CHOICE) || controller.getMiniModel().lastEvent.getEventType().equals(EventType.NEXT_ROUND)) {</b>
|
||||
<b class="nc"> renderMyHand();</b>
|
||||
<b class="nc"> renderUpper();</b>
|
||||
<b class="nc"> renderBoard();</b>
|
||||
<b class="nc"> renderLower();</b>
|
||||
<b class="nc"> updateSidePanel();</b>
|
||||
return;
|
||||
}
|
||||
<b class="nc"> if(controller.getMiniModel().lastEvent.getEventType().equals(EventType.DRAW_UPPER_TRIBE) || controller.getMiniModel().lastEvent.getEventType().equals(EventType.DRAW_UPPER_BUILD))</b>
|
||||
{
|
||||
<b class="nc"> renderUpper();</b>
|
||||
}
|
||||
<b class="nc"> if(controller.getMiniModel().lastEvent.getEventType().equals(EventType.DRAW_LOWER_TRIBE) || controller.getMiniModel().lastEvent.getEventType().equals(EventType.DRAW_LOWER_BUILD))</b>
|
||||
{
|
||||
<b class="nc"> renderLower();</b>
|
||||
}
|
||||
<b class="nc"> if(controller.getMiniModel().lastEvent.getUsername().equals(controller.getMyUsername()))</b>
|
||||
{
|
||||
<b class="nc"> renderMyHand();</b>
|
||||
}
|
||||
<b class="nc"> renderBoard();</b>
|
||||
<b class="nc"> updateSidePanel();</b>
|
||||
}
|
||||
|
||||
|
||||
// ==== EFFECTS ====
|
||||
/** Binds a rounded-rectangle clip to {@code img} so its corners are cropped. */
|
||||
private void addClip(ImageView img) {
|
||||
<b class="nc"> Rectangle clip = new Rectangle();</b>
|
||||
<b class="nc"> clip.setArcWidth(20);</b>
|
||||
<b class="nc"> clip.setArcHeight(20);</b>
|
||||
<b class="nc"> img.setClip(clip);</b>
|
||||
<b class="nc"> clip.heightProperty().bind(img.layoutBoundsProperty().map(b -> b.getHeight()));</b>
|
||||
<b class="nc"> clip.widthProperty().bind(img.layoutBoundsProperty().map(b -> b.getWidth()));</b>
|
||||
}
|
||||
|
||||
/** Scales {@code node} to 1.1× on hover and restores on exit; sets a hand cursor. */
|
||||
private void addHoverZoom(Node node) {
|
||||
<b class="nc"> ScaleTransition scaleUp = new ScaleTransition(Duration.millis(150), node);</b>
|
||||
<b class="nc"> scaleUp.setToX(1.1);</b>
|
||||
<b class="nc"> scaleUp.setToY(1.1);</b>
|
||||
<b class="nc"> ScaleTransition scaleDown = new ScaleTransition(Duration.millis(150), node);</b>
|
||||
<b class="nc"> scaleDown.setToX(1.0);</b>
|
||||
<b class="nc"> scaleDown.setToY(1.0);</b>
|
||||
<b class="nc"> node.addEventHandler(MouseEvent.MOUSE_ENTERED, e -> { scaleUp.play(); node.setCursor(Cursor.HAND); });</b>
|
||||
<b class="nc"> node.addEventHandler(MouseEvent.MOUSE_EXITED, e -> { scaleDown.play(); node.setCursor(Cursor.DEFAULT); });</b>
|
||||
}
|
||||
|
||||
/** Applies a drop-shadow to {@code node} that intensifies on hover. */
|
||||
private void addShadow(Node node) {
|
||||
<b class="nc"> DropShadow shadow = new DropShadow();</b>
|
||||
<b class="nc"> shadow.setColor(Color.rgb(0, 0, 0, 0.3));</b>
|
||||
<b class="nc"> shadow.setRadius(6);</b>
|
||||
<b class="nc"> shadow.setOffsetX(2);</b>
|
||||
<b class="nc"> shadow.setOffsetY(2);</b>
|
||||
<b class="nc"> node.setEffect(shadow);</b>
|
||||
<b class="nc"> node.addEventHandler(MouseEvent.MOUSE_ENTERED, e -> {</b>
|
||||
<b class="nc"> shadow.setRadius(16);</b>
|
||||
<b class="nc"> shadow.setOffsetX(4);</b>
|
||||
<b class="nc"> shadow.setOffsetY(4);</b>
|
||||
<b class="nc"> shadow.setColor(Color.rgb(0, 0, 0, 0.5));</b>
|
||||
});
|
||||
<b class="nc"> node.addEventHandler(MouseEvent.MOUSE_EXITED, e -> {</b>
|
||||
<b class="nc"> shadow.setRadius(6);</b>
|
||||
<b class="nc"> shadow.setOffsetX(2);</b>
|
||||
<b class="nc"> shadow.setOffsetY(2);</b>
|
||||
<b class="nc"> shadow.setColor(Color.rgb(0, 0, 0, 0.3));</b>
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// ==== ELEMENTS ====
|
||||
|
||||
/** Builds the side-panel card widget for {@code player} with totem, stats, and card-type icons. */
|
||||
private VBox buildPlayerCard(Player player) {
|
||||
<b class="nc"> VBox card = new VBox(3);</b>
|
||||
<b class="nc"> VBox.setMargin(card, new Insets(15, 15, 0, 15));</b>
|
||||
<b class="nc"> card.getStyleClass().add("player-card");</b>
|
||||
<b class="nc"> card.setPadding(new Insets(4));</b>
|
||||
|
||||
<b class="nc"> HBox headerRow = new HBox(8);</b>
|
||||
<b class="nc"> headerRow.setAlignment(Pos.CENTER);</b>
|
||||
<b class="nc"> ImageView totem = new ImageView(loadImage("/GUIImages/Totems/totem_"</b>
|
||||
<b class="nc"> + player.getTotem().toString().toLowerCase(Locale.ROOT) + ".png"));</b>
|
||||
<b class="nc"> totem.setFitHeight(20);</b>
|
||||
<b class="nc"> totem.setPreserveRatio(true);</b>
|
||||
<b class="nc"> Label usernameLabel = new Label(player.getUserName());</b>
|
||||
<b class="nc"> usernameLabel.getStyleClass().add("label-medium");</b>
|
||||
<b class="nc"> usernameLabel.setStyle("-fx-text-fill: #711423;");</b>
|
||||
<b class="nc"> if (player.getUserName().equals(controller.getMyUsername())) {</b>
|
||||
<b class="nc"> usernameLabel.setText(usernameLabel.getText() + " (you)");</b>
|
||||
}
|
||||
<b class="nc"> if (controller.getMiniModel().disconnectedPlayers.contains(player.getUserName())) {</b>
|
||||
<b class="nc"> card.getStyleClass().add("player-card-crashed");</b>
|
||||
}
|
||||
<b class="nc"> headerRow.getChildren().addAll(totem, usernameLabel);</b>
|
||||
|
||||
<b class="nc"> HBox statsRow = new HBox(10);</b>
|
||||
<b class="nc"> statsRow.setAlignment(Pos.CENTER);</b>
|
||||
|
||||
<b class="nc"> HBox foodBox = new HBox(4);</b>
|
||||
<b class="nc"> foodBox.setAlignment(Pos.CENTER);</b>
|
||||
<b class="nc"> ImageView foodIcon = new ImageView(loadImage("/GUIImages/Icons/Food.png"));</b>
|
||||
<b class="nc"> foodIcon.setFitHeight(20);</b>
|
||||
<b class="nc"> foodIcon.setPreserveRatio(true);</b>
|
||||
<b class="nc"> Label foodLabel = new Label(String.valueOf(player.getFoodValue()));</b>
|
||||
<b class="nc"> foodLabel.getStyleClass().add("label-small");</b>
|
||||
<b class="nc"> foodLabels.put(player.getUserName(), foodLabel);</b>
|
||||
<b class="nc"> foodBox.getChildren().addAll(foodIcon, foodLabel);</b>
|
||||
|
||||
<b class="nc"> HBox prestigeBox = new HBox(1);</b>
|
||||
<b class="nc"> prestigeBox.setAlignment(Pos.CENTER);</b>
|
||||
<b class="nc"> ImageView ppIcon = new ImageView(loadImage("/GUIImages/Icons/PrestigePoint.png"));</b>
|
||||
<b class="nc"> ppIcon.setFitHeight(35);</b>
|
||||
<b class="nc"> ppIcon.setPreserveRatio(true);</b>
|
||||
<b class="nc"> Label prestigeLabel = new Label(String.valueOf(player.getPrestigeValue()));</b>
|
||||
<b class="nc"> prestigeLabel.getStyleClass().add("label-small");</b>
|
||||
<b class="nc"> prestigeLabels.put(player.getUserName(), prestigeLabel);</b>
|
||||
<b class="nc"> prestigeBox.getChildren().addAll(ppIcon, prestigeLabel);</b>
|
||||
|
||||
<b class="nc"> ImageView buildingIcon = new ImageView(loadImage("/GUIImages/Icons/Building.png"));</b>
|
||||
<b class="nc"> buildingIcon.setFitWidth(28);</b>
|
||||
<b class="nc"> buildingIcon.setFitHeight(28);</b>
|
||||
<b class="nc"> buildingIcon.setPreserveRatio(true);</b>
|
||||
<b class="nc"> buildingIcon.setOnMouseClicked(e -> {</b>
|
||||
<b class="nc"> ArrayList<PlayableCard> cards = getPlayerCards(player.getUserName(), "building");</b>
|
||||
<b class="nc"> if (!cards.isEmpty()) openPopup(cards);</b>
|
||||
});
|
||||
<b class="nc"> addHoverZoom(buildingIcon);</b>
|
||||
|
||||
<b class="nc"> statsRow.getChildren().addAll(foodBox, prestigeBox, buildingIcon);</b>
|
||||
|
||||
<b class="nc"> HBox iconsRow1 = new HBox(6);</b>
|
||||
<b class="nc"> iconsRow1.setSpacing(20);</b>
|
||||
<b class="nc"> iconsRow1.setAlignment(Pos.CENTER);</b>
|
||||
<b class="nc"> HBox iconsRow2 = new HBox(6);</b>
|
||||
<b class="nc"> iconsRow2.setAlignment(Pos.CENTER);</b>
|
||||
<b class="nc"> iconsRow2.setSpacing(20);</b>
|
||||
|
||||
<b class="nc"> String[][] iconTypes = {</b>
|
||||
{"Artist", "artists"},
|
||||
{"Gatherer", "gatherers"},
|
||||
{"Inventor", "inventors"},
|
||||
{"Builder", "builders"},
|
||||
{"Shaman", "shamans"},
|
||||
{"Hunter", "hunters"}
|
||||
};
|
||||
|
||||
<b class="nc"> List<ImageView> icons = new ArrayList<>();</b>
|
||||
// building must be index 0; updateSidePanel iterates icons in ["building","artists",...] order
|
||||
<b class="nc"> icons.add(buildingIcon);</b>
|
||||
|
||||
<b class="nc"> for (int i = 0; i < iconTypes.length; i++) {</b>
|
||||
<b class="nc"> String iconName = iconTypes[i][0];</b>
|
||||
<b class="nc"> String fieldName = iconTypes[i][1];</b>
|
||||
|
||||
<b class="nc"> ImageView icon = new ImageView(loadImage("/GUIImages/Icons/" + iconName + ".png"));</b>
|
||||
<b class="nc"> icon.setFitWidth(28);</b>
|
||||
<b class="nc"> icon.setFitHeight(28);</b>
|
||||
<b class="nc"> icon.setPreserveRatio(true);</b>
|
||||
<b class="nc"> icon.setOnMouseClicked(e -> {</b>
|
||||
<b class="nc"> ArrayList<PlayableCard> cards = getPlayerCards(player.getUserName(), fieldName);</b>
|
||||
<b class="nc"> if (!cards.isEmpty()) openPopup(cards);</b>
|
||||
});
|
||||
<b class="nc"> addHoverZoom(icon);</b>
|
||||
<b class="nc"> icons.add(icon);</b>
|
||||
|
||||
<b class="nc"> if (i < 3) iconsRow1.getChildren().add(icon);</b>
|
||||
<b class="nc"> else iconsRow2.getChildren().add(icon);</b>
|
||||
}
|
||||
|
||||
<b class="nc"> iconViews.put(player.getUserName(), icons);</b>
|
||||
|
||||
<b class="nc"> card.getChildren().addAll(headerRow, statsRow, iconsRow1, iconsRow2);</b>
|
||||
<b class="nc"> return card;</b>
|
||||
}
|
||||
|
||||
/** Creates a {@link StackPane} containing the order card image for a game of {@code num} players. */
|
||||
private StackPane createOrder(String num) {
|
||||
<b class="nc"> ImageView img = new ImageView(loadImage("/GUIImages/Orders/order-" + num + ".png"));</b>
|
||||
<b class="nc"> img.fitHeightProperty().bind(board.sceneProperty().get().heightProperty().subtract(56).divide(4).multiply(0.94));</b>
|
||||
<b class="nc"> img.setPreserveRatio(true);</b>
|
||||
<b class="nc"> addClip(img);</b>
|
||||
<b class="nc"> return new StackPane(img);</b>
|
||||
}
|
||||
|
||||
/** Creates a {@link StackPane} for a board slot, optionally overlaying the occupying player's totem. */
|
||||
private StackPane createSlot(Slot slot, boolean withZoom, boolean withShadow) {
|
||||
<b class="nc"> ImageView img = new ImageView(loadImage("/GUIImages/Fronts/card-" + slot.getSlotId() + ".png"));</b>
|
||||
<b class="nc"> img.setPreserveRatio(true);</b>
|
||||
<b class="nc"> img.fitHeightProperty().bind(board.sceneProperty().get().heightProperty().subtract(56).divide(4).multiply(0.94));</b>
|
||||
<b class="nc"> addClip(img);</b>
|
||||
<b class="nc"> StackPane wrapper = new StackPane(img);</b>
|
||||
|
||||
<b class="nc"> Player player = controller.getMiniModel().slotPlayerMap.get(slot);</b>
|
||||
<b class="nc"> if (player != null && controller.getMiniModel().getPositionByUsername(player.getUserName()) != -1) {</b>
|
||||
<b class="nc"> ImageView totem = new ImageView(loadImage("/GUIImages/Totems/totem_" + player.getTotem().toString().toLowerCase(Locale.ROOT) + ".png"));</b>
|
||||
<b class="nc"> totem.fitHeightProperty().bind(img.fitHeightProperty().multiply(0.332));</b>
|
||||
<b class="nc"> totem.setPreserveRatio(true);</b>
|
||||
<b class="nc"> StackPane.setAlignment(totem, Pos.TOP_LEFT);</b>
|
||||
<b class="nc"> img.fitHeightProperty().addListener((obs, ov, nv) -> {</b>
|
||||
<b class="nc"> StackPane.setMargin(totem, new Insets(0, 0, 0, 0.224 * nv.doubleValue()));</b>
|
||||
});
|
||||
<b class="nc"> if (img.getFitHeight() > 0) {</b>
|
||||
<b class="nc"> StackPane.setMargin(totem, new Insets(0, 0, 0, 0.224 * img.getFitHeight()));</b>
|
||||
}
|
||||
<b class="nc"> wrapper.getChildren().add(totem);</b>
|
||||
}
|
||||
|
||||
<b class="nc"> if (withShadow) addShadow(wrapper);</b>
|
||||
<b class="nc"> if (withZoom) addHoverZoom(wrapper);</b>
|
||||
<b class="nc"> return wrapper;</b>
|
||||
}
|
||||
|
||||
/** Creates a {@link StackPane} for a playable card, scaling its height to a fraction of {@code parent}'s scene. */
|
||||
private StackPane createCard(PlayableCard card, boolean withZoom, boolean withShadow, Region parent) {
|
||||
<b class="nc"> ImageView img = new ImageView(loadImage("/GUIImages/Fronts/card-" + card.getIdIMG() + ".png"));</b>
|
||||
<b class="nc"> img.setPreserveRatio(true);</b>
|
||||
<b class="nc"> if(controller.getMiniModel().players.size()==5)</b>
|
||||
{
|
||||
<b class="nc"> img.fitHeightProperty().bind(parent.getScene().heightProperty().subtract(56).divide(4).multiply(0.85));</b>
|
||||
}
|
||||
else
|
||||
<b class="nc"> img.fitHeightProperty().bind(parent.getScene().heightProperty().subtract(56).divide(4).multiply(0.90));</b>
|
||||
<b class="nc"> addClip(img);</b>
|
||||
<b class="nc"> StackPane wrapper = new StackPane(img);</b>
|
||||
<b class="nc"> if (withShadow) addShadow(wrapper);</b>
|
||||
<b class="nc"> if (withZoom) addHoverZoom(wrapper);</b>
|
||||
<b class="nc"> return wrapper;</b>
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ==== GROUPS ====
|
||||
/** Builds the full side panel from scratch, creating a player card for each connected player. */
|
||||
private void buildSidePanel() {
|
||||
<b class="nc"> infoText.setText("Round: "+Integer.toString(controller.getMiniModel().currentState.getRound()) + " • " + controller.getMiniModel().currentState.getGameStage().toString());</b>
|
||||
<b class="nc"> VBox playerList = new VBox();</b>
|
||||
<b class="nc"> playerList.setFillWidth(true);</b>
|
||||
<b class="nc"> for (Player p : controller.getMiniModel().players.values()) {</b>
|
||||
<b class="nc"> VBox card = buildPlayerCard(p);</b>
|
||||
<b class="nc"> playerCards.put(p.getUserName(), card);</b>
|
||||
<b class="nc"> playerList.getChildren().add(card);</b>
|
||||
}
|
||||
<b class="nc"> playerSide.setContent(playerList);</b>
|
||||
}
|
||||
|
||||
/** Updates food/prestige labels, current-player highlight, card-icon opacity, and plays error shake if needed. */
|
||||
private void updateSidePanel() {
|
||||
<b class="nc"> infoText.setText("Round: "+Integer.toString(controller.getMiniModel().currentState.getRound()) + " • " + controller.getMiniModel().currentState.getGameStage().toString());</b>
|
||||
<b class="nc"> if (controller.getMiniModel().currentState.getCurrentPlayer() == null) return;</b>
|
||||
<b class="nc"> String current = controller.getMiniModel().currentState.getCurrentPlayer().getUserName();</b>
|
||||
// ordine: building, artists, gatherers, inventors, builders, shamans, hunters
|
||||
<b class="nc"> String[] fields = {"building", "artists", "gatherers", "inventors", "builders", "shamans", "hunters"};</b>
|
||||
|
||||
<b class="nc"> for (Player p : controller.getMiniModel().players.values()) {</b>
|
||||
<b class="nc"> String u = p.getUserName();</b>
|
||||
|
||||
<b class="nc"> foodLabels.get(u).setText(String.valueOf(p.getFoodValue()));</b>
|
||||
<b class="nc"> prestigeLabels.get(u).setText(String.valueOf(p.getPrestigeValue()));</b>
|
||||
|
||||
<b class="nc"> List<ImageView> icons = iconViews.get(u);</b>
|
||||
<b class="nc"> for (int i = 0; i < icons.size(); i++) {</b>
|
||||
<b class="nc"> boolean empty = getPlayerCards(u, fields[i]).isEmpty();</b>
|
||||
<b class="nc"> icons.get(i).setOpacity(empty ? 0.3 : 1.0);</b>
|
||||
<b class="nc"> icons.get(i).setEffect(empty ? new ColorAdjust() : null);</b>
|
||||
}
|
||||
|
||||
<b class="nc"> VBox card = playerCards.get(u);</b>
|
||||
<b class="nc"> if(controller.getMiniModel().disconnectedPlayers.contains(u))</b>
|
||||
{
|
||||
<b class="nc"> card.getStyleClass().clear();</b>
|
||||
<b class="nc"> card.getStyleClass().add("player-card-crashed");</b>
|
||||
}
|
||||
else {
|
||||
<b class="nc"> card.getStyleClass().clear();</b>
|
||||
<b class="nc"> card.getStyleClass().add("player-card");</b>
|
||||
}
|
||||
|
||||
<b class="nc"> if (u.equals(current)) {</b>
|
||||
<b class="nc"> card.setStyle("-fx-effect: dropshadow(gaussian, #fff8dc, 15, 0.10, 0, 0)");</b>
|
||||
<b class="nc"> ScaleTransition st = new ScaleTransition(Duration.millis(150), card);</b>
|
||||
<b class="nc"> st.setToX(1.1);</b>
|
||||
<b class="nc"> st.setToY(1.1);</b>
|
||||
<b class="nc"> st.play();</b>
|
||||
} else {
|
||||
<b class="nc"> ScaleTransition st = new ScaleTransition(Duration.millis(150), card);</b>
|
||||
<b class="nc"> st.setToX(1.0);</b>
|
||||
<b class="nc"> st.setToY(1.0);</b>
|
||||
<b class="nc"> st.play();</b>
|
||||
<b class="nc"> card.setStyle("");</b>
|
||||
}
|
||||
|
||||
<b class="nc"> if (isError && u.equals(controller.getMyUsername())) {</b>
|
||||
<b class="nc"> TranslateTransition tt = new TranslateTransition(Duration.millis(56), card);</b>
|
||||
<b class="nc"> tt.setFromX(0);</b>
|
||||
<b class="nc"> tt.setByX(10);</b>
|
||||
<b class="nc"> tt.setCycleCount(6);</b>
|
||||
<b class="nc"> tt.setAutoReverse(true);</b>
|
||||
<b class="nc"> tt.play();</b>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Renders the top card of the upper building stack with a count badge; clicking opens the selection popup. */
|
||||
private void drawUpperBuilding() {
|
||||
<b class="nc"> ArrayList<BuildingCard> cardList = new ArrayList<>(controller.getMiniModel().upperListBuildingCards);</b>
|
||||
<b class="nc"> if (!cardList.isEmpty()) {</b>
|
||||
<b class="nc"> StackPane img = createCard(cardList.getLast(), true, true, upperList);</b>
|
||||
<b class="nc"> Label label = new Label(String.valueOf(cardList.size()));</b>
|
||||
<b class="nc"> label.setTranslateY(-56);</b>
|
||||
<b class="nc"> label.setTranslateX(10);</b>
|
||||
<b class="nc"> label.getStyleClass().add("label-large");</b>
|
||||
<b class="nc"> StackPane.setAlignment(label, Pos.TOP_RIGHT);</b>
|
||||
<b class="nc"> img.getChildren().add(label);</b>
|
||||
<b class="nc"> img.setOnMouseClicked(e -> openPopupUpperBuilding(cardList));</b>
|
||||
<b class="nc"> upperList.getChildren().add(img);</b>
|
||||
}
|
||||
}
|
||||
|
||||
/** Renders the top card of the lower building stack with a count badge; clicking opens the selection popup. */
|
||||
private void drawLowerBuilding() {
|
||||
<b class="nc"> ArrayList<BuildingCard> cardList = new ArrayList<>(controller.getMiniModel().lowerListBuildingCards);</b>
|
||||
<b class="nc"> if (!cardList.isEmpty()) {</b>
|
||||
<b class="nc"> StackPane img = createCard(cardList.getLast(), true, true, lowerList);</b>
|
||||
<b class="nc"> Label label = new Label(String.valueOf(cardList.size()));</b>
|
||||
<b class="nc"> label.setTranslateY(-56);</b>
|
||||
<b class="nc"> label.setTranslateX(10);</b>
|
||||
<b class="nc"> label.getStyleClass().add("label-large");</b>
|
||||
<b class="nc"> StackPane.setAlignment(label, Pos.TOP_RIGHT);</b>
|
||||
<b class="nc"> img.getChildren().add(label);</b>
|
||||
<b class="nc"> img.setOnMouseClicked(e -> openPopupLowerBuilding(cardList));</b>
|
||||
<b class="nc"> lowerList.getChildren().add(img);</b>
|
||||
}
|
||||
}
|
||||
|
||||
/** Renders a single card-type pile in the hand area, or an invisible placeholder if the list is empty. */
|
||||
private void drawMyHandList(ArrayList<? extends PlayableCard> cardList) {
|
||||
<b class="nc"> if (!cardList.isEmpty()) {</b>
|
||||
<b class="nc"> StackPane img = createCard(cardList.getLast(), true, true, myHand);</b>
|
||||
<b class="nc"> Label label = new Label(String.valueOf(cardList.size()));</b>
|
||||
<b class="nc"> label.setTranslateY(-56);</b>
|
||||
<b class="nc"> label.setTranslateX(10);</b>
|
||||
<b class="nc"> label.getStyleClass().add("label-large");</b>
|
||||
<b class="nc"> StackPane.setAlignment(label, Pos.TOP_RIGHT);</b>
|
||||
<b class="nc"> img.getChildren().add(label);</b>
|
||||
<b class="nc"> img.setOnMouseClicked(e -> openPopup(new ArrayList<>(cardList)));</b>
|
||||
<b class="nc"> myHand.getChildren().add(img);</b>
|
||||
} else {
|
||||
<b class="nc"> Region placeholder = new Region();</b>
|
||||
<b class="nc"> placeholder.prefHeightProperty().bind(myHand.getScene().heightProperty().subtract(56).divide(4).multiply(0.90));</b>
|
||||
<b class="nc"> placeholder.prefWidthProperty().bind(placeholder.prefHeightProperty().multiply(0.675));</b>
|
||||
<b class="nc"> placeholder.setStyle("-fx-background-color: transparent;");</b>
|
||||
<b class="nc"> myHand.getChildren().add(placeholder);</b>
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns a copy of the named card collection for {@code username}. */
|
||||
private ArrayList<PlayableCard> getPlayerCards(String username, String type) {
|
||||
<b class="nc"> Player p = controller.getMiniModel().players.get(username);</b>
|
||||
<b class="nc"> return switch (type) {</b>
|
||||
<b class="nc"> case "artists" -> new ArrayList<>(p.getArtists());</b>
|
||||
<b class="nc"> case "gatherers" -> new ArrayList<>(p.getGatherers());</b>
|
||||
<b class="nc"> case "inventors" -> new ArrayList<>(p.getInventors());</b>
|
||||
<b class="nc"> case "builders" -> new ArrayList<>(p.getBuilders());</b>
|
||||
<b class="nc"> case "shamans" -> new ArrayList<>(p.getShamans());</b>
|
||||
<b class="nc"> case "hunters" -> new ArrayList<>(p.getHunters());</b>
|
||||
<b class="nc"> case "building" -> new ArrayList<>(p.getBuildingCards());</b>
|
||||
<b class="nc"> default -> new ArrayList<>();</b>
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
// ==== ABSOLUTES ====
|
||||
/** Clears and rebuilds the upper tribe row with click handlers for drawing, then appends the upper building stack. */
|
||||
private void renderUpper() {
|
||||
<b class="nc"> upperList.setSpacing(14);</b>
|
||||
<b class="nc"> upperList.setAlignment(Pos.CENTER);</b>
|
||||
<b class="nc"> upperList.getChildren().clear();</b>
|
||||
|
||||
<b class="nc"> int i = 0;</b>
|
||||
<b class="nc"> for (TribeCard card : controller.getMiniModel().upperListTribeCards) {</b>
|
||||
<b class="nc"> final int index = i;</b>
|
||||
<b class="nc"> StackPane img = createCard(card, true, true, upperList);</b>
|
||||
<b class="nc"> img.setOnMouseClicked(e -> controller.drawUpperTribeCard(index));</b>
|
||||
<b class="nc"> upperList.getChildren().add(img);</b>
|
||||
<b class="nc"> i++;</b>
|
||||
}
|
||||
<b class="nc"> drawUpperBuilding();</b>
|
||||
}
|
||||
|
||||
/** Clears and rebuilds the lower tribe row with click handlers for drawing, then appends the lower building stack. */
|
||||
private void renderLower() {
|
||||
<b class="nc"> lowerList.setSpacing(14);</b>
|
||||
<b class="nc"> lowerList.setAlignment(Pos.CENTER);</b>
|
||||
<b class="nc"> lowerList.getChildren().clear();</b>
|
||||
|
||||
<b class="nc"> int i = 0;</b>
|
||||
<b class="nc"> for (TribeCard card : controller.getMiniModel().lowerListTribeCards) {</b>
|
||||
<b class="nc"> final int index = i;</b>
|
||||
<b class="nc"> StackPane img = createCard(card, true, true, lowerList);</b>
|
||||
<b class="nc"> img.setOnMouseClicked(e -> controller.drawLowerTribeCard(index));</b>
|
||||
<b class="nc"> lowerList.getChildren().add(img);</b>
|
||||
<b class="nc"> i++;</b>
|
||||
}
|
||||
<b class="nc"> drawLowerBuilding();</b>
|
||||
}
|
||||
|
||||
/** Sets the full-cover background image on the main HBox container. */
|
||||
private void renderBackground() {
|
||||
<b class="nc"> BackgroundSize size = new BackgroundSize(</b>
|
||||
BackgroundSize.AUTO, BackgroundSize.AUTO,
|
||||
false, false, true, true
|
||||
);
|
||||
<b class="nc"> mainHBox.setBackground(new Background(new BackgroundImage(</b>
|
||||
<b class="nc"> loadImage("/GUIImages/Background.png"),</b>
|
||||
BackgroundRepeat.NO_REPEAT,
|
||||
BackgroundRepeat.NO_REPEAT,
|
||||
BackgroundPosition.CENTER,
|
||||
size
|
||||
)));
|
||||
}
|
||||
|
||||
/** Clears the board area and orchestrates deck, order card, and slot-map rendering. */
|
||||
private void renderBoard() {
|
||||
<b class="nc"> board.setSpacing(14);</b>
|
||||
<b class="nc"> board.setAlignment(Pos.CENTER);</b>
|
||||
<b class="nc"> board.getChildren().clear();</b>
|
||||
<b class="nc"> renderDeck();</b>
|
||||
<b class="nc"> renderOrder();</b>
|
||||
<b class="nc"> renderSlotMap();</b>
|
||||
}
|
||||
|
||||
/** Adds the era-specific deck back image to the board. */
|
||||
private void renderDeck() {
|
||||
<b class="nc"> String path = switch (controller.getMiniModel().currentState.getEra()) {</b>
|
||||
<b class="nc"> case 1 -> "/GUIImages/Backs/back-001.png";</b>
|
||||
<b class="nc"> case 2 -> "/GUIImages/Backs/back-030.png";</b>
|
||||
<b class="nc"> case 3 -> "/GUIImages/Backs/back-058.png";</b>
|
||||
<b class="nc"> default -> "/GUIImages/Backs/back-001.png";</b>
|
||||
<b class="nc"> };</b>
|
||||
<b class="nc"> ImageView back = new ImageView(loadImage(path));</b>
|
||||
<b class="nc"> back.fitHeightProperty().bind(board.sceneProperty().get().heightProperty().subtract(56).divide(4).multiply(0.94));</b>
|
||||
<b class="nc"> back.setPreserveRatio(true);</b>
|
||||
<b class="nc"> addClip(back);</b>
|
||||
<b class="nc"> addShadow(back);</b>
|
||||
<b class="nc"> addHoverZoom(back);</b>
|
||||
<b class="nc"> board.getChildren().add(back);</b>
|
||||
}
|
||||
|
||||
/** Renders the order card and overlays each player's totem at their proportional position. */
|
||||
private void renderOrder() {
|
||||
<b class="nc"> int numPlayers = controller.getMiniModel().players.size();</b>
|
||||
<b class="nc"> StackPane card = createOrder(Integer.toString(numPlayers));</b>
|
||||
|
||||
<b class="nc"> Map<Integer, double[]> slotPositions = Map.of(</b>
|
||||
<b class="nc"> 2, new double[]{0.229, 0.413},</b>
|
||||
<b class="nc"> 3, new double[]{0.183, 0.367, 0.548},</b>
|
||||
<b class="nc"> 4, new double[]{0.142, 0.316, 0.503, 0.690},</b>
|
||||
<b class="nc"> 5, new double[]{0.066, 0.251, 0.433, 0.617, 0.802}</b>
|
||||
);
|
||||
<b class="nc"> double[] positions = slotPositions.get(numPlayers);</b>
|
||||
<b class="nc"> if (positions == null) return;</b>
|
||||
|
||||
<b class="nc"> Pane overlay = new Pane();</b>
|
||||
<b class="nc"> overlay.setPickOnBounds(false);</b>
|
||||
<b class="nc"> overlay.setMouseTransparent(true);</b>
|
||||
|
||||
<b class="nc"> for (int i = 0; i < controller.getMiniModel().orderLogicCard.getPlayerList().size(); i++) {</b>
|
||||
<b class="nc"> OrderPlayer op = controller.getMiniModel().orderLogicCard.getPlayerList().get(i);</b>
|
||||
|
||||
<b class="nc"> ImageView totem = new ImageView(loadImage(</b>
|
||||
<b class="nc"> "/GUIImages/Totems/totem_" + op.getPlayer().getTotem().toString().toLowerCase(Locale.ROOT) + ".png"</b>
|
||||
));
|
||||
<b class="nc"> totem.setPreserveRatio(true);</b>
|
||||
|
||||
<b class="nc"> if (op.isPlayed()) {</b>
|
||||
<b class="nc"> totem.setVisible(false);</b>
|
||||
}
|
||||
|
||||
<b class="nc"> final double yRatio = positions[i];</b>
|
||||
|
||||
<b class="nc"> overlay.prefHeightProperty().bind(card.heightProperty());</b>
|
||||
<b class="nc"> overlay.prefWidthProperty().bind(card.widthProperty());</b>
|
||||
|
||||
<b class="nc"> totem.fitHeightProperty().bind(card.heightProperty().multiply(0.323));</b>
|
||||
|
||||
<b class="nc"> card.heightProperty().addListener((obs, ov, nv) -> {</b>
|
||||
<b class="nc"> totem.setLayoutY(nv.doubleValue() * (yRatio-0.196));</b>
|
||||
});
|
||||
<b class="nc"> card.widthProperty().addListener((obs, ov, nv) -> {</b>
|
||||
<b class="nc"> totem.setLayoutX(nv.doubleValue() * 0.364);</b>
|
||||
});
|
||||
|
||||
// initialize immediately if already laid out
|
||||
<b class="nc"> if (card.getHeight() > 0) totem.setLayoutY(card.getHeight() *(yRatio-0.196));</b>
|
||||
<b class="nc"> if (card.getWidth() > 0) totem.setLayoutX(card.getWidth() * 0.364);</b>
|
||||
|
||||
<b class="nc"> overlay.getChildren().add(totem);</b>
|
||||
}
|
||||
|
||||
<b class="nc"> card.getChildren().add(overlay);</b>
|
||||
<b class="nc"> board.getChildren().add(card);</b>
|
||||
}
|
||||
|
||||
/** Adds a clickable slot widget for each entry in the slot-player map. */
|
||||
private void renderSlotMap() {
|
||||
<b class="nc"> int i = 0;</b>
|
||||
<b class="nc"> for (Map.Entry<Slot, Player> entry : controller.getMiniModel().slotPlayerMap.entrySet()) {</b>
|
||||
<b class="nc"> Slot slot = entry.getKey();</b>
|
||||
<b class="nc"> final int index = i;</b>
|
||||
<b class="nc"> StackPane img = createSlot(slot, true, true);</b>
|
||||
<b class="nc"> img.setOnMouseClicked(e -> controller.slotChoice(index));</b>
|
||||
<b class="nc"> board.getChildren().add(img);</b>
|
||||
<b class="nc"> i++;</b>
|
||||
}
|
||||
}
|
||||
|
||||
/** Clears and re-renders all seven card-type piles in the local player's hand area. */
|
||||
private void renderMyHand() {
|
||||
<b class="nc"> myHand.getChildren().clear();</b>
|
||||
<b class="nc"> myHand.setSpacing(14);</b>
|
||||
<b class="nc"> myHand.setAlignment(Pos.CENTER);</b>
|
||||
|
||||
<b class="nc"> Player me = controller.getMiniModel().players.get(controller.getMyUsername());</b>
|
||||
<b class="nc"> drawMyHandList(me.getArtists());</b>
|
||||
<b class="nc"> drawMyHandList(me.getGatherers());</b>
|
||||
<b class="nc"> drawMyHandList(me.getInventors());</b>
|
||||
<b class="nc"> drawMyHandList(me.getBuilders());</b>
|
||||
<b class="nc"> drawMyHandList(me.getShamans());</b>
|
||||
<b class="nc"> drawMyHandList(me.getHunters());</b>
|
||||
<b class="nc"> drawMyHandList(me.getBuildingCards());</b>
|
||||
}
|
||||
|
||||
|
||||
// ==== POPUP ====
|
||||
/** Creates and configures the shared card-preview popup container. */
|
||||
private void initPopup() {
|
||||
<b class="nc"> popupCards = new HBox(10);</b>
|
||||
<b class="nc"> popupCards.setAlignment(Pos.CENTER);</b>
|
||||
<b class="nc"> popupCards.setPadding(new Insets(10));</b>
|
||||
<b class="nc"> popupCards.setStyle(</b>
|
||||
"-fx-background-color: #b42224;" +
|
||||
"-fx-border-color: black;" +
|
||||
"-fx-border-width: 2;" +
|
||||
"-fx-border-radius: 10;" +
|
||||
"-fx-background-radius: 10;"
|
||||
);
|
||||
|
||||
<b class="nc"> popup.getContent().add(popupCards);</b>
|
||||
<b class="nc"> popup.setAutoHide(false);</b>
|
||||
<b class="nc"> popup.addEventHandler(Event.ANY, e -> {</b>
|
||||
<b class="nc"> if (popup.getScene() != null) {</b>
|
||||
<b class="nc"> popup.getScene().setFill(Color.TRANSPARENT);</b>
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** Centers the popup over the current window and makes it visible. */
|
||||
private void showPopup() {
|
||||
<b class="nc"> Window window = myHand.getScene().getWindow();</b>
|
||||
<b class="nc"> popup.show(window, 0, 0);</b>
|
||||
<b class="nc"> popup.getScene().setFill(Color.TRANSPARENT);</b>
|
||||
<b class="nc"> popup.setX(window.getX() + (window.getWidth() - popup.getWidth()) / 2);</b>
|
||||
<b class="nc"> popup.setY(window.getY() + (window.getHeight() - popup.getHeight()) / 2);</b>
|
||||
}
|
||||
|
||||
/** Populates the popup with non-clickable card images and shows it. */
|
||||
private void openPopup(ArrayList<? extends PlayableCard> cardList) {
|
||||
<b class="nc"> popupCards.getChildren().clear();</b>
|
||||
<b class="nc"> for (PlayableCard card : cardList) {</b>
|
||||
<b class="nc"> popupCards.getChildren().add(createCardPopup(card, false, false));</b>
|
||||
}
|
||||
<b class="nc"> showPopup();</b>
|
||||
}
|
||||
|
||||
/** Populates the popup with clickable upper-building cards; clicking one draws it via the controller. */
|
||||
private void openPopupUpperBuilding(ArrayList<BuildingCard> cardList) {
|
||||
<b class="nc"> popupCards.getChildren().clear();</b>
|
||||
<b class="nc"> for (int i = 0; i < cardList.size(); i++) {</b>
|
||||
<b class="nc"> final int index = i;</b>
|
||||
<b class="nc"> StackPane img = createCardPopup(cardList.get(i), true, false);</b>
|
||||
<b class="nc"> img.setOnMouseClicked(e -> {</b>
|
||||
<b class="nc"> popup.hide();</b>
|
||||
<b class="nc"> controller.drawUpperBuildingCard(index);</b>
|
||||
});
|
||||
<b class="nc"> popupCards.getChildren().add(img);</b>
|
||||
}
|
||||
<b class="nc"> showPopup();</b>
|
||||
}
|
||||
|
||||
/** Populates the popup with clickable lower-building cards; clicking one draws it via the controller. */
|
||||
private void openPopupLowerBuilding(ArrayList<BuildingCard> cardList) {
|
||||
<b class="nc"> popupCards.getChildren().clear();</b>
|
||||
<b class="nc"> for (int i = 0; i < cardList.size(); i++) {</b>
|
||||
<b class="nc"> final int index = i;</b>
|
||||
<b class="nc"> StackPane img = createCardPopup(cardList.get(i), true, false);</b>
|
||||
<b class="nc"> img.setOnMouseClicked(e -> {</b>
|
||||
<b class="nc"> popup.hide();</b>
|
||||
<b class="nc"> controller.drawLowerBuildingCard(index);</b>
|
||||
});
|
||||
<b class="nc"> popupCards.getChildren().add(img);</b>
|
||||
}
|
||||
<b class="nc"> showPopup();</b>
|
||||
}
|
||||
|
||||
/** Shows the deck details/rules card in the popup. */
|
||||
private void openDetailsPopup() {
|
||||
<b class="nc"> popupCards.getChildren().clear();</b>
|
||||
<b class="nc"> ImageView img = new ImageView(loadImage("/GUIImages/Backs/back-118.png"));</b>
|
||||
<b class="nc"> img.setFitHeight(290);</b>
|
||||
<b class="nc"> img.setPreserveRatio(true);</b>
|
||||
<b class="nc"> addClip(img);</b>
|
||||
<b class="nc"> StackPane wrapper = new StackPane(img);</b>
|
||||
<b class="nc"> addShadow(wrapper);</b>
|
||||
<b class="nc"> popupCards.getChildren().add(wrapper);</b>
|
||||
<b class="nc"> showPopup();</b>
|
||||
}
|
||||
|
||||
/** Creates a fixed-height {@link StackPane} card widget suitable for use inside the popup. */
|
||||
private StackPane createCardPopup(PlayableCard card, boolean withZoom, boolean withShadow) {
|
||||
<b class="nc"> ImageView img = new ImageView(loadImage("/GUIImages/Fronts/card-" + card.getIdIMG() + ".png"));</b>
|
||||
<b class="nc"> img.setFitHeight(200);</b>
|
||||
<b class="nc"> img.setPreserveRatio(true);</b>
|
||||
<b class="nc"> addClip(img);</b>
|
||||
<b class="nc"> StackPane wrapper = new StackPane(img);</b>
|
||||
<b class="nc"> if (withShadow) addShadow(wrapper);</b>
|
||||
<b class="nc"> if (withZoom) addHoverZoom(wrapper);</b>
|
||||
<b class="nc"> return wrapper;</b>
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,345 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > TotemFXMLController</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14.View.GUI</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: TotemFXMLController (it.polimi.ingsw.gc14.View.GUI)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">TotemFXMLController</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/16)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/24)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/90)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14.View.GUI;
|
||||
|
||||
import it.polimi.ingsw.gc14.Controller.ClientController;
|
||||
import it.polimi.ingsw.gc14.Model.Totems;
|
||||
import javafx.animation.*;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.geometry.Rectangle2D;
|
||||
import javafx.scene.Cursor;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.image.ImageView;
|
||||
import javafx.scene.layout.*;
|
||||
import javafx.stage.Screen;
|
||||
import javafx.util.Duration;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* FXML controller for the totem selection scene.
|
||||
*
|
||||
* <p>Displays the available totems and lets the current player choose one;
|
||||
* other players see a waiting banner.
|
||||
*/
|
||||
<b class="nc"> public class TotemFXMLController {</b>
|
||||
//TODO
|
||||
@FXML private ImageView backgroundImage;
|
||||
//TODO
|
||||
@FXML private HBox mainHBox;
|
||||
//TODO
|
||||
@FXML private Label turnBanner;
|
||||
//TODO
|
||||
@FXML private Button confirmButton;
|
||||
|
||||
//TODO
|
||||
private ClientController controller;
|
||||
//TODO
|
||||
<b class="nc"> private int selectedIndex = -1;</b>
|
||||
//TODO
|
||||
<b class="nc"> private StackPane selectedFrame = null;</b>
|
||||
|
||||
/**
|
||||
* Injects the client controller into this FXML controller.
|
||||
*
|
||||
* @param controller the client controller to use.
|
||||
*/
|
||||
public void setController(ClientController controller) {
|
||||
<b class="nc"> this.controller = controller;</b>
|
||||
}
|
||||
|
||||
/** Initializes the scene: sets the background image to fill the screen. */
|
||||
@FXML
|
||||
public void initialize() {
|
||||
<b class="nc"> Image img = new Image(getClass().getResourceAsStream("/GUIImages/Background.png"));</b>
|
||||
<b class="nc"> backgroundImage.setImage(img);</b>
|
||||
<b class="nc"> Rectangle2D screenBounds = Screen.getPrimary().getBounds();</b>
|
||||
<b class="nc"> backgroundImage.setFitWidth(screenBounds.getWidth());</b>
|
||||
<b class="nc"> backgroundImage.setFitHeight(screenBounds.getHeight());</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders the totem selection cards with entry animations.
|
||||
* Disables interaction for players who are not the current chooser.
|
||||
*/
|
||||
public void render() {
|
||||
<b class="nc"> mainHBox.getChildren().clear();</b>
|
||||
<b class="nc"> selectedIndex = -1;</b>
|
||||
<b class="nc"> selectedFrame = null;</b>
|
||||
|
||||
<b class="nc"> if (controller.getMiniModel().currentState.getCurrentPlayer() == null) return;</b>
|
||||
<b class="nc"> String chooser = controller.getMiniModel().currentState.getCurrentPlayer().getUserName();</b>
|
||||
<b class="nc"> boolean myTurn = chooser.equals(controller.getMyUsername());</b>
|
||||
|
||||
<b class="nc"> updateBanner(chooser, myTurn);</b>
|
||||
<b class="nc"> updateConfirmButton(false);</b>
|
||||
|
||||
<b class="nc"> for (int i = 0; i < controller.getMiniModel().availableTotems.size(); i++) {</b>
|
||||
<b class="nc"> Totems totem = controller.getMiniModel().availableTotems.get(i);</b>
|
||||
<b class="nc"> VBox card = buildCard(totem, i, myTurn);</b>
|
||||
<b class="nc"> mainHBox.getChildren().add(card);</b>
|
||||
|
||||
<b class="nc"> card.setOpacity(0);</b>
|
||||
<b class="nc"> card.setTranslateY(14);</b>
|
||||
<b class="nc"> PauseTransition delay = new PauseTransition(Duration.millis(80 + i * 65));</b>
|
||||
<b class="nc"> delay.setOnFinished(e -> {</b>
|
||||
<b class="nc"> FadeTransition ft = new FadeTransition(Duration.millis(320), card);</b>
|
||||
<b class="nc"> ft.setToValue(1);</b>
|
||||
<b class="nc"> TranslateTransition tt = new TranslateTransition(Duration.millis(320), card);</b>
|
||||
<b class="nc"> tt.setToY(0);</b>
|
||||
<b class="nc"> new ParallelTransition(ft, tt).play();</b>
|
||||
});
|
||||
<b class="nc"> delay.play();</b>
|
||||
}
|
||||
}
|
||||
|
||||
/** Updates the turn banner text and style based on whether it is the local player's turn. */
|
||||
private void updateBanner(String chooser, boolean myTurn) {
|
||||
<b class="nc"> if (myTurn) {</b>
|
||||
<b class="nc"> turnBanner.setText("✦ It's your turn to choose ✦");</b>
|
||||
<b class="nc"> turnBanner.setStyle(</b>
|
||||
"-fx-font-family: 'Cinzel'; -fx-font-size: 13; -fx-font-weight: 'bold'; -fx-letter-spacing: 3;" +
|
||||
"-fx-text-fill: #000000;" +
|
||||
"-fx-background-color: linear-gradient(to right, #f4c05a, #c8791a, #f4c05a);" +
|
||||
"-fx-border-color: #000000; -fx-border-width: 1;" +
|
||||
"-fx-border-radius: 3; -fx-background-radius: 3;" +
|
||||
"-fx-padding: 10 28 10 28;" +
|
||||
"-fx-effect: dropshadow(gaussian, rgba(244,192,90,0.3), 18, 0, 0, 0);"
|
||||
);
|
||||
} else {
|
||||
<b class="nc"> turnBanner.setText("Waiting for " + chooser + " to choose his totem…");</b>
|
||||
<b class="nc"> turnBanner.setStyle(</b>
|
||||
"-fx-font-family: 'Cinzel'; -fx-font-size: 11; -fx-letter-spacing: 2;" +
|
||||
"-fx-text-fill: #000000;" +
|
||||
"-fx-background-color: linear-gradient(to right, #f4c05a, #c8791a, #f4c05a);" +
|
||||
"-fx-border-color: #000000; -fx-border-width: 1;" +
|
||||
"-fx-border-radius: 3; -fx-background-radius: 3;" +
|
||||
"-fx-padding: 10 28 10 28;"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/** Builds a totem card widget; if {@code interactive}, wires click/hover handlers and selection logic. */
|
||||
private VBox buildCard(Totems totem, int idx, boolean interactive) {
|
||||
<b class="nc"> ImageView img = new ImageView(new Image(getClass().getResourceAsStream("/GUIImages/Totems/totem_" + String.valueOf(totem).toLowerCase(Locale.ROOT) + ".png")));</b>
|
||||
<b class="nc"> img.setFitHeight(150);</b>
|
||||
<b class="nc"> img.setPreserveRatio(true);</b>
|
||||
|
||||
<b class="nc"> StackPane frame = new StackPane(img);</b>
|
||||
<b class="nc"> frame.setPrefSize(100, 145);</b>
|
||||
<b class="nc"> frame.setBackground(Background.EMPTY);</b>
|
||||
<b class="nc"> img.setStyle(frameStyle(false));</b>
|
||||
|
||||
<b class="nc"> Region base = new Region();</b>
|
||||
<b class="nc"> base.setPrefSize(100, 10);</b>
|
||||
|
||||
<b class="nc"> Label name = new Label(capitalize(totem));</b>
|
||||
<b class="nc"> name.setStyle(nameStyle(false));</b>
|
||||
|
||||
<b class="nc"> VBox card = new VBox(4, frame, base, name);</b>
|
||||
<b class="nc"> card.setAlignment(Pos.CENTER);</b>
|
||||
|
||||
<b class="nc"> if (!interactive) {</b>
|
||||
<b class="nc"> card.setOpacity(0.35);</b>
|
||||
<b class="nc"> card.setCursor(Cursor.DEFAULT);</b>
|
||||
<b class="nc"> return card;</b>
|
||||
}
|
||||
|
||||
<b class="nc"> card.setCursor(Cursor.HAND);</b>
|
||||
|
||||
<b class="nc"> card.setOnMouseEntered(e -> {</b>
|
||||
<b class="nc"> if (frame != selectedFrame) {</b>
|
||||
<b class="nc"> ScaleTransition st = new ScaleTransition(Duration.millis(140), card);</b>
|
||||
<b class="nc"> st.setToX(1.06); st.setToY(1.06); st.play();</b>
|
||||
}
|
||||
});
|
||||
<b class="nc"> card.setOnMouseExited(e -> {</b>
|
||||
<b class="nc"> if (frame != selectedFrame) {</b>
|
||||
<b class="nc"> ScaleTransition st = new ScaleTransition(Duration.millis(140), card);</b>
|
||||
<b class="nc"> st.setToX(1.0); st.setToY(1.0); st.play();</b>
|
||||
}
|
||||
});
|
||||
|
||||
<b class="nc"> card.setOnMouseClicked(e -> {</b>
|
||||
<b class="nc"> mainHBox.getChildren().forEach(n -> {</b>
|
||||
<b class="nc"> if (n instanceof VBox v) {</b>
|
||||
<b class="nc"> StackPane f = (StackPane) v.getChildren().get(0);</b>
|
||||
<b class="nc"> Label l = (Label) v.getChildren().get(2);</b>
|
||||
<b class="nc"> f.setStyle(frameStyle(false));</b>
|
||||
<b class="nc"> l.setStyle(nameStyle(false));</b>
|
||||
<b class="nc"> ScaleTransition st = new ScaleTransition(Duration.millis(130), v);</b>
|
||||
<b class="nc"> st.setToX(1.0); st.setToY(1.0); st.play();</b>
|
||||
}
|
||||
});
|
||||
|
||||
<b class="nc"> frame.setStyle(frameStyle(true));</b>
|
||||
<b class="nc"> name.setStyle(nameStyle(true));</b>
|
||||
<b class="nc"> selectedFrame = frame;</b>
|
||||
<b class="nc"> selectedIndex = idx;</b>
|
||||
|
||||
<b class="nc"> ScaleTransition pop = new ScaleTransition(Duration.millis(160), card);</b>
|
||||
<b class="nc"> pop.setToX(1.08); pop.setToY(1.08);</b>
|
||||
<b class="nc"> pop.setAutoReverse(true); pop.setCycleCount(2); pop.play();</b>
|
||||
|
||||
<b class="nc"> updateConfirmButton(true);</b>
|
||||
});
|
||||
|
||||
<b class="nc"> return card;</b>
|
||||
}
|
||||
|
||||
/** Enables or disables the confirm button and updates its visual opacity to reflect the state. */
|
||||
private void updateConfirmButton(boolean enabled) {
|
||||
<b class="nc"> confirmButton.setDisable(!enabled);</b>
|
||||
<b class="nc"> confirmButton.setStyle(</b>
|
||||
"-fx-font-family: 'Cinzel'; -fx-font-size: 12; -fx-font-weight: bold;" +
|
||||
"-fx-letter-spacing: 4; -fx-text-fill: #0c0601;" +
|
||||
"-fx-background-color: linear-gradient(to right, #f4c05a, #c8791a, #f4c05a);" +
|
||||
"-fx-padding: 12 48 12 48; -fx-background-radius: 2;" +
|
||||
<b class="nc"> "-fx-opacity: " + (enabled ? "1.0" : "0.3") + ";" +</b>
|
||||
<b class="nc"> "-fx-cursor: " + (enabled ? "hand" : "default") + ";"</b>
|
||||
);
|
||||
}
|
||||
|
||||
/** Returns the CSS style string for the totem card frame, highlighting it when {@code selected}. */
|
||||
private String frameStyle(boolean selected) {
|
||||
<b class="nc"> return selected ? "-fx-effect: dropshadow(gaussian, #ffffff, 20, 0.33, 0, 0);" : "";</b>
|
||||
}
|
||||
|
||||
/** Returns the CSS style string for the totem name label, brightening it when {@code selected}. */
|
||||
private String nameStyle(boolean selected) {
|
||||
return "-fx-font-family: 'Cinzel'; -fx-font-size: 10; -fx-letter-spacing: 2;" +
|
||||
<b class="nc"> "-fx-text-fill: " + (selected ? "#FFD700" : "#ffffff") + ";";</b>
|
||||
}
|
||||
|
||||
/** Returns the totem name with only the first letter capitalised. */
|
||||
private String capitalize(Totems t) {
|
||||
<b class="nc"> String s = t.name().toLowerCase(Locale.ROOT);</b>
|
||||
<b class="nc"> return Character.toUpperCase(s.charAt(0)) + s.substring(1);</b>
|
||||
}
|
||||
|
||||
|
||||
/** Submits the selected totem index to the controller when the confirm button is clicked. */
|
||||
@FXML
|
||||
private void onConfirm() {
|
||||
<b class="nc"> if (selectedIndex >= 0) {</b>
|
||||
<b class="nc"> controller.totemChoice(selectedIndex);</b>
|
||||
}
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,230 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.TUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.TUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.TUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.TUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_NAME_DESC.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">AsciiTable</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
52.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(60/73)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">BorderStyle</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/27)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/74)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/117)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,230 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.TUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_BLOCK.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.TUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.TUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.TUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">BorderStyle</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/27)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/74)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/117)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">AsciiTable</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
52.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(60/73)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,230 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.TUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.TUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.TUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.TUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">AsciiTable</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
52.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(60/73)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/74)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/117)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">BorderStyle</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/27)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,230 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.TUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_CLASS.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.TUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.TUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.TUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/74)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/117)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">AsciiTable</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
52.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(60/73)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">BorderStyle</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/27)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,230 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.TUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.TUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.TUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.TUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">BorderStyle</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/27)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">AsciiTable</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
52.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(60/73)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/74)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/117)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,230 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.TUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_LINE.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.TUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.TUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.TUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/74)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/117)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">AsciiTable</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
52.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(60/73)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">BorderStyle</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/27)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,230 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.TUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.TUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.TUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.TUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">BorderStyle</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/27)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">AsciiTable</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
52.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(60/73)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/74)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/117)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,230 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.TUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_METHOD.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.TUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.TUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.TUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/74)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/117)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">BorderStyle</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/27)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">AsciiTable</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
52.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(60/73)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,230 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.TUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.TUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.TUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.TUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat sortedDesc
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">AsciiTable</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
52.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(60/73)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">BorderStyle</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/27)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/74)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/117)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,230 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View.TUI</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View.TUI</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View.TUI</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View.TUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
66.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(2/3)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
53.3%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/45)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
26.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/150)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
38.7%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(84/217)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedDesc
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_CLASS.html">Class, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_METHOD.html">Method, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_BLOCK.html">Branch, %</a>
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
<a href="index_SORT_BY_LINE.html">Line, %</a>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-3.html">TUI</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/74)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/117)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-2.html">BorderStyle</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat"/>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/27)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name"><a href="sources/source-1.html">AsciiTable</a></td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
52.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(60/73)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,279 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > AsciiTable</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14.View.TUI</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: AsciiTable (it.polimi.ingsw.gc14.View.TUI)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">AsciiTable</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
90.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(10/11)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
52.6%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(40/76)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.2%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(60/73)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14.View.TUI;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* General-purpose helper for building fixed-width ASCII/Unicode tables in a TUI.
|
||||
*
|
||||
* <p>A table is built by adding rows one at a time, then calling {@link #build()}
|
||||
* to obtain the fully rendered string. Column width is computed automatically
|
||||
* from the widest cell across all rows.
|
||||
*
|
||||
* <p>Cell widths are measured in terminal columns, not Java {@code char} units:
|
||||
* wide characters (emoji, CJK) count as 2 columns each.
|
||||
*
|
||||
* <p>Example usage:
|
||||
* <pre>{@code
|
||||
* AsciiTable table = new AsciiTable(BorderStyle.UNICODE, 3);
|
||||
* table.addHeader("Name", "🍖", "⭐");
|
||||
* table.addRow("Alice", "4", "12");
|
||||
* table.addRow("Bob", "2", "8");
|
||||
* System.out.println(table.build());
|
||||
* }</pre>
|
||||
*/
|
||||
public class AsciiTable {
|
||||
//TODO
|
||||
private final BorderStyle s;
|
||||
//TODO
|
||||
private final int cols;
|
||||
//TODO
|
||||
<b class="fc"> private final List<List<String>> rows = new ArrayList<>();</b>
|
||||
//TODO
|
||||
<b class="fc"> private final List<Integer> separators = new ArrayList<>();</b>
|
||||
//TODO
|
||||
<b class="fc"> public AsciiTable(BorderStyle s, int cols) {</b>
|
||||
<b class="fc"> this.s = s; this.cols = cols;</b>
|
||||
}
|
||||
//TODO
|
||||
<b class="fc"> public void addRow(String... cells) { rows.add(Arrays.asList(cells)); }</b>
|
||||
//TODO
|
||||
<b class="fc"> public void addRow(List<String> cells) { rows.add(cells); }</b>
|
||||
//TODO
|
||||
public void addHeader(String... cells) {
|
||||
<b class="fc"> rows.add(0, Arrays.asList(cells));</b>
|
||||
<b class="fc"> separators.add(0);</b>
|
||||
}
|
||||
//TODO
|
||||
<b class="fc"> public void addSeparator() { separators.add(rows.size() - 1); }</b>
|
||||
|
||||
/**
|
||||
* Renders the table to a multi-line string.
|
||||
* Column width is the widest cell in display columns (wide chars = 2), plus 1.
|
||||
*/
|
||||
public String build() {
|
||||
<b class="fc"> var sb = new StringBuilder();</b>
|
||||
<b class="fc"> int maxWidth = rows.stream()</b>
|
||||
<b class="fc"> .mapToInt(x -> x.stream().mapToInt(AsciiTable::displayWidth).max().orElse(0))</b>
|
||||
<b class="fc"> .max().orElse(0) + 1;</b>
|
||||
<b class="fc"> sb.append(hline(s.tl(), s.mt(), s.tr(), maxWidth)).append('\n');</b>
|
||||
|
||||
<b class="fc"> for (int i = 0; i < rows.size(); i++) {</b>
|
||||
<b class="fc"> sb.append(s.v());</b>
|
||||
<b class="fc"> for (String cell : rows.get(i))</b>
|
||||
<b class="fc"> sb.append(rpad(" " + cell, maxWidth)).append(s.v());</b>
|
||||
<b class="fc"> sb.append('\n');</b>
|
||||
<b class="pc"> if (separators.contains(i) && i < rows.size() - 1)</b>
|
||||
<b class="fc"> sb.append(hline(s.sl(), s.sx(), s.sr(), maxWidth)).append('\n');</b>
|
||||
}
|
||||
<b class="fc"> sb.append(hline(s.bl(), s.mb(), s.br(), maxWidth));</b>
|
||||
<b class="fc"> return sb.toString();</b>
|
||||
}
|
||||
//TODO
|
||||
private String hline(String l, String m, String r, int maxWidth) {
|
||||
<b class="fc"> var sb = new StringBuilder(l);</b>
|
||||
<b class="fc"> for (int i = 0; i < cols; i++) {</b>
|
||||
<b class="fc"> sb.append(s.h().repeat(maxWidth));</b>
|
||||
<b class="fc"> if (i < cols - 1) sb.append(m);</b>
|
||||
}
|
||||
<b class="fc"> return sb.append(r).toString();</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Pads {@code s} with trailing spaces so its display width equals {@code w}.
|
||||
* If the string is already at or over {@code w} columns, it is returned as-is.
|
||||
*/
|
||||
private static String rpad(String s, int w) {
|
||||
<b class="fc"> int dw = displayWidth(s);</b>
|
||||
<b class="fc"> if (dw >= w) return s;</b>
|
||||
<b class="fc"> return s + " ".repeat(w - dw);</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Places two pre-rendered text blocks side by side, separated by a gap.
|
||||
* Left-block lines are padded to a uniform display width so the right block
|
||||
* always starts at the same column. Uses {@link #displayWidth} for measurement.
|
||||
*/
|
||||
public static String sideBySide(List<String> left, List<String> right, int gap) {
|
||||
<b class="nc"> int leftWidth = left.stream().mapToInt(AsciiTable::displayWidth).max().orElse(0);</b>
|
||||
<b class="nc"> int maxHeight = Math.max(left.size(), right.size());</b>
|
||||
<b class="nc"> String padding = " ".repeat(gap);</b>
|
||||
|
||||
<b class="nc"> var sb = new StringBuilder();</b>
|
||||
<b class="nc"> for (int i = 0; i < maxHeight; i++) {</b>
|
||||
<b class="nc"> String l = i < left.size() ? left.get(i) : " ".repeat(leftWidth);</b>
|
||||
<b class="nc"> l = rpad(l, leftWidth);</b>
|
||||
<b class="nc"> String r = i < right.size() ? right.get(i) : "";</b>
|
||||
<b class="nc"> sb.append(l).append(padding).append(r).append('\n');</b>
|
||||
}
|
||||
<b class="nc"> return sb.toString();</b>
|
||||
}
|
||||
|
||||
// ── Wide-character width ──────────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Returns the number of terminal columns required to display {@code s}.
|
||||
* Wide characters (emoji, CJK, full-width) count as 2; all others as 1.
|
||||
*/
|
||||
public static int displayWidth(String s) {
|
||||
<b class="fc"> s = s.replaceAll("\033\\[[^m]*m", "");</b>
|
||||
<b class="fc"> int w = 0;</b>
|
||||
<b class="fc"> for (int i = 0; i < s.length(); ) {</b>
|
||||
<b class="fc"> int cp = s.codePointAt(i);</b>
|
||||
<b class="fc"> w += isWide(cp) ? 2 : 1;</b>
|
||||
<b class="fc"> i += Character.charCount(cp);</b>
|
||||
}
|
||||
<b class="fc"> return w;</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns {@code true} when {@code cp} is a wide (2-column) character.
|
||||
* Covers CJK blocks, Hangul, full-width forms, and emoji (including
|
||||
* the specific emoji used in this project: 🍖 U+1F357, ⭐ U+2B50).
|
||||
*/
|
||||
private static boolean isWide(int cp) {
|
||||
<b class="fc"> if (cp < 0x1100) return false;</b>
|
||||
<b class="pc"> if (cp <= 0x115F) return true; // Hangul Jamo</b>
|
||||
<b class="pc"> if (cp < 0x2E80) {</b>
|
||||
// Specific wide symbols below 0x2E80
|
||||
<b class="nc"> return cp == 0x2B50 // ⭐ STAR</b>
|
||||
|| cp == 0x2B55; // ⭕ HEAVY LARGE CIRCLE
|
||||
}
|
||||
<b class="pc"> if (cp <= 0x303E) return true; // CJK Radicals, Kangxi, CJK Symbols</b>
|
||||
<b class="pc"> if (cp < 0x3041) return false;</b>
|
||||
<b class="pc"> if (cp <= 0xA4CF) return true; // Hiragana, Katakana, Bopomofo, CJK Unified</b>
|
||||
<b class="pc"> if (cp < 0xA960) return false;</b>
|
||||
<b class="pc"> if (cp <= 0xA97F) return true; // Hangul Jamo Extended-A</b>
|
||||
<b class="pc"> if (cp < 0xAC00) return false;</b>
|
||||
<b class="pc"> if (cp <= 0xD7AF) return true; // Hangul Syllables</b>
|
||||
<b class="pc"> if (cp < 0xF900) return false;</b>
|
||||
<b class="pc"> if (cp <= 0xFAFF) return true; // CJK Compatibility Ideographs</b>
|
||||
<b class="pc"> if (cp < 0xFE10) return false;</b>
|
||||
<b class="pc"> if (cp <= 0xFE1F) return true; // Vertical Forms</b>
|
||||
<b class="pc"> if (cp < 0xFE30) return false;</b>
|
||||
<b class="pc"> if (cp <= 0xFE6F) return true; // CJK Compatibility Forms</b>
|
||||
<b class="pc"> if (cp < 0xFF00) return false;</b>
|
||||
<b class="pc"> if (cp <= 0xFF60) return true; // Fullwidth Latin, punctuation</b>
|
||||
<b class="pc"> if (cp < 0xFFE0) return false;</b>
|
||||
<b class="pc"> if (cp <= 0xFFE6) return true; // Fullwidth Signs</b>
|
||||
<b class="pc"> if (cp < 0x1F004) return false;</b>
|
||||
<b class="pc"> if (cp <= 0x1FAFF) return true; // Emoji (mahjong, playing cards, flags,</b>
|
||||
// misc symbols, transport, 🍖 U+1F357, ...)
|
||||
<b class="nc"> if (cp < 0x20000) return false;</b>
|
||||
<b class="nc"> return cp <= 0x3FFFD; // CJK Extension B through G</b>
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,216 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > BorderStyle</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14.View.TUI</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: BorderStyle (it.polimi.ingsw.gc14.View.TUI)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">BorderStyle</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
100%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(1/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
82.4%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(14/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
88.9%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(24/27)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14.View.TUI;
|
||||
|
||||
/**
|
||||
* Defines the available border styles used to render {@link AsciiTable}
|
||||
* instances in the text-based user interface.
|
||||
*
|
||||
* <p>Each style stores the characters needed to draw table corners,
|
||||
* horizontal and vertical lines, and junctions.
|
||||
*/
|
||||
<b class="fc"> public enum BorderStyle {</b>
|
||||
|
||||
/**
|
||||
* Unicode box-drawing border style.
|
||||
*/
|
||||
<b class="fc"> UNICODE("╔","╗","╚","╝","═","║","╠","╣","╦","╩","╬","├","┤","┼"),</b>
|
||||
|
||||
/**
|
||||
* Plain ASCII border style.
|
||||
*/
|
||||
<b class="fc"> ASCII ("+","+","+","+","-","|","+","+","+","+","+","+","+","+"),</b>
|
||||
|
||||
/**
|
||||
* Rounded Unicode border style.
|
||||
*/
|
||||
<b class="fc"> ROUNDED("╭","╮","╰","╯","─","│","├","┤","┬","┴","┼","├","┤","┼");</b>
|
||||
|
||||
private final String tl,tr,bl,br,h,v,ml,mr,mt,mb,x,sl,sr,sx;
|
||||
|
||||
BorderStyle(String tl,String tr,String bl,String br,
|
||||
String h, String v, String ml,String mr,
|
||||
String mt,String mb,String x,
|
||||
<b class="fc"> String sl,String sr,String sx) {</b>
|
||||
<b class="fc"> this.tl = tl; this.tr = tr;</b>
|
||||
<b class="fc"> this.bl = bl; this.br = br;</b>
|
||||
<b class="fc"> this.h = h; this.v = v;</b>
|
||||
<b class="fc"> this.ml = ml; this.mr = mr;</b>
|
||||
<b class="fc"> this.mt = mt; this.mb = mb;</b>
|
||||
<b class="fc"> this.x = x;</b>
|
||||
<b class="fc"> this.sl = sl; this.sr = sr;</b>
|
||||
<b class="fc"> this.sx = sx;</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the top-left corner character.
|
||||
*/
|
||||
<b class="fc"> public String tl() { return tl; }</b>
|
||||
|
||||
/**
|
||||
* @return the top-right corner character.
|
||||
*/
|
||||
<b class="fc"> public String tr() { return tr; }</b>
|
||||
|
||||
/**
|
||||
* @return the bottom-left corner character.
|
||||
*/
|
||||
<b class="fc"> public String bl() { return bl; }</b>
|
||||
|
||||
/**
|
||||
* @return the bottom-right corner character.
|
||||
*/
|
||||
<b class="fc"> public String br() { return br; }</b>
|
||||
|
||||
/**
|
||||
* @return the horizontal line character.
|
||||
*/
|
||||
<b class="fc"> public String h() { return h; }</b>
|
||||
|
||||
/**
|
||||
* @return the vertical line character.
|
||||
*/
|
||||
<b class="fc"> public String v() { return v; }</b>
|
||||
|
||||
/**
|
||||
* @return the middle-left junction character.
|
||||
*/
|
||||
<b class="nc"> public String ml() { return ml; }</b>
|
||||
|
||||
/**
|
||||
* @return the middle-right junction character.
|
||||
*/
|
||||
<b class="nc"> public String mr() { return mr; }</b>
|
||||
|
||||
/**
|
||||
* @return the top-middle junction character.
|
||||
*/
|
||||
<b class="fc"> public String mt() { return mt; }</b>
|
||||
|
||||
/**
|
||||
* @return the bottom-middle junction character.
|
||||
*/
|
||||
<b class="fc"> public String mb() { return mb; }</b>
|
||||
|
||||
/**
|
||||
* @return the center junction character.
|
||||
*/
|
||||
<b class="nc"> public String x() { return x; }</b>
|
||||
|
||||
/**
|
||||
* @return the separator-left junction character.
|
||||
*/
|
||||
<b class="fc"> public String sl() { return sl; }</b>
|
||||
|
||||
/**
|
||||
* @return the separator-right junction character.
|
||||
*/
|
||||
<b class="fc"> public String sr() { return sr; }</b>
|
||||
|
||||
/**
|
||||
* @return the separator center junction character.
|
||||
*/
|
||||
<b class="fc"> public String sx() { return sx; }</b>
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,428 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > TUI</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14.View.TUI</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: TUI (it.polimi.ingsw.gc14.View.TUI)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Class, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Method, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Branch, %
|
||||
</th>
|
||||
<th class="coverageStat
|
||||
">
|
||||
Line, %
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">TUI</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/1)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/17)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/74)
|
||||
</span>
|
||||
</td>
|
||||
<td class="coverageStat">
|
||||
<span class="percent">
|
||||
0%
|
||||
</span>
|
||||
<span class="absValue">
|
||||
(0/117)
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14.View.TUI;
|
||||
import it.polimi.ingsw.gc14.ErrorType;
|
||||
import it.polimi.ingsw.gc14.Model.*;
|
||||
import it.polimi.ingsw.gc14.Model.GamePackage.GameStages;
|
||||
import it.polimi.ingsw.gc14.View.IView;
|
||||
|
||||
import org.jline.reader.LineReader;
|
||||
import org.jline.terminal.Terminal;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Text-based User Interface (TUI) implementation of {@link IView}.
|
||||
*
|
||||
* <p>Single render view: board + menu on top, all players' hands in a
|
||||
* responsive grid below. Hands wrap to a new row when their combined width
|
||||
* would exceed the terminal width.
|
||||
*
|
||||
* <p>All output goes through {@link #display(String)}, which uses
|
||||
* {@link LineReader#printAbove} when a JLine reader is set so that the
|
||||
* readline prompt is correctly redrawn after background-thread renders.
|
||||
*/
|
||||
public class TUI implements IView {
|
||||
|
||||
private MiniModel model;
|
||||
private String username;
|
||||
|
||||
/**
|
||||
* JLine reader — when non-null, all output uses {@code printAbove} so the
|
||||
* readline prompt is preserved after background-thread renders.
|
||||
*/
|
||||
private LineReader lineReader;
|
||||
|
||||
/** JLine terminal — used to query terminal width for centering and grid layout. */
|
||||
private Terminal terminal;
|
||||
|
||||
/**
|
||||
* Constructs a {@code TUI} bound to the given model.
|
||||
*
|
||||
* @param model the model to display; may be {@code null} initially.
|
||||
*/
|
||||
<b class="nc"> public TUI(MiniModel model) {</b>
|
||||
<b class="nc"> this.model = model;</b>
|
||||
<b class="nc"> this.username = "";</b>
|
||||
}
|
||||
|
||||
// ── Setters ───────────────────────────────────────────────────────────────
|
||||
|
||||
/** Sets the username of the local player. */
|
||||
public void setUsername(String username) {
|
||||
<b class="nc"> this.username = username;</b>
|
||||
}
|
||||
|
||||
/** Updates the model stored in this view. */
|
||||
@Override
|
||||
public void setModel(MiniModel model) {
|
||||
<b class="nc"> this.model = model;</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers the active JLine {@link LineReader}.
|
||||
* Once set, all output routes through {@link LineReader#printAbove} so the
|
||||
* prompt survives background-thread renders.
|
||||
*/
|
||||
public void setLineReader(LineReader lineReader) {
|
||||
<b class="nc"> this.lineReader = lineReader;</b>
|
||||
<b class="nc"> this.terminal = lineReader.getTerminal();</b>
|
||||
}
|
||||
|
||||
// ── Public render entry points ────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Default render: dispatches to the right view based on game stage.
|
||||
*/
|
||||
@Override
|
||||
public synchronized void render() {
|
||||
<b class="nc"> if (model == null) return;</b>
|
||||
<b class="nc"> GameStages stage = model.currentState.getGameStage();</b>
|
||||
<b class="nc"> if (stage == GameStages.TOTEM_CHOICE) {</b>
|
||||
<b class="nc"> display(buildTotemsContent());</b>
|
||||
<b class="nc"> } else if (stage == GameStages.ENDED) {</b>
|
||||
<b class="nc"> display(buildStandingContent() + "\nType 'rematch' to play again or 'quit' to exit");</b>
|
||||
} else {
|
||||
<b class="nc"> display(buildBoardContent());</b>
|
||||
}
|
||||
}
|
||||
|
||||
/** Renders the board + menu (top) and all players' hands in a grid (bottom). */
|
||||
public void renderBoard() {
|
||||
<b class="nc"> display(buildBoardContent());</b>
|
||||
}
|
||||
|
||||
/** Renders the totem-choice panel. */
|
||||
public void renderTotems() {
|
||||
<b class="nc"> display(buildTotemsContent());</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows an error message combined with the current board in one display call,
|
||||
* so only one {@code printAbove} is issued and the prompt is redrawn correctly.
|
||||
*
|
||||
* @param error the error type.
|
||||
* @param message the human-readable message to append.
|
||||
*/
|
||||
public void showError(ErrorType error, String message) {
|
||||
String text;
|
||||
<b class="nc"> if (error == ErrorType.WRONG_ACTION</b>
|
||||
&& model != null
|
||||
<b class="nc"> && model.currentState.getCurrentPlayer() != null</b>
|
||||
<b class="nc"> && !model.currentState.getCurrentPlayer().getUserName().equals(username)) {</b>
|
||||
<b class="nc"> text = "It's not your turn";</b>
|
||||
} else {
|
||||
<b class="nc"> text = message;</b>
|
||||
<b class="nc"> if (error == ErrorType.SERVER_CRASHED) {</b>
|
||||
<b class="nc"> text += "\nPress any key to continue";</b>
|
||||
}
|
||||
}
|
||||
<b class="nc"> printLine(text);</b>
|
||||
}
|
||||
|
||||
// ── Content builders (return strings, do not print) ───────────────────────
|
||||
|
||||
/**
|
||||
* Builds the main view: board + menu side by side, followed by all players'
|
||||
* hands arranged in a responsive grid.
|
||||
*/
|
||||
private String buildBoardContent() {
|
||||
<b class="nc"> List<String> left = List.of(boardStamp().split("\n"));</b>
|
||||
<b class="nc"> List<String> right = List.of(buildAllHandsContent().split("\n"));</b>
|
||||
<b class="nc"> return AsciiTable.sideBySide(left, right, 3);</b>
|
||||
}
|
||||
|
||||
/**
|
||||
* Arranges every player's hand side-by-side, wrapping to a new grid row
|
||||
* whenever the next panel would exceed the terminal width.
|
||||
*/
|
||||
private String buildAllHandsContent() {
|
||||
<b class="nc"> List<Player> players = new ArrayList<>(model.players.values());</b>
|
||||
<b class="nc"> if (players.isEmpty()) return "";</b>
|
||||
|
||||
<b class="nc"> int n = players.size();</b>
|
||||
<b class="nc"> int leftCount = Math.min(3, n);</b>
|
||||
|
||||
<b class="nc"> StringBuilder leftSb = new StringBuilder();</b>
|
||||
<b class="nc"> StringBuilder rightSb = new StringBuilder();</b>
|
||||
<b class="nc"> for (int i = 0; i < leftCount; i++) leftSb.append(players.get(i).toString()).append("\n");</b>
|
||||
<b class="nc"> for (int i = leftCount; i < n; i++) rightSb.append(players.get(i).toString()).append("\n");</b>
|
||||
|
||||
<b class="nc"> if (rightSb.isEmpty()) return leftSb.toString();</b>
|
||||
|
||||
<b class="nc"> return AsciiTable.sideBySide(</b>
|
||||
<b class="nc"> List.of(leftSb.toString().split("\n", -1)),</b>
|
||||
<b class="nc"> List.of(rightSb.toString().split("\n", -1)), 3);</b>
|
||||
}
|
||||
|
||||
private String buildTotemsContent() {
|
||||
<b class="nc"> var table = new AsciiTable(BorderStyle.ROUNDED, model.availableTotems.size());</b>
|
||||
<b class="nc"> List<String> lines = new ArrayList<>();</b>
|
||||
<b class="nc"> for (int i = 0; i < model.availableTotems.size(); i++) {</b>
|
||||
<b class="nc"> lines.add(i + "." + model.availableTotems.get(i));</b>
|
||||
}
|
||||
<b class="nc"> table.addRow(lines);</b>
|
||||
<b class="nc"> String current = model.currentState.getCurrentPlayer() != null</b>
|
||||
<b class="nc"> ? model.currentState.getCurrentPlayer().getUserName() + " — "</b>
|
||||
<b class="nc"> : "";</b>
|
||||
<b class="nc"> return current + "TOTEMS AVAILABLE:\n" + table.build() + "\nType: totem <pos>";</b>
|
||||
}
|
||||
|
||||
private String buildStandingContent() {
|
||||
<b class="nc"> if (model.standingPlayers == null || model.standingPlayers.isEmpty()) return "";</b>
|
||||
<b class="nc"> StringBuilder sb = new StringBuilder();</b>
|
||||
<b class="nc"> int size = model.standingPlayers.size();</b>
|
||||
<b class="nc"> for (int i = 0; i < size / 2; i++) {</b>
|
||||
<b class="nc"> sb.append(AsciiTable.sideBySide(</b>
|
||||
<b class="nc"> List.of(model.standingPlayers.get(i * 2).toString().split("\n")),</b>
|
||||
<b class="nc"> List.of(model.standingPlayers.get(i * 2 + 1).toString().split("\n")), 2));</b>
|
||||
}
|
||||
<b class="nc"> sb.append("\n");</b>
|
||||
<b class="nc"> if (size % 2 != 0) {</b>
|
||||
<b class="nc"> sb.append(model.standingPlayers.get(size - 1)).append("\n");</b>
|
||||
}
|
||||
<b class="nc"> if (model.standingPlayers.get(0).getUserName().equals(username)) {</b>
|
||||
<b class="nc"> sb.append("GAME ENDED: !!!YOU WON!!!");</b>
|
||||
} else {
|
||||
<b class="nc"> sb.append("GAME ENDED: !!!YOU LOST!!!");</b>
|
||||
}
|
||||
<b class="nc"> return sb.toString();</b>
|
||||
}
|
||||
|
||||
// ── Core display primitive ────────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Clears the terminal and displays {@code content}, horizontally centered.
|
||||
*
|
||||
* <p>When a JLine {@link LineReader} is registered, output is routed through
|
||||
* {@link LineReader#printAbove} which pauses readline, prints the content,
|
||||
* and redraws the prompt — safe to call from any thread.
|
||||
* Otherwise, ANSI codes are written directly to stdout.
|
||||
*/
|
||||
private void display(String content) {
|
||||
<b class="nc"> String cleared = "\033[H\033[2J" + center(content);</b>
|
||||
<b class="nc"> if (lineReader != null) {</b>
|
||||
<b class="nc"> lineReader.printAbove(cleared);</b>
|
||||
} else {
|
||||
<b class="nc"> System.out.print(cleared);</b>
|
||||
<b class="nc"> System.out.println();</b>
|
||||
<b class="nc"> System.out.flush();</b>
|
||||
}
|
||||
}
|
||||
|
||||
/** Prints {@code text} above the prompt without clearing the screen. */
|
||||
private void printLine(String text) {
|
||||
<b class="nc"> if (lineReader != null) {</b>
|
||||
<b class="nc"> lineReader.printAbove(text);</b>
|
||||
} else {
|
||||
<b class="nc"> System.out.println(text);</b>
|
||||
<b class="nc"> System.out.flush();</b>
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Horizontally centers each line of {@code content} within the terminal width.
|
||||
* Empty lines are left unpadded. Falls back to the original string when the
|
||||
* terminal width is unknown.
|
||||
*/
|
||||
private String center(String content) {
|
||||
<b class="nc"> if (terminal == null) return content;</b>
|
||||
<b class="nc"> int termWidth = terminal.getWidth();</b>
|
||||
<b class="nc"> if (termWidth <= 0) return content;</b>
|
||||
|
||||
<b class="nc"> String[] lines = content.split("\n", -1);</b>
|
||||
|
||||
<b class="nc"> int maxWidth = 0;</b>
|
||||
<b class="nc"> for (String line : lines) {</b>
|
||||
<b class="nc"> int w = visibleLength(line);</b>
|
||||
<b class="nc"> if (w > maxWidth) maxWidth = w;</b>
|
||||
}
|
||||
|
||||
<b class="nc"> int pad = Math.max(0, (termWidth - maxWidth) / 2);</b>
|
||||
<b class="nc"> if (pad == 0) return content;</b>
|
||||
|
||||
<b class="nc"> String prefix = " ".repeat(pad);</b>
|
||||
<b class="nc"> StringBuilder sb = new StringBuilder();</b>
|
||||
<b class="nc"> for (int i = 0; i < lines.length; i++) {</b>
|
||||
<b class="nc"> if (!lines[i].isEmpty()) sb.append(prefix);</b>
|
||||
<b class="nc"> sb.append(lines[i]);</b>
|
||||
<b class="nc"> if (i < lines.length - 1) sb.append("\n");</b>
|
||||
}
|
||||
<b class="nc"> return sb.toString();</b>
|
||||
}
|
||||
|
||||
/** Returns the display width of a string in terminal columns, stripping ANSI escape codes. */
|
||||
private int visibleLength(String line) {
|
||||
<b class="nc"> return AsciiTable.displayWidth(line);</b>
|
||||
}
|
||||
|
||||
// ── Board / players stamp helpers ─────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Returns the board state as a multi-line string: turn order, upper cards,
|
||||
* offer track, lower cards.
|
||||
*
|
||||
* @return multi-line board string.
|
||||
*/
|
||||
public String boardStamp() {
|
||||
<b class="nc"> var offerTrack = new AsciiTable(BorderStyle.ROUNDED, model.slotPlayerMap.size());</b>
|
||||
<b class="nc"> List<String> slotNames = new ArrayList<>();</b>
|
||||
<b class="nc"> List<String> slotPlayers = new ArrayList<>();</b>
|
||||
|
||||
<b class="nc"> int index = 0;</b>
|
||||
<b class="nc"> for (Map.Entry<Slot, Player> entry : model.slotPlayerMap.entrySet()) {</b>
|
||||
<b class="nc"> slotNames.add((index++) + "." + entry.getKey().toStringTUI());</b>
|
||||
<b class="nc"> slotPlayers.add(entry.getValue() != null ? entry.getValue().getUserName() : " ");</b>
|
||||
}
|
||||
|
||||
<b class="nc"> var upperCards = new AsciiTable(BorderStyle.ROUNDED, 2);</b>
|
||||
<b class="nc"> var lowerCards = new AsciiTable(BorderStyle.ROUNDED, 2);</b>
|
||||
<b class="nc"> upperCards.addHeader("Char/Events", "Building");</b>
|
||||
<b class="nc"> lowerCards.addHeader("Char/Events", "Building");</b>
|
||||
|
||||
<b class="nc"> int maxU = Math.max(model.upperListTribeCards.size(), model.upperListBuildingCards.size());</b>
|
||||
<b class="nc"> for (int i = 0; i < maxU; i++) {</b>
|
||||
<b class="nc"> String t = i < model.upperListTribeCards.size() ? i + model.upperListTribeCards.get(i).toStringBoard() : "";</b>
|
||||
<b class="nc"> String b = i < model.upperListBuildingCards.size() ? i + model.upperListBuildingCards.get(i).toString() : "";</b>
|
||||
<b class="nc"> upperCards.addRow(t, b);</b>
|
||||
}
|
||||
|
||||
<b class="nc"> int maxL = Math.max(model.lowerListTribeCards.size(), model.lowerListBuildingCards.size());</b>
|
||||
<b class="nc"> for (int i = 0; i < maxL; i++) {</b>
|
||||
<b class="nc"> String t = i < model.lowerListTribeCards.size() ? i + model.lowerListTribeCards.get(i).toStringBoard() : "";</b>
|
||||
<b class="nc"> String b = i < model.lowerListBuildingCards.size() ? i + model.lowerListBuildingCards.get(i).toString() : "";</b>
|
||||
<b class="nc"> lowerCards.addRow(t, b);</b>
|
||||
}
|
||||
|
||||
<b class="nc"> offerTrack.addRow(slotPlayers);</b>
|
||||
<b class="nc"> offerTrack.addRow(slotNames);</b>
|
||||
|
||||
<b class="nc"> String upperSection = upperCards.build();</b>
|
||||
|
||||
<b class="nc"> String middleSection = model.orderLogicCard.toString() + offerTrack.build();</b>
|
||||
|
||||
<b class="nc"> String lowerSection = lowerCards.build();</b>
|
||||
|
||||
<b class="nc"> return model.currentState + "\n"</b>
|
||||
+ upperSection + "\n"
|
||||
+ middleSection + "\n"
|
||||
+ lowerSection;
|
||||
}
|
||||
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_NAME_DESC.html">Class</a> </th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_BLOCK.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_CLASS.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_LINE.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_METHOD.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.View</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.View</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.View</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.View</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedDesc
|
||||
">
|
||||
<a href="index.html">Class</a> </th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,94 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > IView</title>
|
||||
<style type="text/css">
|
||||
@import "../../css/coverage.css";
|
||||
@import "../../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
<a href="../index.html">it.polimi.ingsw.gc14.View</a>
|
||||
</div>
|
||||
|
||||
<h1>Coverage Summary for Class: IView (it.polimi.ingsw.gc14.View)</h1>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Class</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">IView</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<pre>
|
||||
<code class="sourceCode" id="sourceCode"> package it.polimi.ingsw.gc14.View;
|
||||
|
||||
import it.polimi.ingsw.gc14.ErrorType;
|
||||
import it.polimi.ingsw.gc14.Model.MiniModel;
|
||||
|
||||
/** View interface implemented by both the TUI and GUI. */
|
||||
public interface IView {
|
||||
/**
|
||||
* Updates the view's local copy of the game model.
|
||||
*
|
||||
* @param miniModel the latest mini model received from the server.
|
||||
*/
|
||||
void setModel(MiniModel miniModel);
|
||||
|
||||
/** Re-renders the view based on the current mini model state. */
|
||||
void render();
|
||||
|
||||
/**
|
||||
* Displays an error message to the user.
|
||||
*
|
||||
* @param error the error type.
|
||||
* @param message a human-readable description of the error.
|
||||
*/
|
||||
void showError(ErrorType error, String message);
|
||||
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html id="htmlId">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||||
<title>Coverage Report > it.polimi.ingsw.gc14.Network.RMI.Common</title>
|
||||
<style type="text/css">
|
||||
@import "../css/coverage.css";
|
||||
@import "../css/idea.min.css";
|
||||
</style>
|
||||
<script type="text/javascript" src="../js/highlight.min.js"></script>
|
||||
<script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="content">
|
||||
|
||||
<div class="breadCrumbs">
|
||||
Current scope: <a href="../index.html">all classes</a>
|
||||
<span class="separator">|</span>
|
||||
it.polimi.ingsw.gc14.Network.RMI.Common</div>
|
||||
|
||||
<h1>Coverage Summary for Package: it.polimi.ingsw.gc14.Network.RMI.Common</h1>
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name">Package</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name">it.polimi.ingsw.gc14.Network.RMI.Common</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<table class="coverageStats">
|
||||
<tr>
|
||||
<th class="name sortedAsc
|
||||
">
|
||||
<a href="index_SORT_BY_NAME_DESC.html">Class</a> </th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var msie = false, msie9 = false;
|
||||
/*@cc_on
|
||||
msie = true;
|
||||
@if (@_jscript_version >= 9)
|
||||
msie9 = true;
|
||||
@end
|
||||
@*/
|
||||
|
||||
if (!msie || msie && msie9) {
|
||||
hljs.highlightAll()
|
||||
hljs.initLineNumbersOnLoad();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<div class="footer">
|
||||
|
||||
<div style="float:right;">generated on 2026-06-14 21:53</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user