tests/PPPredicateTest.st
changeset 377 6112a403a52d
parent 376 a2656b27cace
child 379 451b5ae38b72
--- a/tests/PPPredicateTest.st	Fri Oct 03 01:59:10 2014 +0100
+++ b/tests/PPPredicateTest.st	Fri Oct 03 02:33:08 2014 +0100
@@ -11,13 +11,7 @@
 !PPPredicateTest methodsFor:'private'!
 
 charactersDo: aBlock
-    "cg: isn't 256 one too many?"
-
-    Smalltalk isSmalltalkX ifTrue:[
-        0 to: 255 do: [ :index | aBlock value: (Character codePoint: index) ]
-    ] ifFalse:[
-        1 to: 256 do: [ :index | aBlock value: (Character codePoint: index) ]
-    ].
+	1 to: 256 do: [ :index | aBlock value: (Character codePoint: index) ]
 ! !
 
 !PPPredicateTest methodsFor:'testing'!
@@ -26,12 +20,15 @@
 	| block parser |
 	block := [ :char | char = $* ].
 	parser := PPPredicateObjectParser on: block message: 'starlet'.
-	self assert: parser block = block.
-	self assert: parser message = 'starlet'.
-	
+	self assert: parser block equals: block.
+	self assert: parser message equals: 'starlet'.
 	self assertCharacterSets: parser.
 	self assert: parser parse: '*' to: $*.
-	self assert: parser parse: '**' to: $* end: 1.
+	self
+		assert: parser
+		parse: '**'
+		to: $*
+		end: 1.
 	self assert: parser fail: ''.
 	self assert: parser fail: '1'.
 	self assert: parser fail: 'a'
@@ -40,17 +37,14 @@
 !PPPredicateTest methodsFor:'testing-chars'!
 
 testBlank
-        | parser cr|
-        parser := #blank asParser.
-        self assertCharacterSets: parser.
-        self assert: parser parse: (String with: Character space) to: Character space.
-        self assert: parser parse: (String with: Character tab) to: Character tab.
-        self assert: parser fail: ''.
-        self assert: parser fail: '1'.
-        cr := Smalltalk isSmalltalkX 
-            ifTrue:[Character return] 
-            ifFalse:[Character cr].
-        self assert: parser fail: (String with: cr)
+	| parser |
+	parser := #blank asParser.
+	self assertCharacterSets: parser.
+	self assert: parser parse: (String with: Character space) to: Character space.
+	self assert: parser parse: (String with: Character tab) to: Character tab.
+	self assert: parser fail: ''.
+	self assert: parser fail: '1'.
+	self assert: parser fail: (String with: Character cr)
 !
 
 testChar
@@ -65,15 +59,10 @@
 !
 
 testCr
-        | parser cr |
-
-        cr := Smalltalk isSmalltalkX 
-                ifTrue:[Character return] 
-                ifFalse:[Character cr].
-
-        parser := #cr asParser.
-        self assertCharacterSets: parser.
-        self assert: parser parse: (String with: cr) to: cr
+	| parser |
+	parser := #cr asParser.
+	self assertCharacterSets: parser.
+	self assert: parser parse: (String with: Character cr) to: Character cr
 !
 
 testDigit
@@ -132,15 +121,12 @@
 !
 
 testNewline
-        | parser cr|
-        cr := Smalltalk isSmalltalkX 
-                ifTrue:[Character return] 
-                ifFalse:[Character cr].
-        parser := #newline asParser.
-        self assertCharacterSets: parser.
-        self assert: parser parse: (String with: cr) to: cr.
-        self assert: parser parse: (String with: Character lf) to: Character lf.
-        self assert: parser fail: ' '
+	| parser |
+	parser := #newline asParser.
+	self assertCharacterSets: parser.
+	self assert: parser parse: (String with: Character cr) to: Character cr.
+	self assert: parser parse: (String with: Character lf) to: Character lf.
+	self assert: parser fail: ' '
 !
 
 testPunctuation
@@ -164,6 +150,29 @@
 	self assert: parser fail: 'a'
 !
 
+testStartOfLine
+	| parser |
+	parser := #startOfLine asParser, #any asParser star.
+	
+	self assert: parser parse: 'lorem ipsum'.
+	
+	parser := #any asParser, #startOfLine asParser, #any asParser star.
+	self assert: parser fail: 'lorem ipsum'.
+	
+	parser := #startOfLine asParser, #any asParser, #startOfLine asParser, #any asParser star.
+	self assert: parser parse: String cr, 'lorem ipsum'.
+	self assert: parser parse: String lf, 'lorem ipsum'.	
+	self assert: parser fail: String crlf, 'lorem ipsum'.	
+	
+	self assert: parser fail: String crlf.
+	self assert: parser parse: String cr.
+	self assert: parser parse: String lf.
+	
+	parser := #startOfLine asParser, #any asParser, #any asParser, #startOfLine asParser, #any asParser star.
+	self assert: parser parse: String crlf, 'lorem ipsum'.
+	self assert: parser parse: String crlf.
+!
+
 testTab
 	| parser |
 	parser := #tab asParser.
@@ -248,20 +257,19 @@
 
 testSequenceParser
 	| parser |
-	parser := PPPredicateSequenceParser 
-		on: [ :value | value first isUppercase ] 
+	parser := PPPredicateSequenceParser
+		on: [ :value | value first isUppercase ]
 		message: 'uppercase 3 letter words'
 		size: 3.
-	self assert: parser size = 3.
+	self assert: parser size equals: 3.
 	self assert: parser parse: 'Abc'.
 	self assert: parser parse: 'ABc'.
 	self assert: parser parse: 'ABC'.
 	self assert: parser fail: 'abc'.
 	self assert: parser fail: 'aBC'.
 	self assert: parser fail: 'Ab'.
-	
 	parser := parser negate.
-	self assert: parser size = 3.
+	self assert: parser size equals: 3.
 	self assert: parser fail: 'Abc'.
 	self assert: parser fail: 'ABc'.
 	self assert: parser fail: 'ABC'.