File tree Expand file tree Collapse file tree 2 files changed +70
-0
lines changed Expand file tree Collapse file tree 2 files changed +70
-0
lines changed Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace TextAnalysis \Extracts ;
4
+ use TextAnalysis \Interfaces \IExtractStrategy ;
5
+
6
+ /**
7
+ * check if the given token is a hash tag
8
+ * @author yooper
9
+ */
10
+ class HashTag implements IExtractStrategy
11
+ {
12
+ /**
13
+ *
14
+ * @var int
15
+ */
16
+ protected $ minLength = 3 ;
17
+
18
+ public function __construct (int $ minLength = 3 )
19
+ {
20
+ $ this ->minLength = $ minLength ;
21
+ }
22
+
23
+ /**
24
+ *
25
+ * @param string $token
26
+ * @return false|string
27
+ */
28
+ public function filter ($ token )
29
+ {
30
+ // don't count the hash tag sign -1
31
+ if ($ token [0 ] === '# ' && strlen ($ token )-1 >= $ this ->getMinLength ()) {
32
+ return $ token ;
33
+ }
34
+ return false ;
35
+ }
36
+
37
+ public function getMinLength () : int
38
+ {
39
+ return $ this ->minLength ;
40
+ }
41
+
42
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Tests \TextAnalysis \Extracts ;
4
+
5
+ use TextAnalysis \Extracts \HashTag ;
6
+
7
+ /**
8
+ * Test if hashtag extraction is working
9
+ * @author yooper
10
+ */
11
+ class HashTagTest extends \PHPUnit_Framework_TestCase
12
+ {
13
+ public function testHashTag ()
14
+ {
15
+ $ extract = new HashTag ();
16
+ $ this ->assertFalse ($ extract ->filter ("testing " ));
17
+ $ this ->assertEquals ('#holiday ' , $ extract ->filter ('#holiday ' ));
18
+ $ this ->assertFalse ($ extract ->filter ('#DA ' ));
19
+ }
20
+
21
+ public function testMinLengthHashTag ()
22
+ {
23
+ $ extract = new HashTag (2 );
24
+ $ this ->assertEquals ('#DA ' , $ extract ->filter ('#DA ' ));
25
+ $ this ->assertFalse ($ extract ->filter ('#1 ' ));
26
+ }
27
+
28
+ }
You can’t perform that action at this time.
0 commit comments