SmaCC__LineNumberStreamTest.st
author vranyj1
Wed, 17 Nov 2010 21:57:55 +0000
changeset 20 4ea23addc2c4
parent 15 8b8cd1701c33
child 25 5a6921729520
permissions -rw-r--r--
Makefile updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     1
"{ Package: 'stx:goodies/smaCC' }"
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     2
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     3
"{ NameSpace: SmaCC }"
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     4
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     5
TestCase subclass:#LineNumberStreamTest
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     6
	instanceVariableNames:''
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     7
	classVariableNames:''
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     8
	poolDictionaries:''
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
     9
	category:'SmaCC-Tests'
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    10
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    11
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    12
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    13
!LineNumberStreamTest methodsFor:'private'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    14
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    15
addCRLFsTo: aString
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    16
        Smalltalk isSmalltalkX ifTrue:[
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    17
            ^aString replString: '\'
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    18
                    withString: (String with: Character return with: Character lf)
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    19
        ].
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    20
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    21
        ^aString copyReplaceAll: '\'
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    22
                with: (String with: Character cr with: Character lf)
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    23
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    24
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    25
addCRsTo: aString 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    26
        Smalltalk isSmalltalkX ifTrue:[
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    27
            ^aString replString: '\'
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    28
                    withString: (String with: Character return)
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    29
        ].
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    30
        ^aString copyReplaceAll: '\' with: (String with: Character cr)
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    31
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    32
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    33
addLFsTo: aString 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    34
        Smalltalk isSmalltalkX ifTrue:[
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    35
            ^aString replString: '\'
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    36
                    withString: (String with: Character lf)
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    37
        ].
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    38
        ^aString copyReplaceAll: '\' with: (String with: Character lf)
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    39
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    40
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    41
!LineNumberStreamTest methodsFor:'public'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    42
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    43
testCRLFLines
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    44
	| stream |
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    45
	stream := SmaCCLineNumberStream 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    46
				on: (ReadStream on: (self addCRLFsTo: '1\2\3\4')).
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    47
	1 to: 4
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    48
		do: 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    49
			[:each | 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    50
			self assert: stream lineNumber = each.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    51
			stream upTo: Character lf]
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    52
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    53
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    54
testCRLines
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    55
        | stream cr |
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    56
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    57
        cr := Character cr.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    58
        Smalltalk isSmalltalkX ifTrue:[ cr := Character return. ].
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    59
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    60
        stream := SmaCCLineNumberStream 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    61
                                on: (ReadStream on: (self addCRsTo: '1\2\3\4')).
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    62
        1 to: 4
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    63
                do: 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    64
                        [:each | 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    65
                        self assert: stream lineNumber = each.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    66
                        stream upTo: cr]
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    67
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    68
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    69
testEmptyLines
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    70
        | stream cr |
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    71
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    72
        cr := Character cr.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    73
        Smalltalk isSmalltalkX ifTrue:[ cr := Character return. ].
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    74
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    75
        stream := SmaCCLineNumberStream 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    76
                                on: (ReadStream on: (self addCRsTo: '\\\')).
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    77
        1 to: 4
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    78
                do: 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    79
                        [:each | 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    80
                        self assert: stream lineNumber = each.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    81
                        stream upTo: cr]
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    82
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    83
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    84
testForwardPositionCRLFLines
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    85
	| stream |
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    86
	stream := SmaCCLineNumberStream 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    87
				on: (ReadStream on: (self addCRLFsTo: '1\2\3\4')).
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    88
	stream position: 3.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    89
	self assert: stream lineNumber = 2
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    90
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    91
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    92
testLFLines
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    93
	| stream |
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    94
	stream := SmaCCLineNumberStream 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    95
				on: (ReadStream on: (self addLFsTo: '1\2\3\4')).
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    96
	1 to: 4
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    97
		do: 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    98
			[:each | 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
    99
			self assert: stream lineNumber = each.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   100
			stream upTo: Character lf]
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   101
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   102
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   103
testNoLines
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   104
	| stream |
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   105
	stream := SmaCCLineNumberStream on: (ReadStream on: 'this is a test').
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   106
	self assert: stream lineNumber = 1.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   107
	stream do: [:each | self assert: stream lineNumber = 1]
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   108
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   109
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   110
testPositionCRLFLines
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   111
        | stream |
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   112
        stream := SmaCCLineNumberStream 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   113
                                on: (ReadStream on: (self addCRLFsTo: '1\2\3\4')).
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   114
        self assert: stream lineNumber = 1.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   115
        stream upTo: $5.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   116
        self assert: stream lineNumber = 4.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   117
        Smalltalk isSmalltalkX ifTrue:[ stream reset ] ifFalse:[ stream position: 0 ].
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   118
        self assert: stream lineNumber = 1.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   119
        Smalltalk isSmalltalkX ifTrue:[ stream position: 4 ] ifFalse:[ stream position: 3 ].
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   120
        self assert: stream lineNumber = 2
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   121
!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   122
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   123
testPositionCRLines
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   124
        | stream |
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   125
        stream := SmaCCLineNumberStream 
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   126
                                on: (ReadStream on: (self addCRsTo: '1\2\3\4')).
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   127
        self assert: stream lineNumber = 1.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   128
        stream upTo: $5.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   129
        self assert: stream lineNumber = 4.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   130
        stream skip: -1.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   131
        self assert: stream lineNumber = 4.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   132
        Smalltalk isSmalltalkX ifTrue:[ stream reset ] ifFalse:[ stream position: 0 ].
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   133
        self assert: stream lineNumber = 1.
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   134
        Smalltalk isSmalltalkX ifTrue:[ stream position: 3 ] ifFalse:[ stream position: 2 ].
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   135
        self assert: stream lineNumber = 2
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   136
! !
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   137
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   138
!LineNumberStreamTest class methodsFor:'documentation'!
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   139
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   140
version
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   141
    ^ '$Header: /opt/data/cvs/stx/goodies/smaCC/SmaCC__LineNumberStreamTest.st,v 1.1 2006-02-09 21:15:24 vranyj1 Exp $'
15
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
   142
!
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
   143
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
   144
version_SVN
8b8cd1701c33 added version_SVN method
vranyj1
parents: 1
diff changeset
   145
    ^ '$Id$'
1
b8cca2663544 Initial import
vranyj1
parents:
diff changeset
   146
! !