* Tons of API doc updates
* Adjust timeout
* Code cleanuyp
* Disabled All_Scenarios_Benchmark
* Removed logs
* Fixed a bunch of warnings
* Fixed a bunch of warnings2
* Disabled All_Scenarios_Benchmark again...just to make sure
* Enabled All_Scenarios_Benchmark again...It is not the culprit
* Tons of API doc updates
* Removed stale test
* Removed stale tests
* Fixed Skipped Shadow test 1
* Fixed Skipped Shadow test 2
* Fixed Skipped Shadow test 3
* Removed stale test
* Removed stale test2
* Explicit unregister of event handler on Application.Driver!.ClearedContents
* Added Toplevels to dict
* code cleanup
* spelling error
* Removed stale test3
* Removed stale test4
* Removed stale test5
* added script
* tweaked script
* tweaked script
* Created StressTests project; moved some tests
* Created IntegrationTests project; moved some tests
* New yml
* made old yml just unit tests
* Tweaked Button_IsDefault_Raises_Accepted_Correctly
* tweaked script
* cleaned up ymls
* tweakled up ymls
* stress tests...
* stress tests on ubuntu only
* Fixed WindowsDriver in InvokeLeakTest
* Fixed WindowsDriver in InvokeLeakTest2
* Added Directory.Packages.props.
Added Directory.Build.props
* Shortened StressTest time
* Removed dupe file.
* DemoFiles
* Moved all tests to ./Tests dir.
* Fixed release build issue
* Fixed .sln file
* Fixed .sl* files
* Fixing ymls
* Fixing interation tests
* Create link to the file TestHelpers.
* Created Tests/UnitTestsParallelizable.
Moved all obviously parallelizable tests.
Updated yml.
* fixing logs
* fixing logs2
* fixing logs3
* don't require stress to pass for PRs
* Fix a failure?
* tweaked script
* Coudl this be it?
* Moved tons of tests to parallelizable
* Fixed some stuff
* Script to find duplicate tests
* Testing workflows
* Updated to v4
* Fix RelativeBasePath issue
* Replace powershell to pwsh
* Add ignore projects.
* Removed dupe unit tests
* Code cleanup of tests
* Cleaned up test warnings
* yml tweak
* Moved setter
* tweak ymls
* just randomly throwing spaghetti at a wall
* Enable runing 5 test runners in par
* Turned off DEBUG_DISPOSABLE for par tests
* RunningUnitTests=true
* code cleanup (forcing more Action runs)
* DISABLE_DEBUG_IDISPOSABLE
* Added View.DebugIDisposable. False by default.
* Remobed bogus tareet
* Remobed bogus tareet2
* fixed warning
* added api doc
* fixed warning
* fixed warning
* fixed warning2
* fixed warning3
* fixed warning4
---------
Co-authored-by: BDisp <bd.bdisp@gmail.com>
* Add async support stuff
* Set main thread id
* Add v2 test to ensure `TaskScheduler.FromCurrentSynchronizationContext` works
* Remove uneeded async
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Fixes#3930. Tests are crashing again...
* Clear the source settings on test.
* Just call CM.Reset.
* Fix one more test 'not run' because of the use of enums in parameters
* Replace void to Task
- v2 auto picks based on OS
- v2win is the new windows interop driver
- v2net is the new dotnet core cross platform driver
Co-authored-by: Tig <tig@users.noreply.github.com>
* Skip WindowsConsole StringBuilder append ANSI escape sequence intermediate string allocations
Appending InterpolatedStringHandler directly to StringBuilder skips the formatting related intermediate string allocation. This should also be usable in other console implementation but currently I have no WSL etc. setup to actually verify correct functionality.
* Add CSI_Set* and CSI_Append* comparison benchmark
* Clean up CSI_SetVsAppend benchmark
* Change benchmark names to match the method group
* Tons of API doc updates
* Added logging control to UICatalog
* Added logging control to UICatalog - more
* fixed minor issues
* removed logs from .gitignore
* Fixed log file path
* Fixed app desc
* Replace Region.Contains LINQ lambdas with foreach loop
Removes the lambda func allocations caused by captured outer variables.
* Replace LineCanvas.Has LINQ lambda with foreach loop
* Fix LineCanvas.GetMap intersects array nullability
It should be enough to add null-forgiving operator somewhere in the LINQ query to make the final result non-null. No need to shove the nullability further down the line to complicate things. :)
* Replace LineCanvas.All LINQ lambda with foreach loop
* Replace Region.Intersect LINQ lambdas and list allocation with foreach loop and rented array
* Use stackalloc buffer in Region.Intersect when max 8 rectangles
* Fix LineCanvas.GetCellMap intersects array nullability
* Remove leftover LineCanvas.GetRuneForIntersects null-conditional operators
* Remove leftover IntersectionRuneResolver.GetRuneForIntersects null-conditional operators
* PosAlign.CalculateMinDimension: calculate sum during loop
No need to first put the dimensions in a list and then sum the list when you can just add to sum while looping through dimensions.
* PosAlign.CalculateMinDimension: Remove intermediate list and related filter func allocation
* TextFormatter.GetRuneWidth: Remove intermediate list and related sum func allocation
* ReadOnlySpan refactor preparation for GetCellMap rewrite
* LineCanvas.GetCellMap: Reuse intersection list outside nested loops
GetCellMap would not benefit much from array pool because IntersectionDefinition is not struct. This change eliminates majority of the rest of Func<,> allocations. As a bonus IntersectionDefinition[] allocations dropped nicely.
* Refactor local method UseRounded
* Wrap too long list of method parameters
* Region: Consistent location for #nullable enable
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Add benchmarks for potentially optimizable RuneExtensions
* Add new RuneExtensions.DecodeSurrogatePair benchmark implementation
Avoids intermediate heap array allocations which is especially nice when the rune is not surrogate pair because then array heap allocations are completely avoided.
* Enable nullable reference types in RuneExtensions
* Make RuneExtensions.MaxUnicodeCodePoint readonly
Makes sure no one can accidentally change the value. Ideally would be const value.
* Optimize RuneExtensions.DecodeSurrogatePair
* Remove duplicate Rune.GetUnicodeCategory call
* Add new RuneExtensions.IsSurrogatePair benchmark implementation
Avoids intermediate heap allocations by using stack allocated buffer.
* Optimize RuneExtensions.IsSurrogatePair
* Add RuneExtensions.GetEncodingLength tests
* Optimize RuneExtensions.GetEncodingLength
* Optimize RuneExtensions.Encode
* Print encoding name in benchmark results
* Rename variable to better match return description
* Add RuneExtensions.EncodeSurrogatePair benchmark
---------
Co-authored-by: Tig <tig@users.noreply.github.com>