@@ -445,4 +445,29 @@ class GeneRegexJavaVisitorTest : GeneRegexEcma262VisitorTest() {
445445 fun testUnicodeCharClassFlagImpliesUnicodeCase (){
446446 checkCanSample(" (?iU)Å" , " å" , 100 )
447447 }
448+
449+ @Test
450+ fun testSimpleLookaheads () {
451+ checkSameAsJava(" (?=aaa5)aaa\\ d" )
452+ checkSameAsJava(" (?=.*\\ d).{4,8}" )
453+ checkSameAsJava(" (?=.*[A-Z])[a-zA-Z]{4,8}" )
454+ checkSameAsJava(" (?=.*[a-z])[a-zA-Z]{4,8}" )
455+ checkSameAsJava(" foo(?=.*\\ d)[a-z\\ d]{3,6}" )
456+ checkSameAsJava(" (?=.*\\ d)\\ w{6,12}" )
457+ checkSameAsJava(" (?=.*[^A-Za-z0-9])\\ w{6,12}$" )
458+ checkSameAsJava(" ^(?=.*\\ d)[a-zA-Z\\ d]{8,16}$" )
459+ checkSameAsJava(" (?=\\ d)\\ d{1,5}" )
460+ checkSameAsJava(" (?=.*\\ d)([a-z]+|\\ d+){2,4}" )
461+ checkSameAsJava(" (?=(!.*[a-z]+))\\ 1" )
462+ checkSameAsJava(" (?=(\\ d|\\ s|d))(\\ d|\\ s|d)*" )
463+ checkSameAsJava(" (?=a*)\\ w*" )
464+ checkSameAsJava(" (?=xbcde)x(bcdX|bc)de" )
465+ checkSameAsJava(" (?=.*[A-Z])(?=.*[a-z])[a-zA-Z]{4,8}" )
466+ checkSameAsJava(" (?=ababc)(ab|abc)+" )
467+ assertThrows<IllegalStateException > { checkSameAsJava(" (?=.*\\ d)(?=.*[A-Z])[a-zA-Z]{4,8}" ) }
468+ assertThrows<IllegalStateException > { checkSameAsJava(" (?=.*\\ d)(?=.*[A-Z])" ) }
469+ assertThrows<IllegalStateException > { checkSameAsJava(" (?=.*\\ d)[a-z]+" ) }
470+ assertThrows<IllegalStateException > { checkSameAsJava(" (?=bbbX)aaa[a-z]" ) }
471+ assertThrows<IllegalStateException > { checkSameAsJava(" (?=abcde)a(bcef|de)de" ) }
472+ }
448473}
0 commit comments