Чтобы это работало, вам нужно настроить функцию в общем виде, предоставляя все, что нужно компилятору для ее разрешения как A. Не совсем приятно повторять ограничения, но это работает.
A
static void TestFunction<T>(Class1<T> test) where T : A { }