internal static TValue Simple <TValue, TData>(
            TValue item,
            string paremeterName,
            Func <TValue, TData> toData,
            Func <TData, TValue> fromData)
        {
            var data         = toData(item);
            var roundtripped = fromData(data);

            try
            {
                FieldAssert.Equal(item, roundtripped);
            }
            catch (Exception e)
            {
                throw AssertException.CreateFromException(
                          $"Simple roundtrip failed. Source is not equal to roundtripped.",
                          e);
            }

            return(roundtripped);
        }