| File: XUnit\TestData.cs | Web Access |
| Project: src\winforms\src\Common\tests\TestUtilities\System.Private.Windows.Core.TestUtilities.csproj (System.Private.Windows.Core.TestUtilities) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. #if NET using System.Collections.Immutable; using System.Numerics; namespace Xunit; /// <summary> /// Raw, cached test data. /// </summary> public static class TestData { /// <summary> /// Returns a variety of floating point test cases. /// </summary> public static ImmutableArray<T> GetFloatingPointData<T>() where T : struct, IBinaryFloatingPointIeee754<T>, IMinMaxValue<T> => FloatingPointData<T>.Data; /// <summary> /// Returns a variety of integer test cases. /// </summary> public static ImmutableArray<T> GetIntegerData<T>() where T : struct, IBinaryInteger<T>, IMinMaxValue<T> => IntegerData<T>.Data; /// <summary> /// Returns a variety of positive integer test cases. /// </summary> public static ImmutableArray<T> GetPositiveIntegerData<T>() where T : struct, IBinaryInteger<T>, IMinMaxValue<T> => PositiveIntegerData<T>.Data; private static class FloatingPointData<T> where T : struct, IBinaryFloatingPointIeee754<T>, IMinMaxValue<T> { public static ImmutableArray<T> Data { get; } = [ T.MinValue, T.MaxValue, T.One, T.Zero, T.NegativeOne, T.MaxValue / (T.One + T.One), T.NaN, T.NegativeInfinity, T.Epsilon, T.Epsilon * T.NegativeOne ]; } private static class IntegerData<T> where T : struct, IBinaryInteger<T>, IMinMaxValue<T> { public static ImmutableArray<T> Data { get; } = ImmutableArray.Create(T.MinValue == T.Zero ? [ T.MinValue, T.MaxValue, T.One, T.MaxValue / (T.One + T.One) ] : new T[] { T.MinValue, T.MaxValue, T.One, T.Zero, T.Zero - T.One, T.MaxValue / (T.One + T.One) }); } private static class PositiveIntegerData<T> where T : struct, IBinaryInteger<T>, IMinMaxValue<T> { public static ImmutableArray<T> Data { get; } = [ T.Zero, T.MaxValue, T.One, T.MaxValue / (T.One + T.One) ]; } } #endif