99 * Document: http://catlib.io/
1010 */
1111
12+ using Microsoft . VisualStudio . TestTools . UnitTesting ;
1213using System ;
1314using System . Collections . Generic ;
14- using System . Reflection ;
15- using Microsoft . VisualStudio . TestTools . UnitTesting ;
1615
1716namespace CatLib . Tests . Stl
1817{
@@ -30,6 +29,56 @@ public int Compare(int x, int y)
3029 }
3130 }
3231
32+ [ TestMethod ]
33+ public void TestRandValue ( )
34+ {
35+ var sortSets = new SortSet < int , int > ( ) ;
36+ var random = new Random ( ) ;
37+
38+ for ( var i = 1000 ; i >= 1 ; i -- )
39+ {
40+ sortSets . Add ( i , random . Next ( 0 , 1000 ) ) ;
41+ }
42+
43+ for ( var i = 1 ; i <= 1000 ; i ++ )
44+ {
45+ if ( sortSets . Remove ( i ) )
46+ {
47+ continue ;
48+ }
49+
50+ Assert . Fail ( "can not remove i : " + i ) ;
51+ }
52+
53+ Assert . AreEqual ( 0 , sortSets . Count ) ;
54+ foreach ( var sortSet in sortSets )
55+ {
56+ Assert . Fail ( ) ;
57+ }
58+ }
59+
60+ [ TestMethod ]
61+ public void TestRank ( )
62+ {
63+ var sortSets = new SortSet < int , int > ( ) ;
64+
65+ sortSets . Add ( 1000 , 85 ) ;
66+ sortSets . Add ( 999 , 75 ) ;
67+ sortSets . Add ( 998 , 185 ) ;
68+ sortSets . Add ( 997 , 85 ) ;
69+ sortSets . Add ( 996 , 185 ) ;
70+ sortSets . Add ( 995 , 85 ) ;
71+
72+ Assert . AreEqual ( 1 , sortSets . GetRank ( 995 ) ) ;
73+ Assert . AreEqual ( 995 , sortSets . GetElementByRank ( 1 ) ) ;
74+ Assert . AreEqual ( 997 , sortSets . GetElementByRank ( 2 ) ) ;
75+ Assert . AreEqual ( 1000 , sortSets . GetElementByRank ( 3 ) ) ;
76+ Assert . AreEqual ( 996 , sortSets . GetElementByRank ( 4 ) ) ;
77+ Assert . AreEqual ( 998 , sortSets . GetElementByRank ( 5 ) ) ;
78+
79+ Assert . AreEqual ( 3 , sortSets . GetRangeCount ( 80 , 90 ) ) ;
80+ }
81+
3382 [ TestMethod ]
3483 public void TestCustomComparer ( )
3584 {
0 commit comments