### Question:
Funky { public static <T> ClassFunction<T> newFunction(Class<T> applyingClass, Object... constructorArguments) { return factory.newFunction(applyingClass, constructorArguments); } protected  Funky(); static ClassFunction<T> newFunction(Class<T> applyingClass, Object... constructorArguments); static ClassFunctionWithInput<T> newFunctionWithInput(Class<T> applyingClass, Object... constructorArguments); static void setThreadSafeInput(boolean threadSafe); static T getInput();  }### Answer:
@Test public void newFunctionDelegatesToFactory() { class Instantiated {} ClassFunction<Instantiated> classFunction = Funky.newFunction(Instantiated.class); assertTrue(classFunction instanceof FunkyFunction); }