namespace PersistentMap.Tests; using PersistentOrderedMap; 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); } } }