RegressionTests__RxTests.st
author Claus Gittinger <cg@exept.de>
Tue, 25 Feb 2020 17:19:49 +0100
changeset 2586 7dc7be5a6f3d
parent 2409 83ccbaa621f8
permissions -rw-r--r--
#OTHER by cg s
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2265
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
     1
"{ Encoding: utf8 }"
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
     2
1867
fe4485bf8ffd #BUGFIX by sr
sr
parents: 1866
diff changeset
     3
"{ Package: 'stx:goodies/regression' }"
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
     4
1866
9bbbd1ca36af #OTHER by mawalch
mawalch
parents: 1865
diff changeset
     5
"{ NameSpace: RegressionTests }"
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
     6
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
     7
TestCase subclass:#RxTests
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
     8
	instanceVariableNames:''
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
     9
	classVariableNames:''
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
    10
	poolDictionaries:''
2042
33097ff706b7 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 1869
diff changeset
    11
	category:'tests-Regression-Collections-Utilities'
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
    12
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
    13
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
    14
!RxTests class methodsFor:'documentation'!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
    15
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
    16
documentation
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
    17
"
2042
33097ff706b7 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 1869
diff changeset
    18
    regex tests.
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
    19
"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
    20
! !
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
    21
2342
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    22
!RxTests methodsFor:'helper'!
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    23
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    24
compileRegex: aString
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    25
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    26
        "Compile the regex and answer the matcher, or answer nil if compilation fails."
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    27
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    28
        | syntaxTree |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    29
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    30
        syntaxTree := Regex::RxParser safelyParse: aString.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    31
        ^ syntaxTree ifNotNil: [ self matcherClass for: syntaxTree ]
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    32
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    33
2342
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    34
compileRegex: regexSource into: matcherClass
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    35
        "Compile the regex and answer the matcher, or answer nil if compilation fails."
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    36
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    37
        | syntaxTree |
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    38
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    39
        "/ ^ Regex::RxMatcher2 forString: regexSource.
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    40
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    41
        syntaxTree := Regex::RxParser "self matcherClass" safelyParse: regexSource.
