mirror of
https://github.com/CommunityToolkit/dotnet.git
synced 2026-10-21 22:56:44 +08:00
0c5c57edaa
* Code refactoring * Added StringExtensions tests * Fixed test method names * Added ArrayExtensions tests * Removed MemoryPool<T>.Resize extension * Added ArrayPoolExtensions tests * Added SpinLockExtensions tests * Moved HashCode<T> class to Helpers namespace * Added ByReference<T> tests * Changed visibility of one constructor * Improved ByReference<T> tests * Added ReadOnlyByReference<T> tests * Fixed a small build error * Added new List<T> extensions * Added List<T> extensions tests * Fixed a parameter name * Fixed incorrect XML docs * Added missing List<T> extension APIs * Disabled warning * Removed unnecessary type constraint * Bug fixes to some List<T> extensions * Improved some XML docs * Added List<T>.DangerousAsSpan extension * Added more unit tests * Fixed a bug in the List<T>.DangerousAsSpan extension * Minor tweaks to some docs * Removed List<T> extensions (too hacky) * Minor code tweaks (just in case) * Fixed incorrect API visibility * Added tests for the HashCode<T> type * Added .NET Core 3.0 tests for HashCode<T> * Added ParallelHelper.For tests * Code refactoring * Added ParallelHelper.For2D tests * Fixed empty condition check for 2D loops * Added ParallelHelper.ForEach in tests * Added ParallelHelper.ForEach ref tests * Fixed ParallelHelper.For2D tests * Improved ParallelHelper.For/2D tests * Switched HighPerformance tests to shared project * Renamed HighPerformance.NetCore project * Moved HighPerformance tests to subfolder * Fixed incorrect namespaces * Added empty HighPerformance.UWP test project * Fixed shared project for UWP test project * Added missing Unsafe NuGet package to UWP project * Switched compile tile directives in HighPerformance project * Added missing file headers * Minor code refactoring to HashCode<T> * Minor performance improvements * Fixed HashCode<T>.Combine API for > int.MaxValue byte sizes * Improved HashCode<T>.Combine performance on small spans * Speed improvements in the GetDjb2HashCode<T> API * Refactored HashCode<T> to facilitate extensions * Fixed incorrect namespace * Added HashCodeExtensions class * Added HashCodeExtensions tests * Minor code style tweaks * Added SpanEnumerable<T> type * Updated T[] and Span<T> Enumerate extensions * Added SpanExtensions tests * Fixed an issue in the DJB2 hash method * Minor code refactoring * Added EditorBrowsable attributes to enumerator types * Added MemoryOwner<T> type * Minor code refactoring * More code refactoring * Added MemoryOwner<T> Empty and Length properties * Added missing header text * Fixed a refactoring typo * Added MemoryOwner<T> tests * Minor code refactoring * Fixed MemoryOwner<T> XML docs * Minor optimization to GetDjb2HashCode * Minor optimization to HashCode<T>.CombineValues * Minor optimization to Count extension with managed types * Added a Count test for the managed path * Added BoolExtensions.ToInt API * Removed automatically added rules * Fixed incorrect XML docs * Added MemoryOwner<T>.DangerousGetReference API * Added extensions for some MemoryMarshal APIs * Minor code tweaks * Added MemoryOwner<T> method * Added more XML comments * Fixed an incorrect method prototype * Code refactoring, added AllocationMode enum * Added SpanOwner<T> type * Added SpanOwner<T> tests * Removed unnecessary check * Removed unnecessary package reference on .NET Standard 2.1 * Improved tests for ReadOnlySpan<T>.Count * Fixed a bug in ReadOnlySpan<T>.Count with managed types * Updated two type constraints * Minor optimizations to ParallelHelper * Minor code tweaks * Removed unnecessary APIs * Added UInt32Extensions class * Added unit tests for the UInt32Extensions class * Fixed some comments * Added some remarks to the new uint APIs * Minor optimization * Added UInt64Extensions class * Added unit tests for UInt64Extensions type * Fixed some typos and comments * Fixed a unit test * Minor performance improvements * Added ToString() override and debug display to MemoryOwner<T> * Added ToString() override and debug display to SpanOwner<T> * Added MemoryOwner<T> debug proxy type * Added SpanOwner<T> debug proxy type * Added missing using directive * Added info to the .csproj file * Removed two APIs, for additional safety * Refactored bit helpers into a separate class, added by ref overloads * Minor code tweaks * Added Box<T> type * Added tests for the Box<T> type * Added Box<T> object schema * Added Box<T>.GetFrom(object) API * Added more Box<T> tests, added more comments * Fixed a copy paste fail * Added ValueTypeExtensions type * Added ValueTypeExtensions tests * Added missing GC.SuppressFinalize call in MemoryOwner<T> * Initial implementation of MemoryStream * Implemented MemoryStream.Seek method * Implemented ReadByte and WriteByte methods * Added Memory<T> extension to create a Stream * Implemented MemoryStream.Dispose method * Fixed typos in a test class * Added ReadAsync overrides * Added WriteAsync overrides * Code refactoring * Added more .NET Standard 2.1 overrides * Moved CopyToAsync method to .NET Standard 2.0 * Moved FlushAsync, reordered methods * Added [ReadOnly]Memory<T> extension tests * Added initial stream tests * Fixed a bug in MemoryStream.Read * Added unit tests for the MemoryStream type * Added MemoryStream.[Read|Write]Byte tests, minor tweaks * Updated .sln file * Added IMemoryOwnerStream type * Added IMemoryOwnerExtensions.AsStream type * Minor tweaks to some XML comments * Added IMemoryOwner extensions and stream tests * Fixed an incorrect namespace * Aadded ArrayPoolBufferWriter<T> type * Minor code refactoring * Added debug view and ToString override for ArrayPoolBufferWriter<T> * Minor code refactoring * Added destructor to ArrayPoolBufferWriter<T> type * Added tests for ArrayPoolBufferWriter<T> * Fixed some copy-paste fails * Added IMemoryOwner<T> interface to ArrayPoolBufferWriter<T> * Updated .csproj description * Fixed some comments * Updated sln * Minor code style tweak * Minor optimization, code style tweaks * Fixed some tests not running on .NET Core 3.0 * Added initial Array2DExtensions type * Added T[,].AsSpan extension * Added Count<T> and Djb2 hashcode extensions for T[,] arrays * Added tests for the 2D array extensions * Code refactoring * Added NullableByReference<T> type * Minor code refactoring * Added NullableReadOnlyByReference<T> type * Added unit tests for new Nullable[ReadOnly]ByReference<T> types * Fixed an XML comment * Added T[,] array GetRow and GetColumn extensions * Added Array2DColumnEnumerable<T>.ToArray() helper method * Code refactoring * Added T[,].GetRow support on .NET Standard 2.0 * Added and optimized T[,].Fill extension * Added T[,].Fill tests * Added tests for T[,].GetRow extension * Bug fixes in the 2D array enumerators * Added tests for T[,].GetColumn extension * Fixed a typo * Fixed duplicate using directives * Fixed an XML comment * Inverted precompiler conditional directive for clarity * Fixed error in an XML comment * Removed unnecessary using directive * Fixed publisher name in UWP test project * Added StyleCop.Analyzers package to UWP test project * Resolved StyleCop warnings in unit tests * Added StyleCop.Analyzers package to .NET Core test project * Resolved .NET Core specific StyleCop warnings * Updated Test SDK and packages in .NET Core unit test project * Fixed object name in MemoryStream.ThrowObjectDisposedException() * Minor code style tweak and optimization * Added test for the argument name in ParallelHelper exceptions * Fixed visibility modifiers * Fixed Box<T> type on ARM devices * Added MemoryStream tests for argument names in exceptions * Minor improvements to some unit tests * Removed duplicate System.Runtime.CompilerServices.Unsafe reference * Removed unnecessary StyleCop reference and .ruleset file * Resolved StyleCop warnings in unit tests * Minor performance improvements in ByReference<T> types on x64 * Minor style tweaks * Fixed missed refactoring * Code refactoring * Added missing readonly struct modifiers * Enabgled running HighPerformance tests on build. (cherry picked from commit c5524125391ca208586d0de09fffb89e3a01264d) * Bug fixes in the Box<T> type on some runtimes * Added missing "Pack" target in UWP test project * Code refactoring, moved Box<T> extensions to same file for clarity * Bumped System.Runtime.CompilerServices.Unsafe to 5.0.0-preview.2.20160.6 * Fixed Box<T>.ToString/GetHashCode issues on .NET Core 2.1 Release * Updated comments on the Box<T>.GetReference() method Also pushing this commit just to re-trigger the CI build, since GitHub went offline and caused the previous one to fail/half midway through * Fixed package downgrade in UWP test project * Aligned ref returns for ReadOnlySpan<T>/string to MemoryMarsha.GetReference * Renamed ByReference<T> APIs * Removed unnecessary preview package Co-authored-by: Michael Hawker MSFT (XAML Llama) <michael.hawker@outlook.com> Co-authored-by: Alexandre Zollinger Chohfi <alzollin@microsoft.com>
42 lines
1.3 KiB
C#
42 lines
1.3 KiB
C#
// Licensed to the .NET Foundation under one or more agreements.
|
|
// The .NET Foundation licenses this file to you under the MIT license.
|
|
// See the LICENSE file in the project root for more information.
|
|
|
|
using System;
|
|
using System.IO;
|
|
using Microsoft.Toolkit.HighPerformance.Extensions;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
namespace UnitTests.HighPerformance.Extensions
|
|
{
|
|
[TestClass]
|
|
public class Test_ReadOnlyMemoryExtensions
|
|
{
|
|
[TestCategory("ReadOnlyMemoryExtensions")]
|
|
[TestMethod]
|
|
public void Test_ReadOnlyMemoryExtensions_EmptyMemoryStream()
|
|
{
|
|
ReadOnlyMemory<byte> memory = default;
|
|
|
|
Stream stream = memory.AsStream();
|
|
|
|
Assert.IsNotNull(stream);
|
|
Assert.AreEqual(stream.Length, memory.Length);
|
|
Assert.IsFalse(stream.CanWrite);
|
|
}
|
|
|
|
[TestCategory("ReadOnlyMemoryExtensions")]
|
|
[TestMethod]
|
|
public void Test_ReadOnlyMemoryExtensions_MemoryStream()
|
|
{
|
|
ReadOnlyMemory<byte> memory = new byte[1024];
|
|
|
|
Stream stream = memory.AsStream();
|
|
|
|
Assert.IsNotNull(stream);
|
|
Assert.AreEqual(stream.Length, memory.Length);
|
|
Assert.IsFalse(stream.CanWrite);
|
|
}
|
|
}
|
|
}
|