Code Coverage
 
Lines
Branches
Paths
Functions and Methods
Classes and Traits
Total
91.30% covered (success)
91.30%
21 / 23
92.00% covered (success)
92.00%
23 / 25
35.29% covered (danger)
35.29%
6 / 17
83.33% covered (warning)
83.33%
5 / 6
CRAP
0.00% covered (danger)
0.00%
0 / 1
Location
91.30% covered (success)
91.30%
21 / 23
92.00% covered (success)
92.00%
23 / 25
35.29% covered (danger)
35.29%
6 / 17
83.33% covered (warning)
83.33%
5 / 6
75.96
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
2
 __destruct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 __toString
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 name
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 asHashtag
87.50% covered (warning)
87.50%
14 / 16
88.89% covered (warning)
88.89%
16 / 18
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
9.16
 equals
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2namespace Fdsn\Webservices\Event\Structs;
3
4/**
5 * Data structure to handle Location
6 *
7 * @param string $name        Name of location
8 */
9class Location {
10    private string $name;
11
12    function __construct(string $name) {
13
14        if( empty($name) )
15            throw new \InvalidArgumentException("Location name invalid");
16
17        $this->name = $name;
18    }
19
20    function __destruct(){ }
21
22    /**
23     * Returns location 
24     *
25     * @return string Location name
26     */
27    function __toString(){ return sprintf("%s", $this->name); }
28
29    /**
30     * fetch location name
31     * @return string location name
32     */
33    public function name():string{ return $this->name; }
34
35    /**
36     * Hashtag Location name
37     * @return string Location name with hashtag for Tweeter/X, Telegram, etc...
38     */
39    public function asHashtag():string{
40        $tokens = array();
41
42        $elems = preg_split('/ /', $this->name);
43        foreach($elems as $elem){
44            if(is_numeric($elem))
45                $tokens[] = $elem;
46            elseif(preg_match('/^(E|Se|S|Sw|W|Nw|N|Ne|Km|di)$/i', $elem))
47                $tokens[] = $elem;
48            elseif(preg_match('/\(\w+/i', $elem))
49                $tokens[] = preg_replace('/^\((\w+)/i', '(#$1', $elem);
50            elseif(preg_match('/\[.*/', $elem))
51                $tokens[] = preg_replace('/^\[(\w+)/i', '[#$1', $elem);
52            elseif(preg_match('/.*]/', $elem))
53                $tokens[] = "#" . $elem;
54            elseif(is_string($elem) && 2 < strlen($elem))
55                $tokens[] = '#' . $elem;
56
57        }
58        return implode(' ', $tokens);
59    }
60
61    /**
62     * Compare two objects
63     * @return bool        true are equals, false otherwise
64     */
65    public function equals(self $other):bool{ return $this->name  == $other->name; }
66
67
68} 

Branches

Below are the source code lines that represent each code branch as identified by Xdebug. Please note a branch is not necessarily coterminous with a line, a line may contain multiple branches and therefore show up more than once. Please also be aware that some branches may be implicit rather than explicit, e.g. an if statement always has an else as part of its logical flow even if you didn't write one.

Location->__construct
12    function __construct(string $name) {
13
14        if( empty($name) )
15            throw new \InvalidArgumentException("Location name invalid");
17        $this->name = $name;
18    }
Location->__destruct
20    function __destruct(){ }
Location->__toString
27    function __toString(){ return sprintf("%s", $this->name); }
Location->asHashtag
40        $tokens = array();
41
42        $elems = preg_split('/ /', $this->name);
43        foreach($elems as $elem){
43        foreach($elems as $elem){
44            if(is_numeric($elem))
44            if(is_numeric($elem))
45                $tokens[] = $elem;
46            elseif(preg_match('/^(E|Se|S|Sw|W|Nw|N|Ne|Km|di)$/i', $elem))
46            elseif(preg_match('/^(E|Se|S|Sw|W|Nw|N|Ne|Km|di)$/i', $elem))
47                $tokens[] = $elem;
48            elseif(preg_match('/\(\w+/i', $elem))
48            elseif(preg_match('/\(\w+/i', $elem))
49                $tokens[] = preg_replace('/^\((\w+)/i', '(#$1', $elem);
50            elseif(preg_match('/\[.*/', $elem))
50            elseif(preg_match('/\[.*/', $elem))
51                $tokens[] = preg_replace('/^\[(\w+)/i', '[#$1', $elem);
52            elseif(preg_match('/.*]/', $elem))
52            elseif(preg_match('/.*]/', $elem))
53                $tokens[] = "#" . $elem;
54            elseif(is_string($elem) && 2 < strlen($elem))
54            elseif(is_string($elem) && 2 < strlen($elem))
54            elseif(is_string($elem) && 2 < strlen($elem))
43        foreach($elems as $elem){
44            if(is_numeric($elem))
45                $tokens[] = $elem;
46            elseif(preg_match('/^(E|Se|S|Sw|W|Nw|N|Ne|Km|di)$/i', $elem))
47                $tokens[] = $elem;
48            elseif(preg_match('/\(\w+/i', $elem))
49                $tokens[] = preg_replace('/^\((\w+)/i', '(#$1', $elem);
50            elseif(preg_match('/\[.*/', $elem))
51                $tokens[] = preg_replace('/^\[(\w+)/i', '[#$1', $elem);
52            elseif(preg_match('/.*]/', $elem))
53                $tokens[] = "#" . $elem;
54            elseif(is_string($elem) && 2 < strlen($elem))
55                $tokens[] = '#' . $elem;
43        foreach($elems as $elem){
43        foreach($elems as $elem){
44            if(is_numeric($elem))
45                $tokens[] = $elem;
46            elseif(preg_match('/^(E|Se|S|Sw|W|Nw|N|Ne|Km|di)$/i', $elem))
47                $tokens[] = $elem;
48            elseif(preg_match('/\(\w+/i', $elem))
49                $tokens[] = preg_replace('/^\((\w+)/i', '(#$1', $elem);
50            elseif(preg_match('/\[.*/', $elem))
51                $tokens[] = preg_replace('/^\[(\w+)/i', '[#$1', $elem);
52            elseif(preg_match('/.*]/', $elem))
53                $tokens[] = "#" . $elem;
54            elseif(is_string($elem) && 2 < strlen($elem))
55                $tokens[] = '#' . $elem;
56
57        }
58        return implode(' ', $tokens);
59    }
Location->equals
65    public function equals(self $other):bool{ return $this->name  == $other->name; }
Location->name
33    public function name():string{ return $this->name; }