diff --git a/README.md b/README.md
index c29d549..0ffd83b 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@
**使用Nuget安装**
```PM
-Install-Package CatLib.Core -Version 1.2.6
+Install-Package CatLib.Core -Version 1.2.7
```
**直接下载发布版本**
diff --git a/src/CatLib.Core.NetStandard/CatLib.Core.NetStandard.csproj b/src/CatLib.Core.NetStandard/CatLib.Core.NetStandard.csproj
index cf208fd..e622e81 100644
--- a/src/CatLib.Core.NetStandard/CatLib.Core.NetStandard.csproj
+++ b/src/CatLib.Core.NetStandard/CatLib.Core.NetStandard.csproj
@@ -100,6 +100,7 @@
+
@@ -115,8 +116,6 @@
-
-
diff --git a/src/CatLib.Core.Tests/CatLib.Core.Tests.csproj b/src/CatLib.Core.Tests/CatLib.Core.Tests.csproj
index fa20fec..e13b715 100644
--- a/src/CatLib.Core.Tests/CatLib.Core.Tests.csproj
+++ b/src/CatLib.Core.Tests/CatLib.Core.Tests.csproj
@@ -56,7 +56,6 @@
-
diff --git a/src/CatLib.Core.Tests/Properties/AssemblyInfo.cs b/src/CatLib.Core.Tests/Properties/AssemblyInfo.cs
index 0e93c29..cb1810d 100644
--- a/src/CatLib.Core.Tests/Properties/AssemblyInfo.cs
+++ b/src/CatLib.Core.Tests/Properties/AssemblyInfo.cs
@@ -25,5 +25,5 @@
[assembly: Guid("3c9f4024-910c-4881-a04d-34a6c3a09019")]
-[assembly: AssemblyVersion("1.2.6.0")]
-[assembly: AssemblyFileVersion("1.2.6.0")]
+[assembly: AssemblyVersion("1.2.7.0")]
+[assembly: AssemblyFileVersion("1.2.7.0")]
diff --git a/src/CatLib.Core.Tests/Support/SortSet/SortSetTests.cs b/src/CatLib.Core.Tests/Support/SortSet/SortSetTests.cs
index 0857f00..8b33683 100644
--- a/src/CatLib.Core.Tests/Support/SortSet/SortSetTests.cs
+++ b/src/CatLib.Core.Tests/Support/SortSet/SortSetTests.cs
@@ -9,10 +9,9 @@
* Document: http://catlib.io/
*/
+using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
-using System.Reflection;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace CatLib.Tests.Stl
{
@@ -30,6 +29,56 @@ public int Compare(int x, int y)
}
}
+ [TestMethod]
+ public void TestRandValue()
+ {
+ var sortSets = new SortSet();
+ var random = new Random();
+
+ for (var i = 1000; i >= 1; i--)
+ {
+ sortSets.Add(i, random.Next(0, 1000));
+ }
+
+ for (var i = 1; i <= 1000; i++)
+ {
+ if (sortSets.Remove(i))
+ {
+ continue;
+ }
+
+ Assert.Fail("can not remove i : " + i);
+ }
+
+ Assert.AreEqual(0, sortSets.Count);
+ foreach (var sortSet in sortSets)
+ {
+ Assert.Fail();
+ }
+ }
+
+ [TestMethod]
+ public void TestRank()
+ {
+ var sortSets = new SortSet();
+
+ sortSets.Add(1000, 85);
+ sortSets.Add(999, 75);
+ sortSets.Add(998, 185);
+ sortSets.Add(997, 85);
+ sortSets.Add(996, 185);
+ sortSets.Add(995, 85);
+
+ Assert.AreEqual(1, sortSets.GetRank(995));
+ Assert.AreEqual(995, sortSets.GetElementByRank(1));
+ Assert.AreEqual(997, sortSets.GetElementByRank(2));
+ Assert.AreEqual(1000, sortSets.GetElementByRank(3));
+ Assert.AreEqual(996, sortSets.GetElementByRank(4));
+ Assert.AreEqual(998, sortSets.GetElementByRank(5));
+
+ Assert.AreEqual(3, sortSets.GetRangeCount(80, 90));
+ }
+
[TestMethod]
public void TestCustomComparer()
{
diff --git a/src/CatLib.Core.Tests/Support/Util/ReferenceCountTests.cs b/src/CatLib.Core.Tests/Support/Util/ReferenceCountTests.cs
deleted file mode 100644
index 07bdd8f..0000000
--- a/src/CatLib.Core.Tests/Support/Util/ReferenceCountTests.cs
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * This file is part of the CatLib package.
- *
- * (c) Yu Bin
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * Document: http://catlib.io/
- */
-
-using System;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-
-namespace CatLib.Tests.Support.Util
-{
- [TestClass]
- public class ReferenceCountTests
- {
- public class TestReferenceClass : IDisposable
- {
- ///
- /// 回调
- ///
- private Action callback;
-
- public TestReferenceClass(Action callback)
- {
- this.callback = callback;
- }
-
- ///
- /// 释放
- ///
- public void Dispose()
- {
- callback.Invoke();
- }
- }
-
- public class TestInherit : ReferenceCount ,IDisposable
- {
- internal bool IsReleaseCall;
-
- internal bool IsRetainCall;
-
- internal bool IsDispose;
-
- public override void Release()
- {
- IsReleaseCall = true;
- base.Release();
- }
-
- public override void Retain()
- {
- IsRetainCall = true;
- base.Retain();
- }
-
- public void Dispose()
- {
- IsDispose = true;
- }
- }
-
- [TestMethod]
- public void SimpleReferenceCountTest()
- {
- var isCall = false;
-
- var cls = new TestReferenceClass(() =>
- {
- isCall = true;
- });
-
- var rc = new ReferenceCount(cls);
- rc.Retain();
- Assert.AreEqual(1, rc.RefCount);
- rc.Release();
-
- Assert.AreEqual(true, isCall);
-
- ExceptionAssert.Throws(() =>
- {
- rc.Release();
- });
-
- ExceptionAssert.Throws(() =>
- {
- rc.Retain();
- });
- }
-
- [TestMethod]
- public void TestInheritReferenceCount()
- {
- var cls = new TestInherit();
-
- cls.Retain();
- Assert.AreEqual(1, cls.RefCount);
- cls.Release();
-
- Assert.AreEqual(true, cls.IsReleaseCall);
- Assert.AreEqual(true, cls.IsRetainCall);
- Assert.AreEqual(true, cls.IsDispose);
-
- ExceptionAssert.Throws(() =>
- {
- cls.Release();
- });
-
- ExceptionAssert.Throws(() =>
- {
- cls.Retain();
- });
- }
- }
-}
diff --git a/src/CatLib.Core/CatLib.Core.csproj b/src/CatLib.Core/CatLib.Core.csproj
index 7b3f85f..2fb2a97 100644
--- a/src/CatLib.Core/CatLib.Core.csproj
+++ b/src/CatLib.Core/CatLib.Core.csproj
@@ -83,6 +83,7 @@
+
@@ -98,8 +99,6 @@
-
-
diff --git a/src/CatLib.Core/CatLib/Application.cs b/src/CatLib.Core/CatLib/Application.cs
index 41221e9..58e38e9 100644
--- a/src/CatLib.Core/CatLib/Application.cs
+++ b/src/CatLib.Core/CatLib/Application.cs
@@ -11,7 +11,6 @@
using System;
using System.Collections.Generic;
-using System.Reflection;
using System.Threading;
namespace CatLib
diff --git a/src/CatLib.Core/Properties/AssemblyInfo.cs b/src/CatLib.Core/Properties/AssemblyInfo.cs
index 3d1fa3e..604d6bc 100644
--- a/src/CatLib.Core/Properties/AssemblyInfo.cs
+++ b/src/CatLib.Core/Properties/AssemblyInfo.cs
@@ -26,8 +26,8 @@
[assembly: Guid("4204658e-81fd-4106-a347-890cd369c8a4")]
-[assembly: AssemblyVersion("1.2.6.0")]
-[assembly: AssemblyFileVersion("1.2.6.0")]
+[assembly: AssemblyVersion("1.2.7.0")]
+[assembly: AssemblyFileVersion("1.2.7.0")]
[assembly: InternalsVisibleTo("Assembly-CSharp-Editor"),
InternalsVisibleTo("Assembly-CSharp-Editor-firstpass"),
diff --git a/src/CatLib.Core/Support/Container/BindDataExtend.cs b/src/CatLib.Core/Support/Container/BindDataExtend.cs
index 5ea0efc..c121d3f 100644
--- a/src/CatLib.Core/Support/Container/BindDataExtend.cs
+++ b/src/CatLib.Core/Support/Container/BindDataExtend.cs
@@ -34,6 +34,22 @@ public static IBindData OnResolving(this IBindData bindData, Action