Passed
Push — main ( a92fbe...d29be2 )
by N.
05:41 queued 01:24
created

Fordelning   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
eloc 27
dl 0
loc 57
ccs 0
cts 24
cp 0
rs 10
c 0
b 0
f 0
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A beräkna_fannfördelning() 0 53 3
1
<?php
2
3
/**
4
 * Klass Fordelning.
5
 * @author Niklas Dougherty
6
 */
7
8
declare(strict_types=1);
9
10
namespace Tips\Moduler\FANNGenerera;
11
12
/**
13
 * Klass Fordelning.
14
 * Ger antal, andel och ackumulerad andel rätt över alla omgångar.
15
 * 11 r motsvarar ungefär 31 % av alla rader, 10 r 62 %.
16
 */
17
class Fordelning extends Ratt {
18
	/**
19
	 * Beräkna fördelning för FANN.
20
	 */
21
	protected function beräkna_fannfördelning(): void {
22
		/**
23
		 * Kräv anslutning till FANN.
24
		 */
25
		if (!$this->exists_fann) {
26
			return;
27
		}
28
29
		/**
30
		 * Tabellhuvud
31
		 */
32
		$antal_rader = count($this->oddssannolikheter);
33
		$ackumulerat = 0;
34
		$fördelningstabell = <<< EOT
35
						<table id="FANN-fördelning">
36
							<tr>
37
								<th>Rätt</th>
38
								<th>Antal</th>
39
								<th>% / $antal_rader</th>
40
								<th>Ack. %</th>
41
							</tr>
42
43
EOT;
44
45
		/**
46
		 * Iterera över statistik för FANN.
47
		 */
48
		foreach ($this->beräkna_fannrätt() as $rätt => $antal) {
49
			$ackumulerat += $procent = $antal / $antal_rader;
50
			$ackstil = stil(1 - $ackumulerat / 100);
51
			$procentandel = number_format(100 * $procent, 2);
52
			$ackumulerad_andel = number_format(100 * $ackumulerat, 2);
53
54
			/**
55
			 * Bygg tabell
56
			 */
57
			$fördelningstabell .= <<< EOT
58
							<tr class="höger">
59
								<td>$rätt</td>
60
								<td>$antal</td>
61
								<td>$procentandel</td>
62
								<td$ackstil>$ackumulerad_andel</td>
63
							</tr>
64
65
EOT;
66
		}
67
68
		/**
69
		 * Spara och logga.
70
		 */
71
		$fördelningstabell .= t(6, "</table>");
72
		$this->fann->db_preferenser->spara_preferens('fann.fördelning', $fördelningstabell);
73
		$this->fann->odds->spel->db->logg->logga(self::class . ' ✅ Sparade fördelningstabell.');
74
	}
75
}
76