--- a/compiler/tests/PEGFsaTransitionTest.st Fri Jul 24 15:06:54 2015 +0100
+++ b/compiler/tests/PEGFsaTransitionTest.st Mon Aug 17 12:13:16 2015 +0100
@@ -3,7 +3,7 @@
"{ NameSpace: Smalltalk }"
TestCase subclass:#PEGFsaTransitionTest
- instanceVariableNames:'t1 t2 result'
+ instanceVariableNames:'t1 t2 result e1 e2'
classVariableNames:''
poolDictionaries:''
category:'PetitCompiler-Tests-FSA'
@@ -12,9 +12,14 @@
!PEGFsaTransitionTest methodsFor:'as yet unclassified'!
setUp
- t1 := PEGFsaTransition new.
- t2 := PEGFsaTransition new.
-!
+ t1 := PEGFsaCharacterTransition new.
+ t2 := PEGFsaCharacterTransition new.
+
+ e1 := PEGFsaEpsilonTransition new.
+ e2 := PEGFsaEpsilonTransition new.
+! !
+
+!PEGFsaTransitionTest methodsFor:'character'!
testCompare
t1 addCharacter: $a.
@@ -91,6 +96,12 @@
self assert: (result at: $c codePoint) not.
!
+testEpsilonIntersection
+ result := e1 intersection: e2.
+
+ self assert: (result isEpsilon)
+!
+
testIntersection
t1 addCharacter: $a.
t1 addCharacter: $b.
@@ -128,3 +139,37 @@
self assert: (result at: $d codePoint) not.
! !
+!PEGFsaTransitionTest methodsFor:'tests - epsilon'!
+
+testCompareEpsilon
+
+ self assert: e1 = e2.
+
+ e1 destination: #a.
+ e2 destination: #b.
+
+ self assert: (e1 = e2) not.
+
+!
+
+testCopyEpsilon
+
+ e2 := e1 copy.
+
+
+ self assert: e1 = e2.
+ self assert: (e1 == e2) not.
+
+ e2 destination: #foo.
+ self assert: (e1 = e2) not.
+
+ e1 destination: #foo.
+ self assert: (e1 = e2).
+
+ e1 priority: -1.
+ self assert: (e1 = e2) not.
+
+ e2 priority: -1.
+ self assert: (e1 = e2).
+! !
+