private void numeric( NumericFunction f, Number expected, Number... args ) {
NumericPromotion promoter = new NumericPromotion();
promoter.promote( args );
FunctionApplicationVisitor visitor = new FunctionApplicationVisitor( f );
promoter.accept( visitor );
Number result = visitor.getResult();
if( expected == null ) {
assertNull( result );
}