diff --git a/NiceBtree.sln b/PersistentOrderedMap.sln similarity index 95% rename from NiceBtree.sln rename to PersistentOrderedMap.sln index 4da8777..d13d62d 100644 --- a/NiceBtree.sln +++ b/PersistentOrderedMap.sln @@ -2,7 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B0432C7A-80E2-4EA6-8FAB-B8F23A8C39DE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PersistentMap", "PersistentMap\PersistentMap.csproj", "{CA49AA3C-0CE6-4735-887F-FB3631D63CEE}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PersistentOrderedMap", "PersistentOrderedMap\PersistentOrderedMap.csproj", "{CA49AA3C-0CE6-4735-887F-FB3631D63CEE}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestProject1", "TestProject1\TestProject1.csproj", "{9E499000-5E37-42F8-89D2-E18A53F0EF0C}" EndProject diff --git a/PersistentMap/BTreeFunctions.cs b/PersistentOrderedMap/BTreeFunctions.cs similarity index 99% rename from PersistentMap/BTreeFunctions.cs rename to PersistentOrderedMap/BTreeFunctions.cs index 4a7a41e..2831170 100644 --- a/PersistentMap/BTreeFunctions.cs +++ b/PersistentOrderedMap/BTreeFunctions.cs @@ -2,7 +2,7 @@ using System.Numerics; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -namespace PersistentMap +namespace PersistentOrderedMap { public static class BTreeFunctions { diff --git a/PersistentMap/BaseOrderedMap.cs b/PersistentOrderedMap/BaseOrderedMap.cs similarity index 93% rename from PersistentMap/BaseOrderedMap.cs rename to PersistentOrderedMap/BaseOrderedMap.cs index 613bca0..c3838eb 100644 --- a/PersistentMap/BaseOrderedMap.cs +++ b/PersistentOrderedMap/BaseOrderedMap.cs @@ -1,6 +1,6 @@ using System.Collections; -namespace PersistentMap; +namespace PersistentOrderedMap; public abstract class BaseOrderedMap : IEnumerable> where TStrategy : IKeyStrategy { @@ -37,17 +37,17 @@ public abstract class BaseOrderedMap : IEnumerable Create(TStrategy strategy) + public static PersistentOrderedMap Create(TStrategy strategy) { // Start with an empty leaf owned by None so the first write triggers CoW. var emptyRoot = new LeafNode(OwnerId.None, strategy.UsesPrefixes); - return new PersistentMap(emptyRoot, strategy, 0); + return new PersistentOrderedMap(emptyRoot, strategy, 0); } - public static TransientMap CreateTransient(TStrategy strategy) + public static TransientOrderedMap CreateTransient(TStrategy strategy) { var emptyRoot = new LeafNode(OwnerId.None, strategy.UsesPrefixes); - return new TransientMap(emptyRoot, strategy,0); + return new TransientOrderedMap(emptyRoot, strategy,0); } diff --git a/PersistentMap/Iterator.cs b/PersistentOrderedMap/Iterator.cs similarity index 99% rename from PersistentMap/Iterator.cs rename to PersistentOrderedMap/Iterator.cs index f6ace28..4adaebc 100644 --- a/PersistentMap/Iterator.cs +++ b/PersistentOrderedMap/Iterator.cs @@ -1,7 +1,7 @@ using System.Collections; using System.Runtime.CompilerServices; -namespace PersistentMap; +namespace PersistentOrderedMap; diff --git a/PersistentMap/KeyStrategies.cs b/PersistentOrderedMap/KeyStrategies.cs similarity index 98% rename from PersistentMap/KeyStrategies.cs rename to PersistentOrderedMap/KeyStrategies.cs index f355921..f960d1d 100644 --- a/PersistentMap/KeyStrategies.cs +++ b/PersistentOrderedMap/KeyStrategies.cs @@ -3,7 +3,7 @@ using System.Runtime.CompilerServices; using System.Runtime.Intrinsics; using System.Runtime.Intrinsics.X86; -namespace PersistentMap; +namespace PersistentOrderedMap; using System; using System.Buffers.Binary; diff --git a/PersistentMap/KeyStrategies/ComparableStrategy.cs b/PersistentOrderedMap/KeyStrategies/ComparableStrategy.cs similarity index 94% rename from PersistentMap/KeyStrategies/ComparableStrategy.cs rename to PersistentOrderedMap/KeyStrategies/ComparableStrategy.cs index d0212f6..a9aa726 100644 --- a/PersistentMap/KeyStrategies/ComparableStrategy.cs +++ b/PersistentOrderedMap/KeyStrategies/ComparableStrategy.cs @@ -1,4 +1,4 @@ -namespace PersistentMap; +namespace PersistentOrderedMap; using System.Runtime.CompilerServices; diff --git a/PersistentMap/KeyStrategies/DoubleStrategy.cs b/PersistentOrderedMap/KeyStrategies/DoubleStrategy.cs similarity index 97% rename from PersistentMap/KeyStrategies/DoubleStrategy.cs rename to PersistentOrderedMap/KeyStrategies/DoubleStrategy.cs index b62090e..627c9a8 100644 --- a/PersistentMap/KeyStrategies/DoubleStrategy.cs +++ b/PersistentOrderedMap/KeyStrategies/DoubleStrategy.cs @@ -1,4 +1,4 @@ -namespace PersistentMap; +namespace PersistentOrderedMap; using System.Runtime.CompilerServices; public struct DoubleStrategy : IKeyStrategy diff --git a/PersistentMap/KeyStrategies/IntScanner.cs b/PersistentOrderedMap/KeyStrategies/IntScanner.cs similarity index 99% rename from PersistentMap/KeyStrategies/IntScanner.cs rename to PersistentOrderedMap/KeyStrategies/IntScanner.cs index 325436d..97afa3c 100644 --- a/PersistentMap/KeyStrategies/IntScanner.cs +++ b/PersistentOrderedMap/KeyStrategies/IntScanner.cs @@ -3,7 +3,7 @@ using System.Runtime.CompilerServices; using System.Runtime.Intrinsics; using System.Runtime.Intrinsics.X86; -namespace PersistentMap; +namespace PersistentOrderedMap; public static class IntScanner { diff --git a/PersistentMap/KeyStrategies/IntStrategy.cs b/PersistentOrderedMap/KeyStrategies/IntStrategy.cs similarity index 93% rename from PersistentMap/KeyStrategies/IntStrategy.cs rename to PersistentOrderedMap/KeyStrategies/IntStrategy.cs index f6133e2..5e29db0 100644 --- a/PersistentMap/KeyStrategies/IntStrategy.cs +++ b/PersistentOrderedMap/KeyStrategies/IntStrategy.cs @@ -1,4 +1,4 @@ -namespace PersistentMap; +namespace PersistentOrderedMap; using System.Runtime.CompilerServices; diff --git a/PersistentMap/KeyStrategies/PrefixScanner.cs b/PersistentOrderedMap/KeyStrategies/PrefixScanner.cs similarity index 99% rename from PersistentMap/KeyStrategies/PrefixScanner.cs rename to PersistentOrderedMap/KeyStrategies/PrefixScanner.cs index 9f6d907..9364998 100644 --- a/PersistentMap/KeyStrategies/PrefixScanner.cs +++ b/PersistentOrderedMap/KeyStrategies/PrefixScanner.cs @@ -1,4 +1,4 @@ -namespace PersistentMap; +namespace PersistentOrderedMap; using System.Runtime.CompilerServices; using System.Runtime.Intrinsics; diff --git a/PersistentMap/KeyStrategies/StandardStrategy.cs b/PersistentOrderedMap/KeyStrategies/StandardStrategy.cs similarity index 98% rename from PersistentMap/KeyStrategies/StandardStrategy.cs rename to PersistentOrderedMap/KeyStrategies/StandardStrategy.cs index 94cc05c..aefca25 100644 --- a/PersistentMap/KeyStrategies/StandardStrategy.cs +++ b/PersistentOrderedMap/KeyStrategies/StandardStrategy.cs @@ -1,4 +1,4 @@ -namespace PersistentMap; +namespace PersistentOrderedMap; using System.Runtime.CompilerServices; /// diff --git a/PersistentMap/Nodes.cs b/PersistentOrderedMap/Nodes.cs similarity index 99% rename from PersistentMap/Nodes.cs rename to PersistentOrderedMap/Nodes.cs index 59075c4..8e1cc76 100644 --- a/PersistentMap/Nodes.cs +++ b/PersistentOrderedMap/Nodes.cs @@ -1,7 +1,7 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -namespace PersistentMap; +namespace PersistentOrderedMap; [Flags] public enum NodeFlags : byte diff --git a/PersistentMap/PersistentMap.cs b/PersistentOrderedMap/PersistentOrderedMap.cs similarity index 53% rename from PersistentMap/PersistentMap.cs rename to PersistentOrderedMap/PersistentOrderedMap.cs index c691918..5d45114 100644 --- a/PersistentMap/PersistentMap.cs +++ b/PersistentOrderedMap/PersistentOrderedMap.cs @@ -1,25 +1,25 @@ using System.Collections; -namespace PersistentMap; +namespace PersistentOrderedMap; -public sealed class PersistentMap : BaseOrderedMap, IEnumerable, IEnumerable> where TStrategy : IKeyStrategy +public sealed class PersistentOrderedMap : BaseOrderedMap, IEnumerable, IEnumerable> where TStrategy : IKeyStrategy { - internal PersistentMap(Node root, TStrategy strategy, int count) + internal PersistentOrderedMap(Node root, TStrategy strategy, int count) : base(root, strategy, count) { } // --------------------------------------------------------- // Immutable Write API (Returns new Map) // --------------------------------------------------------- - public PersistentMap Set(K key, V value) + public PersistentOrderedMap Set(K key, V value) { // OPTIMIZATION: Use OwnerId.None (0). // This signals EnsureEditable to always copy the root path, // producing a new tree of nodes that also have OwnerId.None. var newRoot = BTreeFunctions.Set(_root, key, value, _strategy, OwnerId.None, out bool countChanged); - return new PersistentMap(newRoot, _strategy, countChanged ? Count + 1 : Count); + return new PersistentOrderedMap(newRoot, _strategy, countChanged ? Count + 1 : Count); } - public static PersistentMap Empty(TStrategy strategy) + public static PersistentOrderedMap Empty(TStrategy strategy) { // Create an empty Leaf Node. // 'default(OwnerId)' (usually 0) marks this node as Immutable/Persistent. @@ -27,18 +27,18 @@ public sealed class PersistentMap : BaseOrderedMap(default(OwnerId), strategy.UsesPrefixes); - return new PersistentMap(emptyRoot, strategy, 0); + return new PersistentOrderedMap(emptyRoot, strategy, 0); } - public PersistentMap Remove(K key) + public PersistentOrderedMap Remove(K key) { var newRoot = BTreeFunctions.Remove(_root, key, _strategy, OwnerId.None, out bool removed); if (!removed) return this; - return new PersistentMap(newRoot, _strategy, Count - 1); + return new PersistentOrderedMap(newRoot, _strategy, Count - 1); } - public TransientMap ToTransient() + public TransientOrderedMap ToTransient() { - return new TransientMap(_root, _strategy, Count); + return new TransientOrderedMap(_root, _strategy, Count); } } diff --git a/PersistentMap/PersistentMap.csproj b/PersistentOrderedMap/PersistentOrderedMap.csproj similarity index 100% rename from PersistentMap/PersistentMap.csproj rename to PersistentOrderedMap/PersistentOrderedMap.csproj diff --git a/PersistentMap/Readme.org b/PersistentOrderedMap/Readme.org similarity index 100% rename from PersistentMap/Readme.org rename to PersistentOrderedMap/Readme.org diff --git a/PersistentMap/TransientMap.cs b/PersistentOrderedMap/TransientOrderedMap.cs similarity index 63% rename from PersistentMap/TransientMap.cs rename to PersistentOrderedMap/TransientOrderedMap.cs index 568b20d..48d4248 100644 --- a/PersistentMap/TransientMap.cs +++ b/PersistentOrderedMap/TransientOrderedMap.cs @@ -1,13 +1,13 @@ using System.Collections; -namespace PersistentMap; +namespace PersistentOrderedMap; -public sealed class TransientMap : BaseOrderedMap where TStrategy : IKeyStrategy +public sealed class TransientOrderedMap : BaseOrderedMap where TStrategy : IKeyStrategy { // This is mutable, but we treat it as readonly for the ID generation logic usually. private OwnerId _transactionId; - public TransientMap(Node root, TStrategy strategy, int count) + public TransientOrderedMap(Node root, TStrategy strategy, int count) : base(root, strategy, count) { _transactionId = OwnerId.Next(); @@ -25,13 +25,13 @@ public sealed class TransientMap : BaseOrderedMap ToPersistent() + public PersistentOrderedMap ToPersistent() { // 1. Create the snapshot by copying all relevant information - var snapshot = new PersistentMap(_root, _strategy, Count); + var snapshot = new PersistentOrderedMap(_root, _strategy, Count); - // 2. Protect the snapshot from THIS TransientMap by getting a new ownerId + // 2. Protect the snapshot from THIS TransientOrderedMap by getting a new ownerId // so that future edits will be done by CoW _transactionId = OwnerId.Next(); diff --git a/TestProject1/FuzzTest.cs b/TestProject1/FuzzTest.cs index cded93b..643db48 100644 --- a/TestProject1/FuzzTest.cs +++ b/TestProject1/FuzzTest.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using Xunit; using Xunit.Abstractions; -using PersistentMap; +using PersistentOrderedMap; public class BTreeFuzzTests { @@ -137,7 +137,7 @@ public class BTreeFuzzTests } } - private void AssertConsistency(SortedDictionary expected, TransientMap actual) + private void AssertConsistency(SortedDictionary expected, TransientOrderedMap actual) { // 1. Count if (expected.Count != actual.Count) diff --git a/TestProject1/FuzzTestStandardStrategy.cs b/TestProject1/FuzzTestStandardStrategy.cs index 69e598f..958498a 100644 --- a/TestProject1/FuzzTestStandardStrategy.cs +++ b/TestProject1/FuzzTestStandardStrategy.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using Xunit; using Xunit.Abstractions; -using PersistentMap; +using PersistentOrderedMap; public class BTreeFuzzTestStandardStrategy { @@ -137,7 +137,7 @@ public class BTreeFuzzTestStandardStrategy } } - private void AssertConsistency(SortedDictionary expected, TransientMap> actual) + private void AssertConsistency(SortedDictionary expected, TransientOrderedMap> actual) { // 1. Count if (expected.Count != actual.Count) diff --git a/TestProject1/IteratorTests.cs b/TestProject1/IteratorTests.cs index acd07e3..453e1af 100644 --- a/TestProject1/IteratorTests.cs +++ b/TestProject1/IteratorTests.cs @@ -1,5 +1,5 @@ using Xunit; -using PersistentMap; +using PersistentOrderedMap; using System.Linq; using System.Collections.Generic; @@ -8,8 +8,8 @@ public class EnumeratorTests // Use IntStrategy for simple numeric testing private readonly IntStrategy _strategy = new(); - // Helper to create a populated PersistentMap quickly - private PersistentMap CreateMap(params int[] keys) + // Helper to create a populated PersistentOrderedMap quickly + private PersistentOrderedMap CreateMap(params int[] keys) { var map = BaseOrderedMap.CreateTransient(_strategy); foreach (var k in keys) @@ -22,7 +22,7 @@ public class EnumeratorTests [Fact] public void EmptyMap_EnumeratesNothing() { - var map = PersistentMap.Empty(_strategy); + var map = PersistentOrderedMap.Empty(_strategy); var list = new List(); foreach(var kv in map) list.Add(kv.Key); diff --git a/TestProject1/OrderedQueriesTest.cs b/TestProject1/OrderedQueriesTest.cs index b9b996a..ac24d20 100644 --- a/TestProject1/OrderedQueriesTest.cs +++ b/TestProject1/OrderedQueriesTest.cs @@ -1,13 +1,13 @@ using System.Linq; using Xunit; -using PersistentMap; +using PersistentOrderedMap; namespace PersistentMap.Tests { public class BTreeExtendedOperationsTests { // Helper to quickly spin up a populated map - private TransientMap CreateMap(params int[] keys) + private TransientOrderedMap CreateMap(params int[] keys) { var map = BaseOrderedMap.CreateTransient(new IntStrategy()); foreach (var key in keys) diff --git a/TestProject1/PersistenceTests.cs b/TestProject1/PersistenceTests.cs index 713df90..78a163e 100644 --- a/TestProject1/PersistenceTests.cs +++ b/TestProject1/PersistenceTests.cs @@ -1,5 +1,5 @@ namespace TestProject1; -using PersistentMap; +using PersistentOrderedMap; public class PersistenceTests { private readonly UnicodeStrategy _strategy = new UnicodeStrategy(); diff --git a/TestProject1/StandardStrategy.cs b/TestProject1/StandardStrategy.cs index 912c7a7..b5467b0 100644 --- a/TestProject1/StandardStrategy.cs +++ b/TestProject1/StandardStrategy.cs @@ -1,5 +1,5 @@ namespace PersistentMap.Tests; -using PersistentMap; +using PersistentOrderedMap; using System.Linq; using Xunit; public class StandardStrategy diff --git a/TestProject1/StressTest.cs b/TestProject1/StressTest.cs index ef086c3..adcd6a7 100644 --- a/TestProject1/StressTest.cs +++ b/TestProject1/StressTest.cs @@ -1,6 +1,6 @@ namespace TestProject1; -using PersistentMap; +using PersistentOrderedMap; public class StressTests { diff --git a/TestProject1/TestProject1.csproj b/TestProject1/TestProject1.csproj index e36bb42..0aea003 100644 --- a/TestProject1/TestProject1.csproj +++ b/TestProject1/TestProject1.csproj @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/TestProject1/UnitTest1.cs b/TestProject1/UnitTest1.cs index a9a9d77..25f698a 100644 --- a/TestProject1/UnitTest1.cs +++ b/TestProject1/UnitTest1.cs @@ -1,7 +1,7 @@ namespace TestProject1; using Xunit; -using PersistentMap; +using PersistentOrderedMap; public class BasicTests { diff --git a/benchmarks/MyBenchMarks/MyBenchMarks.csproj b/benchmarks/MyBenchMarks/MyBenchMarks.csproj index a55ce4e..3e30a8f 100644 --- a/benchmarks/MyBenchMarks/MyBenchMarks.csproj +++ b/benchmarks/MyBenchMarks/MyBenchMarks.csproj @@ -13,7 +13,7 @@ - + diff --git a/benchmarks/MyBenchMarks/Program.cs b/benchmarks/MyBenchMarks/Program.cs index dcad462..a7acb3c 100644 --- a/benchmarks/MyBenchMarks/Program.cs +++ b/benchmarks/MyBenchMarks/Program.cs @@ -5,7 +5,7 @@ using System.Linq; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Running; using LanguageExt; -using PersistentMap; +using PersistentOrderedMap; namespace MapBenchmarks; @@ -26,7 +26,7 @@ public class IntMapBenchmarks private ImmutableSortedDictionary _immSortedDict; private LanguageExt.Map _extMap; private LanguageExt.HashMap _extHashMap; - private PersistentMap _persistentMap; + private PersistentOrderedMap _persistentOrderedMap; private readonly IntStrategy _intStrategy = new IntStrategy(); @@ -65,7 +65,7 @@ public class IntMapBenchmarks var transient = BaseOrderedMap.CreateTransient(_intStrategy); foreach (var k in _allKeys) transient.Set(k, k); - _persistentMap = transient.ToPersistent(); + _persistentOrderedMap = transient.ToPersistent(); } // --- 1. BUILD --- @@ -103,15 +103,15 @@ public class IntMapBenchmarks } [Benchmark] - public PersistentMap Build_PersistentMap() + public PersistentOrderedMap Build_PersistentMap() { - var map = PersistentMap.Empty(_intStrategy); + var map = PersistentOrderedMap.Empty(_intStrategy); foreach (var k in _allKeys) map = map.Set(k, k); return map; } [Benchmark] - public PersistentMap Build_TransientMap() + public PersistentOrderedMap Build_TransientMap() { var map = BaseOrderedMap.CreateTransient(_intStrategy); foreach (var k in _allKeys) map.Set(k, k); @@ -161,7 +161,7 @@ public class IntMapBenchmarks { int count = 0; foreach (var k in _retrieveKeys) - if (_persistentMap.TryGetValue(k, out _)) count++; + if (_persistentOrderedMap.TryGetValue(k, out _)) count++; return count; } @@ -176,17 +176,17 @@ public class IntMapBenchmarks } [Benchmark] - public PersistentMap Update_PersistentMap() + public PersistentOrderedMap Update_PersistentMap() { - var map = _persistentMap; + var map = _persistentOrderedMap; foreach (var k in _updateKeys) map = map.Set(k, 999); return map; } [Benchmark] - public PersistentMap Update_TransientMap() + public PersistentOrderedMap Update_TransientMap() { - var transient = _persistentMap.ToTransient(); + var transient = _persistentOrderedMap.ToTransient(); foreach (var k in _updateKeys) transient.Set(k, 999); return transient.ToPersistent(); } @@ -226,17 +226,17 @@ public class IntMapBenchmarks } [Benchmark] - public PersistentMap UpdateSet_PersistentMap() + public PersistentOrderedMap UpdateSet_PersistentMap() { - var map = _persistentMap; + var map = _persistentOrderedMap; foreach (var k in _mixedKeys) map = map.Set(k, 999); return map; } [Benchmark] - public PersistentMap UpdateSet_TransientMap() + public PersistentOrderedMap UpdateSet_TransientMap() { - var transient = _persistentMap.ToTransient(); + var transient = _persistentOrderedMap.ToTransient(); foreach (var k in _mixedKeys) transient.Set(k, 999); return transient.ToPersistent(); } @@ -279,7 +279,7 @@ public class IntMapBenchmarks public int Iterate_PersistentMap() { int sum = 0; - foreach (var kvp in _persistentMap) sum += kvp.Value; + foreach (var kvp in _persistentOrderedMap) sum += kvp.Value; return sum; } @@ -319,16 +319,16 @@ public class IntMapBenchmarks } [Benchmark] - public PersistentMap Remove_PersistentMap() + public PersistentOrderedMap Remove_PersistentMap() { - var map = _persistentMap; + var map = _persistentOrderedMap; foreach (var k in _removeKeys) map = map.Remove(k); return map; } [Benchmark] - public PersistentMap Remove_TransientMap() + public PersistentOrderedMap Remove_TransientMap() { - var transient = _persistentMap.ToTransient(); + var transient = _persistentOrderedMap.ToTransient(); foreach (var k in _removeKeys) transient.Remove(k); return transient.ToPersistent(); } diff --git a/benchmarks/MyBenchMarks/StringBenchmarks.cs b/benchmarks/MyBenchMarks/StringBenchmarks.cs index 6f1dc30..f7caa42 100644 --- a/benchmarks/MyBenchMarks/StringBenchmarks.cs +++ b/benchmarks/MyBenchMarks/StringBenchmarks.cs @@ -4,7 +4,7 @@ using System.Collections.Immutable; using System.Linq; using BenchmarkDotNet.Attributes; using LanguageExt; -using PersistentMap; +using PersistentOrderedMap; using System.Runtime.CompilerServices; namespace MapBenchmarks; @@ -34,8 +34,8 @@ public class StringMapBenchmarks private LanguageExt.Map _extMap; private LanguageExt.HashMap _extHashMap; - private PersistentMap> _persistentMapStandard; - private PersistentMap _persistentMapUnicode; + private PersistentOrderedMap> _persistentOrderedMapStandard; + private PersistentOrderedMap _persistentOrderedMapUnicode; private readonly StandardStrategy2 _stdStrategy = new StandardStrategy2(new OrdinalComparer()); private readonly UnicodeStrategy _uniStrategy = new UnicodeStrategy(); @@ -84,8 +84,8 @@ public class StringMapBenchmarks transStd.Set(_allKeys[i], i); transUni.Set(_allKeys[i], i); } - _persistentMapStandard = transStd.ToPersistent(); - _persistentMapUnicode = transUni.ToPersistent(); + _persistentOrderedMapStandard = transStd.ToPersistent(); + _persistentOrderedMapUnicode = transUni.ToPersistent(); } private static string GenerateRandomString(int length, Random rnd) @@ -97,7 +97,7 @@ public class StringMapBenchmarks // --- 1. BUILD --- [Benchmark] - public PersistentMap> Build_TransientMap_Standard() + public PersistentOrderedMap> Build_TransientMap_Standard() { var map = BaseOrderedMap>.CreateTransient(_stdStrategy); for (int i = 0; i < _allKeys.Length; i++) map.Set(_allKeys[i], i); @@ -105,7 +105,7 @@ public class StringMapBenchmarks } [Benchmark] - public PersistentMap Build_TransientMap_Unicode() + public PersistentOrderedMap Build_TransientMap_Unicode() { var map = BaseOrderedMap.CreateTransient(_uniStrategy); for (int i = 0; i < _allKeys.Length; i++) map.Set(_allKeys[i], i); @@ -162,7 +162,7 @@ public class StringMapBenchmarks { int count = 0; foreach (var k in _retrieveKeys) - if (_persistentMapStandard.TryGetValue(k, out _)) count++; + if (_persistentOrderedMapStandard.TryGetValue(k, out _)) count++; return count; } @@ -171,7 +171,7 @@ public class StringMapBenchmarks { int count = 0; foreach (var k in _retrieveKeys) - if (_persistentMapUnicode.TryGetValue(k, out _)) count++; + if (_persistentOrderedMapUnicode.TryGetValue(k, out _)) count++; return count; } [Benchmark] @@ -213,32 +213,32 @@ public class StringMapBenchmarks } [Benchmark] - public PersistentMap> Update_PersistentMap_Standard() + public PersistentOrderedMap> Update_PersistentMap_Standard() { - var map = _persistentMapStandard; + var map = _persistentOrderedMapStandard; foreach (var k in _updateKeys) map = map.Set(k, 999); return map; } [Benchmark] - public PersistentMap Update_PersistentMap_Unicode() + public PersistentOrderedMap Update_PersistentMap_Unicode() { - var map = _persistentMapUnicode; + var map = _persistentOrderedMapUnicode; foreach (var k in _updateKeys) map = map.Set(k, 999); return map; } [Benchmark] - public PersistentMap> Update_TransientMap_Standard() + public PersistentOrderedMap> Update_TransientMap_Standard() { - var transient = _persistentMapStandard.ToTransient(); + var transient = _persistentOrderedMapStandard.ToTransient(); foreach (var k in _updateKeys) transient.Set(k, 999); return transient.ToPersistent(); } [Benchmark] - public PersistentMap Update_TransientMap_Unicode() + public PersistentOrderedMap Update_TransientMap_Unicode() { - var transient = _persistentMapUnicode.ToTransient(); + var transient = _persistentOrderedMapUnicode.ToTransient(); foreach (var k in _updateKeys) transient.Set(k, 999); return transient.ToPersistent(); } @@ -278,33 +278,33 @@ public class StringMapBenchmarks } [Benchmark] - public PersistentMap> UpdateSet_PersistentMap_Standard() + public PersistentOrderedMap> UpdateSet_PersistentMap_Standard() { - var map = _persistentMapStandard; + var map = _persistentOrderedMapStandard; foreach (var k in _mixedKeys) map = map.Set(k, 999); return map; } [Benchmark] - public PersistentMap UpdateSet_PersistentMap_Unicode() + public PersistentOrderedMap UpdateSet_PersistentMap_Unicode() { - var map = _persistentMapUnicode; + var map = _persistentOrderedMapUnicode; foreach (var k in _mixedKeys) map = map.Set(k, 999); return map; } [Benchmark] - public PersistentMap> UpdateSet_TransientMap_Standard() + public PersistentOrderedMap> UpdateSet_TransientMap_Standard() { - var transient = _persistentMapStandard.ToTransient(); + var transient = _persistentOrderedMapStandard.ToTransient(); foreach (var k in _mixedKeys) transient.Set(k, 999); return transient.ToPersistent(); } [Benchmark] - public PersistentMap UpdateSet_TransientMap_Unicode() + public PersistentOrderedMap UpdateSet_TransientMap_Unicode() { - var transient = _persistentMapUnicode.ToTransient(); + var transient = _persistentOrderedMapUnicode.ToTransient(); foreach (var k in _mixedKeys) transient.Set(k, 999); return transient.ToPersistent(); } @@ -347,7 +347,7 @@ public class StringMapBenchmarks public int Iterate_PersistentMap_Standard() { int sum = 0; - foreach (var kvp in _persistentMapStandard) sum += kvp.Value; + foreach (var kvp in _persistentOrderedMapStandard) sum += kvp.Value; return sum; } @@ -379,7 +379,7 @@ public class StringMapBenchmarks public int Iterate_PersistentMap_Unicode() { int sum = 0; - foreach (var kvp in _persistentMapUnicode) sum += kvp.Value; + foreach (var kvp in _persistentOrderedMapUnicode) sum += kvp.Value; return sum; } @@ -394,33 +394,33 @@ public class StringMapBenchmarks } [Benchmark] - public PersistentMap> Remove_PersistentMap_Standard() + public PersistentOrderedMap> Remove_PersistentMap_Standard() { - var map = _persistentMapStandard; + var map = _persistentOrderedMapStandard; foreach (var k in _removeKeys) map = map.Remove(k); return map; } [Benchmark] - public PersistentMap Remove_PersistentMap_Unicode() + public PersistentOrderedMap Remove_PersistentMap_Unicode() { - var map = _persistentMapUnicode; + var map = _persistentOrderedMapUnicode; foreach (var k in _removeKeys) map = map.Remove(k); return map; } [Benchmark] - public PersistentMap> Remove_TransientMap_Standard() + public PersistentOrderedMap> Remove_TransientMap_Standard() { - var transient = _persistentMapStandard.ToTransient(); + var transient = _persistentOrderedMapStandard.ToTransient(); foreach (var k in _removeKeys) transient.Remove(k); return transient.ToPersistent(); } [Benchmark] - public PersistentMap Remove_TransientMap_Unicode() + public PersistentOrderedMap Remove_TransientMap_Unicode() { - var transient = _persistentMapUnicode.ToTransient(); + var transient = _persistentOrderedMapUnicode.ToTransient(); foreach (var k in _removeKeys) transient.Remove(k); return transient.ToPersistent(); }