ToStringTest.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. class FormalTheory_RegularExpression_Tests_ToStringTest extends PHPUnit_Framework_TestCase
  3. {
  4. function dataProviderForTestSimpleRead()
  5. {
  6. return array(
  7. array( "ab" ),
  8. array( "(ab)", "ab" ),
  9. array( "(a)(b)", "ab" ),
  10. array( "(a(b|c)(d))", "a(b|c)d" ),
  11. array( "((a)(b))", "ab" ),
  12. array( "((ab))", "ab" ),
  13. array( "((ab))*", "(ab)*" ),
  14. array( "((a|b))", "(a|b)" ),
  15. array( "(a)|(b)", "(a|b)" ),
  16. array( "a|b", "(a|b)" ),
  17. array( "(a|b)" ),
  18. array( "^(a|b)$" ),
  19. array( "^a|b$", "(^a|b$)" ),
  20. array( "[ab]" ),
  21. array( "[ab]+" ),
  22. array( "[ab]*" ),
  23. array( "[ab]{2,}" ),
  24. array( "\d" ),
  25. array( "\D" ),
  26. array( "\w" ),
  27. array( "\W" ),
  28. array( "\s" ),
  29. array( "\S" ),
  30. array( '\n' ),
  31. array( '\r' ),
  32. array( '\t' ),
  33. array( '\v' ),
  34. array( "." ),
  35. array( "[1-5N-Za-m]" ),
  36. array( "[abcdefghijlmnopqrstuvwxz]", "[a-jl-xz]" ),
  37. array( "[zvnoerstblmwijguqdpfxahc]", "[a-jl-xz]" ),
  38. array( "[^]" ),
  39. array( "[\^]" ),
  40. array( "[^a]" ),
  41. array( "[^a-d]" ),
  42. array( "[^\^]" ),
  43. array( "[^^]", "[^\^]" ),
  44. array( "1{1,1}", "1" ),
  45. array( "1{0,1}", "1?" ),
  46. array( "1{1,}", "1+" ),
  47. array( "1{0,}", "1*" ),
  48. array( "1{0,0}", "" ),
  49. array( "^$" ),
  50. array( "^1$" ),
  51. array( "^[^]*$" ),
  52. );
  53. }
  54. /**
  55. * @dataProvider dataProviderForTestSimpleRead
  56. */
  57. function testSimpleRead( $regex_string, $expected_string = NULL )
  58. {
  59. if( is_null( $expected_string ) ) $expected_string = $regex_string;
  60. $lexer = new FormalTheory_RegularExpression_Lexer();
  61. $regex = $lexer->lex( $regex_string );
  62. $regex_string = (string)$regex;
  63. $this->assertSame( $expected_string, $regex_string );
  64. //$regex_after_tostring = $lexer->lex( $regex_string );
  65. //$this->assertTrue( $regex->getDFA()->compare( $regex_after_tostring->getDFA() ) );
  66. }
  67. }
  68. ?>