/// <summary> /// 数组测试 /// </summary> /// <param name="client"></param> /// <returns></returns> internal static bool TestCase(AutoCSer.CacheServer.Client client) { #region 创建名称为 ValueArray 的数组缓存 ValueArray <int> array = client.GetOrCreateDataStructure <ValueArray <int> >("ValueArray").Value; if (array == null) { return(false); } #endregion return(TestCase(array)); }
static unsafe void Main(string[] args) { #if DotNetStandard Console.WriteLine("WARN : Linux .NET Core not support name EventWaitHandle"); #else bool createdProcessWait; EventWaitHandle processWait = new EventWaitHandle(false, EventResetMode.ManualReset, "AutoCSer.TestCase.CacheServerPerformance", out createdProcessWait); if (createdProcessWait) { using (processWait) { #endif Console.WriteLine(@"http://www.AutoCSer.com/CacheServer/Index.html "); checkFileSize("test.amc"); checkFileSize("test.amcs"); using (AutoCSer.CacheServer.MasterServer.TcpInternalServer server = new AutoCSer.CacheServer.MasterServer.TcpInternalServer()) { if (server.IsListen) { using (AutoCSer.CacheServer.Client client = new AutoCSer.CacheServer.Client()) { Console.WriteLine(MesssageQueueConsumer.TestCase(client)); Console.WriteLine(MesssageQueueConsumers.TestCase(client)); Console.WriteLine(MesssageDistributor.TestCase(client)); Console.WriteLine(ValueArray.TestCase(client)); Console.WriteLine(ValueDictionary.TestCase(client)); Console.WriteLine(ValueSearchTreeDictionary.TestCase(client)); Console.WriteLine(Heap.TestCase(client)); Console.WriteLine(HashSet.TestCase(client)); Console.WriteLine(Link.TestCase(client)); Console.WriteLine(Bitmap.TestCase(client)); Console.WriteLine(Array.TestCase(client)); Console.WriteLine(Dictionary.TestCase(client)); Console.WriteLine(SearchTreeDictionary.TestCase(client)); Console.WriteLine("Over"); Console.ReadKey(); } } else { Console.WriteLine("缓存服务启动失败"); Console.ReadKey(); } } #if !DotNetStandard } } #endif }
/// <summary> /// 数组测试 /// </summary> /// <param name="array"></param> /// <returns></returns> internal static bool TestCase(ValueArray <int> array) { #region array[1] = 9; AutoCSer.CacheServer.ReturnValue <bool> isSet = array.Set(1, 9); if (!isSet.Value) { return(false); } #endregion #region 获取索引为 1 的数据 AutoCSer.CacheServer.ReturnValue <int> value = array.Get(1); if (value.Value != 9) { return(false); } #endregion #region 获取索引为 1 的数字更新 AutoCSer.CacheServer.OperationUpdater.Number <int> number1 = array.GetNumberUpdater(1); #endregion #region 索引为 1 的数据 +2 value = number1 + 2; if (value.Value != 11) { return(false); } #endregion #region 索引为 1 的数据 -5 value = number1 - 5; if (value.Value != 6) { return(false); } #endregion #region 获取索引为 1 的数据 value = array.Get(1); if (value.Value != 6) { return(false); } #endregion #region 如果索引为 1 的数据小于 10 则 +5 value = number1.Add(5, number1 < 10); if (value.Value != 11) { return(false); } #endregion #region 如果索引为 1 的数据小于 10 则 +5 value = number1.Add(5, number1 < 10); if (value.Value != 11) { return(false); } #endregion #region 获取索引为 1 的数据 value = array.Get(1); if (value.Value != 11) { return(false); } #endregion #region 获取数组已使用长度 AutoCSer.CacheServer.ReturnValue <int> count = array.Count; if (count.Value != 2) { return(false); } #endregion #region 清除所有数据 AutoCSer.CacheServer.ReturnValue <bool> isClear = array.Clear(); if (!isClear.Value) { return(false); } count = array.Count; if (count.Type != AutoCSer.CacheServer.ReturnType.Success || count.Value != 0) { return(false); } #endregion return(true); }
/// <summary> /// 搜索树字典测试 /// </summary> /// <param name="client"></param> /// <returns></returns> internal static bool TestCase(AutoCSer.CacheServer.Client client) { #region 创建名称为 SearchTreeDictionary 的搜索树字典缓存 SearchTreeDictionary <int, ValueArray <int> > dictionary = client.GetOrCreateDataStructure <SearchTreeDictionary <int, ValueArray <int> > >("SearchTreeDictionary").Value; if (dictionary == null) { return(false); } #endregion #region 创建或者获取关键字为 1 的子节点 ValueArray <int> array = dictionary.GetOrCreate(1).Value; if (array == null) { return(false); } #endregion if (!ValueArray.TestCase(array)) { return(false); } #region 创建短路径 AutoCSer.CacheServer.ShortPath.Array <int> shortPathArray = array.CreateShortPath().Value; if (shortPathArray == null) { return(false); } #endregion if (!ValueArray.TestCase(shortPathArray)) { return(false); } #region 判断关键字 1 是否存在 AutoCSer.CacheServer.ReturnValue <bool> isKey = dictionary.ContainsKey(1); if (!isKey.Value) { return(false); } #endregion #region 获取字典数据数量 AutoCSer.CacheServer.ReturnValue <int> count = dictionary.Count; if (count.Value != 1) { return(false); } #endregion #region 除关键字为 1 的数据 AutoCSer.CacheServer.ReturnValue <bool> isRemove = dictionary.Remove(1); if (!isRemove.Value) { return(false); } count = dictionary.Count; if (count.Type != AutoCSer.CacheServer.ReturnType.Success || count.Value != 0) { return(false); } #endregion return(true); }