--- 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'.