Invoke public abstract void Shapes.circle(int)
 0: 3
--- circle 3
Success: method circle res=null
Invoke public abstract int Quads.rectangle(int,int)
 0: 10
 1: 20
--- rectangle 10,20
Success: method rectangle res=4
Invoke public abstract java.lang.String Shapes.blob()
 (no args)
--- blob
Success: method blob res=mix
Invoke public abstract int Quads.rectangle(int,int)
 0: 15
 1: 25
--- rectangle 15,25
Success: method rectangle res=4
Invoke public abstract int Quads.trapezoid(int,double,int)
 0: 6
 1: 81.18
 2: 4
--- trap 6,4,81.18
Success: method trapezoid res=8
Invoke public abstract int Colors.red(float)
 0: 1.0
--- red 1.0
Success: method red res=0
Invoke public abstract double Colors.blue(int)
 0: 777
--- blue 777
Success: method blue res=2.54
Invoke public abstract int Colors.mauve(java.lang.String)
 0: sorry
--- mauve sorry
Success: method mauve res=3
Invoke public abstract java.lang.String Shapes.blob()
 (no args)
--- blob
Success: method blob res=mix
Invoke public abstract void Shapes.upChuck()
 (no args)
Got expected ioobe
Invoke public abstract void Shapes.upCheck() throws java.lang.InterruptedException
 (no args)
Got expected ie

Proxy methods: [public native boolean $Proxy0.equals(java.lang.Object), public native int $Proxy0.hashCode(), public native java.lang.String $Proxy0.toString(), public native int $Proxy0.rectangle(int,int), public native int $Proxy0.square(int,int), public native int $Proxy0.trapezoid(int,double,int), public native java.lang.String $Proxy0.blob(), public native void $Proxy0.circle(int), public native void $Proxy0.upCheck(), public native void $Proxy0.upChuck(), public native double $Proxy0.blue(int), public native R0aa $Proxy0.checkMe(), public native int $Proxy0.green(double), public native int $Proxy0.mauve(java.lang.String), public native int $Proxy0.red(float)]
Decl annos: []
Param annos (1) : [[]]
Proxy fields: [private static java.lang.Throwable[][] $Proxy0.throws]
Dupe threw expected exception
Clash threw expected exception
Clash2 threw expected exception
Clash3 threw expected exception
Clash4 threw expected exception
Invoke public abstract void InterfaceW1.throwFunky()
 (no args)
Got expected UTE
Invoke public abstract void InterfaceW1.throwFunky2() throws BaseException,java.lang.NoSuchMethodException,java.io.IOException
 (no args)
Got expected IOE
Invoke public abstract void InterfaceW1.throwFunky2() throws BaseException,java.lang.NoSuchMethodException,java.io.IOException
 (no args)
Got expected IOE
Invoke public abstract void InterfaceW1.throwException() throws BaseException
 (no args)
Got expected UTE
Invoke public abstract void InterfaceW1.throwBase() throws BaseException
 (no args)
Got expected UTE
Invoke public abstract void InterfaceW1.throwSub() throws BaseException
 (no args)
Got expected exception
Invoke public abstract void InterfaceW1.throwSubSub() throws BaseException
 (no args)
Got expected exception
Invoke public abstract void InterfaceW1.bothThrowBase() throws BaseException,SubException,SubSubException
 (no args)
Got expected exception
