Passed
Push — main ( 9152fd...203f91 )
by N.
03:37
created

Garderingstabellrad::garderingstabellrad()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 20
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 11
nc 1
nop 5
dl 0
loc 20
ccs 11
cts 11
cp 1
crap 1
rs 9.9
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Klass Garderingstabellrad.
5
 * @author Niklas Dougherty
6
 */
7
8
declare(strict_types=1);
9
10
namespace Tips\Moduler\TT;
11
12
use Tips\Moduler\TT;
13
14
/**
15
 * Klass Garderingstabellrad.
16
 */
17
class Garderingstabellrad {
18
	/**
19
	 * Initiera.
20
	 */
21 1
	public function __construct(protected TT $tt) {
22 1
	}
23
24
	/**
25
	 * Tabellrad för garderingar.
26
	 * @param string[] $k
27
	 */
28 1
	public function garderingstabellrad(
29
		int $i,
30
		int $sortering,
31
		string $sorteringsstil,
32
		array $k,
33
		string $td_rad
34
	): string {
35 1
		$matchindex = $i + 1;
36
37 1
		return <<< EOT
38 1
								<tr class="tt-match">
39 1
									<td class="match höger" id="tt_sortering$sortering">$matchindex</td>
40 1
									<td$sorteringsstil class="vänster">{$this->tt->hemmalag[$i]} – {$this->tt->bortalag[$i]}</td>
41 1
									<td$sorteringsstil class="center" id="tt_enkelrad$sortering">{$this->tt->enkelrad_1X2[$i]}</td>
42 1
$td_rad									<td><input tabindex="-1" data-sortering="$sortering" data-ruta="1" class="tipsruta tt_r grå									{$k[0]}" type="text" size="1" name="tt_reduktion[$i][0]" value="{$this->tt->reduktion[$i][0]}" maxlength="1"></td>
43 1
									<td><input tabindex="-1" data-sortering="$sortering" data-ruta="X" class="tipsruta tt_r grå{$k[1]}" type="text" size="1" name="tt_reduktion[$i][1]" value="{$this->tt->reduktion[$i][1]}" maxlength="1"></td>
44 1
									<td><input tabindex="-1" data-sortering="$sortering" data-ruta="2" class="tipsruta tt_r grå{$k[2]}" type="text" size="1" name="tt_reduktion[$i][2]" value="{$this->tt->reduktion[$i][2]}" maxlength="1"></td>
45
									<td class="tt-helgardering">🡄</td>
46
									<th class="tt-rensa-gardering">🞭</th>
47 1
									<td$sorteringsstil>$sortering</td>
48
								</tr>
49
50 1
EOT;
51
	}
52
53
	/**
54
	 * Beräkna fördelning av tecken i matchmatris.
55
	 * @return array<int, float[]>
56
	 */
57 1
	protected function generera_fördelning(): array {
58 1
		$tipsvektor = is_file($this->tt::TT_TEXTFIL) ? (array) file($this->tt::TT_TEXTFIL) : [];
0 ignored issues
show
Bug introduced by
The constant Tips\Moduler\TT::TT_TEXTFIL was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
59 1
		array_shift($tipsvektor); // ta bort huvud med information
60 1
		$antal_spelade_rader = max(count($tipsvektor), 1); // undvik nolldivision
61
62
		/**
63
		 * Uppdatera fördelning vid enskild punkt.
64
		 */
65 1
		$fördelning = $this->tt->tt_tom_oddsmatris;
66 1
		foreach ($tipsvektor as $rad) {
67 1
			$rad = symboler_till_siffror(str_replace([',', 'E', "\r\n",], TOM_STRÄNGVEKTOR, (string) $rad));
68 1
			foreach (str_split($rad) as $i => $tecken) {
69 1
				$fördelning[$i][$tecken]++;
70
			}
71
		}
72
73
		/**
74
		 * Omvandla till fraktioner.
75
		 */
76 1
		$fördelning = array_map(fn (array $odds): array =>
77 1
			array_map(fn (float $värde): float => fdiv($värde, $antal_spelade_rader), $odds), $fördelning);
78
79 1
		return $fördelning;
80
	}
81
}
82