Test do need some more variation since there are a lot of special cases for different kind of types.
This especially affects all atomic types, arrays and classes that are using generics. (Mainly all type that are not extending Object)
Test coverage might be misleading here. Because it doesn't describe if all special cases are handled coorectly