diff --git a/src/Ryujinx.Tests/EnumerableTheoryData.cs b/src/Ryujinx.Tests/EnumerableTheoryData.cs new file mode 100644 index 0000000000..8279ef86e6 --- /dev/null +++ b/src/Ryujinx.Tests/EnumerableTheoryData.cs @@ -0,0 +1,16 @@ +using System.Collections.Generic; +using Xunit; + +namespace Ryujinx.Tests +{ + public class EnumerableTheoryData : TheoryData + { + public EnumerableTheoryData(IEnumerable data) + { + foreach (T item in data) + { + Add(item); + } + } + } +} diff --git a/src/Ryujinx.Tests/RandomUtils.cs b/src/Ryujinx.Tests/RandomUtils.cs new file mode 100644 index 0000000000..2f9b30442c --- /dev/null +++ b/src/Ryujinx.Tests/RandomUtils.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; + +namespace Ryujinx.Tests +{ + public static class RandomUtils + { + public static bool NextBool(this Random random) + { + return random.Next(2) == 1; + } + + public static uint NextUShort(this Random random) + { + return (uint)random.Next(ushort.MaxValue); + } + + public static uint NextUInt(this Random random) + { + return (uint)random.NextInt64(uint.MaxValue); + } + + public static uint NextUInt(this Random random, uint to) + { + return (uint)random.NextInt64(to); + } + + public static ulong NextULong(this Random random) + { + byte[] buffer = new byte[8]; + + random.NextBytes(buffer); + return BitConverter.ToUInt64(buffer); + } + + public static byte NextByte(this Random random, byte from, byte to) + { + return (byte)random.Next(from, to); + } + + public static IEnumerable NextUIntEnumerable(this Random random, int count) + { + List list = new(); + + for (int i = 0; i < count; i++) + { + list.Add(random.NextUInt()); + } + + return list.AsReadOnly(); + } + } +} diff --git a/src/Ryujinx.Tests/RangeTheoryData.cs b/src/Ryujinx.Tests/RangeTheoryData.cs new file mode 100644 index 0000000000..0299468baa --- /dev/null +++ b/src/Ryujinx.Tests/RangeTheoryData.cs @@ -0,0 +1,16 @@ +using System.Numerics; +using Xunit; + +namespace Ryujinx.Tests +{ + public class RangeTheoryData : TheoryData where T : INumber + { + public RangeTheoryData(T from, T to, T step) + { + for (T i = from; i < to; i += step) + { + Add(i); + } + } + } +} diff --git a/src/Ryujinx.Tests/RangeUtils.cs b/src/Ryujinx.Tests/RangeUtils.cs new file mode 100644 index 0000000000..94a711a11e --- /dev/null +++ b/src/Ryujinx.Tests/RangeUtils.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; +using System.Numerics; + +namespace Ryujinx.Tests +{ + public static class RangeUtils + { + public static IEnumerable RangeData(T from, T to, T step) where T : INumber + { + List data = new(); + + for (T i = from; i < to; i += step) + { + data.Add(i); + } + + return data.AsReadOnly(); + } + } +}