Merge pull request #5112 from jellyfin/shuffle

Add test for ShuffleExtensions
This commit is contained in:
dkanada 2021-02-04 23:23:11 +09:00 committed by GitHub
commit 793ae6f7a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 2 deletions

View File

@ -33,8 +33,7 @@ namespace MediaBrowser.Common.Extensions
int n = list.Count;
while (n > 1)
{
n--;
int k = rng.Next(n + 1);
int k = rng.Next(n--);
T value = list[k];
list[k] = list[n];
list[n] = value;

View File

@ -0,0 +1,22 @@
using System;
using MediaBrowser.Common.Extensions;
using Xunit;
namespace Jellyfin.Common.Tests.Extensions
{
public static class ShuffleExtensionsTests
{
private static readonly Random _rng = new Random();
[Fact]
public static void Shuffle_Valid_Correct()
{
byte[] original = new byte[1 << 6];
_rng.NextBytes(original);
byte[] shuffled = (byte[])original.Clone();
shuffled.Shuffle();
Assert.NotEqual(original, shuffled);
}
}
}