2342
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    42
        syntaxTree == nil ifTrue: [^nil].
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    43
        ^matcherClass for: syntaxTree
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    44
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    45
    "Modified: / 31-07-2019 / 11:48:08 / Stefan Reise"
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    46
!
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    47
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    48
matcherClass
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    49
    ^ Regex::RxMatcher
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    50
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    51
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    52
runMatcher: aMatcher with: aString expect: aBoolean withSubexpressions: anArray
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    53
        | copy got sub subExpect subGot |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    54
        copy := aMatcher
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    55
                copy: aString
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    56
                translatingMatchesUsing: [ :each | each ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    57
        self 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    58
                assert: copy = aString
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    59
                description: 'Copying: expected ' , aString printString , ', but got ' , copy printString.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    60
        got := aMatcher search: aString.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    61
        self
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    62
                assert: got = aBoolean 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    63
                description: 'Searching: expected ' , aBoolean printString , ', but got ' , got printString.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    64
        (anArray isNil or: [ aMatcher supportsSubexpressions not ])
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    65
                ifTrue: [ ^ self ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    66
        1 to: anArray size by: 2 do: [ :index |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    67
                sub := anArray at: index.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    68
                subExpect := anArray at: index + 1.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    69
                subGot := aMatcher subexpression: sub.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    70
                self
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    71
                        assert: subExpect = subGot
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    72
                        description: 'Subexpression ' , sub printString , ': expected ' , subExpect printString , ', but got ' , subGot storeString ]
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    73
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    74
2342
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    75
runProtocolTestsForMatcher: matcherClass
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    76
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    77
	| matcher |
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    78
	Transcript show: 'Testing matcher protocol...'.
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    79
	matcher := matcherClass forString: '\w+'.
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    80
	(matcher matchesIn: 'now is the time') asArray = #('now' 'is' 'the' 'time')
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    81
		ifFalse: [self error: 'matchesIn: test failed'].
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    82
	(matcher copy: 'now is  the   time    ' translatingMatchesUsing: [:s | s reverse])
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    83
		= 'won si  eht   emit    '
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    84
		ifFalse: [self error: 'copy:translatingMatchesWith: test failed'].
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    85
	"See that the match context is preserved while copying stuff between matches:"
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    86
	((matcherClass forString: '\<\d\D+')
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    87
		copy: '9aaa1bbb 8ccc'
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    88
		replacingMatchesWith: 'foo') = 'foo1bbb foo'
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    89
			ifFalse: [self error: 'test failed'].
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    90
	Transcript show: 'OK'; cr
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    91
!
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
    92
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    93
runRegex: anArray
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    94
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    95
        "Run a clause anArray against a set of tests. Each clause is an array with a regex source string followed by sequence of 3-tuples. Each three-element group is one test to try against the regex, and includes: 1) test string; 2) expected result; 3) expected subexpression as an array of (index, substring), or nil."
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    96
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    97
        | source matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    98
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
    99
        source := anArray first.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   100
        matcher := self compileRegex: source.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   101
        matcher
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   102
                ifNil: [ ( anArray at: 2 )
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   103
                                ifNotNil: [ self signalFailure: 'Compilation failed, should have succeeded: ' , source printString ]
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   104
                        ]
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   105
                ifNotNil: [ ( anArray at: 2 )
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   106
                                ifNil: [ self signalFailure: 'Compilation succeeded, should have failed: ' , source printString ]
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   107
                                ifNotNil: [ 2 to: anArray size by: 3 do: [ :index | 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   108
                                                self
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   109
                                                        runMatcher: matcher
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   110
                                                        with: ( anArray at: index )
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   111
                                                        expect: ( anArray at: index + 1 )
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   112
                                                        withSubexpressions: ( anArray at: index + 2 )
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   113
                                                ]
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   114
                                        ]
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   115
                        ]
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   116
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   117
2342
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
   118
runRegexTestsForMatcher: matcherClass
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   119
        "Run the whole suite of tests for the given matcher class. May blow up
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   120
        if anything goes wrong with the matcher or parser. Since this is a
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   121
        developer's tool, who cares?"
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   122
        "self new runRegexTestsForMatcher: Regex::RxMatcher"
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   123
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   124
        | failures |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   125
        failures := 0.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   126
        Transcript cr.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   127
        self xtestSuite do: [:clause |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   128
                | rxSource matcher isOK |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   129
                rxSource := clause first.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   130
                Transcript show: 'Testing regex: '; show: rxSource printString; cr.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   131
                matcher := self compileRegex: rxSource into: matcherClass.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   132
                matcher == nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   133
                        ifTrue:
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   134
                                [(clause at: 2) isNil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   135
                                        ifTrue:
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   136
                                                [Transcript tab; show: 'Compilation error as expected (ok)'; cr]
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   137
                                        ifFalse:
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   138
                                                [Transcript tab;
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   139
                                                        show: 'Compilation error, UNEXPECTED -- FAILED'; cr.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   140
                                                failures := failures + 1]]
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   141
                        ifFalse:
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   142
                                [(clause at: 2) == nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   143
                                        ifTrue:
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   144
                                                [Transcript tab;
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   145
                                                        show: 'Compilation succeeded, should have failed -- FAILED!!';
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   146
                                                        cr.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   147
                                                failures := failures + 1]
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   148
                                        ifFalse:
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   149
                                                [2 to: clause size by: 3 do:
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   150
                                                        [:i |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   151
                                                        isOK := self
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   152
                                                                xtest: matcher
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   153
                                                                with: (clause at: i)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   154
                                                                expect: (clause at: i + 1)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   155
                                                                withSubexpressions: (clause at: i + 2).
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   156
                                                        isOK ifFalse: [failures := failures + 1].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   157
                                                        Transcript
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   158
                                                                show: (isOK ifTrue: [' (ok).'] ifFalse: [' -- FAILED!!']);
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   159
                                                                cr]]]].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   160
        failures = 0
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   161
                ifTrue: [Transcript show: 'PASSED ALL TESTS.'; cr]
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   162
                ifFalse: [Transcript show: failures printString, ' TESTS FAILED!!'; cr]
2342
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
   163
!
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
   164
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
   165
runTestsForMatcher: matcherClass
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   166
        "Run the whole suite of tests for the given matcher class. May blow up
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   167
        if something goes wrong with the matcher or the parser. Since this is a
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   168
        developer's tool, who cares?"
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   169
        "self new runTestsForMatcher: Regex::RxMatcher"
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   170
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   171
        self
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   172
                runRegexTestsForMatcher: matcherClass;
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   173
                runProtocolTestsForMatcher: matcherClass
2342
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
   174
! !
18fae254e775 #QUALITY by Stefan Reise
sr
parents: 2340
diff changeset
   175
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   176
!RxTests methodsFor:'profiling'!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   177
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   178
bigHonkingStream
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   179
    ^ '~/Documents/Pharo/images/Pharo 8.0 - 64bit (development version, latest)/Pharo8.0-32bit-3a0b722.sources' asFilename readStream "38Mb"
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   180
"/    ^ '~/Downloads/smalltalk/Pharo6.1-64.app/Contents/MacOS/PharoV60.sources' asFilename readStream "36Mb"
2265
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   181
"/    ^'/home/vassili/VisualWorks/image/visualnc.sou' asFilename readStream "7 Megs"
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   182
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   183
    "Modified: / 04-06-2019 / 10:52:51 / Claus Gittinger"
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   184
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   185
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   186
frequentMatchProfile
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   187
	"
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   188
	TimeProfiler profile: [self frequentMatchProfile]
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   189
	Time millisecondsToRun: [self frequentMatchProfile]
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   190
	"
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   191
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   192
	| stream matcher count |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   193
	stream := self bigHonkingStream.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   194
	count := 0.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   195
	matcher := '\<\w+' asRegex.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   196
	[
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   197
		[matcher searchStream: stream] whileTrue: [count := count + 1].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   198
	]
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   199
	valueNowOrOnUnwindDo: [stream close].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   200
	^count
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   201
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   202
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   203
rareMatchProfile
2265
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   204
        "                          o:Regex::RxMatcher
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   205
        TimeProfiler profile: [self new rareMatchProfile]
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   206
        Time millisecondsToRun: [self new rareMatchProfile] -> 22760         
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   207
        "
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   208
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   209
        | stream matcher count |
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   210
        stream := self bigHonkingStream.
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   211
        count := 0.
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   212
        matcher := 'foo' asRegex.
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   213
        [
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   214
                [matcher searchStream: stream] whileTrue: [count := count + 1].
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   215
        ]
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   216
        valueNowOrOnUnwindDo: [stream close].
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   217
        ^count
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   218
811f1843fabb #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
   219
    "Modified (comment): / 04-06-2019 / 10:54:16 / Claus Gittinger"
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   220
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   221
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   222
singleCharPrefixMatchProfile
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   223
	"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   224
	TimeProfiler profile: [self singleCharPrefixMatchProfile]
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   225
	Time millisecondsToRun: [self singleCharPrefixMatchProfile]
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   226
	"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   227
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   228
	| stream matcher count |
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   229
	stream := self bigHonkingStream.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   230
	count := 0.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   231
	matcher := 'm(e|a)th' asRegex.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   232
	[
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   233
		[matcher searchStream: stream] whileTrue: [count := count + 1].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   234
	]
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   235
	valueNowOrOnUnwindDo: [stream close].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   236
	^count
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   237
! !
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   238
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   239
!RxTests methodsFor:'test suite - henry'!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   240
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   241
testHenry001
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   242
        self runRegex: #('abc'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   243
                'abc' true (1 'abc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   244
                'xbc' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   245
                'axc' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   246
                'abx' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   247
                'xabcy' true (1 'abc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   248
                'ababc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   249
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   250
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   251
testHenry002
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   252
        self runRegex: #('ab*c'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   253
                'abc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   254
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   255
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   256
testHenry003
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   257
        self runRegex: #('ab*bc'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   258
                'abc' true (1 'abc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   259
                'abbc' true (1 'abbc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   260
                'abbbbc' true (1 'abbbbc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   261
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   262
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   263
testHenry004
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   264
        self runRegex: #('ab+bc'        
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   265
                'abbc' true (1 'abbc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   266
                'abc' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   267
                'abq' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   268
                'abbbbc' true (1 'abbbbc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   269
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   270
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   271
testHenry005
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   272
        self runRegex: #('ab?bc'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   273
                'abbc' true (1 'abbc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   274
                'abc' true (1 'abc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   275
                'abbbbc' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   276
                'abc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   277
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   278
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   279
testHenry006
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   280
        self runRegex: #('^abc$'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   281
                'abc' true (1 'abc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   282
                'abcc' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   283
                'aabc' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   284
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   285
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   286
testHenry007
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   287
        self runRegex: #('^abc'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   288
                'abcc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   289
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   290
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   291
testHenry008
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   292
        self runRegex: #('abc$'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   293
                'aabc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   294
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   295
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   296
testHenry009
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   297
        self runRegex: #('^'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   298
                'abc' true nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   299
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   300
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   301
testHenry010
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   302
        self runRegex: #('$'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   303
                'abc' true nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   304
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   305
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   306
testHenry011
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   307
        self runRegex: #('a.c'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   308
                'abc' true (1 'abc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   309
                'axc' true (1 'axc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   310
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   311
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   312
testHenry012
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   313
        "Need to get creative to include the null character..."
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   314
        self runRegex: 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   315
            #('a.*c' 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   316
                'axyzd' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   317
                'axyzc' true (1 'axyzc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   318
                'axy zc' true (1 'axy zc') "testing that a dot matches a space"
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   319
            ).
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   320
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   321
        self runRegex: 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   322
            {'a.*c' . 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   323
                'axy',(String with: 0 asCharacter),'zc' . false . nil} "testing that a dot does not match a null"
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   324
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   325
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   326
testHenry014
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   327
        self runRegex: #('a\w+c'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   328
                ' abbbbc ' true (1 'abbbbc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   329
                'abb bc' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   330
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   331
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   332
testHenry015
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   333
        self runRegex: #('\w+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   334
                '       foobar  quux' true (1 'foobar')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   335
                '       ~!!@#$%^&*()-+=\|/?.>,<' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   336
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   337
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   338
testHenry016
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   339
        self runRegex: #('a\W+c'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   340
                'a   c' true (1 'a   c')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   341
                'a bc' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   342
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   343
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   344
testHenry017
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   345
        self runRegex: #('\W+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   346
                'foo!!@#$bar' true (1 '!!@#$')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   347
                'foobar' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   348
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   349
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   350
testHenry018
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   351
        self runRegex: #('a\s*c'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   352
                'a   c' true (1 'a   c')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   353
                'a bc' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   354
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   355
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   356
testHenry019
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   357
        self runRegex: #('\s+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   358
                'abc3457 sd' true (1 ' ')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   359
                '1234$^*^&asdfb' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   360
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   361
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   362
testHenry020
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   363
        self runRegex: #('a\S*c'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   364
                'aqwertyc' true (1 'aqwertyc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   365
                'ab c' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   366
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   367
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   368
testHenry021
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   369
        self runRegex: #('\S+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   370
                '       asdf            ' true (1 'asdf')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   371
                '       
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   372
                        ' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   373
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   374
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   375
testHenry022
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   376
        self runRegex: #('a\d+c'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   377
                'a0123456789c' true (1 'a0123456789c')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   378
                'a12b34c' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   379
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   380
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   381
testHenry023
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   382
        self runRegex: #('\d+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   383
                'foo@#$%123ASD #$$%^&' true (1 '123')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   384
                'foo!!@#$asdfl;' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   385
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   386
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   387
testHenry024
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   388
        self runRegex: #('a\D+c'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   389
                'aqwertyc' true (1 'aqwertyc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   390
                'aqw6ertc' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   391
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   392
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   393
testHenry025
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   394
        self runRegex: #('\D+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   395
                '1234 abc 456' true (1 ' abc ')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   396
                '1234567890' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   397
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   398
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   399
testHenry026
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   400
        self runRegex: #('(f|o)+\b'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   401
                'foo' true (1 'foo')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   402
                ' foo ' true (1 'foo'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   403
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   404
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   405
testHenry027
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   406
        self runRegex: #('\ba\w+' "a word beginning with an A"
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   407
                'land ancient' true (1 'ancient')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   408
                'antique vase' true (1 'antique')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   409
                'goofy foobar' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   410
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   411
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   412
testHenry028
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   413
        self runRegex: #('(f|o)+\B'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   414
                'quuxfoobar' true (1 'foo')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   415
                'quuxfoo ' true (1 'fo'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   416
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   417
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   418
testHenry029
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   419
        self runRegex: #('\Ba\w+' "a word with an A in the middle, match at A and further"
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   420
                'land ancient' true (1 'and')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   421
                'antique vase' true (1 'ase')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   422
                'smalltalk shall overcome' true (1 'alltalk')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   423
                'foonix is better' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   424
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   425
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   426
testHenry030
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   427
        self runRegex: #('fooa\>.*'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   428
                'fooa ' true nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   429
                'fooa123' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   430
                'fooa bar' true nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   431
                'fooa' true nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   432
                'fooargh' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   433
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   434
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   435
testHenry031
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   436
        self runRegex: #('\>.+abc'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   437
                ' abcde fg' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   438
                'foo abcde' true (1 ' abc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   439
                'abcde' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   440
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   441
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   442
testHenry032
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   443
        self runRegex: #('\<foo.*'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   444
                'foo' true nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   445
                'foobar' true nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   446
                'qfoobarq foonix' true (1 'foonix')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   447
                ' foo' true nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   448
                ' 12foo' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   449
                'barfoo' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   450
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   451
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   452
testHenry033
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   453
        self runRegex: #('.+\<foo'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   454
                'foo' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   455
                'ab foo' true (1 'ab foo')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   456
                'abfoo' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   457
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   458
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   459
testHenry034
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   460
        self runRegex: #('a[bc]d'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   461
                'abc' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   462
                'abd' true (1 'abd'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   463
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   464
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   465
testHenry035
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   466
        self runRegex: #('a[b-d]e'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   467
                'abd' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   468
                'ace' true (1 'ace'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   469
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   470
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   471
testHenry036
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   472
        self runRegex: #('a[b-d]'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   473
                'aac' true (1 'ac'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   474
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   475
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   476
testHenry037
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   477
        self runRegex: #('a[-b]'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   478
                'a-' true (1 'a-'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   479
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   480
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   481
testHenry038
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   482
        self runRegex: #('a[b-]'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   483
                'a-' true (1 'a-'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   484
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   485
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   486
testHenry039
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   487
        self runRegex: #('a[a-b-c]' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   488
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   489
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   490
testHenry040
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   491
        self runRegex: #('[k]'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   492
                'ab' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   493
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   494
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   495
testHenry041
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   496
        self runRegex: #('a[b-a]' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   497
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   498
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   499
testHenry042
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   500
        self runRegex: #('a[]b' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   501
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   502
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   503
testHenry043
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   504
        self runRegex: #('a[' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   505
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   506
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   507
testHenry044
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   508
        self runRegex: #('a]' 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   509
                'a]' true (1 'a]'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   510
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   511
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   512
testHenry045
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   513
        self runRegex: #('a[]]b'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   514
                'a]b' true (1 'a]b'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   515
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   516
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   517
testHenry046
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   518
        self runRegex: #('a[^bc]d'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   519
                'aed' true (1 'aed')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   520
                'abd' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   521
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   522
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   523
testHenry047
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   524
        self runRegex: #('a[^-b]c'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   525
                'adc' true (1 'adc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   526
                'a-c' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   527
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   528
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   529
testHenry048
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   530
        self runRegex: #('a[^]b]c'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   531
                'a]c' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   532
                'adc' true (1 'adc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   533
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   534
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   535
testHenry049
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   536
        self runRegex: #('[\de]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   537
                '01234' true (1 '01234')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   538
                '0123e456' true (1 '0123e456')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   539
                '0123e45g78' true (1 '0123e45'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   540
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   541
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   542
testHenry050
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   543
        self runRegex: #('[e\d]+' "reversal of the above, should be the same"
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   544
                '01234' true (1 '01234')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   545
                '0123e456' true (1 '0123e456')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   546
                '0123e45g78' true (1 '0123e45'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   547
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   548
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   549
testHenry051
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   550
        self runRegex: #('[\D]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   551
                '123abc45def78' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   552
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   553
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   554
testHenry052
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   555
        self runRegex: #('[[:digit:]e]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   556
                '01234' true (1 '01234')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   557
                '0123e456' true (1 '0123e456')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   558
                '0123e45g78' true (1 '0123e45'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   559
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   560
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   561
testHenry053
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   562
        self runRegex: #('[\s]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   563
                '2  spaces' true (1 '  '))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   564
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   565
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   566
testHenry054
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   567
        self runRegex: #('[\S]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   568
                '  word12!!@#$  ' true (1 'word12!!@#$'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   569
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   570
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   571
testHenry055
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   572
        self runRegex: #('[\w]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   573
                '       foo123bar       45' true (1 'foo123bar'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   574
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   575
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   576
testHenry056
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   577
        self runRegex: #('[\W]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   578
                'fii234!!@#$34f' true (1 '!!@#$'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   579
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   580
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   581
testHenry057
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   582
        self runRegex: #('[^[:alnum:]]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   583
                'fii234!!@#$34f' true (1 '!!@#$'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   584
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   585
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   586
testHenry058
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   587
        self runRegex: #('[%&[:alnum:]]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   588
                'foo%3' true (1 'foo%3')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   589
                'foo34&rt4$57a' true (1 'foo34&rt4')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   590
                '!!@#$' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   591
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   592
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   593
testHenry060
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   594
        self runRegex: #('[[:cntrl:]]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   595
                ' a 1234asdf' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   596
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   597
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   598
testHenry061
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   599
        self runRegex: #('[[:lower:]]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   600
                'UPPERlower1234' true (1 'lower')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   601
                'lowerUPPER' true (1 'lower'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   602
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   603
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   604
testHenry062
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   605
        self runRegex: #('[[:upper:]]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   606
                'UPPERlower1234' true (1 'UPPER')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   607
                'lowerUPPER ' true (1 'UPPER'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   608
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   609
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   610
testHenry063
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   611
        self runRegex: #('[[:space:]]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   612
                '2  spaces' true (1 '  '))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   613
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   614
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   615
testHenry064
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   616
        self runRegex: #('[^[:space:]]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   617
                '  word12!!@#$  ' true (1 'word12!!@#$'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   618
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   619
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   620
testHenry065
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   621
        self runRegex: #('[[:graph:]]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   622
                'abc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   623
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   624
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   625
testHenry066
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   626
        self runRegex: #('[[:print:]]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   627
                'abc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   628
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   629
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   630
testHenry067
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   631
        self runRegex: #('[^[:punct:]]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   632
                '!!hello,world!!' true (1 'hello'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   633
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   634
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   635
testHenry068
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   636
        self runRegex: #('[[:xdigit:]]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   637
                '  x10FCD  ' true (1 '10FCD')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   638
                ' hgfedcba0123456789ABCDEFGH '
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   639
                        true (1 'fedcba0123456789ABCDEF'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   640
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   641
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   642
testHenry069
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   643
        self runRegex: #('ab|cd'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   644
                'abc' true (1 'ab')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   645
                'abcd' true (1 'ab'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   646
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   647
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   648
testHenry070
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   649
        self runRegex: #('()ef'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   650
                'def' true (1 'ef' 2 ''))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   651
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   652
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   653
testHenry071
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   654
        self runRegex: #('()*' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   655
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   656
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   657
testHenry072
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   658
        self runRegex: #('*a' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   659
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   660
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   661
testHenry073
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   662
        self runRegex: #('^*' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   663
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   664
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   665
testHenry074
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   666
        self runRegex: #('$*' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   667
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   668
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   669
testHenry075
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   670
        self runRegex: #('(*)b' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   671
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   672
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   673
testHenry076
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   674
        self runRegex: #('$b'   'b' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   675
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   676
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   677
testHenry077
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   678
        self runRegex: #('a\' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   679
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   680
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   681
testHenry078
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   682
        self runRegex: #('a\(b'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   683
                'a(b' true (1 'a(b'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   684
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   685
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   686
testHenry079
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   687
        self runRegex: #('a\(*b'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   688
                'ab' true (1 'ab')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   689
                'a((b' true (1 'a((b'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   690
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   691
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   692
testHenry080
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   693
        self runRegex: #('a\\b'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   694
                'a\b' true (1 'a\b'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   695
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   696
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   697
testHenry081
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   698
        self runRegex: #('abc)' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   699
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   700
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   701
testHenry082
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   702
        self runRegex: #('(abc' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   703
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   704
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   705
testHenry083
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   706
        self runRegex: #('((a))'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   707
                'abc' true (1 'a' 2 'a' 3 'a'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   708
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   709
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   710
testHenry084
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   711
        self runRegex: #('(a)b(c)'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   712
                'abc' true (1 'abc' 2 'a' 3 'c'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   713
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   714
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   715
testHenry085
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   716
        self runRegex: #('a+b+c'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   717
                'aabbabc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   718
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   719
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   720
testHenry086
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   721
        self runRegex: #('a**' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   722
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   723
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   724
testHenry087
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   725
        self runRegex: #('a*?' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   726
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   727
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   728
testHenry088
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   729
        self runRegex: #('(a*)*' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   730
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   731
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   732
testHenry089
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   733
        self runRegex: #('(a*)+' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   734
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   735
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   736
testHenry090
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   737
        self runRegex: #('(a|)*' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   738
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   739
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   740
testHenry091
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   741
        self runRegex: #('(a*|b)*' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   742
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   743
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   744
testHenry092
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   745
        self runRegex: #('(a+|b)*'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   746
                'ab' true (1 'ab' 2 'b'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   747
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   748
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   749
testHenry093
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   750
        self runRegex: #('(a+|b)+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   751
                'ab' true (1 'ab' 2 'b'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   752
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   753
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   754
testHenry094
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   755
        self runRegex: #('(a+|b)?'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   756
                'ab' true (1 'a' 2 'a'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   757
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   758
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   759
testHenry095
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   760
        self runRegex: #('[^ab]*'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   761
                'cde' true (1 'cde'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   762
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   763
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   764
testHenry096
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   765
        self runRegex: #('(^)*' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   766
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   767
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   768
testHenry097
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   769
        self runRegex: #('(ab|)*' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   770
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   771
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   772
testHenry098
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   773
        self runRegex: #(')(' nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   774
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   775
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   776
testHenry099
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   777
        self runRegex: #('' 'abc' true (1 ''))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   778
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   779
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   780
testHenry100
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   781
        self runRegex: #('abc' '' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   782
! !
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   783
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   784
!RxTests methodsFor:'test suite - new'!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   785
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   786
test001
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   787
    "patt.   input   match-expected  matched-expression
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   788
     abc     abc     y              &       abc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   789
     abc     xbc     n              -       -
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   790
     abc     axc     n              -       -
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   791
     abc     abx     n              -       -
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   792
     abc     xabcy   y              &       abc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   793
     abc     ababc   y              &       abc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   794
    "
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   795
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   796
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   797
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   798
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   799
        should:[ (matcher := self compileRegex:'abc' into:Regex::RxMatcher) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   800
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   801
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   802
    self should:[ (matcher search:'xbc') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   803
    self should:[ (matcher search:'axc') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   804
    self should:[ (matcher search:'abx') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   805
    self should:[ (matcher search:'xabcy') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   806
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   807
    self should:[ (matcher search:'ababc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   808
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   809
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   810
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   811
     self new test01
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   812
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   813
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   814
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   815
test002
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   816
    "patt.   input   match-expected  matched-expression
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   817
     ab*c    abc     y                  &       abc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   818
    "
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   819
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   820
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   821
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   822
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   823
        should:[ (matcher := self compileRegex:'ab*c' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   824
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   825
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   826
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   827
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   828
     self new test02
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   829
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   830
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   831
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   832
test003
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   833
    "patt.   input   match-expected  matched-expression
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   834
     ab*bc   abc     y              &       abc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   835
     ab*bc   abbc    y              &       abbc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   836
     ab*bc   abbbbc  y              &       abbbbc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   837
    "
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   838
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   839
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   840
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   841
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   842
        should:[ (matcher := self compileRegex:'ab*bc' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   843
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   844
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   845
    self should:[ (matcher search:'abbc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   846
    self should:[ (matcher subexpression:1) = 'abbc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   847
    self should:[ (matcher search:'abbbbc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   848
    self should:[ (matcher subexpression:1) = 'abbbbc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   849
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   850
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   851
     self new test02
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   852
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   853
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   854
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   855
test004
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   856
    "patt.   input   match-expected  matched-expression
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   857
     ab+bc   abbc    y              &       abbc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   858
     ab+bc   abc     n              -       -
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   859
     ab+bc   abq     n              -       -
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   860
     ab+bc   abbbbc  y              &       abbbbc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   861
    "
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   862
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   863
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   864
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   865
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   866
        should:[ (matcher := self compileRegex:'ab+bc' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   867
    self should:[ (matcher search:'abbc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   868
    self should:[ (matcher subexpression:1) = 'abbc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   869
    self should:[ (matcher search:'abc') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   870
    self should:[ (matcher search:'abq') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   871
    self should:[ (matcher search:'abbbbc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   872
    self should:[ (matcher subexpression:1) = 'abbbbc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   873
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   874
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   875
     self new test04
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   876
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   877
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   878
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   879
test005
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   880
    "patt.   input   match-expected  matched-expression
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   881
     ab?bc   abbc    y              &       abbc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   882
     ab?bc   abc     y              &       abc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   883
     ab?bc   abbbbc  n              -       -
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   884
    "
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   885
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   886
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   887
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   888
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   889
        should:[ (matcher := self compileRegex:'ab?bc' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   890
    self should:[ (matcher search:'abbc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   891
    self should:[ (matcher subexpression:1) = 'abbc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   892
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   893
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   894
    self should:[ (matcher search:'abbbbc') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   895
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   896
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   897
     self new test05
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   898
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   899
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   900
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   901
test005b
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   902
    "patt.   input   match-expected  matched-expression
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   903
     ab?c    abc     y              &       abc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   904
    "
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   905
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   906
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   907
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   908
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   909
        should:[ (matcher := self compileRegex:'ab?c' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   910
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   911
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   912
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   913
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   914
     self new test05b
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   915
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   916
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   917
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   918
test006
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   919
    "patt.   input   match-expected  matched-expression
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   920
     ^abc$   abc     y       &       abc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   921
     ^abc$   abcc    n       -       -
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   922
     ^abc$   aabc    n       -       -
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   923
    "
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   924
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   925
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   926
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   927
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   928
        should:[ (matcher := self compileRegex:'^abc$' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   929
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   930
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   931
    self should:[ (matcher search:'abcc') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   932
    self should:[ (matcher search:'aabc') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   933
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   934
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   935
     self new test06
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   936
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   937
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   938
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   939
test007
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   940
    "patt.   input   match-expected  matched-expression
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   941
     ^abc    abcc    y       &       abc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   942
    "
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   943
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   944
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   945
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   946
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   947
        should:[ (matcher := self compileRegex:'^abc' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   948
    self should:[ (matcher search:'abcc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   949
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   950
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   951
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   952
     self new test07
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   953
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   954
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   955
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   956
test008
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   957
    "patt.   input   match-expected  matched-expression
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   958
    abc$    aabc    y       &       abc
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   959
    "
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   960
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   961
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   962
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   963
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   964
        should:[ (matcher := self compileRegex:'abc$' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   965
    self should:[ (matcher search:'aabc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   966
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   967
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   968
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   969
     self new test08
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   970
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   971
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   972
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   973
test009
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   974
    "patt.   input   match-expected  matched-expression
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   975
     ^       abc     y       &
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   976
    "
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   977
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   978
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   979
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   980
    self should:[ (matcher := self compileRegex:'^' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   981
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   982
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   983
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   984
     self new test09
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   985
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   986
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   987
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   988
test010
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   989
    "patt.   input   match-expected  matched-expression
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   990
     $       abc     y       &
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   991
    "
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
   992
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   993
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   994
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
   995
    self should:[ (matcher := self compileRegex:'$' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   996
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   997
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   998
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
   999
     self new test10
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1000
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1001
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1002
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1003
test011
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1004
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1005
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1006
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1007
        should:[ (matcher := self compileRegex:'a.c' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1008
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1009
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1010
    self should:[ (matcher search:'axc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1011
    self should:[ (matcher subexpression:1) = 'axc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1012
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1013
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1014
test012
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1015
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1016
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1017
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1018
        should:[ (matcher := self compileRegex:'a.*c' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1019
    self should:[ (matcher search:'axyzc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1020
    self should:[ (matcher subexpression:1) = 'axyzc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1021
    self should:[ (matcher search:'axy zc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1022
    self should:[ (matcher subexpression:1) = 'axy zc' ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1023
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1024
        should:[
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1025
            (matcher search:'axy
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1026
                                                 zc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1027
                = false
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1028
        ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1029
    self should:[ (matcher search:'axyzd') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1030
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1031
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1032
test013
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1033
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1034
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1035
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1036
        should:[ (matcher := self compileRegex:'.a.*' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1037
    self should:[ (matcher search:'1234abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1038
    self should:[ (matcher subexpression:1) = '4abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1039
    self should:[ (matcher search:'abcd') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1040
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1041
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1042
test014
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1043
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1044
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1045
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1046
        should:[ (matcher := self compileRegex:'a\w+c' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1047
    self should:[ (matcher search:' abbbbc ') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1048
    self should:[ (matcher subexpression:1) = 'abbbbc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1049
    self should:[ (matcher search:'abb bc') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1050
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1051
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1052
test015
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1053
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1054
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1055
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1056
        should:[ (matcher := self compileRegex:'\w+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1057
    self should:[ (matcher search:'       foobar  quux') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1058
    self should:[ (matcher subexpression:1) = 'foobar' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1059
    self should:[ (matcher search:'       ~!!@#$%^&*()-+=\|/?.>,<') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1060
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1061
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1062
test016
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1063
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1064
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1065
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1066
        should:[ (matcher := self compileRegex:'a\W+c' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1067
    self should:[ (matcher search:'a   c') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1068
    self should:[ (matcher subexpression:1) = 'a   c' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1069
    self should:[ (matcher search:'a bc') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1070
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1071
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1072
test017
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1073
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1074
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1075
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1076
        should:[ (matcher := self compileRegex:'\W+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1077
    self should:[ (matcher search:'foo!!@#$bar') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1078
    self should:[ (matcher subexpression:1) = '!!@#$' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1079
    self should:[ (matcher search:'foobar') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1080
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1081
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1082
test018
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1083
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1084
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1085
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1086
        should:[ (matcher := self compileRegex:'a\s*c' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1087
    self should:[ (matcher search:'a   c') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1088
    self should:[ (matcher subexpression:1) = 'a   c' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1089
    self should:[ (matcher search:'a bc') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1090
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1091
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1092
test019
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1093
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1094
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1095
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1096
        should:[ (matcher := self compileRegex:'\s+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1097
    self should:[ (matcher search:'abc3457 sd') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1098
    self should:[ (matcher subexpression:1) = ' ' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1099
    self should:[ (matcher search:'1234$^*^&asdfb') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1100
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1101
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1102
test020
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1103
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1104
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1105
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1106
        should:[ (matcher := self compileRegex:'a\S*c' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1107
    self should:[ (matcher search:'aqwertyc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1108
    self should:[ (matcher subexpression:1) = 'aqwertyc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1109
    self should:[ (matcher search:'ab c') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1110
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1111
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1112
test021
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1113
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1114
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1115
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1116
        should:[ (matcher := self compileRegex:'\S+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1117
    self should:[ (matcher search:'       asdf            ') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1118
    self should:[ (matcher subexpression:1) = 'asdf' ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1119
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1120
        should:[ (matcher search:'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1121
                                ') = false ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1122
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1123
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1124
test022
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1125
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1126
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1127
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1128
        should:[ (matcher := self compileRegex:'a\d+c' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1129
    self should:[ (matcher search:'a0123456789c') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1130
    self should:[ (matcher subexpression:1) = 'a0123456789c' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1131
    self should:[ (matcher search:'a12b34c') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1132
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1133
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1134
test023
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1135
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1136
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1137
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1138
        should:[ (matcher := self compileRegex:'\d+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1139
    self should:[ (matcher search:'foo@#$%123ASD #$$%^&') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1140
    self should:[ (matcher subexpression:1) = '123' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1141
    self should:[ (matcher search:'foo!!@#$asdfl;') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1142
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1143
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1144
test024
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1145
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1146
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1147
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1148
        should:[ (matcher := self compileRegex:'a\D+c' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1149
    self should:[ (matcher search:'aqwertyc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1150
    self should:[ (matcher subexpression:1) = 'aqwertyc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1151
    self should:[ (matcher search:'aqw6ertc') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1152
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1153
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1154
test025
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1155
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1156
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1157
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1158
        should:[ (matcher := self compileRegex:'\D+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1159
    self should:[ (matcher search:'1234 abc 456') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1160
    self should:[ (matcher subexpression:1) = ' abc ' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1161
    self should:[ (matcher search:'1234567890') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1162
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1163
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1164
test026
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1165
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1166
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1167
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1168
        should:[ (matcher := self compileRegex:'(f|o)+\b' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1169
    self should:[ (matcher search:'foo') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1170
    self should:[ (matcher subexpression:1) = 'foo' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1171
    self should:[ (matcher search:' foo ') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1172
    self should:[ (matcher subexpression:1) = 'foo' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1173
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1174
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1175
test027
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1176
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1177
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1178
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1179
        should:[ (matcher := self compileRegex:'\ba\w+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1180
    self should:[ (matcher search:'land ancient') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1181
    self should:[ (matcher subexpression:1) = 'ancient' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1182
    self should:[ (matcher search:'antique vase') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1183
    self should:[ (matcher subexpression:1) = 'antique' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1184
    self should:[ (matcher search:'goofy foobar') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1185
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1186
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1187
test028
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1188
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1189
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1190
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1191
        should:[ (matcher := self compileRegex:'(f|o)+\B' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1192
    self should:[ (matcher search:'quuxfoobar') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1193
    self should:[ (matcher subexpression:1) = 'foo' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1194
    self should:[ (matcher search:'quuxfoo ') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1195
    self should:[ (matcher subexpression:1) = 'fo' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1196
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1197
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1198
test029
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1199
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1200
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1201
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1202
        should:[ (matcher := self compileRegex:'\Ba\w+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1203
    self should:[ (matcher search:'land ancient') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1204
    self should:[ (matcher subexpression:1) = 'and' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1205
    self should:[ (matcher search:'antique vase') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1206
    self should:[ (matcher subexpression:1) = 'ase' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1207
    self should:[ (matcher search:'smalltalk shall overcome') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1208
    self should:[ (matcher subexpression:1) = 'alltalk' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1209
    self should:[ (matcher search:'foonix is better') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1210
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1211
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1212
test030
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1213
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1214
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1215
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1216
        should:[ (matcher := self compileRegex:'fooa\>.*' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1217
    self should:[ (matcher search:'fooa ') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1218
    self should:[ (matcher search:'fooa123') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1219
    self should:[ (matcher search:'fooa bar') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1220
    self should:[ (matcher search:'fooa') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1221
    self should:[ (matcher search:'fooargh') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1222
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1223
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1224
test031
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1225
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1226
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1227
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1228
        should:[ (matcher := self compileRegex:'\>.+abc' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1229
    self should:[ (matcher search:' abcde fg') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1230
    self should:[ (matcher search:'foo abcde') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1231
    self should:[ (matcher subexpression:1) = ' abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1232
    self should:[ (matcher search:'abcde') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1233
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1234
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1235
test032
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1236
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1237
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1238
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1239
        should:[ (matcher := self compileRegex:'\<foo.*' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1240
    self should:[ (matcher search:'foo') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1241
    self should:[ (matcher search:'foobar') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1242
    self should:[ (matcher search:'qfoobarq foonix') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1243
    self should:[ (matcher subexpression:1) = 'foonix' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1244
    self should:[ (matcher search:' foo') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1245
    self should:[ (matcher search:' 12foo') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1246
    self should:[ (matcher search:'barfoo') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1247
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1248
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1249
test033
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1250
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1251
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1252
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1253
        should:[ (matcher := self compileRegex:'.+\<foo' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1254
    self should:[ (matcher search:'foo') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1255
    self should:[ (matcher search:'ab foo') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1256
    self should:[ (matcher subexpression:1) = 'ab foo' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1257
    self should:[ (matcher search:'abfoo') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1258
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1259
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1260
test034
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1261
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1262
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1263
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1264
        should:[ (matcher := self compileRegex:'a[bc]d' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1265
    self should:[ (matcher search:'abc') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1266
    self should:[ (matcher search:'abd') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1267
    self should:[ (matcher subexpression:1) = 'abd' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1268
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1269
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1270
test035
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1271
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1272
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1273
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1274
        should:[ (matcher := self compileRegex:'a[b-d]e' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1275
    self should:[ (matcher search:'abd') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1276
    self should:[ (matcher search:'ace') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1277
    self should:[ (matcher subexpression:1) = 'ace' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1278
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1279
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1280
test036
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1281
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1282
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1283
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1284
        should:[ (matcher := self compileRegex:'a[b-d]' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1285
    self should:[ (matcher search:'aac') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1286
    self should:[ (matcher subexpression:1) = 'ac' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1287
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1288
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1289
test037
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1290
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1291
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1292
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1293
        should:[ (matcher := self compileRegex:'a[-b]' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1294
    self should:[ (matcher search:'a-') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1295
    self should:[ (matcher subexpression:1) = 'a-' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1296
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1297
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1298
test038
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1299
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1300
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1301
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1302
        should:[ (matcher := self compileRegex:'a[b-]' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1303
    self should:[ (matcher search:'a-') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1304
    self should:[ (matcher subexpression:1) = 'a-' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1305
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1306
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1307
test039
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1308
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1309
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1310
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1311
        should:[ (matcher := self compileRegex:'a[a-b-c]' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1312
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1313
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1314
test040
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1315
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1316
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1317
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1318
        should:[ (matcher := self compileRegex:'[k]' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1319
    self should:[ (matcher search:'ab') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1320
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1321
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1322
test041
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1323
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1324
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1325
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1326
        should:[ (matcher := self compileRegex:'a[b-a]' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1327
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1328
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1329
test042
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1330
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1331
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1332
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1333
        should:[ (matcher := self compileRegex:'a[]b' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1334
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1335
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1336
test043
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1337
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1338
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1339
    self should:[ (matcher := self compileRegex:'a[' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1340
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1341
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1342
test044
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1343
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1344
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1345
    self should:[ (matcher := self compileRegex:'a]' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1346
    self should:[ (matcher search:'a]') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1347
    self should:[ (matcher subexpression:1) = 'a]' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1348
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1349
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1350
test045
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1351
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1352
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1353
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1354
        should:[ (matcher := self compileRegex:'a[]]b' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1355
    self should:[ (matcher search:'a]b') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1356
    self should:[ (matcher subexpression:1) = 'a]b' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1357
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1358
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1359
test046
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1360
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1361
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1362
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1363
        should:[ (matcher := self compileRegex:'a[^bc]d' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1364
    self should:[ (matcher search:'aed') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1365
    self should:[ (matcher subexpression:1) = 'aed' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1366
    self should:[ (matcher search:'abd') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1367
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1368
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1369
test047
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1370
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1371
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1372
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1373
        should:[ (matcher := self compileRegex:'a[^-b]c' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1374
    self should:[ (matcher search:'adc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1375
    self should:[ (matcher subexpression:1) = 'adc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1376
    self should:[ (matcher search:'a-c') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1377
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1378
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1379
test048
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1380
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1381
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1382
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1383
        should:[ (matcher := self compileRegex:'a[^]b]c' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1384
    self should:[ (matcher search:'a]c') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1385
    self should:[ (matcher search:'adc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1386
    self should:[ (matcher subexpression:1) = 'adc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1387
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1388
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1389
test049
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1390
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1391
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1392
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1393
        should:[ (matcher := self compileRegex:'[\de]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1394
    self should:[ (matcher search:'01234') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1395
    self should:[ (matcher subexpression:1) = '01234' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1396
    self should:[ (matcher search:'0123e456') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1397
    self should:[ (matcher subexpression:1) = '0123e456' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1398
    self should:[ (matcher search:'0123e45g78') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1399
    self should:[ (matcher subexpression:1) = '0123e45' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1400
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1401
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1402
test050
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1403
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1404
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1405
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1406
        should:[ (matcher := self compileRegex:'[e\d]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1407
    self should:[ (matcher search:'01234') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1408
    self should:[ (matcher subexpression:1) = '01234' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1409
    self should:[ (matcher search:'0123e456') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1410
    self should:[ (matcher subexpression:1) = '0123e456' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1411
    self should:[ (matcher search:'0123e45g78') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1412
    self should:[ (matcher subexpression:1) = '0123e45' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1413
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1414
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1415
test051
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1416
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1417
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1418
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1419
        should:[ (matcher := self compileRegex:'[\D]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1420
    self should:[ (matcher search:'123abc45def78') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1421
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1422
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1423
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1424
test052
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1425
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1426
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1427
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1428
        should:[ (matcher := self compileRegex:'[[:digit:]e]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1429
    self should:[ (matcher search:'01234') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1430
    self should:[ (matcher subexpression:1) = '01234' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1431
    self should:[ (matcher search:'0123e456') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1432
    self should:[ (matcher subexpression:1) = '0123e456' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1433
    self should:[ (matcher search:'0123e45g78') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1434
    self should:[ (matcher subexpression:1) = '0123e45' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1435
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1436
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1437
test053
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1438
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1439
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1440
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1441
        should:[ (matcher := self compileRegex:'[\s]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1442
    self should:[ (matcher search:'2  spaces') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1443
    self should:[ (matcher subexpression:1) = '  ' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1444
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1445
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1446
test054
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1447
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1448
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1449
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1450
        should:[ (matcher := self compileRegex:'[\S]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1451
    self should:[ (matcher search:'  word12!!@#$  ') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1452
    self should:[ (matcher subexpression:1) = 'word12!!@#$' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1453
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1454
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1455
test055
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1456
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1457
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1458
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1459
        should:[ (matcher := self compileRegex:'[\w]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1460
    self should:[ (matcher search:'       foo123bar       45') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1461
    self should:[ (matcher subexpression:1) = 'foo123bar' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1462
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1463
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1464
test056
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1465
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1466
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1467
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1468
        should:[ (matcher := self compileRegex:'[\W]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1469
    self should:[ (matcher search:'fii234!!@#$34f') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1470
    self should:[ (matcher subexpression:1) = '!!@#$' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1471
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1472
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1473
test057
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1474
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1475
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1476
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1477
	should:[ (matcher := self compileRegex:'[^[:alnum:]]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1478
    self should:[ (matcher search:'fii234!!@#$34f') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1479
    self should:[ (matcher subexpression:1) = '!!@#$' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1480
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1481
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1482
test058
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1483
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1484
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1485
    self
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1486
	should:[
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1487
	    (matcher := self compileRegex:'[%&[:alnum:]]+' into:self matcherClass) ~= nil
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1488
	].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1489
    self should:[ (matcher search:'foo%3') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1490
    self should:[ (matcher subexpression:1) = 'foo%3' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1491
    self should:[ (matcher search:'foo34&rt4$57a') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1492
    self should:[ (matcher subexpression:1) = 'foo34&rt4' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1493
    self should:[ (matcher search:'!!@#$') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1494
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1495
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1496
test059
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1497
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1498
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1499
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1500
	should:[ (matcher := self compileRegex:'[[:alpha:]]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1501
    self should:[ (matcher search:' 123foo3 ') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1502
    self should:[ (matcher subexpression:1) = 'foo' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1503
    self should:[ (matcher search:'123foo') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1504
    self should:[ (matcher subexpression:1) = 'foo' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1505
    self should:[ (matcher search:'foo1b') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1506
    self should:[ (matcher subexpression:1) = 'foo' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1507
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1508
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1509
test060
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1510
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1511
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1512
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1513
	should:[ (matcher := self compileRegex:'[[:cntrl:]]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1514
    self should:[ (matcher search:' a 1234asdf') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1515
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1516
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1517
test061
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1518
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1519
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1520
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1521
	should:[ (matcher := self compileRegex:'[[:lower:]]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1522
    self should:[ (matcher search:'UPPERlower1234') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1523
    self should:[ (matcher subexpression:1) = 'lower' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1524
    self should:[ (matcher search:'lowerUPPER') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1525
    self should:[ (matcher subexpression:1) = 'lower' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1526
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1527
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1528
test062
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1529
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1530
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1531
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1532
	should:[ (matcher := self compileRegex:'[[:upper:]]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1533
    self should:[ (matcher search:'UPPERlower1234') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1534
    self should:[ (matcher subexpression:1) = 'UPPER' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1535
    self should:[ (matcher search:'lowerUPPER ') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1536
    self should:[ (matcher subexpression:1) = 'UPPER' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1537
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1538
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1539
test063
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1540
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1541
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1542
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1543
	should:[ (matcher := self compileRegex:'[[:space:]]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1544
    self should:[ (matcher search:'2  spaces') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1545
    self should:[ (matcher subexpression:1) = '  ' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1546
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1547
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1548
test064
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1549
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1550
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1551
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1552
	should:[ (matcher := self compileRegex:'[^[:space:]]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1553
    self should:[ (matcher search:'  word12!!@#$  ') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1554
    self should:[ (matcher subexpression:1) = 'word12!!@#$' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1555
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1556
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1557
test065
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1558
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1559
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1560
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1561
	should:[ (matcher := self compileRegex:'[[:graph:]]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1562
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1563
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1564
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1565
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1566
test066
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1567
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1568
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1569
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1570
	should:[ (matcher := self compileRegex:'[[:print:]]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1571
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1572
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1573
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1574
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1575
test067
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1576
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1577
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1578
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1579
	should:[ (matcher := self compileRegex:'[^[:punct:]]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1580
    self should:[ (matcher search:'!!hello,world!!') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1581
    self should:[ (matcher subexpression:1) = 'hello' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1582
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1583
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1584
test068
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1585
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1586
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1587
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1588
	should:[ (matcher := self compileRegex:'[[:xdigit:]]+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1589
    self should:[ (matcher search:'  x10FCD  ') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1590
    self should:[ (matcher subexpression:1) = '10FCD' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1591
    self should:[ (matcher search:' hgfedcba0123456789ABCDEFGH ') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1592
    self should:[ (matcher subexpression:1) = 'fedcba0123456789ABCDEF' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1593
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1594
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1595
test069
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1596
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1597
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1598
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1599
	should:[ (matcher := self compileRegex:'ab|cd' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1600
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1601
    self should:[ (matcher subexpression:1) = 'ab' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1602
    self should:[ (matcher search:'abcd') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1603
    self should:[ (matcher subexpression:1) = 'ab' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1604
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1605
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1606
test070
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1607
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1608
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1609
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1610
	should:[ (matcher := self compileRegex:'()ef' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1611
    self should:[ (matcher search:'def') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1612
    self should:[ (matcher subexpression:1) = 'ef' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1613
    self should:[ (matcher subexpression:2) = '' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1614
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1615
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1616
test071
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1617
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1618
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1619
    self should:[ (matcher := self compileRegex:'()*' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1620
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1621
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1622
test072
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1623
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1624
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1625
    self should:[ (matcher := self compileRegex:'*a' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1626
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1627
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1628
test073
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1629
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1630
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1631
    self should:[ (matcher := self compileRegex:'^*' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1632
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1633
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1634
test074
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1635
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1636
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1637
    self should:[ (matcher := self compileRegex:'$*' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1638
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1639
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1640
test075
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1641
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1642
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1643
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1644
	should:[ (matcher := self compileRegex:'(*)b' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1645
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1646
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1647
test076
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1648
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1649
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1650
    self should:[ (matcher := self compileRegex:'$b' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1651
    self should:[ (matcher search:'b') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1652
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1653
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1654
test077
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1655
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1656
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1657
    self should:[ (matcher := self compileRegex:'a\' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1658
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1659
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1660
test078
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1661
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1662
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1663
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1664
	should:[ (matcher := self compileRegex:'a\(b' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1665
    self should:[ (matcher search:'a(b') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1666
    self should:[ (matcher subexpression:1) = 'a(b' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1667
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1668
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1669
test079
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1670
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1671
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1672
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1673
	should:[ (matcher := self compileRegex:'a\(*b' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1674
    self should:[ (matcher search:'ab') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1675
    self should:[ (matcher subexpression:1) = 'ab' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1676
    self should:[ (matcher search:'a((b') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1677
    self should:[ (matcher subexpression:1) = 'a((b' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1678
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1679
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1680
test080
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1681
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1682
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1683
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1684
	should:[ (matcher := self compileRegex:'a\\b' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1685
    self should:[ (matcher search:'a\b') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1686
    self should:[ (matcher subexpression:1) = 'a\b' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1687
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1688
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1689
test081
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1690
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1691
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1692
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1693
	should:[ (matcher := self compileRegex:'abc)' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1694
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1695
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1696
test082
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1697
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1698
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1699
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1700
	should:[ (matcher := self compileRegex:'(abc' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1701
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1702
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1703
test083
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1704
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1705
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1706
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1707
	should:[ (matcher := self compileRegex:'((a))' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1708
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1709
    self should:[ (matcher subexpression:1) = 'a' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1710
    self should:[ (matcher subexpression:2) = 'a' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1711
    self should:[ (matcher subexpression:3) = 'a' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1712
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1713
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1714
test084
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1715
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1716
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1717
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1718
	should:[ (matcher := self compileRegex:'(a)b(c)' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1719
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1720
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1721
    self should:[ (matcher subexpression:2) = 'a' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1722
    self should:[ (matcher subexpression:3) = 'c' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1723
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1724
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1725
test085
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1726
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1727
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1728
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1729
	should:[ (matcher := self compileRegex:'a+b+c' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1730
    self should:[ (matcher search:'aabbabc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1731
    self should:[ (matcher subexpression:1) = 'abc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1732
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1733
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1734
test086
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1735
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1736
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1737
    self should:[ (matcher := self compileRegex:'a**' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1738
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1739
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1740
test087
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1741
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1742
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1743
    self should:[ (matcher := self compileRegex:'a*?' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1744
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1745
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1746
test088
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1747
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1748
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1749
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1750
	should:[ (matcher := self compileRegex:'(a*)*' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1751
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1752
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1753
test089
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1754
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1755
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1756
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1757
	should:[ (matcher := self compileRegex:'(a*)+' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1758
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1759
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1760
test090
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1761
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1762
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1763
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1764
	should:[ (matcher := self compileRegex:'(a|)*' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1765
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1766
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1767
test091
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1768
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1769
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1770
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1771
	should:[ (matcher := self compileRegex:'(a*|b)*' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1772
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1773
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1774
test092
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1775
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1776
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1777
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1778
	should:[ (matcher := self compileRegex:'(a+|b)*' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1779
    self should:[ (matcher search:'ab') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1780
    self should:[ (matcher subexpression:1) = 'ab' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1781
    self should:[ (matcher subexpression:2) = 'b' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1782
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1783
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1784
test093
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1785
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1786
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1787
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1788
	should:[ (matcher := self compileRegex:'(a+|b)+' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1789
    self should:[ (matcher search:'ab') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1790
    self should:[ (matcher subexpression:1) = 'ab' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1791
    self should:[ (matcher subexpression:2) = 'b' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1792
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1793
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1794
test094
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1795
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1796
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1797
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1798
	should:[ (matcher := self compileRegex:'(a+|b)?' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1799
    self should:[ (matcher search:'ab') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1800
    self should:[ (matcher subexpression:1) = 'a' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1801
    self should:[ (matcher subexpression:2) = 'a' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1802
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1803
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1804
test095
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1805
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1806
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1807
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1808
	should:[ (matcher := self compileRegex:'[^ab]*' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1809
    self should:[ (matcher search:'cde') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1810
    self should:[ (matcher subexpression:1) = 'cde' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1811
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1812
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1813
test096
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1814
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1815
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1816
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1817
	should:[ (matcher := self compileRegex:'(^)*' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1818
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1819
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1820
test097
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1821
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1822
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1823
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1824
	should:[ (matcher := self compileRegex:'(ab|)*' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1825
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1826
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1827
test098
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1828
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1829
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1830
    self should:[ (matcher := self compileRegex:')(' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1831
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1832
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1833
test099
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1834
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1835
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1836
    self should:[ (matcher := self compileRegex:'' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1837
    self should:[ (matcher search:'abc') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1838
    self should:[ (matcher subexpression:1) = '' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1839
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1840
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1841
test100
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1842
    | matcher |
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1843
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1844
    self should: [ (matcher := self compileRegex: 'abc' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1845
    self should: [ (matcher search: '') = false ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1846
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1847
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1848
     self new test100
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1849
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1850
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1851
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1852
test101
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1853
    | matcher |
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1854
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1855
    self should: [ (matcher := self compileRegex: 'a*' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1856
    self should: [ (matcher search: '') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1857
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1858
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1859
     self new test101
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1860
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1861
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1862
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1863
test102
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1864
    | matcher |
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1865
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1866
    self should: [ (matcher := self compileRegex: 'abcd' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1867
    self should: [ (matcher search: 'abcd') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1868
    self should: [ (matcher subexpression: 1) = 'abcd' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1869
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1870
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1871
     self new test102
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1872
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1873
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1874
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1875
test103
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1876
    | matcher |
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1877
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1878
    self should: [ (matcher := self compileRegex: 'a(bc)d' into:self matcherClass) ~= nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1879
    self should: [ (matcher search: 'abcd') = true ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1880
    self should: [ (matcher subexpression: 1) = 'abcd' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1881
    self should: [ (matcher subexpression: 2) = 'bc' ].
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1882
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1883
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1884
     self new test103
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1885
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1886
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1887
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1888
test104
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1889
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1890
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1891
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1892
	self should: [ (matcher := self compileRegex: '([abc])*d' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1893
	self should: [ (matcher search: 'abbbcd') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1894
	self should: [ (matcher subexpression: 1) = 'abbbcd' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1895
	self should: [ (matcher subexpression: 2) = 'c' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1896
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1897
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1898
test105
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1899
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1900
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1901
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1902
	self should: [ (matcher := self compileRegex: '([abc])*bcd' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1903
	self should: [ (matcher search: 'abcd') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1904
	self should: [ (matcher subexpression: 1) = 'abcd' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1905
	self should: [ (matcher subexpression: 2) = 'a' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1906
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1907
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1908
test106
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1909
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1910
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1911
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1912
	self should: [ (matcher := self compileRegex: 'a|b|c|d|e' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1913
	self should: [ (matcher search: 'e') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1914
	self should: [ (matcher subexpression: 1) = 'e' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1915
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1916
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1917
test107
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1918
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1919
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1920
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1921
	self should: [ (matcher := self compileRegex: '(a|b|c|d|e)f' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1922
	self should: [ (matcher search: 'ef') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1923
	self should: [ (matcher subexpression: 1) = 'ef' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1924
	self should: [ (matcher subexpression: 2) = 'e' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1925
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1926
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1927
test108
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1928
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1929
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1930
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1931
	self should: [ (matcher := self compileRegex: 'abcd*efg' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1932
	self should: [ (matcher search: 'abcdefg') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1933
	self should: [ (matcher subexpression: 1) = 'abcdefg' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1934
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1935
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1936
test109
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1937
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1938
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1939
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1940
	self should: [ (matcher := self compileRegex: 'ab*' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1941
	self should: [ (matcher search: 'xabyabbbz') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1942
	self should: [ (matcher subexpression: 1) = 'ab' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1943
	self should: [ (matcher search: 'xayabbbz') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1944
	self should: [ (matcher subexpression: 1) = 'a' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1945
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1946
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1947
test110
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1948
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1949
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1950
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1951
	self should: [ (matcher := self compileRegex: '(ab|cd)e' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1952
	self should: [ (matcher search: 'abcde') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1953
	self should: [ (matcher subexpression: 1) = 'cde' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1954
	self should: [ (matcher subexpression: 2) = 'cd' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1955
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1956
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1957
test111
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1958
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1959
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1960
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1961
	self should: [ (matcher := self compileRegex: '[abhgefdc]ij' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1962
	self should: [ (matcher search: 'hij') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1963
	self should: [ (matcher subexpression: 1) = 'hij' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1964
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1965
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1966
test112
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1967
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1968
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1969
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1970
	self should: [ (matcher := self compileRegex: '^(ab|cd)e' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1971
	self should: [ (matcher search: 'abcde') = false ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1972
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1973
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1974
test113
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1975
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1976
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1977
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1978
	self should: [ (matcher := self compileRegex: '(abc|)def' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1979
	self should: [ (matcher search: 'abcdef') = true ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1980
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1981
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1982
test114
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1983
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1984
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1985
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1986
	self should: [ (matcher := self compileRegex: '(a|b)c*d' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1987
	self should: [ (matcher search: 'abcd') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1988
	self should: [ (matcher subexpression: 1) = 'bcd' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1989
	self should: [ (matcher subexpression: 2) = 'b' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1990
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1991
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  1992
test115
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1993
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1994
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1995
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  1996
	self should: [ (matcher := self compileRegex: '(ab|ab*)bc' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1997
	self should: [ (matcher search: 'abc') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1998
	self should: [ (matcher subexpression: 1) = 'abc' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  1999
	self should: [ (matcher subexpression: 2) = 'a' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2000
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2001
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2002
test116
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2003
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2004
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2005
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2006
	self should: [ (matcher := self compileRegex: 'a([bc]*)c*' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2007
	self should: [ (matcher search: 'abc') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2008
	self should: [ (matcher subexpression: 1) = 'abc' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2009
	self should: [ (matcher subexpression: 2) = 'bc' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2010
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2011
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2012
test117
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2013
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2014
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2015
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2016
	self should: [ (matcher := self compileRegex: 'a([bc]*)(c*d)' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2017
	self should: [ (matcher search: 'abcd') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2018
	self should: [ (matcher subexpression: 1) = 'abcd' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2019
	self should: [ (matcher subexpression: 2) = 'bc' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2020
	self should: [ (matcher subexpression: 3) = 'd' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2021
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2022
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2023
test118
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2024
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2025
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2026
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2027
	self should: [ (matcher := self compileRegex: 'a([bc]+)(c*d)' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2028
	self should: [ (matcher search: 'abcd') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2029
	self should: [ (matcher subexpression: 1) = 'abcd' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2030
	self should: [ (matcher subexpression: 2) = 'bc' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2031
	self should: [ (matcher subexpression: 3) = 'd' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2032
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2033
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2034
test119
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2035
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2036
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2037
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2038
	self should: [ (matcher := self compileRegex: 'a([bc]*)(c+d)' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2039
	self should: [ (matcher search: 'abcd') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2040
	self should: [ (matcher subexpression: 1) = 'abcd' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2041
	self should: [ (matcher subexpression: 2) = 'b' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2042
	self should: [ (matcher subexpression: 3) = 'cd' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2043
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2044
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2045
test120
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2046
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2047
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2048
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2049
	self should: [ (matcher := self compileRegex: 'a[bcd]*dcdcde' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2050
	self should: [ (matcher search: 'adcdcde') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2051
	self should: [ (matcher subexpression: 1) = 'adcdcde' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2052
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2053
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2054
test121
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2055
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2056
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2057
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2058
	self should: [ (matcher := self compileRegex: 'a[bcd]+dcdcde' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2059
	self should: [ (matcher search: 'adcdcde') = false ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2060
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2061
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2062
test122
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2063
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2064
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2065
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2066
	self should: [ (matcher := self compileRegex: '(ab|a)b*c' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2067
	self should: [ (matcher search: 'abc') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2068
	self should: [ (matcher subexpression: 1) = 'abc' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2069
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2070
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2071
test123
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2072
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2073
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2074
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2075
	self should: [ (matcher := self compileRegex: '((a)(b)c)(d)' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2076
	self should: [ (matcher search: 'abcd') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2077
	self should: [ (matcher subexpression: 1) = 'abcd' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2078
	self should: [ (matcher subexpression: 3) = 'a' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2079
	self should: [ (matcher subexpression: 4) = 'b' ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2080
	self should: [ (matcher subexpression: 5) = 'd' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2081
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2082
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2083
test124
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2084
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2085
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2086
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2087
	self should: [ (matcher := self compileRegex: '[ -~]*' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2088
	self should: [ (matcher search: 'abc') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2089
	self should: [ (matcher subexpression: 1) = 'abc' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2090
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2091
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2092
test125
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2093
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2094
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2095
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2096
	self should: [ (matcher := self compileRegex: '[ -~ -~]*' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2097
	self should: [ (matcher search: 'abc') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2098
	self should: [ (matcher subexpression: 1) = 'abc' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2099
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2100
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2101
test126
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2102
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2103
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2104
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2105
	self should: [ (matcher := self compileRegex: '[ -~ -~ -~]*' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2106
	self should: [ (matcher search: 'abc') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2107
	self should: [ (matcher subexpression: 1) = 'abc' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2108
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2109
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2110
test127
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2111
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2112
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2113
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2114
	self should: [ (matcher := self compileRegex: '[ -~ -~ -~ -~]*' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2115
	self should: [ (matcher search: 'abc') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2116
	self should: [ (matcher subexpression: 1) = 'abc' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2117
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2118
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2119
test128
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2120
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2121
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2122
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2123
	self should: [ (matcher := self compileRegex: '[ -~ -~ -~ -~ -~]*' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2124
	self should: [ (matcher search: 'abc') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2125
	self should: [ (matcher subexpression: 1) = 'abc' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2126
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2127
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2128
test129
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2129
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2130
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2131
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2132
	self should: [ (matcher := self compileRegex: '[ -~ -~ -~ -~ -~ -~]*' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2133
	self should: [ (matcher search: 'abc') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2134
	self should: [ (matcher subexpression: 1) = 'abc' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2135
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2136
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2137
test130
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2138
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2139
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2140
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2141
	self should: [ (matcher := self compileRegex: '[ -~ -~ -~ -~ -~ -~ -~]*' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2142
	self should: [ (matcher search: 'abc') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2143
	self should: [ (matcher subexpression: 1) = 'abc' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2144
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2145
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2146
test131
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2147
	| matcher |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2148
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2149
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2150
	self should: [ (matcher := self compileRegex: '[a-zA-Z_][a-zA-Z0-9_]*' into:self matcherClass) ~= nil ].
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2151
	self should: [ (matcher search: 'alpha') = true ].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2152
	self should: [ (matcher subexpression: 1) = 'alpha' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2153
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2154
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2155
test132
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2156
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2157
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2158
        self should: [ (matcher := self compileRegex: '^a(bc+|b[eh])g|.h$' into:self matcherClass) ~= nil ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2159
        self should: [ (matcher search: 'abh') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2160
        self should: [ (matcher subexpression: 1) = 'bh' ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2161
        self should: [ (matcher subexpression: 2) = '' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2162
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2163
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2164
test133
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2165
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2166
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2167
        self should: [ (matcher := self compileRegex: '(bc+d$|ef*g.|h?i(j|k))' into:self matcherClass) ~= nil ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2168
        self should: [ (matcher search: 'effgz') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2169
        self should: [ (matcher subexpression: 1) = 'effgz' ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2170
        self should: [ (matcher subexpression: 2) = 'effgz' ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2171
        self should: [ (matcher subexpression: 3) = '' ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2172
        self should: [ (matcher search: 'ij') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2173
        self should: [ (matcher subexpression: 1) = 'ij' ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2174
        self should: [ (matcher subexpression: 2) = 'ij' ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2175
        self should: [ (matcher subexpression: 3) = 'j' ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2176
        self should: [ (matcher search: 'effg') = false ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2177
        self should: [ (matcher search: 'bcdd') = false ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2178
        self should: [ (matcher search: 'reffgz') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2179
        self should: [ (matcher subexpression: 1) = 'effgz' ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2180
        self should: [ (matcher subexpression: 2) = 'effgz' ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2181
        self should: [ (matcher subexpression: 3) = '' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2182
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2183
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2184
test134
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2185
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2186
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2187
        self should: [ (matcher := self compileRegex: '(((((((((a)))))))))' into:self matcherClass) ~= nil ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2188
        self should: [ (matcher search: 'a') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2189
        self should: [ (matcher subexpression: 1) = 'a' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2190
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2191
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2192
test135
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2193
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2194
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2195
        self should: [ (matcher := self compileRegex: 'multiple words of text' into:self matcherClass) ~= nil ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2196
        self should: [ (matcher search: 'uh-uh') = false ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2197
        self should: [ (matcher search: 'multiple words of text, yeah') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2198
        self should: [ (matcher subexpression: 1) = 'multiple words of text' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2199
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2200
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2201
test136
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2202
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2203
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2204
        self should: [ (matcher := self compileRegex: '(.*)c(.*)' into:self matcherClass) ~= nil ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2205
        self should: [ (matcher search: 'abcde') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2206
        self should: [ (matcher subexpression: 1) = 'abcde' ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2207
        self should: [ (matcher subexpression: 2) = 'ab' ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2208
        self should: [ (matcher subexpression: 3) = 'de' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2209
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2210
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2211
test137
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2212
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2213
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2214
        self should: [ (matcher := self compileRegex: '\((.*), (.*)\)' into:self matcherClass) ~= nil ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2215
        self should: [ (matcher search: '(a, b)') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2216
        self should: [ (matcher subexpression: 2) = 'a' ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2217
        self should: [ (matcher subexpression: 3) = 'b' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2218
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2219
2323
4c3075c3594a #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2265
diff changeset
  2220
test138
4c3075c3594a #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2265
diff changeset
  2221
        | matcher |
4c3075c3594a #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2265
diff changeset
  2222
4c3075c3594a #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2265
diff changeset
  2223
        matcher := 'aa*' asRegex.
4c3075c3594a #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2265
diff changeset
  2224
        self assert:(matcher matches:'a').
4c3075c3594a #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2265
diff changeset
  2225
        self assert:(matcher matches:'aa').
4c3075c3594a #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2265
diff changeset
  2226
        self assert:(matcher matches:'aaa').
4c3075c3594a #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2265
diff changeset
  2227
        self deny:(matcher matches:'ab').
4c3075c3594a #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2265
diff changeset
  2228
        self deny:(matcher matches:'b').
4c3075c3594a #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2265
diff changeset
  2229
4c3075c3594a #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2265
diff changeset
  2230
    "Created: / 15-06-2019 / 09:44:56 / Claus Gittinger"
4c3075c3594a #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2265
diff changeset
  2231
!
4c3075c3594a #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2265
diff changeset
  2232
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2233
test199
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2234
    |matcher|
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2235
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2236
    self
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2237
        should:[ (matcher := self compileRegex:'a{}b' into:self matcherClass) = nil ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2238
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2239
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2240
test200
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2241
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2242
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2243
        self should: [ (matcher := self compileRegex: '\d{2,5}' into:self matcherClass) ~= nil ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2244
        self should: [ (matcher search: '1') = false ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2245
        self should: [ (matcher search: '12') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2246
        self should: [ (matcher search: '123') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2247
        self should: [ (matcher search: '1234') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2248
        self should: [ (matcher search: '12356') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2249
        self should: [ (matcher search: '123456') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2250
        self should: [ (matcher subexpression: 1) = '12345' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2251
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2252
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2253
test201
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2254
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2255
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2256
        self should: [ (matcher := self compileRegex: '[0-9]{2,5}' into:self matcherClass) ~= nil ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2257
        self should: [ (matcher search: '1') = false ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2258
        self should: [ (matcher search: '12') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2259
        self should: [ (matcher search: '123') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2260
        self should: [ (matcher search: '1234') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2261
        self should: [ (matcher search: '12356') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2262
        self should: [ (matcher search: '123456') = true ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2263
        self should: [ (matcher subexpression: 1) = '12345' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2264
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2265
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2266
test202
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2267
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2268
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2269
        self assert: ( (matcher := self compileRegex: '([0-9]{2,4}\s){2}' into:self matcherClass) ~= nil ).
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2270
        self deny:   ( matcher matches: '1 1 ').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2271
        self assert: ( matcher matches: '12 12 ' ).
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2272
        self assert: ( matcher matches: '12 123 ' ).
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2273
        self assert: ( matcher matches: '123 12 ' ).
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2274
        self assert: ( matcher matches: '123 123 ' ).
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2275
        self assert: ( matcher matches: '1234 12 ' ).
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2276
        self deny:   ( matcher matches: '123456 12 ' ).
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2277
        self deny:   ( matcher matches: '12356 12 ' ).
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2278
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2279
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2280
testProtocol
1869
868022ef6bf1 #FEATURE by sr
sr
parents: 1868
diff changeset
  2281
        | matcher |
868022ef6bf1 #FEATURE by sr
sr
parents: 1868
diff changeset
  2282
868022ef6bf1 #FEATURE by sr
sr
parents: 1868
diff changeset
  2283
        self should: [ (matcher := Regex::RxMatcher forString: '\w+') ~= nil ].
868022ef6bf1 #FEATURE by sr
sr
parents: 1868
diff changeset
  2284
        self should: [ (matcher matchesIn: 'now is the time') asArray = #('now' 'is' 'the' 'time') ].
868022ef6bf1 #FEATURE by sr
sr
parents: 1868
diff changeset
  2285
        self should: [ (matcher copy: 'now is  the   time    ' translatingMatchesUsing: [:s | s reverse]) = 'won si  eht   emit    ' ].
868022ef6bf1 #FEATURE by sr
sr
parents: 1868
diff changeset
  2286
868022ef6bf1 #FEATURE by sr
sr
parents: 1868
diff changeset
  2287
        "See that the match context is preserved while copying stuff between matches:"
868022ef6bf1 #FEATURE by sr
sr
parents: 1868
diff changeset
  2288
868022ef6bf1 #FEATURE by sr
sr
parents: 1868
diff changeset
  2289
        self should: [ ((Regex::RxMatcher forString: '\<\d\D+')
868022ef6bf1 #FEATURE by sr
sr
parents: 1868
diff changeset
  2290
                                copy: '9aaa1bbb 8ccc'
868022ef6bf1 #FEATURE by sr
sr
parents: 1868
diff changeset
  2291
                                replacingMatchesWith: 'foo') = 'foo1bbb foo' ].
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2292
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2293
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2294
testSubExpression001
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2295
     |matcher|
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2296
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2297
     matcher := Regex::RxMatcher new
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2298
                    initializeFromString:'(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[ ]+(:isDigit::isDigit:?)[ ]*,[ ]*19(:isDigit::isDigit:)'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2299
                    ignoreCase:false.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2300
     self assert:(matcher matches:'Aug 6, 1996').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2301
     self assert:(matcher subexpression:2) = 'Aug'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2302
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2303
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2304
testTermination001
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2305
    self assert:(('' allRegexMatches:'\S*') asArray = #('')).
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2306
    self assert:(('t' allRegexMatches:'\S*') asArray = #('t' '')).
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2307
    self assert:(('the' allRegexMatches:'\S*') asArray = #('the' '')).
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2308
    self assert:(('the time' allRegexMatches:'\S*') asArray = #('the' 'time' '')).
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2309
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2310
    self assert:(('the   time' allRegexMatches:'\S*') size >= 2).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2311
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2312
    "Created: / 04-05-2017 / 19:45:04 / mawalch"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2313
    "Modified (format): / 07-06-2017 / 10:06:59 / mawalch"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2314
! !
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2315
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2316
!RxTests methodsFor:'test suite - old'!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2317
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2318
testCadrMatching
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2319
    "self debug: #testCadrMatching"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2320
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2321
    "A bit more complex example is the following expression, matching the
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2322
name of any of the Lisp-style `car', `cdr', `caar', `cadr',
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2323
... functions:"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2324
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2325
    self assert: ( 'car' matchesRegex: 'c(a|d)+r').
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2326
    self assert: ( 'cdr' matchesRegex: 'c(a|d)+r').
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2327
    self assert: ( 'caar' matchesRegex: 'c(a|d)+r').
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2328
    self assert: ( 'cadr' matchesRegex: 'c(a|d)+r').
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2329
    self assert: ( 'caddar' matchesRegex: 'c(a|d)+r').
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2330
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2331
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2332
testCaseInsensitive
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2333
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2334
        matcher := self matcherClass forString: 'the quick brown fox' ignoreCase: true.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2335
        self 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2336
                assert: (matcher search: 'the quick brown fox');
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2337
                assert: (matcher search: 'The quick brown FOX');
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2338
                assert: (matcher search: 'What do you know about the quick brown fox?');
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2339
                assert: (matcher search: 'What do you know about THE QUICK BROWN FOX?')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2340
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2341
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2342
testCaseSensitive
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2343
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2344
        matcher := self matcherClass forString: 'the quick brown fox' ignoreCase: false.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2345
        self assert: (matcher search: 'the quick brown fox').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2346
        self deny: (matcher search: 'The quick brown FOX').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2347
        self assert: (matcher search: 'What do you know about the quick brown fox?').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2348
        self deny: (matcher search: 'What do you know about THE QUICK BROWN FOX?')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2349
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2350
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2351
testCharacterSet
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2352
    "self debug: #testCharacterSet"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2353
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2354
    "So far, we have used only characters as the 'smallest' components of
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2355
regular expressions. There are other, more `interesting', components.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2356
A character set is a string of characters enclosed in square
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2357
brackets. It matches any single character if it appears between the
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2358
brackets. For example, `[01]' matches either `0' or `1':"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2359
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2360
    self assert: ('0' matchesRegex: '[01]').
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2361
    self deny: ('3' matchesRegex: '[01]').
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2362
    self deny: ('11' matchesRegex: '[01]'). "-- false: a set matches only one character"
2340
e5fc1b9034b6 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2323
diff changeset
  2363
    self assert: ('[01]' asRegex hasMatchesIn:'11' ). "-- true"
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2364
    self deny: ('01' matchesRegex: '[01]').
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2365
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2366
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2367
testCharacterSetBinaryNumber
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2368
    "self debug: #testCharacterSetBinaryNumber"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2369
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2370
    "Using plus operator, we can build the following binary number
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2371
recognizer:"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2372
    self assert: ('10010100' matchesRegex: '[01]+').
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2373
    self deny: ('10001210' matchesRegex: '[01]+')
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2374
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2375
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2376
testCharacterSetInversion
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2377
    "self debug: #testCharacterSetInversion"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2378
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2379
    "If the first character after the opening bracket is `^', the set is
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2380
inverted: it matches any single character *not* appearing between the
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2381
brackets:"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2382
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2383
    self deny: ('0' matchesRegex: '[^01]').
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2384
    "0 appears in 01 so there is no match"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2385
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2386
    self assert: ('3' matchesRegex: '[^01]').
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2387
    "3 is not in 01 so it matches"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2388
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2389
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2390
    self deny: ('30' matchesRegex: '[^01]').
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2391
    self deny: ('33333333333333333333333330' matchesRegex: '[^01]').
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2392
    "there is one zero so it does not match"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2393
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2394
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2395
testCharacterSetRange
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2396
    "self debug: #testCharacterSetRange"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2397
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2398
    "For convenience, a set may include ranges: pairs of characters
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2399
separated with `-'. This is equivalent to listing all characters
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2400
between them: `[0-9]' is the same as `[0123456789]'. "
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2401
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2402
    self assert: ('0' matchesRegex: '[0-9]').
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2403
    self assert: ('9' matchesRegex: '[0-9]').
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2404
    self deny: ('a' matchesRegex: '[0-9]').
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2405
    self deny: ('01' matchesRegex: '[0-9]').
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2406
    self assert: ('01442128629839374565' matchesRegex: '[0-9]+').
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2407
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2408
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2409
testCopyReplacingMatches
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2410
        "See that the match context is preserved while copying stuff between matches:"
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2411
        
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2412
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2413
        matcher := self matcherClass forString: '\<\d\D+'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2414
        self 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2415
                assert: (matcher copy: '9aaa1bbb 8ccc' replacingMatchesWith: 'foo') equals: 'foo1bbb foo'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2416
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2417
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2418
testCopyTranslatingMatches
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2419
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2420
        matcher := self matcherClass forString: '\w+'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2421
        self assert: (matcher copy: 'now is  the   time    ' translatingMatchesUsing: [ :each | each reversed ]) equals: 'won si  eht   emit    '
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2422
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2423
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2424
testEmptyStringAtBeginningOfLine
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2425
        | matcher result |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2426
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2427
        matcher := self matcherClass forString: '^'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2428
        result := (matcher copy: 'foo1 bar1' , String cr , 'foo2 bar2' replacingMatchesWith: '*').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2429
        self
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2430
                assert: result = ('*foo1 bar1' , String cr , '*foo2 bar2')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2431
                description: 'An empty string at the beginning of a line'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2432
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2433
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2434
testEmptyStringAtBeginningOfWord
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2435
        | matcher result |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2436
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2437
        matcher := self matcherClass forString: '\<'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2438
        result := (matcher copy: 'foo bar' replacingMatchesWith: '*').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2439
        self
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2440
                assert: result = '*foo *bar'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2441
                description: 'An empty string at the beginning of a word'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2442
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2443
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2444
testEmptyStringAtEndOfLine
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2445
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2446
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2447
        matcher := self matcherClass forString: '$'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2448
        self
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2449
                assert: (matcher copy: 'foo1 bar1' , String cr , 'foo2 bar2' replacingMatchesWith: '*')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2450
                        = ('foo1 bar1*', String cr , 'foo2 bar2*')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2451
                description: 'An empty string at the end of a line'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2452
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2453
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2454
testEmptyStringAtEndOfWord
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2455
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2456
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2457
        matcher := self matcherClass forString: '\>'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2458
        self
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2459
                assert: (matcher copy: 'foo bar' replacingMatchesWith: '*')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2460
                        = 'foo* bar*'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2461
                description: 'An empty string at the end of a word'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2462
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2463
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2464
testEmptyStringAtWordBoundary
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2465
        | matcher result |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2466
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2467
        matcher := self matcherClass forString: '\b'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2468
        result := (matcher copy: 'foo bar' replacingMatchesWith: '*').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2469
        self
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2470
                assert: result = '*foo* *bar*'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2471
                description: 'An empty string at a word boundary'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2472
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2473
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2474
testEmptyStringNotAtWordBoundary
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2475
        | matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2476
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2477
        matcher := self matcherClass forString: '\B'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2478
        self
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2479
                assert: (matcher copy: 'foo bar' replacingMatchesWith: '*')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2480
                        = 'f*o*o b*a*r'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2481
                description: 'An empty string not at a word boundary'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2482
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2483
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2484
testMatchesInwW
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2485
    "self debug: #testMatchesInwW"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2486
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2487
    "1. Backslash escapes similar to those in Perl are allowed in patterns:
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2488
    \w  any word constituent character (equivalent to [a-zA-Z0-9_])
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2489
    \W  any character but a word constituent (equivalent to [^a-xA-Z0-9_]"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2490
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2491
    self assert: ('\w+' asRegex matchesIn: 'now is the time') asArray = #('now' 'is' 'the' 'time').
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2492
    self assert: ('\W+' asRegex matchesIn: 'now is the time') asArray = #(' ' ' ' ' ').
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2493
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2494
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2495
    "/ self halt.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2496
    "why do we get that"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2497
    self assert: ('\w' asRegex matchesIn: 'now') asArray = #('n' 'o' 'w').
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2498
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2499
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2500
testOrOperator
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2501
    "self debug: #testOrOperator"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2502
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2503
    "The last operator is `|' meaning `or'. It is placed between two
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2504
regular expressions, and the resulting expression matches if one of
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2505
the expressions matches. It has the lowest possible precedence (lower
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2506
than sequencing). For example, `ab*|ba*' means `a followed by any
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2507
number of b's, or b followed by any number of a's':"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2508
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2509
    self assert: ('abb' matchesRegex: 'ab*|ba*').
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2510
    self assert: ('baa' matchesRegex: 'ab*|ba*').
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2511
    self deny: ('baab' matchesRegex: 'ab*|ba*').
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2512
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2513
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2514
    "It is possible to write an expression matching an empty string, for
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2515
example: `a|'.  However, it is an error to apply `*', `+', or `?' to
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2516
such expression: `(a|)*' is an invalid expression."
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2517
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2518
    self should: ['(a|)*' asRegex] raise: Error.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2519
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2520
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2521
testQuotingOperators
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2522
    "self debug: #testQuotingOperators"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2523
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2524
    "As we have seen, characters `*', `+', `?', `(', and `)' have special
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2525
meaning in regular expressions. If one of them is to be used
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2526
literally, it should be quoted: preceded with a backslash. (Thus,
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2527
backslash is also special character, and needs to be quoted for a
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2528
literal match--as well as any other special character described
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2529
further)."
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2530
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2531
    self deny: ('ab*' matchesRegex: 'ab*'). "   -- false: star in the right string is special"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2532
    self assert: ('ab*' matchesRegex: 'ab\*').
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2533
    self assert: ('a\c' matchesRegex: 'a\\c').
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2534
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2535
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2536
testSimpleMatchesRegex
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2537
    "self debug: #testSimpleMatchesRegex"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2538
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2539
    "The simplest regular expression is a single character.  It matches
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2540
exactly that character. A sequence of characters matches a string with
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2541
exactly the same sequence of characters:"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2542
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2543
    self assert: ('a' matchesRegex: 'a').
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2544
    self assert: ('foobar' matchesRegex: 'foobar')  .
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2545
    self deny: ('blorple' matchesRegex: 'foobar')
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2546
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2547
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2548
testSimpleMatchesRegexWithStar
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2549
    "self debug: #testSimpleMatchesRegexWithStar"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2550
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2551
    "The above paragraph in testSimpleMatchesRegex introduced a primitive regular expression (a
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2552
character), and an operator (sequencing). Operators are applied to
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2553
regular expressions to produce more complex regular expressions.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2554
Sequencing (placing expressions one after another) as an operator is,
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2555
in a certain sense, `invisible'--yet it is arguably the most common.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2556
A more `visible' operator is Kleene closure, more often simply
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2557
referred to as `a star'.  A regular expression followed by an asterisk
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2558
matches any number (including 0) of matches of the original
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2559
expression. For example:"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2560
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2561
    self assert: ('ab' matchesRegex: 'a*b').
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2562
    self assert: ('aaaaab' matchesRegex: 'a*b').
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2563
    self assert: ('b' matchesRegex: 'a*b').
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2564
    self deny: ('aac' matchesRegex: 'a*b').
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2565
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2566
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2567
testSpecialCharacterInSetRange
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2568
    "self debug: #testSpecialCharacterInSetRange"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2569
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2570
    "Special characters within a set are `^', `-', and `]' that closes the
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2571
set. Below are the examples of how to literally use them in a set:
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2572
    [01^]       -- put the caret anywhere except the beginning
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2573
    [01-]       -- put the dash as the last character
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2574
    []01]       -- put the closing bracket as the first character
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2575
    [^]01]          (thus, empty and universal sets cannot be specified)"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2576
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2577
    self assert: ('0' matchesRegex: '[01^]').
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2578
    self assert: ('1' matchesRegex: '[01^]').
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2579
    self assert: ('^' matchesRegex: '[01^]').
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2580
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2581
    self deny: ('0' matchesRegex: '[^01]').
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2582
    self deny: ('1' matchesRegex: '[^01]').
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2583
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2584
    "[^abc] means that everything except abc is matche"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2585
    self assert: ('^' matchesRegex: '[^01]').
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2586
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2587
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2588
testSplitJoinBoundaryCases
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2589
        "Empty splitter, joiner or sequence."
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2590
        self assert: ('' join: ('.' asRegex split: '')) equals: ''. "NB: Doesn't work with empty regex"
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2591
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2592
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2593
testSplitStringOnRegex
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2594
        self assert: ('foobar' splitOn: '[aeiou]+' asRegex)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2595
                equals: #('f' 'b' 'r') asOrderedCollection
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2596
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2597
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2598
testStarPlusQuestionMark
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2599
    "self debug: #testStarPlusQuestionMark"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2600
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2601
    "Two other operators similar to `*' are `+' and `?'. `+' (positive
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2602
closure, or simply `plus') matches one or more occurrences of the
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2603
original expression. `?' (`optional') matches zero or one, but never
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2604
more, occurrences."
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2605
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2606
    self assert: ('ac' matchesRegex: 'ab*c').
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2607
    self deny: ('ac' matchesRegex: 'ab+c').         "-- false: need at least one b"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2608
    self assert: ('abbc' matchesRegex: 'ab+c').
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2609
    self assert: ('abbbbbbc' matchesRegex: 'ab+c').
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2610
    self deny: ('abbc' matchesRegex: 'ab?c')        "-- false: too many b's"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2611
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2612
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2613
testStarPrecedence
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2614
    "self debug: #testStarPrecedence"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2615
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2616
    "A star's precedence is higher than that of sequencing. A star applies
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2617
to the shortest possible subexpression that precedes it. For example,
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2618
'ab*' means `a followed by zero or more occurrences of b', not `zero
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2619
or more occurrences of ab':"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2620
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2621
    self assert: ('abbb' matchesRegex: 'ab*').
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2622
    self deny: ('abab' matchesRegex: 'ab*').
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2623
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2624
    "To actually make a regex matching `zero or more occurrences of ab',
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2625
`ab' is enclosed in parentheses:"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2626
    self assert: ('abab' matchesRegex: '(ab)*').
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2627
    self deny: ('abcab' matchesRegex: '(ab)*')
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2628
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2629
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2630
testTranslatingMatchesUsing
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2631
    "self debug: #testTranslatingMatchesUsing"
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2632
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2633
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2634
    self assert: ('\<t\w+' asRegexIgnoringCase
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2635
	copy: 'now is the Time'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2636
	translatingMatchesUsing: [:match | match asUppercase]) = 'now is THE TIME'.
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2637
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2638
    "the regular expression matches words beginning with either an uppercase or a lowercase T"
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2639
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2640
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2641
xtest1
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2642
	self runTestsForMatcher: Regex::RxMatcher
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2643
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2644
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2645
xtest: aMatcher with: testString expect: expected withSubexpressions: subexpr
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2646
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2647
	| got |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2648
	Transcript tab;
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2649
		show: 'Matching: ';
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2650
		show: testString printString;
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2651
		show: ' expected: ';
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2652
		show: expected printString;
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2653
		show: ' got: '.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2654
	got := aMatcher search: testString.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2655
	Transcript show: got printString.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2656
	got ~= expected
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2657
		ifTrue: [^false].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2658
	(subexpr notNil and: [aMatcher supportsSubexpressions])
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2659
		ifFalse:
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2660
			[^true]
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2661
		ifTrue:
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2662
			[ | isOK |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2663
			isOK := true.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2664
			1 to: subexpr size by: 2 do: [: i |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2665
				| sub subExpect subGot |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2666
				sub := subexpr at: i.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2667
				subExpect := subexpr at: i + 1.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2668
				subGot := aMatcher subexpression: sub.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2669
				Transcript cr; tab; tab;
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2670
					show: 'Subexpression: ', sub printString;
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2671
					show: ' expected: ';
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2672
					show: subExpect printString;
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2673
					show: ' got: ';
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2674
					show: subGot printString.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2675
				subExpect ~= subGot
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2676
					ifTrue:
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2677
					[Transcript show: ' -- MISMATCH'.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2678
					isOK := false]].
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2679
			^isOK]
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2680
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2681
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2682
xtestSuite
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2683
    "Answer an array of test clauses. Each clause is an array with a regex source
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2684
     string followed by sequence of 3-tuples. Each three-element
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2685
     group is one test to try against the regex, and includes:
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2686
	 1) test string;
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2687
	 2) expected result;
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2688
	 3) expected subexpression as an array of (index, substring), or nil.
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2689
     The test suite is based on the one in Henry Spencer's regexp.c package."
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  2690
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2691
	^#(
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2692
		('abc'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2693
			'abc' true (1 'abc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2694
			'xbc' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2695
			'axc' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2696
			'abx' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2697
			'xabcy' true (1 'abc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2698
			'ababc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2699
		('ab*c'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2700
			'abc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2701
		('ab*bc'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2702
			'abc' true (1 'abc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2703
			'abbc' true (1 'abbc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2704
			'abbbbc' true (1 'abbbbc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2705
		('ab+bc'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2706
			'abbc' true (1 'abbc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2707
			'abc' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2708
			'abq' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2709
			'abbbbc' true (1 'abbbbc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2710
		('ab?bc'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2711
			'abbc' true (1 'abbc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2712
			'abc' true (1 'abc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2713
			'abbbbc' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2714
			'abc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2715
		('ab?c'                         "added 08-Jan-2004 by cg "
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2716
			'abc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2717
		('^abc$'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2718
			'abc' true (1 'abc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2719
			'abcc' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2720
			'aabc' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2721
		('^abc'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2722
			'abcc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2723
		('abc$'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2724
			'aabc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2725
		('^'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2726
			'abc' true nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2727
		('$'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2728
			'abc' true nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2729
		('a.c'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2730
			'abc' true (1 'abc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2731
			'axc' true (1 'axc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2732
		('a.*c'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2733
			'axyzc' true (1 'axyzc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2734
			'axy zc' true (1 'axy zc') "testing that a dot matches a space"
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2735
			'axy
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2736
						 zc' false nil "testing that a dot does not match a newline"
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2737
			'axyzd' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2738
		('.a.*'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2739
			'1234abc' true (1 '4abc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2740
			'abcd' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2741
		('a\w+c'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2742
			' abbbbc ' true (1 'abbbbc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2743
			'abb bc' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2744
		('\w+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2745
			'       foobar  quux' true (1 'foobar')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2746
			'       ~!!@#$%^&*()-+=\|/?.>,<' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2747
		('a\W+c'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2748
			'a   c' true (1 'a   c')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2749
			'a bc' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2750
		('\W+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2751
			'foo!!@#$bar' true (1 '!!@#$')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2752
			'foobar' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2753
		('a\s*c'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2754
			'a   c' true (1 'a   c')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2755
			'a bc' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2756
		('\s+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2757
			'abc3457 sd' true (1 ' ')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2758
			'1234$^*^&asdfb' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2759
		('a\S*c'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2760
			'aqwertyc' true (1 'aqwertyc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2761
			'ab c' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2762
		('\S+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2763
			'       asdf            ' true (1 'asdf')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2764
			'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2765
				' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2766
		('a\d+c'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2767
			'a0123456789c' true (1 'a0123456789c')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2768
			'a12b34c' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2769
		('\d+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2770
			'foo@#$%123ASD #$$%^&' true (1 '123')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2771
			'foo!!@#$asdfl;' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2772
		('a\D+c'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2773
			'aqwertyc' true (1 'aqwertyc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2774
			'aqw6ertc' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2775
		('\D+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2776
			'1234 abc 456' true (1 ' abc ')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2777
			'1234567890' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2778
		('(f|o)+\b'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2779
			'foo' true (1 'foo')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2780
			' foo ' true (1 'foo'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2781
		('\ba\w+' "a word beginning with an A"
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2782
			'land ancient' true (1 'ancient')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2783
			'antique vase' true (1 'antique')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2784
			'goofy foobar' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2785
		('(f|o)+\B'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2786
			'quuxfoobar' true (1 'foo')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2787
			'quuxfoo ' true (1 'fo'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2788
		('\Ba\w+' "a word with an A in the middle, match at A and further"
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2789
			'land ancient' true (1 'and')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2790
			'antique vase' true (1 'ase')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2791
			'smalltalk shall overcome' true (1 'alltalk')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2792
			'foonix is better' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2793
		('fooa\>.*'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2794
			'fooa ' true nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2795
			'fooa123' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2796
			'fooa bar' true nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2797
			'fooa' true nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2798
			'fooargh' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2799
		('\>.+abc'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2800
			' abcde fg' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2801
			'foo abcde' true (1 ' abc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2802
			'abcde' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2803
		('\<foo.*'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2804
			'foo' true nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2805
			'foobar' true nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2806
			'qfoobarq foonix' true (1 'foonix')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2807
			' foo' true nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2808
			' 12foo' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2809
			'barfoo' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2810
		('.+\<foo'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2811
			'foo' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2812
			'ab foo' true (1 'ab foo')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2813
			'abfoo' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2814
		('a[bc]d'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2815
			'abc' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2816
			'abd' true (1 'abd'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2817
		('a[b-d]e'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2818
			'abd' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2819
			'ace' true (1 'ace'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2820
		('a[b-d]'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2821
			'aac' true (1 'ac'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2822
		('a[-b]'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2823
			'a-' true (1 'a-'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2824
		('a[b-]'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2825
			'a-' true (1 'a-'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2826
		('a[a-b-c]' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2827
		('[k]'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2828
			'ab' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2829
		('a[b-a]' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2830
		('a[]b' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2831
		('a[' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2832
		('a]'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2833
			'a]' true (1 'a]'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2834
		('a[]]b'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2835
			'a]b' true (1 'a]b'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2836
		('a[^bc]d'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2837
			'aed' true (1 'aed')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2838
			'abd' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2839
		('a[^-b]c'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2840
			'adc' true (1 'adc')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2841
			'a-c' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2842
		('a[^]b]c'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2843
			'a]c' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2844
			'adc' true (1 'adc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2845
		('[\de]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2846
			'01234' true (1 '01234')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2847
			'0123e456' true (1 '0123e456')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2848
			'0123e45g78' true (1 '0123e45'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2849
		('[e\d]+' "reversal of the above, should be the same"
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2850
			'01234' true (1 '01234')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2851
			'0123e456' true (1 '0123e456')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2852
			'0123e45g78' true (1 '0123e45'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2853
		('[\D]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2854
			'123abc45def78' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2855
		('[[:digit:]e]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2856
			'01234' true (1 '01234')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2857
			'0123e456' true (1 '0123e456')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2858
			'0123e45g78' true (1 '0123e45'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2859
		('[\s]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2860
			'2  spaces' true (1 '  '))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2861
		('[\S]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2862
			'  word12!!@#$  ' true (1 'word12!!@#$'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2863
		('[\w]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2864
			'       foo123bar       45' true (1 'foo123bar'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2865
		('[\W]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2866
			'fii234!!@#$34f' true (1 '!!@#$'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2867
		('[^[:alnum:]]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2868
			'fii234!!@#$34f' true (1 '!!@#$'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2869
		('[%&[:alnum:]]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2870
			'foo%3' true (1 'foo%3')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2871
			'foo34&rt4$57a' true (1 'foo34&rt4')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2872
			'!!@#$' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2873
		('[[:alpha:]]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2874
			' 123foo3 ' true (1 'foo')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2875
			'123foo' true (1 'foo')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2876
			'foo1b' true (1 'foo'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2877
		('[[:blank:]]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2878
			'2  blanks' true (1 '  '))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2879
		('[^[:blank:]]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2880
			'  word12!!@#$  ' true (1 'word12!!@#$'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2881
		('[[:cntrl:]]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2882
			' a 1234asdf' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2883
		('[[:lower:]]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2884
			'UPPERlower1234' true (1 'lower')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2885
			'lowerUPPER' true (1 'lower'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2886
		('[[:upper:]]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2887
			'UPPERlower1234' true (1 'UPPER')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2888
			'lowerUPPER ' true (1 'UPPER'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2889
		('[[:space:]]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2890
			'2  spaces' true (1 '  '))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2891
		('[^[:space:]]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2892
			'  word12!!@#$  ' true (1 'word12!!@#$'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2893
		('[[:graph:]]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2894
			'abc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2895
		('[[:print:]]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2896
			'abc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2897
		('[^[:punct:]]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2898
			'!!hello,world!!' true (1 'hello'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2899
		('[[:xdigit:]]+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2900
			'  x10FCD  ' true (1 '10FCD')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2901
			' hgfedcba0123456789ABCDEFGH '
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2902
				true (1 'fedcba0123456789ABCDEF'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2903
		('ab|cd'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2904
			'abc' true (1 'ab')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2905
			'abcd' true (1 'ab'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2906
		('()ef'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2907
			'def' true (1 'ef' 2 ''))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2908
		('()*' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2909
		('*a' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2910
		('^*' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2911
		('$*' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2912
		('(*)b' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2913
		('$b'   'b' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2914
		('a\' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2915
		('a\(b'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2916
			'a(b' true (1 'a(b'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2917
		('a\(*b'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2918
			'ab' true (1 'ab')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2919
			'a((b' true (1 'a((b'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2920
		('a\\b'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2921
			'a\b' true (1 'a\b'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2922
		('abc)' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2923
		('(abc' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2924
		('((a))'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2925
			'abc' true (1 'a' 2 'a' 3 'a'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2926
		('(a)b(c)'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2927
			'abc' true (1 'abc' 2 'a' 3 'c'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2928
		('a+b+c'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2929
			'aabbabc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2930
		('a**' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2931
		('a*?' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2932
		('(a*)*' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2933
		('(a*)+' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2934
		('(a|)*' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2935
		('(a*|b)*' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2936
		('(a+|b)*'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2937
			'ab' true (1 'ab' 2 'b'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2938
		('(a+|b)+'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2939
			'ab' true (1 'ab' 2 'b'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2940
		('(a+|b)?'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2941
			'ab' true (1 'a' 2 'a'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2942
		('[^ab]*'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2943
			'cde' true (1 'cde'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2944
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2945
		('(^)*' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2946
		('(ab|)*' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2947
		(')(' nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2948
		('' 'abc' true (1 ''))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2949
		('abc' '' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2950
		('a*'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2951
			'' true '')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2952
		('abcd'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2953
			'abcd' true (1 'abcd'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2954
		('a(bc)d'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2955
			'abcd' true (1 'abcd' 2 'bc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2956
		('([abc])*d'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2957
			'abbbcd' true (1 'abbbcd' 2 'c'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2958
		('([abc])*bcd'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2959
			'abcd' true (1 'abcd' 2 'a'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2960
		('a|b|c|d|e' 'e' true (1 'e'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2961
		('(a|b|c|d|e)f' 'ef' true (1 'ef' 2 'e'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2962
			"       ((a*|b))*       -       c       -       -"
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2963
		('abcd*efg' 'abcdefg' true (1 'abcdefg'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2964
		('ab*'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2965
			'xabyabbbz' true (1 'ab')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2966
			'xayabbbz' true (1 'a'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2967
		('(ab|cd)e' 'abcde' true (1 'cde' 2 'cd'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2968
		('[abhgefdc]ij' 'hij' true (1 'hij'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2969
		('^(ab|cd)e' 'abcde' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2970
		('(abc|)def' 'abcdef' true nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2971
		('(a|b)c*d' 'abcd' true (1 'bcd' 2 'b'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2972
		('(ab|ab*)bc' 'abc' true (1 'abc' 2 'a'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2973
		('a([bc]*)c*' 'abc' true (1 'abc' 2 'bc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2974
		('a([bc]*)(c*d)' 'abcd' true (1 'abcd' 2 'bc' 3 'd'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2975
		('a([bc]+)(c*d)' 'abcd' true (1 'abcd' 2 'bc' 3 'd'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2976
		('a([bc]*)(c+d)' 'abcd' true (1 'abcd' 2 'b' 3 'cd'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2977
		('a[bcd]*dcdcde' 'adcdcde' true (1 'adcdcde'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2978
		('a[bcd]+dcdcde' 'adcdcde' false nil)
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2979
		('(ab|a)b*c' 'abc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2980
		('((a)(b)c)(d)' 'abcd' true (1 'abcd' 3 'a' 4 'b' 5 'd'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2981
		('[ -~]*' 'abc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2982
		('[ -~ -~]*' 'abc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2983
		('[ -~ -~ -~]*' 'abc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2984
		('[ -~ -~ -~ -~]*' 'abc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2985
		('[ -~ -~ -~ -~ -~]*' 'abc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2986
		('[ -~ -~ -~ -~ -~ -~]*' 'abc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2987
		('[ -~ -~ -~ -~ -~ -~ -~]*' 'abc' true (1 'abc'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2988
		('[a-zA-Z_][a-zA-Z0-9_]*' 'alpha' true (1 'alpha'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2989
		('^a(bc+|b[eh])g|.h$' 'abh' true (1 'bh' 2 ''))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2990
		('(bc+d$|ef*g.|h?i(j|k))'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2991
			'effgz' true (1 'effgz' 2 'effgz' 3 '')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2992
			'ij' true (1 'ij' 2 'ij' 3 'j')
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2993
			'effg' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2994
			'bcdd' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2995
			'reffgz' true (1 'effgz' 2 'effgz' 3 ''))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2996
		('(((((((((a)))))))))' 'a' true (1 'a'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2997
		('multiple words of text'
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2998
			'uh-uh' false nil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  2999
			'multiple words of text, yeah' true (1 'multiple words of text'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3000
		('(.*)c(.*)' 'abcde' true (1 'abcde' 2 'ab' 3 'de'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3001
		('\((.*), (.*)\)' '(a, b)' true (2 'a' 3 'b'))
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3002
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3003
	    )
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3004
! !
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3005
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3006
!RxTests methodsFor:'test suite - string interface'!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3007
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3008
testS001
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3009
    self assert:( 'abc' matchesRegex:'abc' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3010
    self assert:( 'abc' matchesRegex:'ab.' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3011
    self assert:( 'abc' matchesRegex:'ab.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3012
    self assert:( 'abc' matchesRegex:'a.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3013
    self assert:( 'abc' matchesRegex:'.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3014
    self assert:( 'abc' matchesRegex:'[ab].*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3015
    self assert:( 'bca' matchesRegex:'[ab].*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3016
    self assert:( 'cab' matchesRegex:'[ab].*' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3017
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3018
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3019
     self new testS001
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3020
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3021
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3022
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3023
testS002
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3024
    self assert:( 'abc' matchesRegexIgnoringCase:'abc' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3025
    self assert:( 'ABC' matchesRegexIgnoringCase:'abc' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3026
    self assert:( 'ABC' matchesRegex:'abc' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3027
    self assert:( 'aBc' matchesRegexIgnoringCase:'abc' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3028
    self assert:( 'aBc' matchesRegex:'abc' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3029
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3030
    self assert:( 'abc' matchesRegexIgnoringCase:'ab.' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3031
    self assert:( 'ABC' matchesRegexIgnoringCase:'ab.' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3032
    self assert:( 'ABC' matchesRegex:'ab.' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3033
    self assert:( 'aBc' matchesRegexIgnoringCase:'ab.' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3034
    self assert:( 'aBc' matchesRegex:'ab.' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3035
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3036
    self assert:( 'abc' matchesRegexIgnoringCase:'ab.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3037
    self assert:( 'ABC' matchesRegexIgnoringCase:'ab.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3038
    self assert:( 'ABC' matchesRegex:'ab.*' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3039
    self assert:( 'aBc' matchesRegexIgnoringCase:'ab.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3040
    self assert:( 'aBc' matchesRegex:'ab.*' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3041
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3042
    self assert:( 'abc' matchesRegexIgnoringCase:'a.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3043
    self assert:( 'ABC' matchesRegexIgnoringCase:'a.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3044
    self assert:( 'ABC' matchesRegex:'a.*' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3045
    self assert:( 'aBc' matchesRegexIgnoringCase:'a.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3046
    self assert:( 'aBc' matchesRegex:'a.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3047
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3048
    self assert:( 'abc' matchesRegexIgnoringCase:'.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3049
    self assert:( 'ABC' matchesRegexIgnoringCase:'.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3050
    self assert:( 'ABC' matchesRegex:'.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3051
    self assert:( 'aBc' matchesRegexIgnoringCase:'.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3052
    self assert:( 'aBc' matchesRegex:'.*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3053
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3054
    self assert:( 'abc' matchesRegexIgnoringCase:'[ab].*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3055
    self assert:( 'ABC' matchesRegexIgnoringCase:'[ab].*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3056
    self assert:( 'ABC' matchesRegex:'[ab].*' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3057
    self assert:( 'aBc' matchesRegexIgnoringCase:'[ab].*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3058
    self assert:( 'aBc' matchesRegex:'[ab].*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3059
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3060
    self assert:( 'bca' matchesRegexIgnoringCase:'[ab].*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3061
    self assert:( 'BCA' matchesRegexIgnoringCase:'[ab].*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3062
    self assert:( 'BCA' matchesRegex:'[ab].*' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3063
    self assert:( 'Bca' matchesRegexIgnoringCase:'[ab].*' ).
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3064
    self assert:( 'Bca' matchesRegex:'[ab].*' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3065
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3066
    self assert:( 'cab' matchesRegexIgnoringCase:'[ab].*' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3067
    self assert:( 'CAB' matchesRegexIgnoringCase:'[ab].*' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3068
    self assert:( 'CAB' matchesRegex:'[ab].*' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3069
    self assert:( 'caB' matchesRegexIgnoringCase:'[ab].*' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3070
    self assert:( 'caB' matchesRegex:'[ab].*' ) not.
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3071
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3072
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3073
     self new testS002
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3074
    "
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3075
! !
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3076
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3077
!RxTests methodsFor:'test suite conversion'!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3078
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3079
writeAllTests
1868
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3080
	"Build individual tests from the test suite."
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3081
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3082
	| aTest matcherClass rxSource matcher isOK subexpr |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3083
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3084
	matcherClass := Regex::RxMatcher.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3085
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3086
	1 to: self xtestSuite size do: [ :n |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3087
		aTest := self xtestSuite at: n.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3088
		Transcript
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3089
			show: 'test', n printString; cr;
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3090
			tab; show: '| matcher |'; cr; cr;
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3091
			tab; show: 'self should: [ (matcher := Regex::RxParser compileRegex: ''', aTest first, ''' into:Regex::RxMatcher)'.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3092
		(aTest at: 2) isNil
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3093
			ifTrue: [ Transcript show: ' = nil ].'; cr ]
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3094
			ifFalse: [
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3095
				Transcript show: ' ~= nil ].'; cr.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3096
				2 to: aTest size by: 3 do:
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3097
					[:i  |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3098
					Transcript tab; show: 'self should: [ (matcher search: ', (aTest at: i) printString, ') = ',
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3099
								(aTest at: i+1) printString, ' ].'; cr.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3100
					(aTest at: i+1) ~= nil ifTrue: [
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3101
						subexpr := aTest at: i+2.
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3102
						1 to: subexpr size by: 2 do: [ :j |
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3103
							Transcript tab; show: 'self should: [ (matcher subexpression: ',
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3104
										(subexpr at: j) printString, ') = ', (subexpr at: j+1) printString,
f4c1497333f6 *** empty log message ***
sr
parents: 1867
diff changeset
  3105
										' ].'; cr ]]]]]
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3106
! !
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3107
2409
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3108
!RxTests methodsFor:'testing'!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3109
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3110
testRegex001
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3111
	self runRegex: #('^.*$' 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3112
		'' true (1 '')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3113
		'a' true (1 'a')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3114
		'abc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3115
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3116
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3117
testRegex002
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3118
	self runRegex: #('a\w+c'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3119
		' abb_bbc ' true (1 'abb_bbc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3120
		'abb-bc' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3121
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3122
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3123
testRegex003
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3124
	self runRegex: #('a\W+c'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3125
		' abb_bbc ' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3126
		'abb-bc' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3127
		'a.,:;-&!!"#%/()={[]}+?\~*''c' true (1 'a.,:;-&!!"#%/()={[]}+?\~*''c'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3128
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3129
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3130
testRegex004
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3131
	self runRegex: #(':isVowel:'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3132
		'aei' true nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3133
		'xyz' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3134
! !
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3135
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3136
!RxTests methodsFor:'testing-extensions'!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3137
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3138
testStringAllRangesOfRegexMatches
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3139
	| result |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3140
	result := 'aabbcc' allRangesOfRegexMatches: 'b+'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3141
	self 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3142
		assert: result size equals: 1;
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3143
		assert: result first first equals: 3;
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3144
		assert: result first last equals: 4
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3145
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3146
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3147
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3148
testStringAllRegexMatches
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3149
	| result |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3150
	result := 'aabbcc' allRegexMatches: 'b+'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3151
	self 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3152
		assert: result size equals: 1;
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3153
		assert: result first equals: 'bb'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3154
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3155
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3156
testStringAsRegex
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3157
        
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3158
        self assert: 'b+' asRegex class equals: Regex::RxParser preferredMatcherClass
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3159
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3160
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3161
testStringAsRegexIgnoringCase
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3162
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3163
        self assert: 'b+' asRegexIgnoringCase class equals: Regex::RxParser preferredMatcherClass
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3164
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3165
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3166
testStringCopyWithRegexMatchesReplacedWith
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3167
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3168
	self assert: ('aabbcc' copyWithRegex: 'b+' matchesReplacedWith: 'X') equals: 'aaXcc'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3169
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3170
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3171
testStringCopyWithRegexMatchesTranslatedUsing
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3172
	self assert: ('aabbcc' 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3173
		copyWithRegex: 'b+' 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3174
		matchesTranslatedUsing: [ :each | 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3175
			self assert: each equals: 'bb'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3176
			'X' ]) equals: 'aaXcc'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3177
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3178
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3179
testStringMatchesRegex
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3180
	self deny: ('aabbcc' matchesRegex: 'a+').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3181
	self deny: ('aabbcc' matchesRegex: 'b+c+').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3182
	self assert: ('aabbcc' matchesRegex: 'a+b+c+')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3183
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3184
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3185
testStringMatchesRegexIgnoringCase
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3186
	self deny: ('AABBCC' matchesRegexIgnoringCase: 'a+').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3187
	self deny: ('AABBCC' matchesRegexIgnoringCase: 'b+c+').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3188
	self assert: ('AABBCC' matchesRegexIgnoringCase: 'a+b+c+')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3189
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3190
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3191
testStringPrefixMatchesRegex
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3192
	self assert: ('aabbcc' prefixMatchesRegex: 'a+').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3193
	self deny: ('aabbcc' prefixMatchesRegex: 'b+')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3194
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3195
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3196
testStringPrefixMatchesRegexIgnoringCase
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3197
	self assert: ('AABBCC' prefixMatchesRegexIgnoringCase: 'a+').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3198
	self deny: ('AABBCC' prefixMatchesRegexIgnoringCase: 'b+')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3199
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3200
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3201
testStringRegexMatchesCollect
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3202
	| result |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3203
	result := 'aabbcc' regex: 'b+' matchesCollect: [ :each | each asUppercase ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3204
	self 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3205
		assert: result size equals: 1;
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3206
		assert: result first equals: 'BB'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3207
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3208
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3209
testStringRegexMatchesDo
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3210
	| result |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3211
	result := OrderedCollection new.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3212
	'aabbcc' regex: 'b+' matchesDo: [ :each | result add: each ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3213
	self 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3214
		assert: result size equals: 1;
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3215
		assert: result first equals: 'bb'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3216
! !
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3217
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3218
!RxTests methodsFor:'testing-henry'!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3219
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3220
henryReadme
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3221
	self error: 'The tests in this category are based on the ones in Henry Spencer''s regexp.c package.'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3222
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3223
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3224
testHenry013
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3225
	self runRegex: #('.a.*'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3226
		'1234abc' true (1 '4abc')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3227
		'abcd' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3228
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3229
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3230
testHenry059
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3231
	self runRegex: #('[[:alpha:]]+'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3232
		' 123foo3 ' true (1 'foo')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3233
		'123foo' true (1 'foo')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3234
		'foo1b' true (1 'foo'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3235
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3236
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3237
testHenry101
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3238
	self runRegex: #('a*'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3239
		'' true '')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3240
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3241
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3242
testHenry102
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3243
	self runRegex: #('abcd'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3244
		'abcd' true (1 'abcd'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3245
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3246
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3247
testHenry103
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3248
	self runRegex: #('a(bc)d'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3249
		'abcd' true (1 'abcd' 2 'bc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3250
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3251
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3252
testHenry104
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3253
	self runRegex: #('([abc])*d'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3254
		'abbbcd' true (1 'abbbcd' 2 'c'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3255
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3256
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3257
testHenry105
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3258
	self runRegex: #('([abc])*bcd'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3259
		'abcd' true (1 'abcd' 2 'a'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3260
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3261
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3262
testHenry106
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3263
	self runRegex: #('a|b|c|d|e' 'e' true (1 'e'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3264
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3265
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3266
testHenry107
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3267
	self runRegex: #('(a|b|c|d|e)f'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3268
		'ef' true (1 'ef' 2 'e'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3269
	"	((a*|b))*	-	c	-	-"
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3270
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3271
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3272
testHenry108
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3273
	self runRegex: #('abcd*efg' 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3274
		'abcdefg' true (1 'abcdefg'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3275
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3276
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3277
testHenry109
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3278
	self runRegex: #('ab*' 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3279
		'xabyabbbz' true (1 'ab')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3280
		'xayabbbz' true (1 'a'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3281
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3282
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3283
testHenry110
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3284
	self runRegex: #('(ab|cd)e' 'abcde' true (1 'cde' 2 'cd'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3285
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3286
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3287
testHenry111
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3288
	self runRegex: #('[abhgefdc]ij' 'hij' true (1 'hij'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3289
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3290
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3291
testHenry112
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3292
	self runRegex: #('^(ab|cd)e' 'abcde' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3293
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3294
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3295
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3296
testHenry113
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3297
	self runRegex: #('(abc|)def' 'abcdef' true nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3298
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3299
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3300
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3301
testHenry114
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3302
	self runRegex: #('(a|b)c*d' 'abcd' true (1 'bcd' 2 'b'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3303
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3304
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3305
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3306
testHenry115
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3307
	self runRegex: #('(ab|ab*)bc' 'abc' true (1 'abc' 2 'a'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3308
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3309
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3310
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3311
testHenry116
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3312
	self runRegex: #('a([bc]*)c*' 'abc' true (1 'abc' 2 'bc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3313
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3314
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3315
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3316
testHenry117
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3317
	self runRegex: #('a([bc]*)(c*d)' 'abcd' true (1 'abcd' 2 'bc' 3 'd'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3318
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3319
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3320
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3321
testHenry118
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3322
	self runRegex: #('a([bc]+)(c*d)' 'abcd' true (1 'abcd' 2 'bc' 3 'd'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3323
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3324
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3325
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3326
testHenry119
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3327
	self runRegex: #('a([bc]*)(c+d)' 'abcd' true (1 'abcd' 2 'b' 3 'cd'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3328
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3329
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3330
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3331
testHenry120
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3332
	self runRegex: #('a[bcd]*dcdcde' 'adcdcde' true (1 'adcdcde'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3333
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3334
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3335
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3336
testHenry121
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3337
	self runRegex: #('a[bcd]+dcdcde' 'adcdcde' false nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3338
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3339
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3340
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3341
testHenry122
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3342
	self runRegex: #('(ab|a)b*c' 'abc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3343
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3344
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3345
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3346
testHenry123
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3347
	self runRegex: #('((a)(b)c)(d)' 'abcd' true (1 'abcd' 3 'a' 4 'b' 5 'd'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3348
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3349
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3350
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3351
testHenry124
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3352
	self runRegex: #('[ -~]*' 'abc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3353
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3354
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3355
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3356
testHenry125
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3357
	self runRegex: #('[ -~ -~]*' 'abc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3358
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3359
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3360
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3361
testHenry126
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3362
	self runRegex: #('[ -~ -~ -~]*' 'abc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3363
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3364
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3365
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3366
testHenry127
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3367
	self runRegex: #('[ -~ -~ -~ -~]*' 'abc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3368
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3369
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3370
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3371
testHenry128
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3372
	self runRegex: #('[ -~ -~ -~ -~ -~]*' 'abc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3373
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3374
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3375
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3376
testHenry129
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3377
	self runRegex: #('[ -~ -~ -~ -~ -~ -~]*' 'abc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3378
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3379
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3380
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3381
testHenry130
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3382
	self runRegex: #('[ -~ -~ -~ -~ -~ -~ -~]*' 'abc' true (1 'abc'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3383
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3384
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3385
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3386
testHenry131
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3387
	self runRegex: #('[a-zA-Z_][a-zA-Z0-9_]*' 'alpha' true (1 'alpha'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3388
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3389
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3390
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3391
testHenry132
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3392
	self runRegex: #('^a(bc+|b[eh])g|.h$' 'abh' true (1 'bh' 2 nil))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3393
	
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3394
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3395
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3396
testHenry133
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3397
	self runRegex: #('(bc+d$|ef*g.|h?i(j|k))' 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3398
		'effgz' true (1 'effgz' 2 'effgz' 3 nil)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3399
		'ij' true (1 'ij' 2 'ij' 3 'j')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3400
		'effg' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3401
		'bcdd' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3402
		'reffgz' true (1 'effgz' 2 'effgz' 3 nil))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3403
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3404
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3405
testHenry134
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3406
	self runRegex: #('(((((((((a)))))))))' 'a' true (1 'a'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3407
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3408
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3409
testHenry135
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3410
	self runRegex: #('multiple words of text' 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3411
		'uh-uh' false nil
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3412
		'multiple words of text, yeah' true (1 'multiple words of text'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3413
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3414
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3415
testHenry136
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3416
	self runRegex: #('(.*)c(.*)' 'abcde' true (1 'abcde' 2 'ab' 3 'de'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3417
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3418
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3419
testHenry137
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3420
	self runRegex: #('\((.*), (.*)\)' '(a, b)' true (2 'a' 3 'b'))
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3421
! !
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3422
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3423
!RxTests methodsFor:'testing-protocol'!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3424
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3425
testMatches
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3426
	| matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3427
	matcher := self matcherClass forString: '\w+'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3428
	self assert: (matcher matches: 'now').
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3429
	self deny: (matcher matches: 'now is')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3430
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3431
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3432
testMatchesIn
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3433
	| matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3434
	matcher := self matcherClass forString: '\w+'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3435
	self assert: (matcher matchesIn: 'now is the time') asArray 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3436
		= #('now' 'is' 'the' 'time')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3437
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3438
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3439
testMatchesInCollect
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3440
	| matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3441
	matcher := self matcherClass forString: '\w+'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3442
	self assert: (matcher
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3443
		matchesIn: 'now is the time'
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3444
		collect: [ :each | each reversed ]) asArray
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3445
			= #('won' 'si' 'eht' 'emit')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3446
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3447
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3448
testMatchesInDo
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3449
	| matcher expected |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3450
	matcher := self matcherClass forString: '\w+'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3451
	expected := #('now' 'is' 'the' 'time') asOrderedCollection.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3452
	matcher matchesIn: 'now is the time' do: [ :each | self assert: each = expected removeFirst ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3453
	self assertEmpty: expected
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3454
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3455
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3456
testMatchesOnStream
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3457
	| matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3458
	matcher := self matcherClass forString: '\w+'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3459
	self assert: (matcher matchesOnStream: 'now is the time' readStream) asArray 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3460
		= #('now' 'is' 'the' 'time')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3461
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3462
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3463
testMatchesOnStreamCollect
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3464
	| matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3465
	matcher := self matcherClass forString: '\w+'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3466
	self assert: (matcher 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3467
		matchesOnStream: 'now is the time' readStream 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3468
		collect: [ :each | each reversed ]) asArray
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3469
			= #('won' 'si' 'eht' 'emit')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3470
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3471
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3472
testMatchesOnStreamDo
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3473
	| matcher expected |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3474
	matcher := self matcherClass forString: '\w+'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3475
	expected := #('now' 'is' 'the' 'time') asOrderedCollection.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3476
	matcher matchesOnStream: 'now is the time' readStream do: [ :each | self assert: each = expected removeFirst ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3477
	self assertEmpty: expected
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3478
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3479
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3480
testMatchesStream
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3481
	| matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3482
	matcher := self matcherClass forString: '\w+'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3483
	self assert: (matcher matchesStream: 'now' readStream).
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3484
	self deny: (matcher matchesStream: 'now is' readStream)
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3485
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3486
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3487
testMatchingRangesIn
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3488
	| matcher expected |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3489
	matcher := self matcherClass forString: '\w+'.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3490
	expected := #(1 3 5 6 8 10 12 15) asOrderedCollection.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3491
	(matcher matchingRangesIn: 'now is the time')
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3492
		do: [ :range | 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3493
			self assert: range first = expected removeFirst.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3494
			self assert: range last = expected removeFirst ].
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3495
	self assertEmpty: expected
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3496
!
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3497
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3498
testSubexpressionCount
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3499
	| matcher |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3500
	#(('a' 1) ('a(b)' 2) ('a(b(c))' 3) ('(a)(b)' 3) ('(a(b))*' 3)) do: [ :pair |
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3501
		matcher := self matcherClass forString: pair first.
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3502
		matcher supportsSubexpressions 
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3503
			ifTrue: [ self assert: matcher subexpressionCount equals: pair last ] ]
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3504
! !
83ccbaa621f8 #QUALITY by exept
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  3505
1865
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3506
!RxTests class methodsFor:'documentation'!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3507
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3508
version
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3509
    ^ '$Header$'
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3510
!
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3511
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3512
version_CVS
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3513
    ^ '$Header$'
138c16432f69 Move RxTests from regex to regression
mawalch
parents:
diff changeset
  3514
! !
1869
868022ef6bf1 #FEATURE by sr
sr
parents: 1868
diff changeset
  3515