Skip to content

Heap Sort: .NET 10, copy-per-call benchmark, stronger tests - #2376

Open
vladimir-pecanac-main wants to merge 1 commit into
CodeMazeBlog:mainfrom
vladimir-pecanac-main:seo/73583-csharp-heap-sort
Open

vladimir-pecanac-main wants to merge 1 commit into
CodeMazeBlog:mainfrom
vladimir-pecanac-main:seo/73583-csharp-heap-sort

Conversation

@vladimir-pecanac-main

Copy link
Copy Markdown
Collaborator

Moves csharp-algorithms/HeapSort to net10.0 with BenchmarkDotNet 0.15.8, MSTest 4.5.2, Microsoft.NET.Test.Sdk 18.11.0 and coverlet.collector 10.1.0. The benchmark now lives in its own HeapSortBenchmarks class that copies the generated input into a work array on every call, because the old benchmark sorted its argument array in place and every call after the first measured an already sorted array. SortArray takes (array, size) as the article prints it, Program.cs passes args to BenchmarkRunner, and the tests use (expected, actual) order and cover the article's example, empty, sorted, identical and random input checked against Array.Sort.

Move both projects to net10.0 with BenchmarkDotNet 0.15.8, MSTest 4.5.2,
Microsoft.NET.Test.Sdk 18.11.0 and coverlet.collector 10.1.0. The benchmark
moves into HeapSortBenchmarks, which copies the generated input into a work
array on every call, so the random case no longer sorts an already sorted
array after the first call. SortArray takes (array, size) as the article
prints it. Tests use (expected, actual) order and cover the article example,
empty, sorted, identical and random input checked against Array.Sort.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant