author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Thu, 10 Sep 2015 07:13:16 +0100 | |
changeset 547 | 0b8c75af51a0 |
parent 427 | a7f5e6de19d2 |
permissions | -rw-r--r-- |
376
a2656b27cace
Added monticelloName to package definition to ease export to .mcz
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
375
diff
changeset
|
1 |
"{ Package: 'stx:goodies/petitparser/tests' }" |
0 | 2 |
|
427
a7f5e6de19d2
Merged JK's version from Monticello
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
405
diff
changeset
|
3 |
"{ NameSpace: Smalltalk }" |
a7f5e6de19d2
Merged JK's version from Monticello
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
405
diff
changeset
|
4 |
|
194 | 5 |
PPAbstractParserTest subclass:#PPTokenTest |
0 | 6 |
instanceVariableNames:'' |
7 |
classVariableNames:'' |
|
8 |
poolDictionaries:'' |
|
9 |
category:'PetitTests-Tests' |
|
10 |
! |
|
11 |
||
12 |
||
13 |
!PPTokenTest methodsFor:'accessing'! |
|
14 |
||
15 |
identifier |
|
16 |
^ #word asParser plus token |
|
17 |
! ! |
|
18 |
||
19 |
!PPTokenTest methodsFor:'testing'! |
|
20 |
||
21 |
testCollection |
|
22 |
| input result | |
|
23 |
input := 'foo '. |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
24 |
result := self parse: input using: self identifier. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
25 |
self assert: result collection equals: input. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
26 |
self assert: result collection == input |
0 | 27 |
! |
28 |
||
194 | 29 |
testInitialize |
30 |
PPToken initialize |
|
31 |
! |
|
32 |
||
0 | 33 |
testNew |
34 |
self should: [ PPToken new ] raise: Error. |
|
38 | 35 |
|
0 | 36 |
! |
37 |
||
38 |
testPrinting |
|
39 |
| result | |
|
40 |
result := PPToken on: 'var'. |
|
427
a7f5e6de19d2
Merged JK's version from Monticello
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
405
diff
changeset
|
41 |
self assert: result printString includesSubstring: 'PPToken[1,3]' |
0 | 42 |
! |
43 |
||
44 |
testSize |
|
45 |
| result | |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
46 |
result := self parse: 'foo' using: self identifier. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
47 |
self assert: result size equals: 3 |
0 | 48 |
! |
49 |
||
50 |
testStart |
|
51 |
| result | |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
52 |
result := self parse: 'foo' using: self identifier. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
53 |
self assert: result start equals: 1 |
0 | 54 |
! |
55 |
||
56 |
testStop |
|
57 |
| result | |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
58 |
result := self parse: 'foo' using: self identifier. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
59 |
self assert: result stop equals: 3 |
0 | 60 |
! |
61 |
||
62 |
testValue |
|
194 | 63 |
| result | |
64 |
result := PPToken on: 'var'. |
|
65 |
self should: [ result value ] raise: Notification |
|
0 | 66 |
! ! |
67 |
||
68 |
!PPTokenTest methodsFor:'testing-comparing'! |
|
69 |
||
70 |
testEquality |
|
71 |
| token1 token2 | |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
72 |
token1 := self parse: 'foo' using: self identifier. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
73 |
token2 := self parse: 'foo' using: self identifier. |
0 | 74 |
self deny: token1 == token2. |
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
75 |
self assert: token1 equals: token2. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
76 |
self assert: token1 hash equals: token2 hash |
0 | 77 |
! ! |
78 |
||
79 |
!PPTokenTest methodsFor:'testing-copying'! |
|
80 |
||
81 |
testCopyFromTo |
|
82 |
| result other | |
|
83 |
result := PPToken on: 'abc'. |
|
84 |
other := result copyFrom: 2 to: 2. |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
85 |
self assert: other size equals: 1. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
86 |
self assert: other start equals: 2. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
87 |
self assert: other stop equals: 2. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
88 |
self assert: other collection equals: result collection |
0 | 89 |
! ! |
90 |
||
91 |
!PPTokenTest methodsFor:'testing-querying'! |
|
92 |
||
93 |
testColumn |
|
405
0470a5e6e712
Merged PetitParser and PetitTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
380
diff
changeset
|
94 |
| input parser result | |
0470a5e6e712
Merged PetitParser and PetitTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
380
diff
changeset
|
95 |
input := '1' , (String with: (Character codePoint: 13)) , '12' , (String with: (Character codePoint: 13) with: (Character codePoint: 10)) , '123' |
0470a5e6e712
Merged PetitParser and PetitTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
380
diff
changeset
|
96 |
, (String with: (Character codePoint: 10)) , '1234'. |
0470a5e6e712
Merged PetitParser and PetitTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
380
diff
changeset
|
97 |
parser := #any asParser token star. |
0470a5e6e712
Merged PetitParser and PetitTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
380
diff
changeset
|
98 |
result := parser parse: input. |
0470a5e6e712
Merged PetitParser and PetitTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
380
diff
changeset
|
99 |
result with: #(1 2 1 2 3 4 1 2 3 4 1 2 3 4) do: [ :token :line | self assert: token column equals: line ] |
0 | 100 |
! |
101 |
||
102 |
testLine |
|
405
0470a5e6e712
Merged PetitParser and PetitTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
380
diff
changeset
|
103 |
| input parser result | |
0470a5e6e712
Merged PetitParser and PetitTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
380
diff
changeset
|
104 |
input := '1' , (String with: (Character codePoint: 13)) , '12' , (String with: (Character codePoint: 13) with: (Character codePoint: 10)) , '123' |
0470a5e6e712
Merged PetitParser and PetitTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
380
diff
changeset
|
105 |
, (String with: (Character codePoint: 10)) , '1234'. |
0470a5e6e712
Merged PetitParser and PetitTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
380
diff
changeset
|
106 |
parser := #any asParser token star. |
0470a5e6e712
Merged PetitParser and PetitTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
380
diff
changeset
|
107 |
result := parser parse: input. |
0470a5e6e712
Merged PetitParser and PetitTests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
380
diff
changeset
|
108 |
result with: #(1 1 2 2 2 2 3 3 3 3 4 4 4 4) do: [ :token :line | self assert: token line equals: line ] |
0 | 109 |
! ! |
110 |
||
194 | 111 |
!PPTokenTest methodsFor:'testing-values'! |
112 |
||
113 |
testInputValue |
|
114 |
| input result | |
|
115 |
input := 'foo'. |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
116 |
result := self parse: input using: self identifier. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
117 |
self assert: result inputValue equals: input. |
194 | 118 |
self deny: result inputValue == input |
119 |
! |
|
120 |
||
121 |
testParsedValue |
|
122 |
| input result | |
|
123 |
input := 'foo'. |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
124 |
result := self parse: input using: self identifier. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
376
diff
changeset
|
125 |
self assert: result parsedValue equals: #($f $o $o) |
194 | 126 |
! ! |
127 |
||
0 | 128 |
!PPTokenTest methodsFor:'utilities'! |
129 |
||
130 |
parse: aString using: aParser |
|
131 |
^ aParser parse: aString |
|
132 |
! ! |
|
133 |
||
134 |
!PPTokenTest class methodsFor:'documentation'! |
|
135 |
||
38 | 136 |
version |
194 | 137 |
^ '$Header: /cvs/stx/stx/goodies/petitparser/PPTokenTest.st,v 1.5 2014-03-04 14:34:24 cg Exp $' |
38 | 138 |
! |
139 |
||
140 |
version_CVS |
|
194 | 141 |
^ '$Header: /cvs/stx/stx/goodies/petitparser/PPTokenTest.st,v 1.5 2014-03-04 14:34:24 cg Exp $' |
38 | 142 |
! |
143 |
||
0 | 144 |
version_SVN |
194 | 145 |
^ '$Id: PPTokenTest.st,v 1.5 2014-03-04 14:34:24 cg Exp $' |
0 | 146 |
! ! |
194 | 147 |