author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Mon, 13 Apr 2015 22:00:44 +0100 | |
changeset 427 | a7f5e6de19d2 |
parent 385 | 44a36ed4e484 |
permissions | -rw-r--r-- |
157 | 1 |
"{ Package: 'stx:goodies/petitparser/tests' }" |
2 |
||
427
a7f5e6de19d2
Merged JK's version from Monticello
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
385
diff
changeset
|
3 |
"{ NameSpace: Smalltalk }" |
a7f5e6de19d2
Merged JK's version from Monticello
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
385
diff
changeset
|
4 |
|
157 | 5 |
TestCase subclass:#PPAbstractParserTest |
6 |
instanceVariableNames:'' |
|
7 |
classVariableNames:'' |
|
8 |
poolDictionaries:'' |
|
9 |
category:'PetitTests-Core' |
|
10 |
! |
|
11 |
||
12 |
||
13 |
!PPAbstractParserTest class methodsFor:'accessing'! |
|
14 |
||
15 |
packageNamesUnderTest |
|
16 |
^ #('PetitParser' 'PetitTests') |
|
17 |
! ! |
|
18 |
||
19 |
!PPAbstractParserTest class methodsFor:'testing'! |
|
20 |
||
21 |
isAbstract |
|
22 |
^ self name = #PPAbstractParserTest |
|
23 |
! ! |
|
24 |
||
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
25 |
!PPAbstractParserTest methodsFor:'context'! |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
26 |
|
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
27 |
context |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
28 |
^ PPContext new |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
29 |
! ! |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
30 |
|
157 | 31 |
!PPAbstractParserTest methodsFor:'utilities'! |
32 |
||
33 |
assert: aParser fail: aCollection |
|
34 |
^ self assert: aParser fail: aCollection end: 0 |
|
35 |
! |
|
36 |
||
37 |
assert: aParser fail: aCollection end: anInteger |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
38 |
| stream result context | |
157 | 39 |
self |
40 |
assert: aParser isPetitParser |
|
41 |
description: 'Parser invalid'. |
|
42 |
stream := aCollection asPetitStream. |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
43 |
context := self context. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
44 |
|
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
45 |
|
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
46 |
result := aParser parse: stream withContext: context. |
157 | 47 |
self |
48 |
assert: result isPetitFailure |
|
49 |
description: 'Parser did not fail'. |
|
50 |
self |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
51 |
assert: context position = anInteger |
157 | 52 |
description: 'Parser failed at wrong position'. |
53 |
^ result |
|
54 |
! |
|
55 |
||
427
a7f5e6de19d2
Merged JK's version from Monticello
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
385
diff
changeset
|
56 |
assert: string1 includesSubstring: string2 |
a7f5e6de19d2
Merged JK's version from Monticello
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
385
diff
changeset
|
57 |
"Support portability by using ANSI search method" |
a7f5e6de19d2
Merged JK's version from Monticello
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
385
diff
changeset
|
58 |
|
a7f5e6de19d2
Merged JK's version from Monticello
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
385
diff
changeset
|
59 |
self assert: (string1 notEmpty and: [string2 notEmpty and: [0 < (string1 indexOfSubCollection: string2 startingAt: 1)]]) |
a7f5e6de19d2
Merged JK's version from Monticello
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
385
diff
changeset
|
60 |
! |
a7f5e6de19d2
Merged JK's version from Monticello
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
385
diff
changeset
|
61 |
|
157 | 62 |
assert: aParser parse: aCollection |
63 |
^ self assert: aParser parse: aCollection to: nil end: aCollection size |
|
64 |
! |
|
65 |
||
66 |
assert: aParser parse: aCollection end: anInteger |
|
67 |
^ self assert: aParser parse: aCollection to: nil end: anInteger |
|
68 |
! |
|
69 |
||
70 |
assert: aParser parse: aCollection to: anObject |
|
71 |
^ self assert: aParser parse: aCollection to: anObject end: aCollection size |
|
72 |
! |
|
73 |
||
74 |
assert: aParser parse: aCollection to: aTargetObject end: anInteger |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
75 |
| stream result context | |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
76 |
|
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
77 |
self assert: aParser isPetitParser description: 'Parser invalid'. |
157 | 78 |
stream := aCollection asPetitStream. |
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
79 |
context := self context. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
80 |
|
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
81 |
result := aParser parse: stream withContext: context. |
157 | 82 |
aTargetObject isNil |
83 |
ifTrue: [ self deny: result isPetitFailure ] |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
84 |
ifFalse: [ self assert: result equals: aTargetObject ]. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
85 |
self assert: context position = anInteger description: 'Parser accepted at wrong position'. |
157 | 86 |
^ result |
87 |
! |
|
88 |
||
89 |
assert: aParser parse: aCollection toToken: aStartInteger stop: aStopInteger |
|
90 |
^ self assert: aParser parse: aCollection toToken: aStartInteger stop: aStopInteger end: aCollection size |
|
91 |
! |
|
92 |
||
93 |
assert: aParser parse: aParserObject toToken: aStartInteger stop: aStopInteger end: anEndInteger |
|
94 |
| token | |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
95 |
token := self |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
96 |
assert: aParser |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
97 |
parse: aParserObject |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
98 |
to: nil |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
99 |
end: anEndInteger. |
157 | 100 |
self assert: (token isKindOf: PPToken). |
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
101 |
self assert: token start equals: aStartInteger. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
318
diff
changeset
|
102 |
self assert: token stop equals: aStopInteger. |
157 | 103 |
^ token |
104 |
! ! |
|
105 |
||
106 |
!PPAbstractParserTest class methodsFor:'documentation'! |
|
107 |
||
108 |
version |
|
318 | 109 |
^ '$Header: /cvs/stx/stx/goodies/petitparser/tests/PPAbstractParserTest.st,v 1.2 2014-03-04 20:31:52 cg Exp $' |
157 | 110 |
! |
111 |
||
112 |
version_CVS |
|
318 | 113 |
^ '$Header: /cvs/stx/stx/goodies/petitparser/tests/PPAbstractParserTest.st,v 1.2 2014-03-04 20:31:52 cg Exp $' |
385
44a36ed4e484
Commited a Smalltalk parser (MC package PetitSmalltalk)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
377
diff
changeset
|
114 |
! |
44a36ed4e484
Commited a Smalltalk parser (MC package PetitSmalltalk)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
377
diff
changeset
|
115 |
|
44a36ed4e484
Commited a Smalltalk parser (MC package PetitSmalltalk)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
377
diff
changeset
|
116 |
version_HG |
44a36ed4e484
Commited a Smalltalk parser (MC package PetitSmalltalk)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
377
diff
changeset
|
117 |
|
44a36ed4e484
Commited a Smalltalk parser (MC package PetitSmalltalk)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
377
diff
changeset
|
118 |
^ '$Changeset: <not expanded> $' |
157 | 119 |
! ! |
120 |