mirror of https://github.com/SixLabors/ImageSharp
2 changed files with 62 additions and 4 deletions
@ -0,0 +1,58 @@ |
|||
// Copyright (c) Six Labors and contributors.
|
|||
// Licensed under the Apache License, Version 2.0.
|
|||
|
|||
using System.IO; |
|||
using SixLabors.ImageSharp.IO; |
|||
using Xunit; |
|||
|
|||
namespace SixLabors.ImageSharp.Tests.IO |
|||
{ |
|||
public class EndianBinaryReaderWriterTests |
|||
{ |
|||
/// <summary>
|
|||
/// Ensures that the data written through a binary writer can be read back through the reader
|
|||
/// </summary>
|
|||
[Fact] |
|||
public void RoundtripValues() |
|||
{ |
|||
foreach (Endianness endianness in new[] { Endianness.BigEndian, Endianness.LittleEndian }) |
|||
{ |
|||
var stream = new MemoryStream(); |
|||
|
|||
var writer = new EndianBinaryWriter(endianness, stream); |
|||
|
|||
writer.Write(true); // Bool
|
|||
writer.Write((byte)1); // Byte
|
|||
writer.Write((short)1); // Int16
|
|||
writer.Write(1); // Int32
|
|||
writer.Write(1L); // Int64
|
|||
writer.Write(1f); // Single
|
|||
writer.Write(1d); // Double
|
|||
writer.Write((sbyte)1); // SByte
|
|||
writer.Write((ushort)1); // UInt16
|
|||
writer.Write((uint)1); // UInt32
|
|||
writer.Write(1UL); // ULong
|
|||
|
|||
Assert.Equal(43, stream.Length); |
|||
|
|||
stream.Position = 0; |
|||
|
|||
var reader = new EndianBinaryReader(endianness, stream); |
|||
|
|||
Assert.True(reader.ReadBoolean()); // Bool
|
|||
Assert.Equal((byte)1, reader.ReadByte()); // Byte
|
|||
Assert.Equal((short)1, reader.ReadInt16()); // Int16
|
|||
Assert.Equal(1, reader.ReadInt32()); // Int32
|
|||
Assert.Equal(1L, reader.ReadInt64()); // Int64
|
|||
Assert.Equal(1f, reader.ReadSingle()); // Single
|
|||
Assert.Equal(1d, reader.ReadDouble()); // Double
|
|||
Assert.Equal((sbyte)1, reader.ReadSByte()); // SByte
|
|||
Assert.Equal((ushort)1, reader.ReadUInt16()); // UInt16
|
|||
Assert.Equal((uint)1, reader.ReadUInt32()); // UInt32
|
|||
Assert.Equal(1UL, reader.ReadUInt64()); // ULong
|
|||
|
|||
stream.Dispose(); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue