Completed
Push — develop ( 95bfc8...365a9b )
by Arkadiusz
02:42
created

Predictable   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 3
lcom 0
cbo 0
dl 0
loc 28
rs 10
c 1
b 0
f 1

2 Methods

Rating   Name   Duplication   Size   Complexity  
A predict() 0 13 3
predictSample() 0 1 ?
1
<?php
2
3
declare (strict_types = 1);
4
5
namespace Phpml\Helper;
6
7
trait Predictable
8
{
9
    /**
10
     * @param array $samples
11
     *
12
     * @return mixed
13
     */
14
    public function predict(array $samples)
15
    {
16
        if (!is_array($samples[0])) {
17
            $predicted = $this->predictSample($samples);
18
        } else {
19
            $predicted = [];
20
            foreach ($samples as $index => $sample) {
21
                $predicted[$index] = $this->predictSample($sample);
22
            }
23
        }
24
25
        return $predicted;
26
    }
27
28
    /**
29
     * @param array $sample
30
     *
31
     * @return mixed
32
     */
33
    abstract protected function predictSample(array $sample);
34
}
35