I would really prefer that we don't use instance initializers in JUnit. In a constructor like this:

    public MyType(...) {
      super(a, b);
      doSomething(c);
    }

It is very surprising that there is code *magically* executed between these two lines.

Could we instead do:

    private static final Map<Class<?>, Class<?>> CONVERTABLE_TYPE_MAP = convertableTypeMap();

As a bonus, 1) `convertableTypeMap()` can return an unmodifiable map and 2) you can remove the `@SuppressWarnings("serial")`