### Question:
Funky { public static <T> ClassFunctionWithInput<T> newFunctionWithInput(Class<T> applyingClass, Object... constructorArguments) { return factory.newFunctionWithInput(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 newFunctionWithInputReturnsFunkyFunctionWithInput() { class Instantiated {} ClassFunctionWithInput<Instantiated> classFunction = Funky.newFunctionWithInput(Instantiated.class); assertTrue(classFunction instanceof FunkyFunctionWithInput); }