Skip to content

Commit d6f7feb

Browse files
author
Meyn
committed
Minor cleanup
1 parent afba4d2 commit d6f7feb

13 files changed

+64
-76
lines changed

Requests/Channel/ConcurrentPriorityQueue.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ public PriorityItem<TElement>[] ToArray()
248248
{
249249
lock (_lock)
250250
{
251-
if (_size == 0) return Array.Empty<PriorityItem<TElement>>();
251+
if (_size == 0) return [];
252252

253253
PriorityItem<TElement>[] result = new PriorityItem<TElement>[_size];
254254
Array.Copy(_nodes, 0, result, 0, _size);

Requests/Channel/DynamicPriorityChannel.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ private Task ParallelRun(Func<PriorityItem<TElement>, CancellationToken, ValueTa
7777
finally { throttler.Release(); }
7878
}).ContinueWith(task =>
7979
{
80-
Options.DegreeOfParallelismChangedDelta -= (object? sender, int delta) => OnParallelismChanged(delta, throttler);
80+
Options.DegreeOfParallelismChangedDelta -= (sender, delta) => OnParallelismChanged(delta, throttler);
8181
return task;
8282
}, default, TaskContinuationOptions.DenyChildAttach, TaskScheduler.Default)
8383
.Unwrap();
@@ -373,7 +373,7 @@ internal bool TryRemove(PriorityItem<TElement> item)
373373
/// Creates an array out of the actual members of this Channel
374374
/// </summary>
375375
/// <returns>An array of T</returns>
376-
public PriorityItem<TElement>[] ToArray() => _priorityQueue.ToArray();
376+
public PriorityItem<TElement>[] ToArray() => [.. _priorityQueue];
377377

378378
/// <summary>Gets the object used to synchronize access to all state on this instance.</summary>
379379
private object SyncObj => _priorityQueue;

Requests/ParallelRequestHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace Requests
1111
/// </summary>
1212
public class ParallelRequestHandler : IRequestHandler, IAsyncEnumerable<IRequest>
1313
{
14-
private readonly IPriorityChannel<IRequest> _requestsChannel;
14+
private readonly DynamicPriorityChannel<IRequest> _requestsChannel;
1515
private readonly RequestContainerStateMachine _stateMachine;
1616
private bool _disposed;
1717
private RequestPriority _priority;

Requests/ProgressableContainer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public ProgressableContainer() { }
3030
/// <returns>A new merged container.</returns>
3131
public static ProgressableContainer<TRequest> MergeContainers(params ProgressableContainer<TRequest>[] requestContainers)
3232
{
33-
ProgressableContainer<TRequest> container = new();
33+
ProgressableContainer<TRequest> container = [];
3434
Array.ForEach(requestContainers, requestContainer => container.AddRange([.. requestContainer]));
3535
return container;
3636
}

Requests/RequestContainer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,9 @@ public virtual TRequest this[int key]
121121
/// <returns>Returns a new <see cref="RequestContainer{TRequest}"/> instance.</returns>
122122
public static RequestContainer<TRequest> MergeContainers(params RequestContainer<TRequest>[] requestContainers)
123123
{
124-
RequestContainer<TRequest> newContainer = new();
124+
RequestContainer<TRequest> newContainer = [];
125125
foreach (RequestContainer<TRequest> container in requestContainers)
126-
newContainer.AddRange(container.ToArray());
126+
newContainer.AddRange([.. container]);
127127
return newContainer;
128128
}
129129

Requests/SequentialRequestHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ public bool TrySetIdle()
390390
if (State != RequestState.Paused)
391391
return false;
392392

393-
PriorityItem<IRequest>[] requests = _requestQueue.ToArray();
393+
PriorityItem<IRequest>[] requests = [.. _requestQueue];
394394

395395
foreach (PriorityItem<IRequest> priorityItem in requests)
396396
_ = priorityItem.Item.TrySetIdle();

UnitTest/ConcurrentPriorityQueueTests.cs

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -212,21 +212,21 @@ public void TryPeek_EmptyQueue_ShouldReturnFalseAndNull()
212212
public void PriorityOrdering_MultipleItems_ShouldMaintainCorrectOrder()
213213
{
214214
// Arrange
215-
PriorityItem<int>[] items = new[]
216-
{
215+
PriorityItem<int>[] items =
216+
[
217217
new PriorityItem<int>(5.0f, 5),
218218
new PriorityItem<int>(1.0f, 1),
219219
new PriorityItem<int>(3.0f, 3),
220220
new PriorityItem<int>(2.0f, 2),
221221
new PriorityItem<int>(4.0f, 4)
222-
};
222+
];
223223
ConcurrentPriorityQueue<int> queue = new();
224224

225225
// Act
226226
foreach (PriorityItem<int>? item in items)
227227
queue.Enqueue(item);
228228

229-
List<int> results = new();
229+
List<int> results = [];
230230
while (!queue.IsEmpty)
231231
results.Add(queue.Dequeue().Item);
232232

@@ -238,21 +238,21 @@ public void PriorityOrdering_MultipleItems_ShouldMaintainCorrectOrder()
238238
public void StablePriorityOrdering_SamePriorityItems_ShouldMaintainFIFOOrder()
239239
{
240240
// Arrange
241-
PriorityItem<string>[] items = new[]
242-
{
241+
PriorityItem<string>[] items =
242+
[
243243
new PriorityItem<string>(2.0f, "first"),
244244
new PriorityItem<string>(2.0f, "second"),
245245
new PriorityItem<string>(2.0f, "third"),
246246
new PriorityItem<string>(1.0f, "highest"),
247247
new PriorityItem<string>(2.0f, "fourth")
248-
};
248+
];
249249
ConcurrentPriorityQueue<string> queue = new();
250250

251251
// Act
252252
foreach (PriorityItem<string>? item in items)
253253
queue.Enqueue(item);
254254

255-
List<string> results = new();
255+
List<string> results = [];
256256
while (!queue.IsEmpty)
257257
results.Add(queue.Dequeue().Item);
258258

@@ -316,7 +316,7 @@ public void ConcurrentDequeue_MultipleThreads_ShouldRemoveAllItems()
316316
{
317317
// Arrange
318318
const int itemCount = 1000;
319-
ConcurrentBag<int> dequeueResults = new();
319+
ConcurrentBag<int> dequeueResults = [];
320320
ConcurrentPriorityQueue<int> queue = new();
321321

322322
for (int i = 0; i < itemCount; i++)
@@ -325,14 +325,14 @@ public void ConcurrentDequeue_MultipleThreads_ShouldRemoveAllItems()
325325
}
326326

327327
// Act
328-
Task[] tasks = Enumerable.Range(0, 10).Select(_ => Task.Run(() =>
328+
Task[] tasks = [.. Enumerable.Range(0, 10).Select(_ => Task.Run(() =>
329329
{
330330
while (queue.TryDequeue(out PriorityItem<int>? item))
331331
{
332332
dequeueResults.Add(item.Item);
333333
Thread.Sleep(1);
334334
}
335-
})).ToArray();
335+
}))];
336336

337337
Task.WaitAll(tasks);
338338

@@ -349,7 +349,7 @@ public void ConcurrentMixedOperations_MultipleThreads_ShouldMaintainConsistency(
349349
const int operationsPerThread = 50;
350350
ConcurrentPriorityQueue<int> queue = new();
351351
Task[] tasks = new Task[4];
352-
ConcurrentBag<Exception> exceptions = new();
352+
ConcurrentBag<Exception> exceptions = [];
353353
using CancellationTokenSource cts = new(TimeSpan.FromSeconds(10)); // 10 second timeout
354354

355355
// Act
@@ -458,9 +458,7 @@ public void Performance_ComparedToNaiveApproach_ShouldShowImprovement()
458458
{
459459
// Arrange
460460
const int itemCount = 5000;
461-
List<PriorityItem<int>> items = Enumerable.Range(0, itemCount)
462-
.Select(i => new PriorityItem<int>(Random.Shared.NextSingle() * 1000, i))
463-
.ToList();
461+
List<PriorityItem<int>> items = [.. Enumerable.Range(0, itemCount).Select(i => new PriorityItem<int>(Random.Shared.NextSingle() * 1000, i))];
464462

465463
// Test optimized queue
466464
ConcurrentPriorityQueue<int> optimizedQueue = new();
@@ -476,7 +474,7 @@ public void Performance_ComparedToNaiveApproach_ShouldShowImprovement()
476474
long optimizedTime = stopwatch.ElapsedMilliseconds;
477475

478476
// Test naive approach
479-
List<PriorityItem<int>> naiveList = new();
477+
List<PriorityItem<int>> naiveList = [];
480478
stopwatch.Restart();
481479

482480
foreach (PriorityItem<int>? item in items)
@@ -585,9 +583,7 @@ public void TryRemove_NullItem_ShouldThrowArgumentNullException()
585583
public void TryRemove_RootItem_ShouldMaintainHeapProperty()
586584
{
587585
// Arrange
588-
PriorityItem<int>[] items = Enumerable.Range(1, 10)
589-
.Select(i => new PriorityItem<int>(i, i))
590-
.ToArray();
586+
PriorityItem<int>[] items = [.. Enumerable.Range(1, 10).Select(i => new PriorityItem<int>(i, i))];
591587
ConcurrentPriorityQueue<int> queue = new();
592588

593589
foreach (PriorityItem<int>? item in items)
@@ -629,7 +625,7 @@ public void Clear_PopulatedQueue_ShouldRemoveAllItems()
629625
public void ToArray_PopulatedQueue_ShouldReturnSortedArray()
630626
{
631627
// Arrange
632-
float[] priorities = new[] { 5.0f, 1.0f, 3.0f, 2.0f, 4.0f };
628+
float[] priorities = [5.0f, 1.0f, 3.0f, 2.0f, 4.0f];
633629
ConcurrentPriorityQueue<int> queue = new();
634630

635631
for (int i = 0; i < priorities.Length; i++)
@@ -638,7 +634,7 @@ public void ToArray_PopulatedQueue_ShouldReturnSortedArray()
638634
}
639635

640636
// Act
641-
PriorityItem<int>[] array = queue.ToArray();
637+
PriorityItem<int>[] array = [.. queue];
642638

643639
// Assert
644640
array.Should().HaveCount(5);
@@ -653,7 +649,7 @@ public void ToArray_PopulatedQueue_ShouldReturnSortedArray()
653649
public void ToArray_EmptyQueue_ShouldReturnEmptyArray()
654650
{
655651
// Act
656-
PriorityItem<string>[] array = _queue.ToArray();
652+
PriorityItem<string>[] array = [.. _queue];
657653

658654
// Assert
659655
array.Should().BeEmpty();
@@ -690,18 +686,18 @@ public void IsValidQueue_AlwaysTrue_ForProperlyMaintainedHeap()
690686
public void GetEnumerator_PopulatedQueue_ShouldReturnAllItems()
691687
{
692688
// Arrange
693-
PriorityItem<string>[] items = new[]
694-
{
689+
PriorityItem<string>[] items =
690+
[
695691
new PriorityItem<string>(1.0f, "first"),
696692
new PriorityItem<string>(2.0f, "second"),
697693
new PriorityItem<string>(3.0f, "third")
698-
};
694+
];
699695

700696
foreach (PriorityItem<string>? item in items)
701697
_queue.Enqueue(item);
702698

703699
// Act
704-
List<PriorityItem<string>> enumeratedItems = _queue.ToList();
700+
List<PriorityItem<string>> enumeratedItems = [.. _queue];
705701

706702
// Assert
707703
enumeratedItems.Should().HaveCount(3);
@@ -715,7 +711,7 @@ public void GetEnumerator_PopulatedQueue_ShouldReturnAllItems()
715711
public void GetEnumerator_EmptyQueue_ShouldReturnNoItems()
716712
{
717713
// Act
718-
List<PriorityItem<string>> enumeratedItems = _queue.ToList();
714+
List<PriorityItem<string>> enumeratedItems = [.. _queue];
719715

720716
// Assert
721717
enumeratedItems.Should().BeEmpty();
@@ -732,7 +728,7 @@ public void GetEnumerator_ConcurrentModification_ShouldReflectLiveState()
732728
IEnumerator<PriorityItem<string>> enumerator = _queue.GetEnumerator();
733729
PriorityItem<string> item2 = new(2.0f, "test2");
734730
_queue.Enqueue(item2);
735-
List<PriorityItem<string>> items = new();
731+
List<PriorityItem<string>> items = [];
736732

737733
while (enumerator.MoveNext())
738734
{

UnitTest/ParallelRequestHandlerTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public class ParallelRequestHandlerTests
1111
[SetUp]
1212
public void SetUp()
1313
{
14-
_handler = new ParallelRequestHandler();
14+
_handler = [];
1515
}
1616

1717
[TearDown]

UnitTest/ProgressableContainerTests.cs

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class ProgressableContainerTests
1212
[SetUp]
1313
public void SetUp()
1414
{
15-
_container = new ProgressableContainer<MockProgressableRequest>();
15+
_container = [];
1616
}
1717

1818
[TearDown]
@@ -29,7 +29,7 @@ public void TearDown()
2929
/// </summary>
3030
private class MockProgressableRequest : IProgressableRequest
3131
{
32-
private TaskCompletionSource<bool> _tcs = new();
32+
private readonly TaskCompletionSource<bool> _tcs = new();
3333

3434
public Task Task => _tcs.Task;
3535
public RequestState State { get; private set; } = RequestState.Idle;
@@ -110,7 +110,7 @@ public void ReportProgress(float value)
110110
public void Constructor_Default_ShouldInitializeEmpty()
111111
{
112112
// Arrange & Act
113-
using ProgressableContainer<MockProgressableRequest> container = new();
113+
using ProgressableContainer<MockProgressableRequest> container = [];
114114

115115
// Assert
116116
container.Should().NotBeNull();
@@ -140,7 +140,7 @@ public void Constructor_WithMultipleRequests_ShouldAddAllRequests()
140140
MockProgressableRequest[] requests = [new(), new(), new()];
141141

142142
// Act
143-
using ProgressableContainer<MockProgressableRequest> container = new(requests);
143+
using ProgressableContainer<MockProgressableRequest> container = [.. requests];
144144

145145
// Assert
146146
container.Count.Should().Be(3);
@@ -459,7 +459,7 @@ public void TrySetIdle_NonIdleRequest_ShouldSetToIdle()
459459
_container.Add(request);
460460

461461
// Act
462-
bool result = _container.TrySetIdle();
462+
_ = _container.TrySetIdle();
463463

464464
// Assert
465465
request.State.Should().Be(RequestState.Idle);
@@ -518,8 +518,8 @@ public void MergeContainers_MultipleContainers_ShouldCombineAllRequests()
518518
public void MergeContainers_EmptyContainers_ShouldReturnEmpty()
519519
{
520520
// Arrange
521-
using ProgressableContainer<MockProgressableRequest> container1 = new();
522-
using ProgressableContainer<MockProgressableRequest> container2 = new();
521+
using ProgressableContainer<MockProgressableRequest> container1 = [];
522+
using ProgressableContainer<MockProgressableRequest> container2 = [];
523523

524524
// Act
525525
using ProgressableContainer<MockProgressableRequest> merged = ProgressableContainer<MockProgressableRequest>.MergeContainers(container1, container2);
@@ -533,7 +533,7 @@ public void MergeContainers_MixedEmptyAndNonEmpty_ShouldCombineNonEmpty()
533533
{
534534
// Arrange
535535
using ProgressableContainer<MockProgressableRequest> container1 = new(new MockProgressableRequest());
536-
using ProgressableContainer<MockProgressableRequest> container2 = new();
536+
using ProgressableContainer<MockProgressableRequest> container2 = [];
537537
using ProgressableContainer<MockProgressableRequest> container3 = new(new MockProgressableRequest());
538538

539539
// Act
@@ -555,7 +555,7 @@ public void GetEnumerator_WithRequests_ShouldEnumerateAll()
555555
_container.AddRange(requests);
556556

557557
// Act
558-
List<MockProgressableRequest> enumerated = _container.ToList();
558+
List<MockProgressableRequest> enumerated = [.. _container];
559559

560560
// Assert
561561
enumerated.Should().HaveCount(3);
@@ -566,7 +566,7 @@ public void GetEnumerator_WithRequests_ShouldEnumerateAll()
566566
public void GetEnumerator_Empty_ShouldEnumerateNone()
567567
{
568568
// Act
569-
List<MockProgressableRequest> enumerated = _container.ToList();
569+
List<MockProgressableRequest> enumerated = [.. _container];
570570

571571
// Assert
572572
enumerated.Should().BeEmpty();
@@ -684,9 +684,7 @@ public void Add_ManyRequests_ShouldHandleAllCorrectly()
684684
{
685685
// Arrange
686686
const int count = 100;
687-
MockProgressableRequest[] requests = Enumerable.Range(0, count)
688-
.Select(_ => new MockProgressableRequest())
689-
.ToArray();
687+
MockProgressableRequest[] requests = [.. Enumerable.Range(0, count).Select(_ => new MockProgressableRequest())];
690688

691689
// Act
692690
_container.AddRange(requests);
@@ -787,7 +785,7 @@ public void StressTest_MassiveScale_10KRequests()
787785
{
788786
// Arrange
789787
const int requestCount = 10000;
790-
using ProgressableContainer<MockProgressableRequest> largeContainer = new();
788+
using ProgressableContainer<MockProgressableRequest> largeContainer = [];
791789

792790
MockProgressableRequest[] requests = [.. Enumerable.Range(0, requestCount).Select(_ => new MockProgressableRequest())];
793791

0 commit comments

Comments
 (0)