diff --git a/src/ImageSharp/IO/BigEndianBitConverter.cs b/src/ImageSharp/IO/BigEndianBitConverter.cs
deleted file mode 100644
index a9a713e1a7..0000000000
--- a/src/ImageSharp/IO/BigEndianBitConverter.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using System.Buffers.Binary;
-
-namespace SixLabors.ImageSharp.IO
-{
- ///
- /// Implementation of EndianBitConverter which converts to/from big-endian byte arrays.
- ///
- internal sealed class BigEndianBitConverter : EndianBitConverter
- {
- ///
- public override Endianness Endianness
- {
- get { return Endianness.BigEndian; }
- }
-
- ///
- public override bool IsLittleEndian
- {
- get { return false; }
- }
-
- ///
- public override void CopyBytes(short value, byte[] buffer, int index)
- {
- CheckByteArgument(buffer, index, 2);
-
- buffer[index] = (byte)(value >> 8);
- buffer[index + 1] = (byte)value;
- }
-
- ///
- public override void CopyBytes(int value, byte[] buffer, int index)
- {
- CheckByteArgument(buffer, index, 4);
-
- buffer[index] = (byte)(value >> 24);
- buffer[index + 1] = (byte)(value >> 16);
- buffer[index + 2] = (byte)(value >> 8);
- buffer[index + 3] = (byte)value;
- }
-
- ///
- public override void CopyBytes(long value, byte[] buffer, int index)
- {
- CheckByteArgument(buffer, index, 8);
-
- buffer[index] = (byte)(value >> 56);
- buffer[index + 1] = (byte)(value >> 48);
- buffer[index + 2] = (byte)(value >> 40);
- buffer[index + 3] = (byte)(value >> 32);
- buffer[index + 4] = (byte)(value >> 24);
- buffer[index + 5] = (byte)(value >> 16);
- buffer[index + 6] = (byte)(value >> 8);
- buffer[index + 7] = (byte)value;
- }
-
- ///
- public override short ToInt16(byte[] value, int startIndex)
- {
- return BinaryPrimitives.ReadInt16BigEndian(value.AsReadOnlySpan().Slice(startIndex));
- }
-
- ///
- public override int ToInt32(byte[] value, int startIndex)
- {
- return BinaryPrimitives.ReadInt32BigEndian(value.AsReadOnlySpan().Slice(startIndex));
- }
-
- ///
- public override long ToInt64(byte[] value, int startIndex)
- {
- return BinaryPrimitives.ReadInt64BigEndian(value.AsReadOnlySpan().Slice(startIndex));
- }
- }
-}
\ No newline at end of file
diff --git a/src/ImageSharp/IO/EndianBinaryWriter.cs b/src/ImageSharp/IO/EndianBinaryWriter.cs
index 10df3f9a69..b8cd2cad52 100644
--- a/src/ImageSharp/IO/EndianBinaryWriter.cs
+++ b/src/ImageSharp/IO/EndianBinaryWriter.cs
@@ -9,8 +9,7 @@ using System.Text;
namespace SixLabors.ImageSharp.IO
{
///
- /// Equivalent of , but with either endianness, depending on
- /// the it is constructed with.
+ /// Equivalent of , but with either endianness
///
internal class EndianBinaryWriter : IDisposable
{
diff --git a/src/ImageSharp/IO/EndianBitConverter.Conversion.cs b/src/ImageSharp/IO/EndianBitConverter.Conversion.cs
deleted file mode 100644
index 844c81cc9e..0000000000
--- a/src/ImageSharp/IO/EndianBitConverter.Conversion.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-
-namespace SixLabors.ImageSharp.IO
-{
- ///
- /// Equivalent of , but with either endianness.
- ///
- internal abstract partial class EndianBitConverter
- {
- ///
- /// Converts the specified double-precision floating point number to a
- /// 64-bit signed integer. Note: the endianness of this converter does not
- /// affect the returned value.
- ///
- /// The number to convert.
- /// A 64-bit signed integer whose value is equivalent to value.
- public unsafe long DoubleToInt64Bits(double value)
- {
- return *((long*)&value);
- }
-
- ///
- /// Converts the specified 64-bit signed integer to a double-precision
- /// floating point number. Note: the endianness of this converter does not
- /// affect the returned value.
- ///
- /// The number to convert.
- /// A double-precision floating point number whose value is equivalent to value.
- public unsafe double Int64BitsToDouble(long value)
- {
- return *((double*)&value);
- }
-
- ///
- /// Converts the specified single-precision floating point number to a
- /// 32-bit signed integer. Note: the endianness of this converter does not
- /// affect the returned value.
- ///
- /// The number to convert.
- /// A 32-bit signed integer whose value is equivalent to value.
- public unsafe int SingleToInt32Bits(float value)
- {
- return *((int*)&value);
- }
-
- ///
- /// Converts the specified 32-bit signed integer to a single-precision floating point
- /// number. Note: the endianness of this converter does not
- /// affect the returned value.
- ///
- /// The number to convert.
- /// A single-precision floating point number whose value is equivalent to value.
- public unsafe float Int32BitsToSingle(int value)
- {
- return *((float*)&value);
- }
- }
-}
diff --git a/src/ImageSharp/IO/EndianBitConverter.CopyBytes.cs b/src/ImageSharp/IO/EndianBitConverter.CopyBytes.cs
deleted file mode 100644
index ea1d7aa5ac..0000000000
--- a/src/ImageSharp/IO/EndianBitConverter.CopyBytes.cs
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-
-namespace SixLabors.ImageSharp.IO
-{
- ///
- /// Equivalent of , but with either endianness.
- ///
- internal abstract partial class EndianBitConverter
- {
- ///
- /// Copies the specified 16-bit signed integer value into the specified byte array,
- /// beginning at the specified index.
- ///
- /// The number to convert.
- /// The byte array to copy the bytes into
- /// The first index into the array to copy the bytes into
- public abstract void CopyBytes(short value, byte[] buffer, int index);
-
- ///
- /// Copies the specified 32-bit signed integer value into the specified byte array,
- /// beginning at the specified index.
- ///
- /// The number to convert.
- /// The byte array to copy the bytes into
- /// The first index into the array to copy the bytes into
- public abstract void CopyBytes(int value, byte[] buffer, int index);
-
- ///
- /// Copies the specified 64-bit signed integer value into the specified byte array,
- /// beginning at the specified index.
- ///
- /// The number to convert.
- /// The byte array to copy the bytes into
- /// The first index into the array to copy the bytes into
- public abstract void CopyBytes(long value, byte[] buffer, int index);
-
- ///
- /// Copies the specified 16-bit unsigned integer value into the specified byte array,
- /// beginning at the specified index.
- ///
- /// The number to convert.
- /// The byte array to copy the bytes into
- /// The first index into the array to copy the bytes into
- public void CopyBytes(ushort value, byte[] buffer, int index)
- {
- this.CopyBytes(unchecked((short)value), buffer, index);
- }
-
- ///
- /// Copies the specified 32-bit unsigned integer value into the specified byte array,
- /// beginning at the specified index.
- ///
- /// The number to convert.
- /// The byte array to copy the bytes into
- /// The first index into the array to copy the bytes into
- public void CopyBytes(uint value, byte[] buffer, int index)
- {
- this.CopyBytes(unchecked((int)value), buffer, index);
- }
-
- ///
- /// Copies the specified 64-bit unsigned integer value into the specified byte array,
- /// beginning at the specified index.
- ///
- /// The number to convert.
- /// The byte array to copy the bytes into
- /// The first index into the array to copy the bytes into
- public void CopyBytes(ulong value, byte[] buffer, int index)
- {
- this.CopyBytes(unchecked((long)value), buffer, index);
- }
-
- ///
- /// Copies the specified Boolean value into the specified byte array,
- /// beginning at the specified index.
- ///
- /// A Boolean value.
- /// The byte array to copy the bytes into
- /// The first index into the array to copy the bytes into
- public void CopyBytes(bool value, byte[] buffer, int index)
- {
- CheckByteArgument(buffer, index, 1);
- buffer[index] = value ? (byte)1 : (byte)0;
- }
-
- ///
- /// Copies the specified Unicode character value into the specified byte array,
- /// beginning at the specified index.
- ///
- /// A character to convert.
- /// The byte array to copy the bytes into
- /// The first index into the array to copy the bytes into
- public void CopyBytes(char value, byte[] buffer, int index)
- {
- this.CopyBytes(unchecked((short)value), buffer, index);
- }
-
- ///
- /// Copies the specified double-precision floating point value into the specified byte array,
- /// beginning at the specified index.
- ///
- /// The number to convert.
- /// The byte array to copy the bytes into
- /// The first index into the array to copy the bytes into
- public unsafe void CopyBytes(double value, byte[] buffer, int index)
- {
- this.CopyBytes(*((long*)&value), buffer, index);
- }
-
- ///
- /// Copies the specified single-precision floating point value into the specified byte array,
- /// beginning at the specified index.
- ///
- /// The number to convert.
- /// The byte array to copy the bytes into
- /// The first index into the array to copy the bytes into
- public unsafe void CopyBytes(float value, byte[] buffer, int index)
- {
- this.CopyBytes(*((int*)&value), buffer, index);
- }
-
- ///
- /// Copies the specified decimal value into the specified byte array,
- /// beginning at the specified index.
- ///
- /// A character to convert.
- /// The byte array to copy the bytes into
- /// The first index into the array to copy the bytes into
- public unsafe void CopyBytes(decimal value, byte[] buffer, int index)
- {
- CheckByteArgument(buffer, index, 16);
-
- int* pvalue = (int*)&value;
- this.CopyBytes(pvalue[0], buffer, index);
- this.CopyBytes(pvalue[1], buffer, index + 4);
- this.CopyBytes(pvalue[2], buffer, index + 8);
- this.CopyBytes(pvalue[3], buffer, index + 12);
- }
- }
-}
diff --git a/src/ImageSharp/IO/EndianBitConverter.GetBytes.cs b/src/ImageSharp/IO/EndianBitConverter.GetBytes.cs
deleted file mode 100644
index e133cf7f42..0000000000
--- a/src/ImageSharp/IO/EndianBitConverter.GetBytes.cs
+++ /dev/null
@@ -1,125 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-
-namespace SixLabors.ImageSharp.IO
-{
- ///
- /// Equivalent of , but with either endianness.
- ///
- internal abstract partial class EndianBitConverter
- {
- ///
- /// Returns the specified 16-bit signed integer value as an array of bytes.
- ///
- /// The number to convert.
- /// An array of bytes with length 2.
- public byte[] GetBytes(short value)
- {
- byte[] result = new byte[2];
- this.CopyBytes(value, result, 0);
- return result;
- }
-
- ///
- /// Returns the specified 32-bit signed integer value as an array of bytes.
- ///
- /// The number to convert.
- /// An array of bytes with length 4.
- public byte[] GetBytes(int value)
- {
- byte[] result = new byte[4];
- this.CopyBytes(value, result, 0);
- return result;
- }
-
- ///
- /// Returns the specified 64-bit signed integer value as an array of bytes.
- ///
- /// The number to convert.
- /// An array of bytes with length 8.
- public byte[] GetBytes(long value)
- {
- byte[] result = new byte[8];
- this.CopyBytes(value, result, 0);
- return result;
- }
-
- ///
- /// Returns the specified 16-bit unsigned integer value as an array of bytes.
- ///
- /// The number to convert.
- /// An array of bytes with length 2.
- public byte[] GetBytes(ushort value)
- {
- return this.GetBytes(unchecked((short)value));
- }
-
- ///
- /// Returns the specified 32-bit unsigned integer value as an array of bytes.
- ///
- /// The number to convert.
- /// An array of bytes with length 4.
- public byte[] GetBytes(uint value)
- {
- return this.GetBytes(unchecked((int)value));
- }
-
- ///
- /// Returns the specified 64-bit unsigned integer value as an array of bytes.
- ///
- /// The number to convert.
- /// An array of bytes with length 8.
- public byte[] GetBytes(ulong value)
- {
- return this.GetBytes(unchecked((long)value));
- }
-
- ///
- /// Returns the specified Boolean value as an array of bytes.
- ///
- /// A Boolean value.
- /// An array of bytes with length 1.
- ///
- /// The .
- ///
- public byte[] GetBytes(bool value)
- {
- return new byte[1] { value ? (byte)1 : (byte)0 };
- }
-
- ///
- /// Returns the specified Unicode character value as an array of bytes.
- ///
- /// A character to convert.
- /// An array of bytes with length 2.
- ///
- /// The .
- ///
- public byte[] GetBytes(char value)
- {
- return this.GetBytes((short)value);
- }
-
- ///
- /// Returns the specified double-precision floating point value as an array of bytes.
- ///
- /// The number to convert.
- /// An array of bytes with length 8.
- public unsafe byte[] GetBytes(double value)
- {
- return this.GetBytes(*((long*)&value));
- }
-
- ///
- /// Returns the specified single-precision floating point value as an array of bytes.
- ///
- /// The number to convert.
- /// An array of bytes with length 4.
- public unsafe byte[] GetBytes(float value)
- {
- return this.GetBytes(*((int*)&value));
- }
- }
-}
diff --git a/src/ImageSharp/IO/EndianBitConverter.ToType.cs b/src/ImageSharp/IO/EndianBitConverter.ToType.cs
deleted file mode 100644
index 0c0e49911b..0000000000
--- a/src/ImageSharp/IO/EndianBitConverter.ToType.cs
+++ /dev/null
@@ -1,139 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-
-namespace SixLabors.ImageSharp.IO
-{
- ///
- /// Equivalent of , but with either endianness.
- ///
- internal abstract partial class EndianBitConverter
- {
- ///
- /// Returns a 16-bit signed integer converted from two bytes at a specified position in a byte array.
- ///
- /// An array of bytes.
- /// The starting position within value.
- /// A 16-bit signed integer formed by two bytes beginning at startIndex.
- public abstract short ToInt16(byte[] value, int startIndex);
-
- ///
- /// Returns a 32-bit signed integer converted from four bytes at a specified position in a byte array.
- ///
- /// An array of bytes.
- /// The starting position within value.
- /// A 32-bit signed integer formed by four bytes beginning at startIndex.
- public abstract int ToInt32(byte[] value, int startIndex);
-
- ///
- /// Returns a 64-bit signed integer converted from eight bytes at a specified position in a byte array.
- ///
- /// An array of bytes.
- /// The starting position within value.
- /// A 64-bit signed integer formed by eight bytes beginning at startIndex.
- public abstract long ToInt64(byte[] value, int startIndex);
-
- ///
- /// Returns a 16-bit unsigned integer converted from two bytes at a specified position in a byte array.
- ///
- /// An array of bytes.
- /// The starting position within value.
- /// A 16-bit unsigned integer formed by two bytes beginning at startIndex.
- public ushort ToUInt16(byte[] value, int startIndex)
- {
- return unchecked((ushort)this.ToInt16(value, startIndex));
- }
-
- ///
- /// Returns a 32-bit unsigned integer converted from four bytes at a specified position in a byte array.
- ///
- /// An array of bytes.
- /// The starting position within value.
- /// A 32-bit unsigned integer formed by four bytes beginning at startIndex.
- public uint ToUInt32(byte[] value, int startIndex)
- {
- return unchecked((uint)this.ToInt32(value, startIndex));
- }
-
- ///
- /// Returns a 64-bit unsigned integer converted from eight bytes at a specified position in a byte array.
- ///
- /// An array of bytes.
- /// The starting position within value.
- /// A 64-bit unsigned integer formed by eight bytes beginning at startIndex.
- public ulong ToUInt64(byte[] value, int startIndex)
- {
- return unchecked((ulong)this.ToInt64(value, startIndex));
- }
-
- ///
- /// Returns a Boolean value converted from one byte at a specified position in a byte array.
- ///
- /// An array of bytes.
- /// The starting position within value.
- /// true if the byte at startIndex in value is nonzero; otherwise, false.
- public bool ToBoolean(byte[] value, int startIndex)
- {
- CheckByteArgument(value, startIndex, 1);
- return value[startIndex] != 0;
- }
-
- ///
- /// Returns a Unicode character converted from two bytes at a specified position in a byte array.
- ///
- /// An array of bytes.
- /// The starting position within value.
- /// A character formed by two bytes beginning at startIndex.
- public char ToChar(byte[] value, int startIndex)
- {
- return unchecked((char)this.ToInt16(value, startIndex));
- }
-
- ///
- /// Returns a double-precision floating point number converted from eight bytes
- /// at a specified position in a byte array.
- ///
- /// An array of bytes.
- /// The starting position within value.
- /// A double precision floating point number formed by eight bytes beginning at startIndex.
- public unsafe double ToDouble(byte[] value, int startIndex)
- {
- long intValue = this.ToInt64(value, startIndex);
- return *((double*)&intValue);
- }
-
- ///
- /// Returns a single-precision floating point number converted from four bytes
- /// at a specified position in a byte array.
- ///
- /// An array of bytes.
- /// The starting position within value.
- /// A single precision floating point number formed by four bytes beginning at startIndex.
- public unsafe float ToSingle(byte[] value, int startIndex)
- {
- int intValue = this.ToInt32(value, startIndex);
- return *((float*)&intValue);
- }
-
- ///
- /// Returns a decimal value converted from sixteen bytes
- /// at a specified position in a byte array.
- ///
- /// An array of bytes.
- /// The starting position within value.
- /// A decimal formed by sixteen bytes beginning at startIndex.
- public unsafe decimal ToDecimal(byte[] value, int startIndex)
- {
- CheckByteArgument(value, startIndex, 16);
-
- decimal result = 0m;
- int* presult = (int*)&result;
- presult[0] = this.ToInt32(value, startIndex);
- presult[1] = this.ToInt32(value, startIndex + 4);
- presult[2] = this.ToInt32(value, startIndex + 8);
- presult[3] = this.ToInt32(value, startIndex + 12);
- return result;
- }
- }
-}
diff --git a/src/ImageSharp/IO/EndianBitConverter.cs b/src/ImageSharp/IO/EndianBitConverter.cs
deleted file mode 100644
index b563a09cb8..0000000000
--- a/src/ImageSharp/IO/EndianBitConverter.cs
+++ /dev/null
@@ -1,127 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using System.Runtime.CompilerServices;
-
-namespace SixLabors.ImageSharp.IO
-{
- ///
- /// Equivalent of , but with either endianness.
- ///
- internal abstract partial class EndianBitConverter
- {
- ///
- /// The little-endian bit converter.
- ///
- public static readonly LittleEndianBitConverter LittleEndianConverter = new LittleEndianBitConverter();
-
- ///
- /// The big-endian bit converter.
- ///
- public static readonly BigEndianBitConverter BigEndianConverter = new BigEndianBitConverter();
-
- ///
- /// Gets the byte order ("endianness") in which data is converted using this class.
- ///
- public abstract Endianness Endianness { get; }
-
- ///
- /// Gets a value indicating whether the byte order ("endianness") in which data is converted is little endian.
- ///
- ///
- /// Different computer architectures store data using different byte orders. "Big-endian"
- /// means the most significant byte is on the left end of a word. "Little-endian" means the
- /// most significant byte is on the right end of a word.
- ///
- public abstract bool IsLittleEndian { get; }
-
- ///
- /// Gets the converter.
- ///
- /// The endianness.
- /// an
- /// Not a valid form of Endianness - endianness
- public static EndianBitConverter GetConverter(Endianness endianness)
- {
- switch (endianness)
- {
- case Endianness.LittleEndian:
- return LittleEndianConverter;
- case Endianness.BigEndian:
- return BigEndianConverter;
- default:
- throw new ArgumentException("Not a valid form of Endianness", nameof(endianness));
- }
- }
-
- ///
- /// Returns a String converted from the elements of a byte array.
- ///
- /// An array of bytes.
- /// All the elements of value are converted.
- ///
- /// A String of hexadecimal pairs separated by hyphens, where each pair
- /// represents the corresponding element in value; for example, "7F-2C-4A".
- ///
- public static string ToString(byte[] value)
- {
- return BitConverter.ToString(value);
- }
-
- ///
- /// Returns a String converted from the elements of a byte array starting at a specified array position.
- ///
- /// An array of bytes.
- /// The starting position within value.
- /// The elements from array position startIndex to the end of the array are converted.
- ///
- /// A String of hexadecimal pairs separated by hyphens, where each pair
- /// represents the corresponding element in value; for example, "7F-2C-4A".
- ///
- public static string ToString(byte[] value, int startIndex)
- {
- return BitConverter.ToString(value, startIndex);
- }
-
- ///
- /// Returns a String converted from a specified number of bytes at a specified position in a byte array.
- ///
- /// An array of bytes.
- /// The starting position within value.
- /// The number of bytes to convert.
- /// The length elements from array position startIndex are converted.
- ///
- /// A String of hexadecimal pairs separated by hyphens, where each pair
- /// represents the corresponding element in value; for example, "7F-2C-4A".
- ///
- public static string ToString(byte[] value, int startIndex, int length)
- {
- return BitConverter.ToString(value, startIndex, length);
- }
-
- ///
- /// Checks the given argument for validity.
- ///
- /// The byte array passed in
- /// The start index passed in
- /// The number of bytes required
- /// value is a null reference
- ///
- /// startIndex is less than zero or greater than the length of value minus bytesRequired.
- ///
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- protected static void CheckByteArgument(byte[] value, int startIndex, int bytesRequired)
- {
- if (value == null)
- {
- throw new ArgumentNullException(nameof(value));
- }
-
- if (startIndex < 0 || startIndex > value.Length - bytesRequired)
- {
- throw new ArgumentOutOfRangeException(nameof(startIndex));
- }
- }
- }
-}
diff --git a/src/ImageSharp/IO/LittleEndianBitConverter.cs b/src/ImageSharp/IO/LittleEndianBitConverter.cs
deleted file mode 100644
index b9db34f902..0000000000
--- a/src/ImageSharp/IO/LittleEndianBitConverter.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using System.Buffers.Binary;
-
-namespace SixLabors.ImageSharp.IO
-{
- ///
- /// Implementation of EndianBitConverter which converts to/from little-endian byte arrays.
- ///
- internal sealed class LittleEndianBitConverter : EndianBitConverter
- {
- ///
- public override Endianness Endianness
- {
- get { return Endianness.LittleEndian; }
- }
-
- ///
- public override bool IsLittleEndian
- {
- get { return true; }
- }
-
- ///
- public override void CopyBytes(short value, byte[] buffer, int index)
- {
- CheckByteArgument(buffer, index, 2);
-
- buffer[index + 1] = (byte)(value >> 8);
- buffer[index] = (byte)value;
- }
-
- ///
- public override void CopyBytes(int value, byte[] buffer, int index)
- {
- CheckByteArgument(buffer, index, 4);
-
- buffer[index + 3] = (byte)(value >> 24);
- buffer[index + 2] = (byte)(value >> 16);
- buffer[index + 1] = (byte)(value >> 8);
- buffer[index] = (byte)value;
- }
-
- ///
- public override void CopyBytes(long value, byte[] buffer, int index)
- {
- CheckByteArgument(buffer, index, 8);
-
- buffer[index + 7] = (byte)(value >> 56);
- buffer[index + 6] = (byte)(value >> 48);
- buffer[index + 5] = (byte)(value >> 40);
- buffer[index + 4] = (byte)(value >> 32);
- buffer[index + 3] = (byte)(value >> 24);
- buffer[index + 2] = (byte)(value >> 16);
- buffer[index + 1] = (byte)(value >> 8);
- buffer[index] = (byte)value;
- }
-
- ///
- public override short ToInt16(byte[] value, int startIndex)
- {
- return BinaryPrimitives.ReadInt16LittleEndian(value.AsReadOnlySpan().Slice(startIndex));
- }
-
- ///
- public override int ToInt32(byte[] value, int startIndex)
- {
- return BinaryPrimitives.ReadInt32LittleEndian(value.AsReadOnlySpan().Slice(startIndex));
- }
-
- ///
- public override long ToInt64(byte[] value, int startIndex)
- {
- return BinaryPrimitives.ReadInt64LittleEndian(value.AsReadOnlySpan().Slice(startIndex));
- }
- }
-}
\ No newline at end of file
diff --git a/src/ImageSharp/MetaData/Profiles/ICC/DataReader/IccDataReader.Primitives.cs b/src/ImageSharp/MetaData/Profiles/ICC/DataReader/IccDataReader.Primitives.cs
index 14f7f95703..794d77ba19 100644
--- a/src/ImageSharp/MetaData/Profiles/ICC/DataReader/IccDataReader.Primitives.cs
+++ b/src/ImageSharp/MetaData/Profiles/ICC/DataReader/IccDataReader.Primitives.cs
@@ -2,6 +2,7 @@
// Licensed under the Apache License, Version 2.0.
using System;
+using System.Buffers.Binary;
using System.Text;
namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
@@ -17,7 +18,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
/// the value
public ushort ReadUInt16()
{
- return this.converter.ToUInt16(this.data, this.AddIndex(2));
+ return BinaryPrimitives.ReadUInt16BigEndian(new Span(this.data, this.AddIndex(2), 2));
}
///
@@ -26,7 +27,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
/// the value
public short ReadInt16()
{
- return this.converter.ToInt16(this.data, this.AddIndex(2));
+ return BinaryPrimitives.ReadInt16BigEndian(new Span(this.data, this.AddIndex(2), 2));
}
///
@@ -35,7 +36,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
/// the value
public uint ReadUInt32()
{
- return this.converter.ToUInt32(this.data, this.AddIndex(4));
+ return BinaryPrimitives.ReadUInt32BigEndian(new Span(this.data, this.AddIndex(4), 4));
}
///
@@ -44,7 +45,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
/// the value
public int ReadInt32()
{
- return this.converter.ToInt32(this.data, this.AddIndex(4));
+ return BinaryPrimitives.ReadInt32BigEndian(new Span(this.data, this.AddIndex(4), 4));
}
///
@@ -53,7 +54,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
/// the value
public ulong ReadUInt64()
{
- return this.converter.ToUInt64(this.data, this.AddIndex(8));
+ return BinaryPrimitives.ReadUInt64BigEndian(new Span(this.data, this.AddIndex(8), 8));
}
///
@@ -62,25 +63,29 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
/// the value
public long ReadInt64()
{
- return this.converter.ToInt64(this.data, this.AddIndex(8));
+ return BinaryPrimitives.ReadInt64BigEndian(new Span(this.data, this.AddIndex(8), 8));
}
///
/// Reads a float
///
/// the value
- public float ReadSingle()
+ public unsafe float ReadSingle()
{
- return this.converter.ToSingle(this.data, this.AddIndex(4));
+ int intValue = this.ReadInt32();
+
+ return *((float*)&intValue);
}
///
/// Reads a double
///
/// the value
- public double ReadDouble()
+ public unsafe double ReadDouble()
{
- return this.converter.ToDouble(this.data, this.AddIndex(8));
+ long intValue = this.ReadInt64();
+
+ return *((double*)&intValue);
}
///
diff --git a/src/ImageSharp/MetaData/Profiles/ICC/DataReader/IccDataReader.cs b/src/ImageSharp/MetaData/Profiles/ICC/DataReader/IccDataReader.cs
index 1fecd761a6..c4a6a9039a 100644
--- a/src/ImageSharp/MetaData/Profiles/ICC/DataReader/IccDataReader.cs
+++ b/src/ImageSharp/MetaData/Profiles/ICC/DataReader/IccDataReader.cs
@@ -3,7 +3,6 @@
using System;
using System.Text;
-using SixLabors.ImageSharp.IO;
namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
{
@@ -20,11 +19,6 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
///
private readonly byte[] data;
- ///
- /// The bit converter
- ///
- private readonly EndianBitConverter converter = new BigEndianBitConverter();
-
///
/// The current reading position
///
diff --git a/tests/ImageSharp.Tests/IO/BigEndianBitConverter.CopyBytesTests.cs b/tests/ImageSharp.Tests/IO/BigEndianBitConverter.CopyBytesTests.cs
deleted file mode 100644
index 254cfa2dc4..0000000000
--- a/tests/ImageSharp.Tests/IO/BigEndianBitConverter.CopyBytesTests.cs
+++ /dev/null
@@ -1,228 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using SixLabors.ImageSharp.IO;
-using Xunit;
-
-namespace SixLabors.ImageSharp.Tests.IO
-{
- ///
- /// The tests.
- ///
- public class BigEndianBitConverterCopyBytesTests
- {
- [Fact]
- public void CopyToWithNullBufferThrowsException()
- {
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes(false, null, 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes((short)42, null, 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes((ushort)42, null, 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes(42, null, 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes(42u, null, 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes(42L, null, 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes((ulong)42L, null, 0));
- }
-
- [Fact]
- public void CopyToWithIndexTooBigThrowsException()
- {
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes(false, new byte[1], 1));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes((short)42, new byte[2], 1));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes((ushort)42, new byte[2], 1));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes(42, new byte[4], 1));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes(42u, new byte[4], 1));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes(42L, new byte[8], 1));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes((ulong)42L, new byte[8], 1));
- }
-
- [Fact]
- public void CopyToWithBufferTooSmallThrowsException()
- {
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes(false, new byte[0], 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes((short)42, new byte[1], 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes((ushort)42, new byte[1], 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes(42, new byte[3], 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes(42u, new byte[3], 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes(42L, new byte[7], 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.CopyBytes((ulong)42L, new byte[7], 0));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void CopyBytesBoolean()
- {
- byte[] buffer = new byte[1];
-
- EndianBitConverter.BigEndianConverter.CopyBytes(false, buffer, 0);
- this.CheckBytes(new byte[] { 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(true, buffer, 0);
- this.CheckBytes(new byte[] { 1 }, buffer);
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void CopyBytesShort()
- {
- byte[] buffer = new byte[2];
-
- EndianBitConverter.BigEndianConverter.CopyBytes((short)0, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes((short)1, buffer, 0);
- this.CheckBytes(new byte[] { 0, 1 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes((short)256, buffer, 0);
- this.CheckBytes(new byte[] { 1, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes((short)-1, buffer, 0);
- this.CheckBytes(new byte[] { 255, 255 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes((short)257, buffer, 0);
- this.CheckBytes(new byte[] { 1, 1 }, buffer);
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void CopyBytesUShort()
- {
- byte[] buffer = new byte[2];
-
- EndianBitConverter.BigEndianConverter.CopyBytes((ushort)0, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes((ushort)1, buffer, 0);
- this.CheckBytes(new byte[] { 0, 1 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes((ushort)256, buffer, 0);
- this.CheckBytes(new byte[] { 1, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(ushort.MaxValue, buffer, 0);
- this.CheckBytes(new byte[] { 255, 255 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes((ushort)257, buffer, 0);
- this.CheckBytes(new byte[] { 1, 1 }, buffer);
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void CopyBytesInt()
- {
- byte[] buffer = new byte[4];
-
- EndianBitConverter.BigEndianConverter.CopyBytes(0, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(1, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 1 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(256, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 1, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(65536, buffer, 0);
- this.CheckBytes(new byte[] { 0, 1, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(16777216, buffer, 0);
- this.CheckBytes(new byte[] { 1, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(-1, buffer, 0);
- this.CheckBytes(new byte[] { 255, 255, 255, 255 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(257, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 1, 1 }, buffer);
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void CopyBytesUInt()
- {
- byte[] buffer = new byte[4];
-
- EndianBitConverter.BigEndianConverter.CopyBytes((uint)0, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes((uint)1, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 1 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes((uint)256, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 1, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes((uint)65536, buffer, 0);
- this.CheckBytes(new byte[] { 0, 1, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes((uint)16777216, buffer, 0);
- this.CheckBytes(new byte[] { 1, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(uint.MaxValue, buffer, 0);
- this.CheckBytes(new byte[] { 255, 255, 255, 255 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes((uint)257, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 1, 1 }, buffer);
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void CopyBytesLong()
- {
- byte[] buffer = new byte[8];
-
- EndianBitConverter.BigEndianConverter.CopyBytes(0L, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(1L, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(256L, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(65536L, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(16777216L, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(4294967296L, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(1099511627776L, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(1099511627776L * 256, buffer, 0);
- this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(1099511627776L * 256 * 256, buffer, 0);
- this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(-1L, buffer, 0);
- this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(257L, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 1 }, buffer);
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void CopyBytesULong()
- {
- byte[] buffer = new byte[8];
-
- EndianBitConverter.BigEndianConverter.CopyBytes(0UL, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(1UL, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(256UL, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(65536UL, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(16777216UL, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(4294967296UL, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(1099511627776UL, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(1099511627776UL * 256, buffer, 0);
- this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(1099511627776UL * 256 * 256, buffer, 0);
- this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(ulong.MaxValue, buffer, 0);
- this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, buffer);
- EndianBitConverter.BigEndianConverter.CopyBytes(257UL, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 1 }, buffer);
- }
-
- ///
- /// Tests the two byte arrays for equality.
- ///
- /// The expected bytes.
- /// The actual bytes.
- private void CheckBytes(byte[] expected, byte[] actual)
- {
- Assert.Equal(expected.Length, actual.Length);
- Assert.Equal(expected, actual);
- }
- }
-}
\ No newline at end of file
diff --git a/tests/ImageSharp.Tests/IO/BigEndianBitConverter.GetBytesTests.cs b/tests/ImageSharp.Tests/IO/BigEndianBitConverter.GetBytesTests.cs
deleted file mode 100644
index d8408523ba..0000000000
--- a/tests/ImageSharp.Tests/IO/BigEndianBitConverter.GetBytesTests.cs
+++ /dev/null
@@ -1,129 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using SixLabors.ImageSharp.IO;
-using Xunit;
-
-namespace SixLabors.ImageSharp.Tests.IO
-{
- ///
- /// The tests.
- ///
- public class BigEndianBitConverterGetBytesTests
- {
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void GetBytesBoolean()
- {
- this.CheckBytes(new byte[] { 0 }, EndianBitConverter.BigEndianConverter.GetBytes(false));
- this.CheckBytes(new byte[] { 1 }, EndianBitConverter.BigEndianConverter.GetBytes(true));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void GetBytesShort()
- {
- this.CheckBytes(new byte[] { 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes((short)0));
- this.CheckBytes(new byte[] { 0, 1 }, EndianBitConverter.BigEndianConverter.GetBytes((short)1));
- this.CheckBytes(new byte[] { 1, 0 }, EndianBitConverter.BigEndianConverter.GetBytes((short)256));
- this.CheckBytes(new byte[] { 255, 255 }, EndianBitConverter.BigEndianConverter.GetBytes((short)-1));
- this.CheckBytes(new byte[] { 1, 1 }, EndianBitConverter.BigEndianConverter.GetBytes((short)257));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void GetBytesUShort()
- {
- this.CheckBytes(new byte[] { 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes((ushort)0));
- this.CheckBytes(new byte[] { 0, 1 }, EndianBitConverter.BigEndianConverter.GetBytes((ushort)1));
- this.CheckBytes(new byte[] { 1, 0 }, EndianBitConverter.BigEndianConverter.GetBytes((ushort)256));
- this.CheckBytes(new byte[] { 255, 255 }, EndianBitConverter.BigEndianConverter.GetBytes(ushort.MaxValue));
- this.CheckBytes(new byte[] { 1, 1 }, EndianBitConverter.BigEndianConverter.GetBytes((ushort)257));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void GetBytesInt()
- {
- this.CheckBytes(new byte[] { 0, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(0));
- this.CheckBytes(new byte[] { 0, 0, 0, 1 }, EndianBitConverter.BigEndianConverter.GetBytes(1));
- this.CheckBytes(new byte[] { 0, 0, 1, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(256));
- this.CheckBytes(new byte[] { 0, 1, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(65536));
- this.CheckBytes(new byte[] { 1, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(16777216));
- this.CheckBytes(new byte[] { 255, 255, 255, 255 }, EndianBitConverter.BigEndianConverter.GetBytes(-1));
- this.CheckBytes(new byte[] { 0, 0, 1, 1 }, EndianBitConverter.BigEndianConverter.GetBytes(257));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void GetBytesUInt()
- {
- this.CheckBytes(new byte[] { 0, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes((uint)0));
- this.CheckBytes(new byte[] { 0, 0, 0, 1 }, EndianBitConverter.BigEndianConverter.GetBytes((uint)1));
- this.CheckBytes(new byte[] { 0, 0, 1, 0 }, EndianBitConverter.BigEndianConverter.GetBytes((uint)256));
- this.CheckBytes(new byte[] { 0, 1, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes((uint)65536));
- this.CheckBytes(new byte[] { 1, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes((uint)16777216));
- this.CheckBytes(new byte[] { 255, 255, 255, 255 }, EndianBitConverter.BigEndianConverter.GetBytes(uint.MaxValue));
- this.CheckBytes(new byte[] { 0, 0, 1, 1 }, EndianBitConverter.BigEndianConverter.GetBytes((uint)257));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void GetBytesLong()
- {
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(0L));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, EndianBitConverter.BigEndianConverter.GetBytes(1L));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(256L));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(65536L));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(16777216L));
- this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(4294967296L));
- this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(1099511627776L));
- this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(1099511627776L * 256));
- this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(1099511627776L * 256 * 256));
- this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, EndianBitConverter.BigEndianConverter.GetBytes(-1L));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 1 }, EndianBitConverter.BigEndianConverter.GetBytes(257L));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void GetBytesULong()
- {
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(0UL));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, EndianBitConverter.BigEndianConverter.GetBytes(1UL));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(256UL));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(65536UL));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(16777216UL));
- this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(4294967296UL));
- this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(1099511627776UL));
- this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(1099511627776UL * 256));
- this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.BigEndianConverter.GetBytes(1099511627776UL * 256 * 256));
- this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, EndianBitConverter.BigEndianConverter.GetBytes(ulong.MaxValue));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 1 }, EndianBitConverter.BigEndianConverter.GetBytes(257UL));
- }
-
- ///
- /// Tests the two byte arrays for equality.
- ///
- /// The expected bytes.
- /// The actual bytes.
- private void CheckBytes(byte[] expected, byte[] actual)
- {
- Assert.Equal(expected.Length, actual.Length);
- Assert.Equal(expected, actual);
- }
- }
-}
\ No newline at end of file
diff --git a/tests/ImageSharp.Tests/IO/BigEndianBitConverter.ToTypeTests.cs b/tests/ImageSharp.Tests/IO/BigEndianBitConverter.ToTypeTests.cs
deleted file mode 100644
index 19ef24c79c..0000000000
--- a/tests/ImageSharp.Tests/IO/BigEndianBitConverter.ToTypeTests.cs
+++ /dev/null
@@ -1,216 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using SixLabors.ImageSharp.IO;
-using Xunit;
-
-namespace SixLabors.ImageSharp.Tests.IO
-{
- ///
- /// The tests.
- ///
- public class BigEndianBitConverterTests
- {
- [Fact]
- public void CopyToWithNullBufferThrowsException()
- {
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToBoolean(null, 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToInt16(null, 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToUInt16(null, 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToInt32(null, 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToUInt32(null, 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToInt64(null, 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToUInt64(null, 0));
- }
-
- [Fact]
- public void CopyToWithIndexTooBigThrowsException()
- {
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToBoolean(new byte[1], 1));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToInt16(new byte[2], 1));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToUInt16(new byte[2], 1));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToInt32(new byte[4], 1));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToUInt32(new byte[4], 1));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToInt64(new byte[8], 1));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToUInt64(new byte[8], 1));
- }
-
- [Fact]
- public void CopyToWithBufferTooSmallThrowsException()
- {
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToBoolean(new byte[0], 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToInt16(new byte[1], 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToUInt16(new byte[1], 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToInt32(new byte[3], 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToUInt32(new byte[3], 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToInt64(new byte[7], 0));
- Assert.Throws(() => EndianBitConverter.BigEndianConverter.ToUInt64(new byte[7], 0));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void ToBoolean()
- {
- Assert.False(EndianBitConverter.BigEndianConverter.ToBoolean(new byte[] { 0 }, 0));
- Assert.True(EndianBitConverter.BigEndianConverter.ToBoolean(new byte[] { 1 }, 0));
- Assert.True(EndianBitConverter.BigEndianConverter.ToBoolean(new byte[] { 42 }, 0));
-
- Assert.False(EndianBitConverter.BigEndianConverter.ToBoolean(new byte[] { 1, 0 }, 1));
- Assert.True(EndianBitConverter.BigEndianConverter.ToBoolean(new byte[] { 0, 1 }, 1));
- Assert.True(EndianBitConverter.BigEndianConverter.ToBoolean(new byte[] { 0, 42 }, 1));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void ToInt16()
- {
- Assert.Equal((short)0, EndianBitConverter.BigEndianConverter.ToInt16(new byte[] { 0, 0 }, 0));
- Assert.Equal((short)1, EndianBitConverter.BigEndianConverter.ToInt16(new byte[] { 0, 1 }, 0));
- Assert.Equal((short)256, EndianBitConverter.BigEndianConverter.ToInt16(new byte[] { 1, 0 }, 0));
- Assert.Equal((short)-1, EndianBitConverter.BigEndianConverter.ToInt16(new byte[] { 255, 255 }, 0));
- Assert.Equal((short)257, EndianBitConverter.BigEndianConverter.ToInt16(new byte[] { 1, 1 }, 0));
-
- Assert.Equal((short)0, EndianBitConverter.BigEndianConverter.ToInt16(new byte[] { 1, 0, 0 }, 1));
- Assert.Equal((short)1, EndianBitConverter.BigEndianConverter.ToInt16(new byte[] { 1, 0, 1 }, 1));
- Assert.Equal((short)256, EndianBitConverter.BigEndianConverter.ToInt16(new byte[] { 0, 1, 0 }, 1));
- Assert.Equal((short)-1, EndianBitConverter.BigEndianConverter.ToInt16(new byte[] { 0, 255, 255 }, 1));
- Assert.Equal((short)257, EndianBitConverter.BigEndianConverter.ToInt16(new byte[] { 0, 1, 1 }, 1));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void ToUInt16()
- {
- Assert.Equal((ushort)0, EndianBitConverter.BigEndianConverter.ToUInt16(new byte[] { 0, 0 }, 0));
- Assert.Equal((ushort)1, EndianBitConverter.BigEndianConverter.ToUInt16(new byte[] { 0, 1 }, 0));
- Assert.Equal((ushort)256, EndianBitConverter.BigEndianConverter.ToUInt16(new byte[] { 1, 0 }, 0));
- Assert.Equal(ushort.MaxValue, EndianBitConverter.BigEndianConverter.ToUInt16(new byte[] { 255, 255 }, 0));
- Assert.Equal((ushort)257, EndianBitConverter.BigEndianConverter.ToUInt16(new byte[] { 1, 1 }, 0));
-
- Assert.Equal((ushort)0, EndianBitConverter.BigEndianConverter.ToUInt16(new byte[] { 1, 0, 0 }, 1));
- Assert.Equal((ushort)1, EndianBitConverter.BigEndianConverter.ToUInt16(new byte[] { 1, 0, 1 }, 1));
- Assert.Equal((ushort)256, EndianBitConverter.BigEndianConverter.ToUInt16(new byte[] { 0, 1, 0 }, 1));
- Assert.Equal(ushort.MaxValue, EndianBitConverter.BigEndianConverter.ToUInt16(new byte[] { 0, 255, 255 }, 1));
- Assert.Equal((ushort)257, EndianBitConverter.BigEndianConverter.ToUInt16(new byte[] { 0, 1, 1 }, 1));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void ToInt32()
- {
- Assert.Equal(0, EndianBitConverter.BigEndianConverter.ToInt32(new byte[] { 0, 0, 0, 0 }, 0));
- Assert.Equal(1, EndianBitConverter.BigEndianConverter.ToInt32(new byte[] { 0, 0, 0, 1 }, 0));
- Assert.Equal(256, EndianBitConverter.BigEndianConverter.ToInt32(new byte[] { 0, 0, 1, 0 }, 0));
- Assert.Equal(65536, EndianBitConverter.BigEndianConverter.ToInt32(new byte[] { 0, 1, 0, 0 }, 0));
- Assert.Equal(16777216, EndianBitConverter.BigEndianConverter.ToInt32(new byte[] { 1, 0, 0, 0 }, 0));
- Assert.Equal(-1, EndianBitConverter.BigEndianConverter.ToInt32(new byte[] { 255, 255, 255, 255 }, 0));
- Assert.Equal(257, EndianBitConverter.BigEndianConverter.ToInt32(new byte[] { 0, 0, 1, 1 }, 0));
-
- Assert.Equal(0, EndianBitConverter.BigEndianConverter.ToInt32(new byte[] { 1, 0, 0, 0, 0 }, 1));
- Assert.Equal(1, EndianBitConverter.BigEndianConverter.ToInt32(new byte[] { 1, 0, 0, 0, 1 }, 1));
- Assert.Equal(256, EndianBitConverter.BigEndianConverter.ToInt32(new byte[] { 1, 0, 0, 1, 0 }, 1));
- Assert.Equal(65536, EndianBitConverter.BigEndianConverter.ToInt32(new byte[] { 1, 0, 1, 0, 0 }, 1));
- Assert.Equal(16777216, EndianBitConverter.BigEndianConverter.ToInt32(new byte[] { 0, 1, 0, 0, 0 }, 1));
- Assert.Equal(-1, EndianBitConverter.BigEndianConverter.ToInt32(new byte[] { 0, 255, 255, 255, 255 }, 1));
- Assert.Equal(257, EndianBitConverter.BigEndianConverter.ToInt32(new byte[] { 1, 0, 0, 1, 1 }, 1));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void ToUInt32()
- {
- Assert.Equal((uint)0, EndianBitConverter.BigEndianConverter.ToUInt32(new byte[] { 0, 0, 0, 0 }, 0));
- Assert.Equal((uint)1, EndianBitConverter.BigEndianConverter.ToUInt32(new byte[] { 0, 0, 0, 1 }, 0));
- Assert.Equal((uint)256, EndianBitConverter.BigEndianConverter.ToUInt32(new byte[] { 0, 0, 1, 0 }, 0));
- Assert.Equal((uint)65536, EndianBitConverter.BigEndianConverter.ToUInt32(new byte[] { 0, 1, 0, 0 }, 0));
- Assert.Equal((uint)16777216, EndianBitConverter.BigEndianConverter.ToUInt32(new byte[] { 1, 0, 0, 0 }, 0));
- Assert.Equal(uint.MaxValue, EndianBitConverter.BigEndianConverter.ToUInt32(new byte[] { 255, 255, 255, 255 }, 0));
- Assert.Equal((uint)257, EndianBitConverter.BigEndianConverter.ToUInt32(new byte[] { 0, 0, 1, 1 }, 0));
-
- Assert.Equal((uint)0, EndianBitConverter.BigEndianConverter.ToUInt32(new byte[] { 1, 0, 0, 0, 0 }, 1));
- Assert.Equal((uint)1, EndianBitConverter.BigEndianConverter.ToUInt32(new byte[] { 1, 0, 0, 0, 1 }, 1));
- Assert.Equal((uint)256, EndianBitConverter.BigEndianConverter.ToUInt32(new byte[] { 1, 0, 0, 1, 0 }, 1));
- Assert.Equal((uint)65536, EndianBitConverter.BigEndianConverter.ToUInt32(new byte[] { 1, 0, 1, 0, 0 }, 1));
- Assert.Equal((uint)16777216, EndianBitConverter.BigEndianConverter.ToUInt32(new byte[] { 0, 1, 0, 0, 0 }, 1));
- Assert.Equal(uint.MaxValue, EndianBitConverter.BigEndianConverter.ToUInt32(new byte[] { 0, 255, 255, 255, 255 }, 1));
- Assert.Equal((uint)257, EndianBitConverter.BigEndianConverter.ToUInt32(new byte[] { 1, 0, 0, 1, 1 }, 1));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void ToInt64()
- {
- Assert.Equal(0L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(1L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, 0));
- Assert.Equal(256L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, 0));
- Assert.Equal(65536L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, 0));
- Assert.Equal(16777216L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, 0));
- Assert.Equal(4294967296L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, 0));
- Assert.Equal(1099511627776L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(1099511627776L * 256, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(1099511627776L * 256 * 256, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(-1L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, 0));
- Assert.Equal(257L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 0, 0, 0, 0, 0, 0, 1, 1 }, 0));
- Assert.Equal(4294967295L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 0, 0, 0, 0, 255, 255, 255, 255 }, 0));
- Assert.Equal(-4294967296L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 255, 255, 255, 255, 0, 0, 0, 0 }, 0));
-
- Assert.Equal(0L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(1L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0, 1 }, 1));
- Assert.Equal(256L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 1, 0 }, 1));
- Assert.Equal(65536L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 0, 0, 1, 0, 0 }, 1));
- Assert.Equal(16777216L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 0, 1, 0, 0, 0 }, 1));
- Assert.Equal(4294967296L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 1, 0, 0, 0, 0 }, 1));
- Assert.Equal(1099511627776L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 1, 0, 0, 1, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(1099511627776L * 256, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 1, 0, 1, 0, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(1099511627776L * 256 * 256, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(-1L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 0, 255, 255, 255, 255, 255, 255, 255, 255 }, 1));
- Assert.Equal(257L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 1, 1 }, 1));
- Assert.Equal(4294967295L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 0, 255, 255, 255, 255 }, 1));
- Assert.Equal(-4294967296L, EndianBitConverter.BigEndianConverter.ToInt64(new byte[] { 1, 255, 255, 255, 255, 0, 0, 0, 0 }, 1));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void ToUInt64()
- {
- Assert.Equal(0UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(1UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, 0));
- Assert.Equal(256UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, 0));
- Assert.Equal(65536UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, 0));
- Assert.Equal(16777216UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, 0));
- Assert.Equal(4294967296UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, 0));
- Assert.Equal(1099511627776UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(1099511627776UL * 256, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(1099511627776UL * 256 * 256, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(ulong.MaxValue, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, 0));
- Assert.Equal(257UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 0, 0, 0, 0, 0, 0, 1, 1 }, 0));
-
- Assert.Equal(0UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(1UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0, 1 }, 1));
- Assert.Equal(256UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 1, 0 }, 1));
- Assert.Equal(65536UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 0, 0, 1, 0, 0 }, 1));
- Assert.Equal(16777216UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 0, 1, 0, 0, 0 }, 1));
- Assert.Equal(4294967296UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 1, 0, 0, 0, 0 }, 1));
- Assert.Equal(1099511627776UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 1, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(1099511627776UL * 256, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 1, 0, 1, 0, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(1099511627776UL * 256 * 256, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(ulong.MaxValue, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 0, 255, 255, 255, 255, 255, 255, 255, 255 }, 1));
- Assert.Equal(257UL, EndianBitConverter.BigEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 1, 1 }, 1));
- }
- }
-}
\ No newline at end of file
diff --git a/tests/ImageSharp.Tests/IO/LittleEndianBitConverter.CopyBytesTests.cs b/tests/ImageSharp.Tests/IO/LittleEndianBitConverter.CopyBytesTests.cs
deleted file mode 100644
index 97d9275ad1..0000000000
--- a/tests/ImageSharp.Tests/IO/LittleEndianBitConverter.CopyBytesTests.cs
+++ /dev/null
@@ -1,228 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using SixLabors.ImageSharp.IO;
-using Xunit;
-
-namespace SixLabors.ImageSharp.Tests.IO
-{
- ///
- /// The tests.
- ///
- public class LittleEndianBitConverterCopyBytesTests
- {
- [Fact]
- public void CopyToWithNullBufferThrowsException()
- {
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes(false, null, 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes((short)42, null, 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes((ushort)42, null, 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes(42, null, 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes(42u, null, 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes(42L, null, 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes((ulong)42L, null, 0));
- }
-
- [Fact]
- public void CopyToWithIndexTooBigThrowsException()
- {
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes(false, new byte[1], 1));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes((short)42, new byte[2], 1));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes((ushort)42, new byte[2], 1));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes(42, new byte[4], 1));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes(42u, new byte[4], 1));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes(42L, new byte[8], 1));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes((ulong)42L, new byte[8], 1));
- }
-
- [Fact]
- public void CopyToWithBufferTooSmallThrowsException()
- {
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes(false, new byte[0], 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes((short)42, new byte[1], 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes((ushort)42, new byte[1], 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes(42, new byte[3], 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes(42u, new byte[3], 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes(42L, new byte[7], 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.CopyBytes((ulong)42L, new byte[7], 0));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void CopyBytesBoolean()
- {
- byte[] buffer = new byte[1];
-
- EndianBitConverter.LittleEndianConverter.CopyBytes(false, buffer, 0);
- this.CheckBytes(new byte[] { 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(true, buffer, 0);
- this.CheckBytes(new byte[] { 1 }, buffer);
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void CopyBytesShort()
- {
- byte[] buffer = new byte[2];
-
- EndianBitConverter.LittleEndianConverter.CopyBytes((short)0, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes((short)1, buffer, 0);
- this.CheckBytes(new byte[] { 1, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes((short)256, buffer, 0);
- this.CheckBytes(new byte[] { 0, 1 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes((short)-1, buffer, 0);
- this.CheckBytes(new byte[] { 255, 255 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes((short)257, buffer, 0);
- this.CheckBytes(new byte[] { 1, 1 }, buffer);
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void CopyBytesUShort()
- {
- byte[] buffer = new byte[2];
-
- EndianBitConverter.LittleEndianConverter.CopyBytes((ushort)0, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes((ushort)1, buffer, 0);
- this.CheckBytes(new byte[] { 1, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes((ushort)256, buffer, 0);
- this.CheckBytes(new byte[] { 0, 1 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(ushort.MaxValue, buffer, 0);
- this.CheckBytes(new byte[] { 255, 255 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes((ushort)257, buffer, 0);
- this.CheckBytes(new byte[] { 1, 1 }, buffer);
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void CopyBytesInt()
- {
- byte[] buffer = new byte[4];
-
- EndianBitConverter.LittleEndianConverter.CopyBytes(0, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(1, buffer, 0);
- this.CheckBytes(new byte[] { 1, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(256, buffer, 0);
- this.CheckBytes(new byte[] { 0, 1, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(65536, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 1, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(16777216, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 1 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(-1, buffer, 0);
- this.CheckBytes(new byte[] { 255, 255, 255, 255 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(257, buffer, 0);
- this.CheckBytes(new byte[] { 1, 1, 0, 0 }, buffer);
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void CopyBytesUInt()
- {
- byte[] buffer = new byte[4];
-
- EndianBitConverter.LittleEndianConverter.CopyBytes((uint)0, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes((uint)1, buffer, 0);
- this.CheckBytes(new byte[] { 1, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes((uint)256, buffer, 0);
- this.CheckBytes(new byte[] { 0, 1, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes((uint)65536, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 1, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes((uint)16777216, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 1 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(uint.MaxValue, buffer, 0);
- this.CheckBytes(new byte[] { 255, 255, 255, 255 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes((uint)257, buffer, 0);
- this.CheckBytes(new byte[] { 1, 1, 0, 0 }, buffer);
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void CopyBytesLong()
- {
- byte[] buffer = new byte[8];
-
- EndianBitConverter.LittleEndianConverter.CopyBytes(0L, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(1L, buffer, 0);
- this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(256L, buffer, 0);
- this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(65536L, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(16777216L, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(4294967296L, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(1099511627776L, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(1099511627776L * 256, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(1099511627776L * 256 * 256, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(-1L, buffer, 0);
- this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(257L, buffer, 0);
- this.CheckBytes(new byte[] { 1, 1, 0, 0, 0, 0, 0, 0 }, buffer);
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void CopyBytesULong()
- {
- byte[] buffer = new byte[8];
-
- EndianBitConverter.LittleEndianConverter.CopyBytes(0UL, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(1UL, buffer, 0);
- this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(256UL, buffer, 0);
- this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(65536UL, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(16777216UL, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(4294967296UL, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(1099511627776UL, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(1099511627776UL * 256, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(1099511627776UL * 256 * 256, buffer, 0);
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(ulong.MaxValue, buffer, 0);
- this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, buffer);
- EndianBitConverter.LittleEndianConverter.CopyBytes(257UL, buffer, 0);
- this.CheckBytes(new byte[] { 1, 1, 0, 0, 0, 0, 0, 0 }, buffer);
- }
-
- ///
- /// Tests the two byte arrays for equality.
- ///
- /// The expected bytes.
- /// The actual bytes.
- private void CheckBytes(byte[] expected, byte[] actual)
- {
- Assert.Equal(expected.Length, actual.Length);
- Assert.Equal(expected, actual);
- }
- }
-}
\ No newline at end of file
diff --git a/tests/ImageSharp.Tests/IO/LittleEndianBitConverter.GetBytesTests.cs b/tests/ImageSharp.Tests/IO/LittleEndianBitConverter.GetBytesTests.cs
deleted file mode 100644
index eae8ca2919..0000000000
--- a/tests/ImageSharp.Tests/IO/LittleEndianBitConverter.GetBytesTests.cs
+++ /dev/null
@@ -1,129 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using SixLabors.ImageSharp.IO;
-using Xunit;
-
-namespace SixLabors.ImageSharp.Tests.IO
-{
- ///
- /// The tests.
- ///
- public class LittleEndianBitConverterGetBytesTests
- {
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void GetBytesBoolean()
- {
- this.CheckBytes(new byte[] { 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(false));
- this.CheckBytes(new byte[] { 1 }, EndianBitConverter.LittleEndianConverter.GetBytes(true));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void GetBytesShort()
- {
- this.CheckBytes(new byte[] { 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes((short)0));
- this.CheckBytes(new byte[] { 1, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes((short)1));
- this.CheckBytes(new byte[] { 0, 1 }, EndianBitConverter.LittleEndianConverter.GetBytes((short)256));
- this.CheckBytes(new byte[] { 255, 255 }, EndianBitConverter.LittleEndianConverter.GetBytes((short)-1));
- this.CheckBytes(new byte[] { 1, 1 }, EndianBitConverter.LittleEndianConverter.GetBytes((short)257));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void GetBytesUShort()
- {
- this.CheckBytes(new byte[] { 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes((ushort)0));
- this.CheckBytes(new byte[] { 1, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes((ushort)1));
- this.CheckBytes(new byte[] { 0, 1 }, EndianBitConverter.LittleEndianConverter.GetBytes((ushort)256));
- this.CheckBytes(new byte[] { 255, 255 }, EndianBitConverter.LittleEndianConverter.GetBytes(ushort.MaxValue));
- this.CheckBytes(new byte[] { 1, 1 }, EndianBitConverter.LittleEndianConverter.GetBytes((ushort)257));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void GetBytesInt()
- {
- this.CheckBytes(new byte[] { 0, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(0));
- this.CheckBytes(new byte[] { 1, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(1));
- this.CheckBytes(new byte[] { 0, 1, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(256));
- this.CheckBytes(new byte[] { 0, 0, 1, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(65536));
- this.CheckBytes(new byte[] { 0, 0, 0, 1 }, EndianBitConverter.LittleEndianConverter.GetBytes(16777216));
- this.CheckBytes(new byte[] { 255, 255, 255, 255 }, EndianBitConverter.LittleEndianConverter.GetBytes(-1));
- this.CheckBytes(new byte[] { 1, 1, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(257));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void GetBytesUInt()
- {
- this.CheckBytes(new byte[] { 0, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes((uint)0));
- this.CheckBytes(new byte[] { 1, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes((uint)1));
- this.CheckBytes(new byte[] { 0, 1, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes((uint)256));
- this.CheckBytes(new byte[] { 0, 0, 1, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes((uint)65536));
- this.CheckBytes(new byte[] { 0, 0, 0, 1 }, EndianBitConverter.LittleEndianConverter.GetBytes((uint)16777216));
- this.CheckBytes(new byte[] { 255, 255, 255, 255 }, EndianBitConverter.LittleEndianConverter.GetBytes(uint.MaxValue));
- this.CheckBytes(new byte[] { 1, 1, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes((uint)257));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void GetBytesLong()
- {
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(0L));
- this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(1L));
- this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(256L));
- this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(65536L));
- this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(16777216L));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(4294967296L));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(1099511627776L));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(1099511627776L * 256));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, EndianBitConverter.LittleEndianConverter.GetBytes(1099511627776L * 256 * 256));
- this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, EndianBitConverter.LittleEndianConverter.GetBytes(-1L));
- this.CheckBytes(new byte[] { 1, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(257L));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void GetBytesULong()
- {
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(0UL));
- this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(1UL));
- this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(256UL));
- this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(65536UL));
- this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(16777216UL));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(4294967296UL));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(1099511627776UL));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(1099511627776UL * 256));
- this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, EndianBitConverter.LittleEndianConverter.GetBytes(1099511627776UL * 256 * 256));
- this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, EndianBitConverter.LittleEndianConverter.GetBytes(ulong.MaxValue));
- this.CheckBytes(new byte[] { 1, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.LittleEndianConverter.GetBytes(257UL));
- }
-
- ///
- /// Tests the two byte arrays for equality.
- ///
- /// The expected bytes.
- /// The actual bytes.
- private void CheckBytes(byte[] expected, byte[] actual)
- {
- Assert.Equal(expected.Length, actual.Length);
- Assert.Equal(expected, actual);
- }
- }
-}
\ No newline at end of file
diff --git a/tests/ImageSharp.Tests/IO/LittleEndianBitConverter.ToTypeTests.cs b/tests/ImageSharp.Tests/IO/LittleEndianBitConverter.ToTypeTests.cs
deleted file mode 100644
index 0e09d1d071..0000000000
--- a/tests/ImageSharp.Tests/IO/LittleEndianBitConverter.ToTypeTests.cs
+++ /dev/null
@@ -1,214 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using SixLabors.ImageSharp.IO;
-using Xunit;
-
-namespace SixLabors.ImageSharp.Tests.IO
-{
- ///
- /// The tests.
- ///
- public class LittleEndianBitConverterToTypeTests
- {
- [Fact]
- public void CopyToWithNullBufferThrowsException()
- {
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToBoolean(null, 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToInt16(null, 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToUInt16(null, 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToInt32(null, 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToUInt32(null, 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToInt64(null, 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToUInt64(null, 0));
- }
-
- [Fact]
- public void CopyToWithIndexTooBigThrowsException()
- {
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToBoolean(new byte[1], 1));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToInt16(new byte[2], 1));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToUInt16(new byte[2], 1));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToInt32(new byte[4], 1));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[4], 1));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToInt64(new byte[8], 1));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[8], 1));
- }
-
- [Fact]
- public void CopyToWithBufferTooSmallThrowsException()
- {
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToBoolean(new byte[0], 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToInt16(new byte[1], 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToUInt16(new byte[1], 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToInt32(new byte[3], 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[3], 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToInt64(new byte[7], 0));
- Assert.Throws(() => EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[7], 0));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void ToBoolean()
- {
- Assert.False(EndianBitConverter.LittleEndianConverter.ToBoolean(new byte[] { 0 }, 0));
- Assert.True(EndianBitConverter.LittleEndianConverter.ToBoolean(new byte[] { 1 }, 0));
-
- Assert.False(EndianBitConverter.LittleEndianConverter.ToBoolean(new byte[] { 1, 0 }, 1));
- Assert.True(EndianBitConverter.LittleEndianConverter.ToBoolean(new byte[] { 0, 1 }, 1));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void ToInt16()
- {
- Assert.Equal((short)0, EndianBitConverter.LittleEndianConverter.ToInt16(new byte[] { 0, 0 }, 0));
- Assert.Equal((short)1, EndianBitConverter.LittleEndianConverter.ToInt16(new byte[] { 1, 0 }, 0));
- Assert.Equal((short)256, EndianBitConverter.LittleEndianConverter.ToInt16(new byte[] { 0, 1 }, 0));
- Assert.Equal((short)-1, EndianBitConverter.LittleEndianConverter.ToInt16(new byte[] { 255, 255 }, 0));
- Assert.Equal((short)257, EndianBitConverter.LittleEndianConverter.ToInt16(new byte[] { 1, 1 }, 0));
-
- Assert.Equal((short)0, EndianBitConverter.LittleEndianConverter.ToInt16(new byte[] { 1, 0, 0 }, 1));
- Assert.Equal((short)1, EndianBitConverter.LittleEndianConverter.ToInt16(new byte[] { 0, 1, 0 }, 1));
- Assert.Equal((short)256, EndianBitConverter.LittleEndianConverter.ToInt16(new byte[] { 1, 0, 1 }, 1));
- Assert.Equal((short)-1, EndianBitConverter.LittleEndianConverter.ToInt16(new byte[] { 0, 255, 255 }, 1));
- Assert.Equal((short)257, EndianBitConverter.LittleEndianConverter.ToInt16(new byte[] { 0, 1, 1 }, 1));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void ToUInt16()
- {
- Assert.Equal((ushort)0, EndianBitConverter.LittleEndianConverter.ToUInt16(new byte[] { 0, 0 }, 0));
- Assert.Equal((ushort)1, EndianBitConverter.LittleEndianConverter.ToUInt16(new byte[] { 1, 0 }, 0));
- Assert.Equal((ushort)256, EndianBitConverter.LittleEndianConverter.ToUInt16(new byte[] { 0, 1 }, 0));
- Assert.Equal(ushort.MaxValue, EndianBitConverter.LittleEndianConverter.ToUInt16(new byte[] { 255, 255 }, 0));
- Assert.Equal((ushort)257, EndianBitConverter.LittleEndianConverter.ToUInt16(new byte[] { 1, 1 }, 0));
-
- Assert.Equal((ushort)0, EndianBitConverter.LittleEndianConverter.ToUInt16(new byte[] { 1, 0, 0 }, 1));
- Assert.Equal((ushort)1, EndianBitConverter.LittleEndianConverter.ToUInt16(new byte[] { 0, 1, 0 }, 1));
- Assert.Equal((ushort)256, EndianBitConverter.LittleEndianConverter.ToUInt16(new byte[] { 1, 0, 1 }, 1));
- Assert.Equal(ushort.MaxValue, EndianBitConverter.LittleEndianConverter.ToUInt16(new byte[] { 0, 255, 255 }, 1));
- Assert.Equal((ushort)257, EndianBitConverter.LittleEndianConverter.ToUInt16(new byte[] { 0, 1, 1 }, 1));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void ToInt32()
- {
- Assert.Equal(0, EndianBitConverter.LittleEndianConverter.ToInt32(new byte[] { 0, 0, 0, 0 }, 0));
- Assert.Equal(1, EndianBitConverter.LittleEndianConverter.ToInt32(new byte[] { 1, 0, 0, 0 }, 0));
- Assert.Equal(256, EndianBitConverter.LittleEndianConverter.ToInt32(new byte[] { 0, 1, 0, 0 }, 0));
- Assert.Equal(65536, EndianBitConverter.LittleEndianConverter.ToInt32(new byte[] { 0, 0, 1, 0 }, 0));
- Assert.Equal(16777216, EndianBitConverter.LittleEndianConverter.ToInt32(new byte[] { 0, 0, 0, 1 }, 0));
- Assert.Equal(-1, EndianBitConverter.LittleEndianConverter.ToInt32(new byte[] { 255, 255, 255, 255 }, 0));
- Assert.Equal(257, EndianBitConverter.LittleEndianConverter.ToInt32(new byte[] { 1, 1, 0, 0 }, 0));
-
- Assert.Equal(0, EndianBitConverter.LittleEndianConverter.ToInt32(new byte[] { 1, 0, 0, 0, 0 }, 1));
- Assert.Equal(1, EndianBitConverter.LittleEndianConverter.ToInt32(new byte[] { 0, 1, 0, 0, 0 }, 1));
- Assert.Equal(256, EndianBitConverter.LittleEndianConverter.ToInt32(new byte[] { 1, 0, 1, 0, 0 }, 1));
- Assert.Equal(65536, EndianBitConverter.LittleEndianConverter.ToInt32(new byte[] { 1, 0, 0, 1, 0 }, 1));
- Assert.Equal(16777216, EndianBitConverter.LittleEndianConverter.ToInt32(new byte[] { 1, 0, 0, 0, 1 }, 1));
- Assert.Equal(-1, EndianBitConverter.LittleEndianConverter.ToInt32(new byte[] { 0, 255, 255, 255, 255 }, 1));
- Assert.Equal(257, EndianBitConverter.LittleEndianConverter.ToInt32(new byte[] { 0, 1, 1, 0, 0 }, 1));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void ToUInt32()
- {
- Assert.Equal((uint)0, EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[] { 0, 0, 0, 0 }, 0));
- Assert.Equal((uint)1, EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[] { 1, 0, 0, 0 }, 0));
- Assert.Equal((uint)256, EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[] { 0, 1, 0, 0 }, 0));
- Assert.Equal((uint)65536, EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[] { 0, 0, 1, 0 }, 0));
- Assert.Equal((uint)16777216, EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[] { 0, 0, 0, 1 }, 0));
- Assert.Equal(uint.MaxValue, EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[] { 255, 255, 255, 255 }, 0));
- Assert.Equal((uint)257, EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[] { 1, 1, 0, 0 }, 0));
-
- Assert.Equal((uint)0, EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[] { 1, 0, 0, 0, 0 }, 1));
- Assert.Equal((uint)1, EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[] { 0, 1, 0, 0, 0 }, 1));
- Assert.Equal((uint)256, EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[] { 1, 0, 1, 0, 0 }, 1));
- Assert.Equal((uint)65536, EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[] { 1, 0, 0, 1, 0 }, 1));
- Assert.Equal((uint)16777216, EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[] { 1, 0, 0, 0, 1 }, 1));
- Assert.Equal(uint.MaxValue, EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[] { 0, 255, 255, 255, 255 }, 1));
- Assert.Equal((uint)257, EndianBitConverter.LittleEndianConverter.ToUInt32(new byte[] { 0, 1, 1, 0, 0 }, 1));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void ToInt64()
- {
- Assert.Equal(0L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(1L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(256L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(65536L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(16777216L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, 0));
- Assert.Equal(4294967296L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, 0));
- Assert.Equal(1099511627776L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, 0));
- Assert.Equal(1099511627776L * 256, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, 0));
- Assert.Equal(1099511627776L * 256 * 256, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, 0));
- Assert.Equal(-1L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, 0));
- Assert.Equal(257L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 1, 1, 0, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(4294967295L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 255, 255, 255, 255, 0, 0, 0, 0 }, 0));
- Assert.Equal(-4294967296L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 0, 0, 0, 0, 255, 255, 255, 255 }, 0));
-
- Assert.Equal(0L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(1L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(256L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 1, 0, 1, 0, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(65536L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 1, 0, 0, 1, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(16777216L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 1, 0, 0, 0, 0 }, 1));
- Assert.Equal(4294967296L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 0, 1, 0, 0, 0 }, 1));
- Assert.Equal(1099511627776L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 0, 0, 1, 0, 0 }, 1));
- Assert.Equal(1099511627776L * 256, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 1, 0 }, 1));
- Assert.Equal(1099511627776L * 256 * 256, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0, 1 }, 1));
- Assert.Equal(-1L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 0, 255, 255, 255, 255, 255, 255, 255, 255 }, 1));
- Assert.Equal(257L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 0, 1, 1, 0, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(4294967295L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 0, 255, 255, 255, 255, 0, 0, 0, 0 }, 1));
- Assert.Equal(-4294967296L, EndianBitConverter.LittleEndianConverter.ToInt64(new byte[] { 0, 0, 0, 0, 0, 255, 255, 255, 255 }, 1));
- }
-
- ///
- /// Tests that passing a returns the correct bytes.
- ///
- [Fact]
- public void ToUInt64()
- {
- Assert.Equal(0UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(1UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(256UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(65536UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, 0));
- Assert.Equal(16777216UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, 0));
- Assert.Equal(4294967296UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, 0));
- Assert.Equal(1099511627776UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, 0));
- Assert.Equal(1099511627776UL * 256, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, 0));
- Assert.Equal(1099511627776UL * 256 * 256, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, 0));
- Assert.Equal(ulong.MaxValue, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, 0));
- Assert.Equal(257UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 1, 1, 0, 0, 0, 0, 0, 0 }, 0));
-
- Assert.Equal(0UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(1UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(256UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 1, 0, 1, 0, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(65536UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 1, 0, 0, 0, 0, 0 }, 1));
- Assert.Equal(16777216UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 1, 0, 0, 0, 0 }, 1));
- Assert.Equal(4294967296UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 0, 1, 0, 0, 0 }, 1));
- Assert.Equal(1099511627776UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 0, 0, 1, 0, 0 }, 1));
- Assert.Equal(1099511627776UL * 256, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 1, 0 }, 1));
- Assert.Equal(1099511627776UL * 256 * 256, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0, 1 }, 1));
- Assert.Equal(ulong.MaxValue, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 0, 255, 255, 255, 255, 255, 255, 255, 255 }, 1));
- Assert.Equal(257UL, EndianBitConverter.LittleEndianConverter.ToUInt64(new byte[] { 0, 1, 1, 0, 0, 0, 0, 0, 0 }, 1));
- }
- }
-}
\ No newline at end of file