Passed
Push — master ( 8fb280...5e82f4 )
by Akpé Aurelle Emmanuel Moïse
31s
created

wordsReorderOccured()   A

Complexity

Conditions 6
Paths 6

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 6
eloc 3
nc 6
nop 3
dl 0
loc 6
rs 9.2222
c 0
b 0
f 0
1
<?php
2
/**
3
*
4
* @Name : similar-text
5
* @Programmer : Akpé Aurelle Emmanuel Moïse Zinsou
6
* @Date : 2019-04-01
7
* @Released under : https://github.com/manuwhat/similar-text/blob/master/LICENSE
8
* @Repository : https://github.com/manuwhat/similar
9
*
10
**/
11
12
13
namespace EZAMA{
14
    
15
    
16
    class simpleCommonTextSimilarities extends similar_text
17
    {
18
        public static function areAnagrams($a, $b)
19
        {
20
            return  self::similarText($a, $b, 2, true, $check) && $check['similar'] === 100.0 && $check['contain'] === true;
21
        }
22
        
23
        public static function similarButNotEqual($a, $b)
24
        {
25
            return self::similarText($a, $b, 2, true, $check) && is_array($check) && $check['equal'] === false;
26
        }
27
        
28
        public static function aIsSuperStringOfB($a, $b)
29
        {
30
            if (strlen($a) > strlen($b)) {
31
                return   self::similarText($a, $b, 2, true, $check) && is_array($check) && $check['substr'] === 100.0;
32
            } else {
33
                return false;
34
            }
35
        }
36
        
37
        public static function wordsReorderOccured($a, $b, $considerPunctuation = true)
38
        {
39
            $filter = function($v) use ($considerPunctuation) {
40
                return $considerPunctuation ? !(ctype_space($v) || ctype_punct($v)) : !ctype_space($v);
41
            };
42
            return self::similarText($a, $b, 2, true, $check, true) && is_array($check) && self::wro_filter($check, $filter) ?true :false;
43
        }
44
        
45
        private static function wro_filter($check, $filter)
46
        {
47
            return  empty(array_filter($check['a-b'], $filter)) && empty(array_filter($check['b-a'], $filter)) && $check['substr'] && !$check['equal'];
48
        }
49
        
50
        public static function haveSameRoot($a, $b)
51
        {
52
            return self::similarText($a, $b, 2, true, $check, true, true) && is_array($check) && range(0, count($check['a&b']) - 1) === array_keys($check['a&b'])/*?true:false*/;
53
        }
54
    }
55
}
56