@@ -127,3 +127,253 @@ func TestUnReserveResource(t *testing.T) {
127
127
})
128
128
}
129
129
}
130
+
131
+ func TestUsedOverMinWith (t * testing.T ) {
132
+ tests := []struct {
133
+ before * ElasticQuotaInfo
134
+ name string
135
+ podRequest * framework.Resource
136
+ expected bool
137
+ }{
138
+ {
139
+ before : & ElasticQuotaInfo {
140
+ Namespace : "ns1" ,
141
+ Used : & framework.Resource {
142
+ MilliCPU : 4000 ,
143
+ Memory : 200 ,
144
+ ScalarResources : map [v1.ResourceName ]int64 {
145
+ ResourceGPU : 5 ,
146
+ },
147
+ },
148
+ Min : & framework.Resource {
149
+ MilliCPU : 3000 ,
150
+ Memory : 100 ,
151
+ ScalarResources : map [v1.ResourceName ]int64 {
152
+ ResourceGPU : 5 ,
153
+ },
154
+ },
155
+ },
156
+ name : "ElasticQuotaInfo OverMinWith Sum Of PodRequest And Used Is Bigger Than Min" ,
157
+ podRequest : & framework.Resource {
158
+ MilliCPU : 1500 ,
159
+ Memory : 100 ,
160
+ },
161
+ expected : true ,
162
+ },
163
+ {
164
+ before : & ElasticQuotaInfo {
165
+ Namespace : "ns1" ,
166
+ Used : & framework.Resource {
167
+ MilliCPU : 300 ,
168
+ Memory : 100 ,
169
+ ScalarResources : map [v1.ResourceName ]int64 {
170
+ ResourceGPU : 5 ,
171
+ },
172
+ },
173
+ Min : & framework.Resource {
174
+ MilliCPU : 4000 ,
175
+ Memory : 200 ,
176
+ ScalarResources : map [v1.ResourceName ]int64 {
177
+ ResourceGPU : 5 ,
178
+ },
179
+ },
180
+ },
181
+ name : "ElasticQuotaInfo OverMinWith Sum Of PodRequest And Used Is Not Bigger Than Min" ,
182
+ podRequest : & framework.Resource {
183
+ MilliCPU : 100 ,
184
+ Memory : 50 ,
185
+ },
186
+ expected : false ,
187
+ },
188
+ {
189
+ before : & ElasticQuotaInfo {
190
+ Namespace : "ns1" ,
191
+ Used : & framework.Resource {
192
+ MilliCPU : 3900 ,
193
+ Memory : 100 ,
194
+ ScalarResources : map [v1.ResourceName ]int64 {
195
+ ResourceGPU : 5 ,
196
+ },
197
+ },
198
+ },
199
+ name : "ElasticQuotaInfo OverMinWith ElasticQuotaInfo Doesn't Have Max" ,
200
+ podRequest : & framework.Resource {
201
+ MilliCPU : 100 ,
202
+ Memory : 100 ,
203
+ },
204
+ expected : true ,
205
+ },
206
+ }
207
+ for _ , tt := range tests {
208
+ t .Run (tt .name , func (t * testing.T ) {
209
+ elasticQuotaInfo := tt .before
210
+ podRequest := tt .podRequest
211
+ actual := elasticQuotaInfo .usedOverMinWith (podRequest )
212
+ if actual != tt .expected {
213
+ t .Errorf ("expected %v, got %v" , tt .expected , actual )
214
+ }
215
+ })
216
+ }
217
+ }
218
+
219
+ func TestUsedOverMaxWith (t * testing.T ) {
220
+ tests := []struct {
221
+ before * ElasticQuotaInfo
222
+ name string
223
+ podRequest * framework.Resource
224
+ expected bool
225
+ }{
226
+ {
227
+ before : & ElasticQuotaInfo {
228
+ Namespace : "ns1" ,
229
+ Used : & framework.Resource {
230
+ MilliCPU : 4000 ,
231
+ Memory : 200 ,
232
+ ScalarResources : map [v1.ResourceName ]int64 {
233
+ ResourceGPU : 5 ,
234
+ },
235
+ },
236
+ Max : & framework.Resource {
237
+ MilliCPU : 4000 ,
238
+ Memory : 200 ,
239
+ ScalarResources : map [v1.ResourceName ]int64 {
240
+ ResourceGPU : 5 ,
241
+ },
242
+ },
243
+ },
244
+ name : "ElasticQuotaInfo OverMaxWith Sum Of PodRequest And Used Is Bigger Than Max" ,
245
+ podRequest : & framework.Resource {
246
+ MilliCPU : 100 ,
247
+ Memory : 100 ,
248
+ },
249
+ expected : true ,
250
+ },
251
+ {
252
+ before : & ElasticQuotaInfo {
253
+ Namespace : "ns1" ,
254
+ Used : & framework.Resource {
255
+ MilliCPU : 3900 ,
256
+ Memory : 100 ,
257
+ ScalarResources : map [v1.ResourceName ]int64 {
258
+ ResourceGPU : 5 ,
259
+ },
260
+ },
261
+ Max : & framework.Resource {
262
+ MilliCPU : 4000 ,
263
+ Memory : 200 ,
264
+ ScalarResources : map [v1.ResourceName ]int64 {
265
+ ResourceGPU : 5 ,
266
+ },
267
+ },
268
+ },
269
+ name : "ElasticQuotaInfo OverMaxWith Sum Of PodRequest And Used Is Not Bigger Than Max" ,
270
+ podRequest : & framework.Resource {
271
+ MilliCPU : 100 ,
272
+ Memory : 100 ,
273
+ },
274
+ expected : false ,
275
+ },
276
+ {
277
+ before : & ElasticQuotaInfo {
278
+ Namespace : "ns1" ,
279
+ Used : & framework.Resource {
280
+ MilliCPU : 3900 ,
281
+ Memory : 100 ,
282
+ ScalarResources : map [v1.ResourceName ]int64 {
283
+ ResourceGPU : 5 ,
284
+ },
285
+ },
286
+ },
287
+ name : "ElasticQuotaInfo OverMaxWith ElasticQuotaInfo Doesn't Have Max" ,
288
+ podRequest : & framework.Resource {
289
+ MilliCPU : 100 ,
290
+ Memory : 100 ,
291
+ },
292
+ expected : false ,
293
+ },
294
+ }
295
+ for _ , tt := range tests {
296
+ t .Run (tt .name , func (t * testing.T ) {
297
+ elasticQuotaInfo := tt .before
298
+ podRequest := tt .podRequest
299
+ actual := elasticQuotaInfo .usedOverMaxWith (podRequest )
300
+ if actual != tt .expected {
301
+ t .Errorf ("expected %v, got %v" , tt .expected , actual )
302
+ }
303
+ })
304
+ }
305
+ }
306
+
307
+ func TestUsedOverMin (t * testing.T ) {
308
+ tests := []struct {
309
+ before * ElasticQuotaInfo
310
+ name string
311
+ expected bool
312
+ }{
313
+ {
314
+ before : & ElasticQuotaInfo {
315
+ Namespace : "ns1" ,
316
+ Used : & framework.Resource {
317
+ MilliCPU : 4000 ,
318
+ Memory : 200 ,
319
+ ScalarResources : map [v1.ResourceName ]int64 {
320
+ ResourceGPU : 5 ,
321
+ },
322
+ },
323
+ Min : & framework.Resource {
324
+ MilliCPU : 3000 ,
325
+ Memory : 300 ,
326
+ ScalarResources : map [v1.ResourceName ]int64 {
327
+ ResourceGPU : 5 ,
328
+ },
329
+ },
330
+ },
331
+ name : "ElasticQuotaInfo OverMin Used Is Bigger Than Min" ,
332
+ expected : true ,
333
+ },
334
+ {
335
+ before : & ElasticQuotaInfo {
336
+ Namespace : "ns1" ,
337
+ Used : & framework.Resource {
338
+ MilliCPU : 300 ,
339
+ Memory : 100 ,
340
+ ScalarResources : map [v1.ResourceName ]int64 {
341
+ ResourceGPU : 5 ,
342
+ },
343
+ },
344
+ Min : & framework.Resource {
345
+ MilliCPU : 4000 ,
346
+ Memory : 200 ,
347
+ ScalarResources : map [v1.ResourceName ]int64 {
348
+ ResourceGPU : 5 ,
349
+ },
350
+ },
351
+ },
352
+ name : "ElasticQuotaInfo OverMin Used Is Not Bigger Than Min" ,
353
+ expected : false ,
354
+ },
355
+ {
356
+ before : & ElasticQuotaInfo {
357
+ Namespace : "ns1" ,
358
+ Used : & framework.Resource {
359
+ MilliCPU : 3900 ,
360
+ Memory : 100 ,
361
+ ScalarResources : map [v1.ResourceName ]int64 {
362
+ ResourceGPU : 5 ,
363
+ },
364
+ },
365
+ },
366
+ name : "ElasticQuotaInfo OverMin ElasticQuotaInfo Doesn't Have Min" ,
367
+ expected : true ,
368
+ },
369
+ }
370
+ for _ , tt := range tests {
371
+ t .Run (tt .name , func (t * testing.T ) {
372
+ elasticQuotaInfo := tt .before
373
+ actual := elasticQuotaInfo .usedOverMin ()
374
+ if actual != tt .expected {
375
+ t .Errorf ("expected %v, got %v" , tt .expected , actual )
376
+ }
377
+ })
378
+ }
379
+ }
0 commit comments