tests/PPMappingTest.st
author sr
Wed, 04 Jul 2018 15:30:19 +0200
changeset 611 38338f2de417
parent 566 d9855050be6c
permissions -rw-r--r--
build order was wrong
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
566
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/petitparser/tests' }"
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
PPAbstractParserTest subclass:#PPMappingTest
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'PetitTests-Tests'
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!PPMappingTest methodsFor:'testing'!
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
testFoldLeft2
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	| parser |
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	parser := #any asParser star
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
		foldLeft: [ :a :b | Array with: a with: b ].
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	self assert: parser parse: #(a) to: #a.
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	self assert: parser parse: #(a b) to: #(a b).
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	self assert: parser parse: #(a b c) to: #((a b) c).
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
	self assert: parser parse: #(a b c d) to: #(((a b) c) d).
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	self assert: parser parse: #(a b c d e) to: #((((a b) c) d) e)
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
testFoldLeft3
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	| parser |
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	parser := #any asParser star
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
		foldLeft: [ :a :b :c | Array with: a with: b with: c ].
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
	self assert: parser parse: #(a) to: #a.
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	self assert: parser parse: #(a b c) to: #(a b c).
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
	self assert: parser parse: #(a b c d e) to: #((a b c) d e)
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
!
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
testFoldRight2
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
	| parser |
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	parser := #any asParser star
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
		foldRight: [ :a :b | Array with: a with: b ].
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
	self assert: parser parse: #(a) to: #a.
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	self assert: parser parse: #(a b) to: #(a b).
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
	self assert: parser parse: #(a b c) to: #(a (b c)).
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
	self assert: parser parse: #(a b c d) to: #(a (b (c d))).
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
	self assert: parser parse: #(a b c d e) to: #(a (b (c (d e))))
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
!
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
testFoldRight3
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
	| parser |
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
	parser := #any asParser star
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
		foldRight: [ :a :b :c | Array with: a with: b with: c ].
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
	self assert: parser parse: #(a) to: #a.
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
	self assert: parser parse: #(a b c) to: #(a b c).
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
	self assert: parser parse: #(a b c d e) to: #(a b (c d e))
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
!
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
testMap1
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
	| parser |
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
	parser := #any asParser
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
		map: [ :a | Array with: a ].
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
	self assert: parser parse: #(a) to: #(a)
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
!
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
testMap2
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
	| parser |
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
	parser := (#any asParser , #any asParser)
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
		map: [ :a :b | Array with: b with: a ].
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
	self assert: parser parse: #(a b) to: #(b a)
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
testMap3
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	| parser |
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
	parser := (#any asParser , #any asParser , #any asParser)
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
		map: [ :a :b :c | Array with: c with: b with: a ].
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
	self assert: parser parse: #(a b c) to: #(c b a)
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
! !
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
!PPMappingTest class methodsFor:'documentation'!
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
version
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    ^ '$Header$'
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
version_CVS
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
    ^ '$Header$'
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
! !
d9855050be6c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92