|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
namespace System;
public static class TheoryDataExtensions
{
/// <summary>
/// Converts an IEnumerable<typeparamref name="T"/> into an Xunit theory compatible enumerable.
/// </summary>
public static TheoryData<T> ToTheoryData<T>(this IEnumerable<T> data)
{
TheoryData<T> theoryData = [];
foreach (var item in data)
{
theoryData.Add(item);
}
return theoryData;
}
/// <inheritdoc cref="ToTheoryData{T}"/>
public static TheoryData<T1, T2> ToTheoryData<T1, T2>(this IEnumerable<(T1, T2)> data)
{
TheoryData<T1, T2> theoryData = [];
foreach (var item in data)
{
theoryData.Add(item.Item1, item.Item2);
}
return theoryData;
}
/// <inheritdoc cref="ToTheoryData{T}"/>
public static TheoryData<T1, T2, T3> ToTheoryData<T1, T2, T3>(this IEnumerable<(T1, T2, T3)> data)
{
TheoryData<T1, T2, T3> theoryData = [];
foreach (var item in data)
{
theoryData.Add(item.Item1, item.Item2, item.Item3);
}
return theoryData;
}
}
|