corda/test
Johannes Schindelin 62d1964779 Regex: add a method to reverse the PikeVM program
A program for the PikeVM corresponds to a regular expression pattern. The
program matches the character sequence in left-to-right order. However,
for look-behind expressions, we will want to match the character sequence
backwards.

To this end, it is nice that regular expression patterns can be reversed
in a straight-forward manner. However, it would be nice if we could avoid
multiple parsing passes and simply parse even look-behind expressions as
if they were look-ahead ones, and then simply reverse the program for that
part.

Happily, it is not difficult to reverse the program so it is equivalent to
matching the pattern backwards.

There is one catch, though. Imagine matching the sequence "a" against the
regular expression "(a?)a?". If we match forward, the group will match the
letter "a", when matching backwards, it will match the empty string. So,
while the reverse pattern is equivalent to the forward pattern in terms of
"does the pattern match that sequence", but not its sub-matches. For that
reason, Java simply ignores capturing groups in look-behind patterns (and
for consistency, the same holds for look-ahead patterns).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-12-03 12:28:11 -06:00
..
avian/testing/annotations Fixing some issues with runtime annotations within avian. 2012-05-22 14:02:51 -06:00
extra make Sockets test Java6-compilable, make it more generic, and move it to 'extra' 2013-11-08 10:05:53 -07:00
regex Regex: add a method to reverse the PikeVM program 2013-12-03 12:28:11 -06:00
AllFloats.java refactor code responsible for moving data in the compiler 2009-11-27 21:15:12 -07:00
Annotations.java Fixing some issues with runtime annotations within avian. 2012-05-22 14:02:51 -06:00
Arrays.java Implement the Arrays#copyOf family 2013-11-04 15:11:00 -06:00
BitsetTest.java Fixed issue where BitSet didn't handle a range of 64 bits correctly on bulk operations - now just return the predefined MASK which has all the bits set when requesting that all the bits be set. 2012-07-06 23:33:05 -06:00
Buffers.java add Buffers test 2012-08-11 08:01:44 -06:00
ci.sh allow extra flags to be passed to make in ci.sh 2013-03-15 17:48:47 -06:00
Collections.java Implement Collections#sort 2013-11-04 12:08:22 -06:00
Datagrams.java implement DatagramChannel.receive and fix Datagrams to be Java 6 compatible 2012-07-10 14:09:14 -06:00
Dates.java fix Dates test for openjdk and stub out java.util.TimeZone 2013-11-07 20:44:02 -07:00
DefineClass.java uncomment testStatic call in DefineClass 2011-03-15 17:33:09 -06:00
DivideByZero.java throw ArithmeticException on divide-by-zero 2010-12-19 17:47:21 -07:00
Enums.java Implemented proper enum toString() behavior and an enum test. it should 2007-09-26 12:59:18 -06:00
EnumSetTest.java Adding EnumSet, which is backed by a speedy BitSet. 2012-07-02 14:28:51 -06:00
Exceptions.java implement primitive testing framework and provide for GC stress testing 2007-07-15 19:03:02 -06:00
FileOutput.java close FileInputStream before deleting file in FileOutput test 2011-01-17 10:33:43 -07:00
Files.java Make sure to test java.io.File#lastModified 2013-10-17 14:30:41 -05:00
Finalizers.java run java finalizers in a separate thread to guarantee no application locks are held when doing so 2009-08-24 17:51:31 -06:00
Floats.java fix NaN handling in floating point comparisons 2013-04-03 16:19:33 -06:00
GC.java fix custom-classloader-related concurrency problems and other bugs 2010-09-16 20:49:02 -06:00
Hello.java revert accidentally-committed change to Hello.java 2008-10-21 17:42:05 -06:00
Initializers.java fix ARM stack unwinding (part 2) 2011-02-20 13:49:40 -07:00
Integers.java Test the newly-introduced Integer#decode method 2013-10-25 15:32:33 -05:00
jni.cpp implement JNIEnv::NewLocalRef 2012-12-20 09:05:30 -07:00
JNI.java implement JNIEnv::NewLocalRef 2012-12-20 09:05:30 -07:00
LazyLoading.java fix IllegalAccessException in LazyLoading test 2011-03-26 12:00:40 -06:00
List.java Fix an off-by-1 error in the remove method. 2012-07-06 14:03:56 -06:00
Logging.java Support Logger#log(Level,String,Object) 2013-11-06 09:07:58 -06:00
Longs.java fix 64-bit shifts on x86_32 (part 2) 2012-09-03 08:44:13 -06:00
Misc.java Add a pseudo-integration test for getResources() 2013-11-04 16:53:02 -06:00
NullPointer.java add a couple of test cases to NullPointer.java 2011-02-01 08:40:56 -07:00
OutOfMemory.java rework VM exception handling; throw OOMEs when appropriate 2010-12-27 15:55:23 -07:00
Processes.java implement Process.destroy 2011-11-03 12:30:51 -06:00
Proxies.java support runtime-visible annotations and java.lang.reflect.Proxy 2009-09-18 18:01:54 -06:00
References.java fix handling of reachable, moved weak references in postVisit 2009-09-01 17:23:30 -06:00
Reflection.java Fix NPE in Field#getAnnotation 2013-11-06 09:46:56 -06:00
Regex.java Regex: support lookaheads 2013-12-03 12:28:11 -06:00
Serialize.java Serialize test: augment the hexdump with address and ASCII dump 2013-11-06 09:12:18 -06:00
Simple.java fix Exceptions test for amd64 2008-11-02 15:25:51 -07:00
StackOverflow.java make StackOverflow test useful in tails=true build 2011-01-25 17:13:59 -07:00
Strings.java Verify that String#lastIndexOf handles large fromIndex correctly 2013-10-25 15:32:33 -05:00
Subroutine.java fix stack mapping bug for try blocks containing jsr/ret instructions 2012-12-12 15:54:15 -07:00
Switch.java implement tableswitch and lookupswitch instructions plus run loop bugfixes and tweaks 2007-08-12 20:52:12 -06:00
test.sh exit with error code from test.sh if any test fails 2013-03-15 13:17:04 -06:00
Threads.java fix Thread.interrupt and Thread.interrupted 2011-07-12 14:15:43 -06:00
Trace.java use wait/notifyAll too avoid starvation in Trace test 2011-02-26 12:40:54 -07:00
Tree.java add TreeSet(Collection) constructor 2011-01-20 09:39:16 -07:00
UnsafeTest.java add test for sun.misc.Unsafe functionality 2012-03-13 08:28:33 -06:00
UrlTest.java include leading slash in path when parsing URLs in URLStreamHandler 2012-02-18 15:14:16 -07:00
Zip.java fix access violation introduced in last commit 2011-09-14 13:27:17 -06:00
ZipOutputStreamTest.java Add tests for creating zip files using both write methods 2013-07-08 14:50:17 -06:00