2
0

Crc32Tests.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. using System;
  2. using System.Text;
  3. using MediaBrowser.Common;
  4. using Xunit;
  5. namespace Jellyfin.Common.Tests
  6. {
  7. public static class Crc32Tests
  8. {
  9. [Fact]
  10. public static void Compute_Empty_Zero()
  11. {
  12. Assert.Equal<uint>(0, Crc32.Compute(Array.Empty<byte>()));
  13. }
  14. [Theory]
  15. [InlineData(0x414fa339, "The quick brown fox jumps over the lazy dog")]
  16. public static void Compute_Valid_Success(uint expected, string data)
  17. {
  18. Assert.Equal(expected, Crc32.Compute(Encoding.UTF8.GetBytes(data)));
  19. }
  20. [Theory]
  21. [InlineData(0x414fa339, "54686520717569636B2062726F776E20666F78206A756D7073206F76657220746865206C617A7920646F67")]
  22. [InlineData(0x190a55ad, "0000000000000000000000000000000000000000000000000000000000000000")]
  23. [InlineData(0xff6cab0b, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF")]
  24. [InlineData(0x91267e8a, "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F")]
  25. public static void Compute_ValidHex_Success(uint expected, string data)
  26. {
  27. Assert.Equal(expected, Crc32.Compute(Convert.FromHexString(data)));
  28. }
  29. }
  30. }