functor-based mapping tested