From 822aed4fb9fae6d74c2d8cdddfce6a8ae17d9bd4 Mon Sep 17 00:00:00 2001 From: Wiljan Ruizendaal <wruizendaal@gmail.com> Date: Thu, 31 Oct 2024 16:30:50 +0100 Subject: [PATCH] Move to 6.1.0 and new unittest Get_ShouldReturn_WhileMapIsEmpty --- src/Faster.Map.csproj | 16 ++++++++++++---- unittests/Faster.Map.DenseMap.Tests/GetTests.cs | 15 +++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/Faster.Map.csproj b/src/Faster.Map.csproj index 822b73a..a64e446 100644 --- a/src/Faster.Map.csproj +++ b/src/Faster.Map.csproj @@ -9,13 +9,21 @@ <PackageReadmeFile>README.md</PackageReadmeFile> <CopyRight>MIT</CopyRight> <PackageReleaseNotes> - Introducing CMAP which is a incredibly fast concurrent hashmap + New Features: + + Enhanced emplace Behavior: The emplace function now operates with improved efficiency: + Duplicate Management: When a duplicate entry is detected, emplace updates the existing entry instead of creating a new one. + New Entry Insertion: If no duplicate is found, a new entry is added. + + Optimizations: + + Smart Tombstone Management: Introduced an optimized approach to manage and avoid tombstones, enhancing data integrity and reducing unnecessary overhead. </PackageReleaseNotes> <PackageProjectUrl>https://github.com/Wsm2110/Faster.Map</PackageProjectUrl> - <AssemblyVersion>6.0.4</AssemblyVersion> - <FileVersion>6.0.4</FileVersion> + <AssemblyVersion>6.1.0</AssemblyVersion> + <FileVersion>6.1.0</FileVersion> <Title>Fastest .net hashmap</Title> - <Version>6.0.4</Version> + <Version>6.1.0</Version> <GeneratePackageOnBuild>True</GeneratePackageOnBuild> <Description> Incredibly fast (concurrent) hashmap diff --git a/unittests/Faster.Map.DenseMap.Tests/GetTests.cs b/unittests/Faster.Map.DenseMap.Tests/GetTests.cs index 0ee3bb8..da53029 100644 --- a/unittests/Faster.Map.DenseMap.Tests/GetTests.cs +++ b/unittests/Faster.Map.DenseMap.Tests/GetTests.cs @@ -275,5 +275,20 @@ public void Get_ShouldReturnTrueForReinsertedKey_WhenUsingHighLoadFactorAndResiz Assert.True(map.Get(8, out var value)); Assert.Equal("newEight", value); } + + [Fact] + public void Get_ShouldReturn_WhileMapIsEmpty() + { + var dense = new DenseMap<int, int>(); + for (int i = 1; i <= 16; ++i) + { + dense.Emplace(i, 0); + dense.Remove(i); + } + + var result = dense.Get(0, out int value); + + Assert.False(result); + } } }