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

Predictable::predict()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 13
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
dl 0
loc 13
rs 9.4285
c 1
b 0
f 1
cc 3
eloc 8
nc 2
nop 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