private static string GetScenarioDisplayName(
            string scenarioOutlineDisplayName,
            IReadOnlyList <ITypeInfo> typeArguments,
            IReadOnlyList <IParameterInfo> parameters,
            IReadOnlyList <Argument> arguments)
        {
            var typeArgumentsString = typeArguments.Any()
                ? $"<{string.Join(", ", typeArguments.Select(typeArgument => TypeUtility.ConvertToSimpleTypeName(typeArgument)))}>"
                : string.Empty;

            var parameterAndArgumentTokens = new List <string>();
            int parameterIndex;

            for (parameterIndex = 0; parameterIndex < arguments.Count; parameterIndex++)
            {
                if (arguments[parameterIndex].IsGeneratedDefault)
                {
                    continue;
                }

                parameterAndArgumentTokens.Add(string.Concat(
                                                   parameterIndex >= parameters.Count ? "???" : parameters[parameterIndex].Name,
                                                   ": ",
                                                   arguments[parameterIndex].ToString()));
            }

            for (; parameterIndex < parameters.Count; parameterIndex++)
            {
                parameterAndArgumentTokens.Add(parameters[parameterIndex].Name + ": ???");
            }

            return($"{scenarioOutlineDisplayName}{typeArgumentsString}({string.Join(", ", parameterAndArgumentTokens)})");
        }