2021-02-12 09:34:51 -07:00
|
|
|
using System;
|
|
|
|
using System.Text;
|
|
|
|
using MediaBrowser.Common;
|
|
|
|
using Xunit;
|
|
|
|
|
|
|
|
namespace Jellyfin.Common.Tests
|
|
|
|
{
|
|
|
|
public static class Crc32Tests
|
|
|
|
{
|
|
|
|
[Fact]
|
|
|
|
public static void Compute_Empty_Zero()
|
|
|
|
{
|
|
|
|
Assert.Equal<uint>(0, Crc32.Compute(Array.Empty<byte>()));
|
|
|
|
}
|
|
|
|
|
|
|
|
[Theory]
|
|
|
|
[InlineData(0x414fa339, "The quick brown fox jumps over the lazy dog")]
|
|
|
|
public static void Compute_Valid_Success(uint expected, string data)
|
|
|
|
{
|
|
|
|
Assert.Equal(expected, Crc32.Compute(Encoding.UTF8.GetBytes(data)));
|
|
|
|
}
|
2021-02-13 03:46:38 -07:00
|
|
|
|
|
|
|
[Theory]
|
|
|
|
[InlineData(0x414fa339, "54686520717569636B2062726F776E20666F78206A756D7073206F76657220746865206C617A7920646F67")]
|
|
|
|
[InlineData(0x190a55ad, "0000000000000000000000000000000000000000000000000000000000000000")]
|
|
|
|
[InlineData(0xff6cab0b, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF")]
|
|
|
|
[InlineData(0x91267e8a, "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F")]
|
|
|
|
public static void Compute_ValidHex_Success(uint expected, string data)
|
|
|
|
{
|
|
|
|
Assert.Equal(expected, Crc32.Compute(Convert.FromHexString(data)));
|
|
|
|
}
|
2021-02-12 09:34:51 -07:00
|
|
|
}
|
|
|
|
}
|