/// <summary> /// 链表测试(短路径) /// </summary> /// <param name="link"></param> /// <returns></returns> internal static bool TestCase(AutoCSer.CacheServer.ShortPath.Link <int> link) { #region 链表尾部追加数据 3,链表结果为 3 AutoCSer.CacheServer.ReturnValue <bool> isSet = link.Append(3); if (!isSet.Value) { return(false); } #endregion #region 在第 1 个元素之前插入数据 1,链表结果为 1 -> 3 isSet = link.InsertBefore(0, 1); if (!isSet.Value) { return(false); } #endregion #region 在倒数第 1 个元素之前插入数据 1,链表结果为 1 -> 2 -> 3 isSet = link.InsertBefore(-1, 2); if (!isSet.Value) { return(false); } #endregion #region 在倒数第 1 个元素之后插入数据 5,链表结果为 1 -> 2 -> 3 -> 5 isSet = link.InsertAfter(-1, 5); if (!isSet.Value) { return(false); } #endregion #region 在第 3 个元素之后插入数据 4,链表结果为 1 -> 2 -> 3 -> 4 -> 5 isSet = link.InsertAfter(2, 4); if (!isSet.Value) { return(false); } #endregion #region 获取链表长度 AutoCSer.CacheServer.ReturnValue <int> count = link.Count; if (count.Value != 5) { return(false); } #endregion #region 获取第 3 个数据 AutoCSer.CacheServer.ReturnValue <int> value = link.Get(2); if (value.Value != 3) { return(false); } #endregion #region 获取倒数第 2 个数据 value = link.Get(-2); if (value.Value != 4) { return(false); } #endregion #region 弹出第一个数据,链表结果为 2 -> 3 -> 4 -> 5 value = link.Dequeue(); if (value.Value != 1) { return(false); } #endregion #region 弹出最后一个数据,链表结果为 2 -> 3 -> 4 value = link.StackPop(); if (value.Value != 5) { return(false); } #endregion #region 获取并删除第 2 个数据,链表结果为 2 -> 4 value = link.GetRemove(1); if (value.Value != 3) { return(false); } #endregion #region 除倒数第 2 个数据,链表结果为 4 AutoCSer.CacheServer.ReturnValue <bool> isRemove = link.Remove(-2); if (!isRemove.Value) { return(false); } #endregion count = link.Count; if (count.Value != 1) { return(false); } isRemove = link.Clear(); if (!isRemove.Value) { return(false); } count = link.Count; if (count.Type != AutoCSer.CacheServer.ReturnType.Success || count.Value != 0) { return(false); } return(true); }
/// <summary> /// 字典测试 /// </summary> /// <param name="client"></param> /// <returns></returns> internal static bool TestCase(AutoCSer.CacheServer.Client client) { #region 创建名称为 Dictionary 的字典缓存 Dictionary <int, Link <int> > dictionary = client.GetOrCreateDataStructure <Dictionary <int, Link <int> > >("Dictionary").Value; if (dictionary == null) { return(false); } #endregion #region 创建或者获取关键字为 1 的子节点 Link <int> link = dictionary.GetOrCreate(1).Value; if (link == null) { return(false); } #endregion #region 判断是否存在关键字为 1 的子节点 AutoCSer.CacheServer.ReturnValue <bool> isNode = dictionary.ContainsKey(1); if (!isNode.Value) { return(false); } #endregion if (!Link.TestCase(link)) { return(false); } #region 创建短路径 AutoCSer.CacheServer.ShortPath.Link <int> shortPathLink = link.CreateShortPath().Value; if (shortPathLink == null) { return(false); } #endregion if (!Link.TestCase(shortPathLink)) { return(false); } #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); }