@@ -87,4 +87,73 @@ public void Test_ArrayPoolExtensions_Resize_Clear()
87
87
Assert . AreNotSame ( array , backup ) ;
88
88
Assert . IsTrue ( backup . AsSpan ( 0 , 16 ) . ToArray ( ) . All ( i => i == 0 ) ) ;
89
89
}
90
+
91
+ [ TestMethod ]
92
+ [ ExpectedException ( typeof ( ArgumentOutOfRangeException ) ) ]
93
+ public void Test_ArrayPoolExtensions_EnsureCapacity_InvalidCapacity ( )
94
+ {
95
+ int [ ] ? array = null ;
96
+
97
+ ArrayPool < int > . Shared . EnsureCapacity ( ref array , - 1 ) ;
98
+ }
99
+
100
+ [ TestMethod ]
101
+ public void Test_ArrayPoolExtensions_EnsureCapacity_IdenticalCapacity ( )
102
+ {
103
+ int [ ] ? array = ArrayPool < int > . Shared . Rent ( 10 ) ;
104
+ int [ ] ? backup = array ;
105
+
106
+ ArrayPool < int > . Shared . EnsureCapacity ( ref array , 10 ) ;
107
+ Assert . AreSame ( backup , array ) ;
108
+ Assert . IsTrue ( array . Length >= 10 ) ;
109
+ }
110
+
111
+ [ TestMethod ]
112
+ public void Test_ArrayPoolExtensions_EnsureCapacity_NewArray ( )
113
+ {
114
+ int [ ] ? array = null ;
115
+
116
+ ArrayPool < int > . Shared . EnsureCapacity ( ref array , 7 ) ;
117
+
118
+ Assert . IsNotNull ( array ) ;
119
+ Assert . IsTrue ( array . Length >= 7 ) ;
120
+ int [ ] ? backup = array ;
121
+
122
+ ArrayPool < int > . Shared . EnsureCapacity ( ref array , 64 ) ;
123
+
124
+ Assert . AreNotSame ( backup , array ) ;
125
+ Assert . IsTrue ( array . Length >= 64 ) ;
126
+ }
127
+
128
+ [ TestMethod ]
129
+ public void Test_ArrayPoolExtensions_EnsureCapacity_SufficientCapacity ( )
130
+ {
131
+ int [ ] ? array = ArrayPool < int > . Shared . Rent ( 16 ) ;
132
+ int [ ] ? backup = array ;
133
+
134
+ ArrayPool < int > . Shared . EnsureCapacity ( ref array , 8 ) ;
135
+ Assert . AreSame ( backup , array ) ;
136
+
137
+ ArrayPool < int > . Shared . EnsureCapacity ( ref array , 16 ) ;
138
+ Assert . AreSame ( backup , array ) ;
139
+
140
+ ArrayPool < int > . Shared . EnsureCapacity ( ref array , 0 ) ;
141
+ Assert . AreSame ( backup , array ) ;
142
+ }
143
+
144
+ [ TestMethod ]
145
+ public void Test_ArrayPoolExtensions_EnsureCapacity_ClearArray ( )
146
+ {
147
+ int [ ] ? array = ArrayPool < int > . Shared . Rent ( 16 ) ;
148
+ int [ ] ? backup = array ;
149
+
150
+ array . AsSpan ( ) . Fill ( 7 ) ;
151
+ Assert . IsTrue ( backup . All ( i => i == 7 ) ) ;
152
+
153
+ ArrayPool < int > . Shared . EnsureCapacity ( ref array , 256 , true ) ;
154
+
155
+ Assert . AreNotSame ( backup , array ) ;
156
+ Assert . IsTrue ( backup . All ( i => i == default ) ) ;
157
+ Assert . IsTrue ( array . Length >= 256 ) ;
158
+ }
90
159
}
0 commit comments