On 12/20/15 8:41 PM, Gilles wrote: > On Sat, 19 Dec 2015 11:35:26 -0700, Phil Steitz wrote: >> On 12/19/15 9:02 AM, Gilles wrote: >>> Hi. >>> >>> While experimenting on >>> https://issues.apache.org/jira/browse/MATH-1300 >>> I created a new >>> JDKRandomGeneratorTest >>> that inherits from >>> RandomGeneratorAbstractTest >>> similarly to the classes for testing all the other RNG implemented >>> in CM. >>> >>> The following tests (implemented in the base class) failed: >>> 1. >>> >>> testNextIntNeg(org.apache.commons.math4.random.JDKRandomGeneratorTest) >>> >>> Time elapsed: 0.001 sec <<< ERROR! >>> java.lang.Exception: Unexpected exception, >>> >>> expected<org.apache.commons.math4.exception.MathIllegalArgumentException> >>> >>> but was<java.lang.IllegalArgumentException> >>> 2. >>> >>> testNextIntIAE2(org.apache.commons.math4.random.JDKRandomGeneratorTest) >>> >>> Time elapsed: 0.015 sec <<< ERROR! >>> java.lang.IllegalArgumentException: bound must be positive >>> >>> This is caused by try/catch clauses that expect a >>> "MathIllegalArgumentException" >>> but "JDKRandomGenerator" extends "java.util.Random" that for those >>> methods throws >>> "IllegalArgumentException". >>> >>> What to do? >> >> I would change the test to expect IllegalArgumentException. Most >> [math] generators actually throw NotStrictlyPositiveException here, >> which extends MIAE, which extends IAE, so this should work. > > It turns out that, in the master branch, the hierarchy is > > RuntimeException > | > MathRuntimeException > | > MathIllegalArgumentException > > as per > https://issues.apache.org/jira/browse/MATH-853 > > [And the Javadoc and "throws" clauses are not yet consistent with > this > in all the code base (e.g. the "RandomGenerator" interface).] > > So, in 4.0, "JDKRandomGenerator" should probably not inherit from > "java.util.Random" but delegate to it, trap standard exceptions > raised, > and rethrow CM ones.
I guess that is the only way out if we are going to stick with the MATH-853 setup. This example illustrates a drawback identified in the thread mentioned in the ticket. I would personally be happy reverting master back to the 3.x setup. Phil > > > Gilles > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org