Hi all, I'm working on FUNCTOR-12 [1], writing tests for [functor] and learning more about its code base, and could do with some help :-)
Some parts of [functor] code, specially constructors, use Validate.notNull(...) from Commons Lang3. Other partsĀ throw NullPointerException when the argument is null. But there are also parts that use nothing to validate the arguments. 0) I would like to add the method Validate.notNull(...) where necessary in [functor], if no one objects. Right now, I'm working on the following composite functors: TransformedProcedure, TransformedFunction, TransformedBinaryProcedure and TransformedBinaryFunction. None of these validates the arguments, while OTOH, TransposedFunction, TransposedPredicate and TransposedProcedure, classes in the same package, use Validate.notNull(...). 1) There is also unreachable code, specially in equals() methods, that checks if an object is null before accessing its methods. But this object can never be null, as Validate.notNull(...) or throw NPE is used to assert this in the constructor. There is no other way to set this object. (You can still change it through reflection, but don't think it is worth keeping it only for this reason). I was wondering if we could remove the unreachable code, as there is no way to write test code for it. [2] is an example of unreachable code (one of its conditions), with the tests in [3] (there is no way to have a null predicate). It will simplify the code, reducing decision branches and will increase the test coverage too. Many thanks in advance! [1] https://issues.apache.org/jira/browse/FUNCTOR-12 [2] https://github.com/kinow/functor/blob/master/src/main/java/org/apache/commons/functor/core/composite/UnaryNot.java#L82 [3] https://github.com/kinow/functor/blob/master/src/test/java/org/apache/commons/functor/core/composite/TestUnaryNot.java#L53 Bruno P. Kinoshita http://kinoshita.eti.br http://tupilabs.com --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org