GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

Element   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 78
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 7
c 0
b 0
f 0
lcom 1
cbo 0
dl 0
loc 78
ccs 31
cts 31
cp 1
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 10 1
A moveToNextQuadrant() 0 21 4
A updateMidCoordinates() 0 5 1
A getLevel() 0 4 1
1
<?php
2
3
namespace GeoTimeZone\Quadrant;
4
5
class Element
6
{
7
    const MAX_ABS_LATITUDE = 90.0;
8
    const MAX_ABS_LONGITUDE = 180.0;
9
    const ABS_LATITUDE_LIMIT = 89.9999;
10
    const ABS_LONGITUDE_LIMIT = 179.9999;
11
    const LEVEL_A = 'a';
12
    const LEVEL_B = 'b';
13
    const LEVEL_C = 'c';
14
    const LEVEL_D = 'd';
15
    
16
    protected $top;
17
    protected $bottom;
18
    protected $left;
19
    protected $right;
20
    protected $midLat;
21
    protected $midLon;
22
    protected $level;
23
    
24
    /**
25
     * Element constructor.
26
     */
27 25
    public function __construct()
28
    {
29 25
        $this->top = self::MAX_ABS_LATITUDE;
30 25
        $this->bottom = (-1) * self::MAX_ABS_LATITUDE;
31 25
        $this->left = (-1) * self::MAX_ABS_LONGITUDE;
32 25
        $this->right = self::MAX_ABS_LONGITUDE;
33 25
        $this->midLat = 0.0;
34 25
        $this->midLon = 0.0;
35 25
        $this->level = self::LEVEL_A;
36 25
    }
37
    
38
    /**
39
     * Move the current quadrant to a particular location (latitude, longitude)
40
     * @param $latitude
41
     * @param $longitude
42
     */
43 17
    public function moveToNextQuadrant($latitude, $longitude)
44
    {
45 17
        if ($latitude >= $this->midLat) {
46 16
            $this->bottom = $this->midLat;
47 16
            if ($longitude >= $this->midLon) {
48 15
                $this->level = self::LEVEL_A;
49 15
                $this->left = $this->midLon;
50
            } else {
51 12
                $this->level = self::LEVEL_B;
52 16
                $this->right = $this->midLon;
53
            }
54 16
        } elseif ($longitude < $this->midLon) {
55 12
            $this->level = self::LEVEL_C;
56 12
            $this->top = $this->midLat;
57 12
            $this->right = $this->midLon;
58
        } else {
59 12
            $this->level = self::LEVEL_D;
60 12
            $this->top = $this->midLat;
61 12
            $this->left = $this->midLon;
62
        }
63 17
    }
64
    
65
    /**
66
     * Update the mid coordinates attributes of the quadrant
67
     */
68 17
    public function updateMidCoordinates()
69
    {
70 17
        $this->midLat = ($this->top + $this->bottom) / 2.0;
71 17
        $this->midLon = ($this->left + $this->right) / 2.0;
72 17
    }
73
    
74
    /**
75
     * Get the quadrant level (a, b, c or d)
76
     * @return string
77
     */
78 17
    public function getLevel()
79
    {
80 17
        return $this->level;
81
    }
82
}
83