+KIRK_KRAUSS_TESTS=(
+ # the tests below were written by Kirk Krauss in this article:
+ # http://www.drdobbs.com/architecture-and-design/matching-wildcards-an-empirical-way-to-t/240169123
+
+ str_has_events
+ '"abcccd" == "*ccd"'
+
+ str_has_events
+ '"mississipissippi" == "*issip*ss*"'
+
+ str_has_no_event
+ '"xxxx\*zzzzzzzzy\*f" == "xxxx*zzy*fffff"'
+
+ str_has_events
+ '"xxxx\*zzzzzzzzy\*f" == "xxx*zzy*f"'
+
+ str_has_no_event
+ '"xxxxzzzzzzzzyf" == "xxxx*zzy*fffff"'
+
+ str_has_events
+ '"xxxxzzzzzzzzyf" == "xxxx*zzy*f"'
+
+ str_has_events
+ '"xyxyxyzyxyz" == "xy*z*xyz"'
+
+ str_has_events
+ '"mississippi" == "*sip*"'
+
+ str_has_events
+ '"xyxyxyxyz" == "xy*xyz"'
+
+ str_has_events
+ '"mississippi" == "mi*sip*"'
+
+ str_has_events
+ '"ababac" == "*abac*"'
+
+ str_has_events
+ '"ababac" == "*abac*"'
+
+ str_has_events
+ '"aaazz" == "a*zz*"'
+
+ str_has_no_event
+ '"a12b12" == "*12*23"'
+
+ str_has_no_event
+ '"a12b12" == "a12b"'
+
+ str_has_events
+ '"a12b12" == "*12*12*"'
+
+ str_has_events
+ '"\*" == "*"'
+
+ str_has_events
+ '"a\*abab" == "a*b"'
+
+ str_has_events
+ '"a\*r" == "a*"'
+
+ str_has_no_event
+ '"a\*ar" == "a*aar"'
+
+ str_has_events
+ '"XYXYXYZYXYz" == "XY*Z*XYz"'
+
+ str_has_events
+ '"missisSIPpi" == "*SIP*"'
+
+ str_has_events
+ '"mississipPI" == "*issip*PI"'
+
+ str_has_events
+ '"xyxyxyxyz" == "xy*xyz"'
+
+ str_has_events
+ '"miSsissippi" == "mi*sip*"'
+
+ str_has_no_event
+ '"miSsissippi" == "mi*Sip*"'
+
+ str_has_events
+ '"abAbac" == "*Abac*"'
+
+ str_has_events
+ '"abAbac" == "*Abac*"'
+
+ str_has_events
+ '"aAazz" == "a*zz*"'
+
+ str_has_no_event
+ '"A12b12" == "*12*23"'
+
+ str_has_events
+ '"a12B12" == "*12*12*"'
+
+ str_has_events
+ '"oWn" == "*oWn*"'
+
+ str_has_events
+ '"bLah" == "bLah"'
+
+ str_has_no_event
+ '"bLah" == "bLaH"'
+
+ str_has_events
+ '"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab" == "a*a*a*a*a*a*aa*aaa*a*a*b"'
+
+ str_has_events
+ '"abababababababababababababababababababaacacacacacacacadaeafagahaiajakalaaaaaaaaaaaaaaaaaffafagaagggagaaaaaaaab" == "*a*b*ba*ca*a*aa*aaa*fa*ga*b*"'
+
+ str_has_no_event
+ '"abababababababababababababababababababaacacacacacacacadaeafagahaiajakalaaaaaaaaaaaaaaaaaffafagaagggagaaaaaaaab" == "*a*b*ba*ca*a*x*aaa*fa*ga*b*"'
+
+ str_has_no_event
+ '"abababababababababababababababababababaacacacacacacacadaeafagahaiajakalaaaaaaaaaaaaaaaaaffafagaagggagaaaaaaaab" == "*a*b*ba*ca*aaaa*fa*ga*gggg*b*"'
+
+ str_has_events
+ '"abababababababababababababababababababaacacacacacacacadaeafagahaiajakalaaaaaaaaaaaaaaaaaffafagaagggagaaaaaaaab" == "*a*b*ba*ca*aaaa*fa*ga*ggg*b*"'
+
+ str_has_events
+ '"aaabbaabbaab" == "*aabbaa*a*"'
+
+ str_has_events
+ '"a\*a\*a\*a\*a\*a\*a\*a\*a\*a\*a\*a\*a\*a\*a\*a\*a\*" == "a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*"'
+
+ str_has_events
+ '"aaaaaaaaaaaaaaaaa" == "*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*"'
+
+ str_has_no_event
+ '"aaaaaaaaaaaaaaaa" == "*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*a*"'
+
+ str_has_no_event
+ '"abc\*abcd\*abcde\*abcdef\*abcdefg\*abcdefgh\*abcdefghi\*abcdefghij\*abcdefghijk\*abcdefghijkl\*abcdefghijklm\*abcdefghijklmn" == "abc*abc*abc*abc*abc*abc*abc*abc*abc*abc*abc*abc*abc*abc*abc*abc*abc*"'
+
+ str_has_events
+ '"abc\*abcd\*abcde\*abcdef\*abcdefg\*abcdefgh\*abcdefghi\*abcdefghij\*abcdefghijk\*abcdefghijkl\*abcdefghijklm\*abcdefghijklmn" == "abc*abc*abc*abc*abc*abc*abc*abc*abc*abc*abc*abc*"'
+
+ str_has_no_event
+ '"abc\*abcd\*abcd\*abc\*abcd" == "abc*abc*abc*abc*abc"'
+
+ str_has_events
+ '"abc\*abc\*abc\*abc\*abc\*abc\*abc\*abc\*abc\*abc\*abcd" == "abc*abc*abc*abc*abc*abc*abc*abc*abc*abc*abcd"'
+)
+
+# Set IFS to newline to facilitate array declaration
+OLDIFS="$IFS"
+IFS=$'\n'
+UST_FILTERS=(
+ intfield
+ "intfield"
+
+ intfield_gt
+ "intfield > 1"
+
+ intfield_ge
+ "intfield >= 1"
+
+ intfield_lt
+ "intfield < 2"
+
+ intfield_le
+ "intfield <= 2"
+
+ intfield_eq
+ "intfield == 1"
+
+ intfield_ne
+ "intfield != 99"
+
+ intfield_not
+ "!intfield"
+
+ intfield
+ "-intfield"
+
+ intfield
+ "--intfield"
+
+ intfield
+ "+intfield"
+
+ intfield
+ "++intfield"
+
+ intfield_gt_and_longfield_gt
+ "intfield > 1 && longfield > 42"
+
+ intfield_ge_and_longfield_le
+ "intfield >= 42 && longfield <= 42"
+
+ intfield_lt_or_longfield_gt
+ "intfield < 1 || longfield > 98"
+
+ mixed_str_or_int_and_int
+ "(stringfield == \"test\" || intfield != 10) && intfield > 33"
+
+ mixed_int_double
+ "intfield < 42.4242424242"
+
+ # Issue #342
+ true_statement
+ "\"test\" == \"test\""
+
+ true_statement
+ "stringfield == \"test\""
+
+ true_statement
+ "stringfield == \"t*\""
+
+ true_statement
+ "stringfield == \"*\""
+
+ # Issue 356
+ intfield
+ $issue_356_filter
+
+ true_statement
+ "intfield < 0xDEADBEEF"
+
+ intfield_lt
+ "intfield < 0x2"
+
+ intfield_lt
+ "intfield < 02"
+
+ true_statement
+ "stringfield2 == \"\\\*\""
+
+ true_statement
+ "1.0 || intfield || 1.0"
+
+ intfield_gt
+ "1 < intfield"
+
+ has_no_event
+ "\$ctx.vtid == 0"
+
+ has_events
+ "\$ctx.vtid != 0"
+
+ has_no_event
+ "0 == \$ctx.vtid"
+
+ has_events
+ "0 != \$ctx.vtid"
+
+ has_no_event
+ "\$ctx.vpid == 0"
+
+ has_events
+ "\$ctx.vpid != 0"
+
+ has_no_event
+ "0 == \$ctx.vpid"