X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=tests%2Fregression.tc;h=f13accf654f6c51ff79ee8af64f7d32a849357a3;hp=863f8d80957a1fa9bb22298a63db6065c8a393e6;hb=087c00043731ddf2b3a47e918ed91a6df9152fdd;hpb=795b267302e8829c3131bbeb1b291d63e9094f4d diff --git a/tests/regression.tc b/tests/regression.tc index 863f8d8..f13accf 100644 --- a/tests/regression.tc +++ b/tests/regression.tc @@ -341,14 +341,6 @@ testcase { x = [123] } -testcase { - input "aaaaaaaa"; - output ""; - s = As & AAs - As = () | As "a" - AAs = () | AAs "aa" -} - // make sure follow restrictions are honored // when a string matches the empty string testcase { @@ -370,3 +362,34 @@ testcase { B = b:: "b" C = c:: "c" } + +testcase { + input "aaaaaaaaaaaaaaaaaaaa"; + output ""; + s = As & AAs + As = () | As "a" + AAs = () | AAs "aa" +} + +// pathological O(n^2) behavior +testcase { + input "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; + output "x"; + s = x:: ManyA! + ManyA = () + | x:: A ManyA + A = ()! ("a" & ManyAB) + ManyAB = () + | "a" ManyAB + | "b" ManyAB + +} + +// another O(n^2) example, tickles different epsilon behaviors +testcase { + input "aaaa"; + output "x:{x:{x:{x}}}"; + s = x:: s A! | () + A = "a" & B + B = () | B "a" +}