namespace PersistentMap.Tests; using PersistentMap; using System.Linq; using Xunit; public class StandardStrategy { private static string GenerateRandomString(int length, Random rnd) { const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; return new string(Enumerable.Repeat(chars, length).Select(s => s[rnd.Next(s.Length)]).ToArray()); } [Fact] public void Setup() { var N = 1000; var _stdStrategy = new StandardStrategy(); var _uniStrategy = new UnicodeStrategy(); var rnd = new Random(42); var StringLength = 10; // Build random strings var _allKeys = Enumerable.Range(0, N).Select(_ => GenerateRandomString(StringLength, rnd)).Distinct().ToArray(); // Regenerate if Distinct() reduced array size (highly unlikely with length 8/50, but safe) while (_allKeys.Length < N) { _allKeys = _allKeys.Concat(new[] { GenerateRandomString(StringLength, rnd) }).Distinct().ToArray(); } var transStd = BaseOrderedMap>.CreateTransient(_stdStrategy); var transUni = BaseOrderedMap.CreateTransient(_uniStrategy); for (int i = 0; i < _allKeys.Length; i++) { transStd.Set(_allKeys[i], i); transUni.Set(_allKeys[i], i); } } }