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="client"></param> /// <returns></returns> internal static bool TestCase(AutoCSer.CacheServer.Client client) { #region 创建名称为 ValueDictionary 的字典缓存 ValueDictionary <int, int> dictionary = client.GetOrCreateDataStructure <ValueDictionary <int, int> >("ValueDictionary").Value; if (dictionary == null) { return(false); } #endregion return(TestCase(dictionary)); }
/// <summary> /// 数组测试 /// </summary> /// <param name="client"></param> /// <returns></returns> internal static bool TestCase(AutoCSer.CacheServer.Client client) { #region 创建名称为 Array 的数组缓存 Array <ValueDictionary <int, int> > array = client.GetOrCreateDataStructure <Array <ValueDictionary <int, int> > >("Array").Value; if (array == null) { return(false); } #endregion #region 创建或者获取子节点 ValueDictionary <int, int> dictionary = array.GetOrCreate(1).Value; if (dictionary == null) { return(false); } #endregion #region 判断第一个节点是否可用 AutoCSer.CacheServer.ReturnValue <bool> isNode = array.IsNode(1); if (!isNode.Value) { return(false); } #endregion if (!ValueDictionary.TestCase(dictionary)) { return(false); } #region 创建短路径 AutoCSer.CacheServer.ShortPath.Dictionary <int, int> shortPathDictionary = dictionary.CreateShortPath().Value; if (shortPathDictionary == null) { return(false); } #endregion if (!ValueDictionary.TestCase(shortPathDictionary)) { return(false); } #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="dictionary"></param> /// <returns></returns> internal static bool TestCase(ValueDictionary <int, int> dictionary) { #region dictionary[1] = 9; AutoCSer.CacheServer.ReturnValue <bool> isSet = dictionary.Set(1, 9); if (!isSet.Value) { return(false); } #endregion #region 判断关键字 1 是否存在 AutoCSer.CacheServer.ReturnValue <bool> isKey = dictionary.ContainsKey(1); if (!isKey.Value) { return(false); } #endregion #region 获取关键字为 1 的数据 AutoCSer.CacheServer.ReturnValue <int> value = dictionary.Get(1); if (value.Value != 9) { return(false); } #endregion #region 获取关键字为 1 的数字更新 AutoCSer.CacheServer.OperationUpdater.Integer <int> integer = dictionary.GetIntegerUpdater(1); #endregion #region 关键字为 1 的数据 ^2 value = integer ^ 2; if (value.Value != 11) { return(false); } #endregion #region 关键字为 1 的数据 &7 value = integer & 7; if (value.Value != 3) { return(false); } #endregion #region 关键字为 1 的数据 +3 value = integer.Number + 3; if (value.Value != 6) { return(false); } #endregion #region 获取关键字为 1 的数据 value = dictionary.Get(1); if (value.Value != 6) { 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); }