More tests for TokenPatternMatcher
authorJan Vrany <jan.vrany@fit.cvut.cz>
Wed, 14 May 2014 16:38:18 +0100
changeset 209 220fd4240b0f
parent 204 190357b490fd
child 211 8d5259c39445
More tests for TokenPatternMatcher
SmallSense__MethodKeywordRestPO.st
SmallSense__TokenPatternMatcherTests.st
SmallSense__TokenStream.st
--- a/SmallSense__MethodKeywordRestPO.st	Fri May 09 17:29:26 2014 +0100
+++ b/SmallSense__MethodKeywordRestPO.st	Wed May 14 16:38:18 2014 +0100
@@ -9,6 +9,7 @@
 	category:'SmallSense-Core-Interface-PO'
 !
 
+
 !MethodKeywordRestPO class methodsFor:'Instance creation'!
 
 name:nm class:class stripOff: prefix
@@ -79,3 +80,10 @@
     "Created: / 08-04-2014 / 21:10:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!MethodKeywordRestPO class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/SmallSense__TokenPatternMatcherTests.st	Fri May 09 17:29:26 2014 +0100
+++ b/SmallSense__TokenPatternMatcherTests.st	Wed May 14 16:38:18 2014 +0100
@@ -40,5 +40,82 @@
 
     "Created: / 06-05-2014 / 17:04:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 09-05-2014 / 17:27:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_03a
+
+    | pattern matcher |
+
+    pattern := SmallSense::TokenPatternParser parse: '[[:import:]] ( [[:Identifier:]](.[[:Identifier:]])*\.?\*? )?'.
+    matcher := SmallSense::TokenPatternMatcher for: pattern.
+
+    self assert: (matcher searchStream: (SmallSense::TokenStream on: (JavaScanner for: 'import '))).
+    self assert: (matcher searchStream: (SmallSense::TokenStream on: (JavaScanner for: 'import java.util.ArrayList'))).
+    self assert: (matcher searchStream: (SmallSense::TokenStream on: (JavaScanner for: 'import java.util.concurent.ArrayList'))).
+    self assert: (matcher searchStream: (SmallSense::TokenStream on: (JavaScanner for: 'import java.util.ArrayList.*'))).
+    self assert: (matcher searchStream: (SmallSense::TokenStream on: (JavaScanner for: 'import java.util.ArrayList.'))).
+
+    "Created: / 14-05-2014 / 16:13:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_03b
+
+    | pattern stream matcher matches match |
+
+    pattern := SmallSense::TokenPatternParser parse: '[[:import:]] ( [[:Identifier:]](.[[:Identifier:]])*\.?\*? )?'.
+    matcher := SmallSense::TokenPatternMatcher for: pattern.
+
+
+    stream := SmallSense::TokenStream on: (JavaScanner for: 'import ').
+
+    matches := matcher matchesOnStream: stream.
+    self assert: matches size == 1.
+    match := matches first.
+    self assert: match size == 1.
+    self assert: match first type == #import.
+
+    stream reset.
+
+    matches := matcher matchesOnStream: stream.
+    self assert: matches size == 1.
+    match := matches first.
+    self assert: match size == 1.
+    self assert: match first type == #import.
+
+"/    self assert: (matcher searchStream: (SmallSense::TokenStream on: (JavaScanner for: 'import java.util.ArrayList'))).
+"/    self assert: (matcher searchStream: (SmallSense::TokenStream on: (JavaScanner for: 'import java.util.concurent.ArrayList'))).
+"/    self assert: (matcher searchStream: (SmallSense::TokenStream on: (JavaScanner for: 'import java.util.ArrayList.*'))).
+"/    self assert: (matcher searchStream: (SmallSense::TokenStream on: (JavaScanner for: 'import java.util.ArrayList.'))).
+
+    "Created: / 14-05-2014 / 16:15:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_03c
+
+    | pattern stream matcher matches match |
+
+    pattern := SmallSense::TokenPatternParser parse: '[[:import:]] ( [[:Identifier:]](.[[:Identifier:]])*\.?\*? )?'.
+    matcher := SmallSense::TokenPatternMatcher for: pattern.
+
+
+    stream := SmallSense::TokenStream on: (JavaScanner for: 'import java.util.ArrayList.*').
+
+    matches := matcher matchesOnStream: stream.
+    self assert: matches size == 1.
+    match := matches first.
+    self assert: match size == 8.
+    self assert: match first type == #import.
+    self assert: match second type == #Identifier.
+    self assert: match third type == $..
+    self assert: match last type == $*.
+
+
+
+"/    self assert: (matcher searchStream: (SmallSense::TokenStream on: (JavaScanner for: 'import java.util.ArrayList'))).
+"/    self assert: (matcher searchStream: (SmallSense::TokenStream on: (JavaScanner for: 'import java.util.concurent.ArrayList'))).
+"/    self assert: (matcher searchStream: (SmallSense::TokenStream on: (JavaScanner for: 'import java.util.ArrayList.*'))).
+"/    self assert: (matcher searchStream: (SmallSense::TokenStream on: (JavaScanner for: 'import java.util.ArrayList.'))).
+
+    "Created: / 14-05-2014 / 16:20:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
--- a/SmallSense__TokenStream.st	Fri May 09 17:29:26 2014 +0100
+++ b/SmallSense__TokenStream.st	Wed May 14 16:38:18 2014 +0100
@@ -139,6 +139,12 @@
     "Modified: / 07-08-2013 / 01:34:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+reset
+    self position: 0.
+
+    "Created: / 14-05-2014 / 16:19:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 skipSeparators
     self halt.