@@ -345,16 +345,28 @@ def test_to_regex(self):
345
345
then generate NFA from regex (already tested method)
346
346
and check for equivalence of NFA and previous DFA
347
347
"""
348
-
349
- nfa = NFA .from_regex ('a(aaa*bbcd|abbcd)d*|aa*bb(dcc*|(d|c)b|a?bb(dcc*|(d|c)))ab(c|d)*(ccd)?' )
350
- gnfa = GNFA .from_nfa (nfa )
351
- regex = gnfa .to_regex ()
352
- nfa = NFA .from_regex (regex )
353
- dfa2 = DFA .from_nfa (nfa )
354
-
355
- dfa = DFA .from_nfa (nfa )
356
-
357
- self .assertEqual (dfa , dfa2 )
348
+ regex_strings = [
349
+ 'a*' ,
350
+ 'aa*b|bba*|(cc*)(bb+)' ,
351
+ 'a(aaa*bbcd|abbcd)d*|aa*bb(dcc*|(d|c)b|a?bb(dcc*|(d|c)))ab(c|d)*(ccd)?'
352
+ ]
353
+
354
+ for regex_str in regex_strings :
355
+ nfa_1 = NFA .from_regex (regex_str )
356
+ gnfa_1 = GNFA .from_nfa (nfa_1 )
357
+ regex_1 = gnfa_1 .to_regex ()
358
+ nfa_2 = NFA .from_regex (regex_1 )
359
+
360
+ # Test equality under NFA regex conversion
361
+ self .assertEqual (nfa_1 , nfa_2 )
362
+
363
+ dfa_1 = DFA .from_nfa (nfa_1 )
364
+ gnfa_2 = GNFA .from_dfa (dfa_1 )
365
+ regex_2 = gnfa_2 .to_regex ()
366
+ dfa_2 = DFA .from_nfa (NFA .from_regex (regex_2 ))
367
+
368
+ # Test equality through DFA regex conversion
369
+ self .assertEqual (dfa_1 , dfa_2 )
358
370
359
371
def test_read_input_step_not_implemented (self ):
360
372
"""Should not implement read_input_stepwise() for GNFA."""
0 commit comments