Commit Graph

198 Commits

Author SHA1 Message Date
Oliver Booth 708207305c
test: use fixed point of reference for Age tests 2023-03-31 20:15:59 +01:00
Oliver Booth 3734965757
test: bring coverage to 94% for RuneExtensions 2023-03-31 20:11:03 +01:00
Oliver Booth e852726b66
test: 100% coverage on Enumerable and String methods in Text namespace 2023-03-31 18:53:08 +01:00
Oliver Booth 369882c1e8
[ci skip] style: remove unused using directives 2023-03-31 18:52:12 +01:00
Oliver Booth 275d98fbf8
feat: add LowestCommonMultiple for built-in integer types
This was previously incorrectly documented in CHANGELOG.md. The method now exists. Sorry about that
2023-03-31 18:07:50 +01:00
Oliver Booth 9ee99d72d3
[ci skip] style: upgrade projects to C# 11
NB: While using a higher C# version with lower framework version is possible, it's generally advised against because C# syntax may map to .NET types not available in older versions such as .NET Standard 2.1.

This change does not invite the codebase to upgrade to newer types, but rather take advantage of syntax sugar (such as file-scoped namespaces, when this project was updated to C# 10) that does not effect the compiled result.

However, this change does open up the possibilities to add extension methods for the "generic math" interfaces (made possible by static interface members), and these upcoming methods will be targeted to .NET 7 or greater **ONLY**.
2023-03-31 17:30:30 +01:00
Oliver Booth 4cd669a200
[ci skip] fix(test): force enumeration of lazy enumerable 2023-03-31 15:11:50 +01:00
Oliver Booth 14e638e6d9
feat: add IEnumerable<T>.ConcatOne 2023-03-31 14:53:02 +01:00
Oliver Booth cd4c3542f7
fix: use intrinsic convention for ToVector3 2023-03-31 01:31:19 +01:00
Oliver Booth 4c62367303
test: cover Span<char> overloads of CountSubstring 2023-03-30 21:22:45 +01:00
Oliver Booth f30c052673
test: 100% coverage for TimeSpanParser.TryParse 2023-03-30 20:44:45 +01:00
Oliver Booth 628ead1ebb
test: add tests for GetIso8601WeekOfYear 2023-03-30 20:44:32 +01:00
Oliver Booth 76810408f2
[ci skip] style(test): suppress IteratorNeverReturns warning 2023-03-30 20:18:17 +01:00
Oliver Booth 3ce8d281b7
feat: add TextReader.EnumerateLines/Async 2023-03-30 17:55:41 +01:00
Oliver Booth 4f3f791948
[ci skip] test: assert ArgumentNullException from Grep 2023-03-30 17:49:00 +01:00
Oliver Booth d0f94a6493
feat: add IEnumerable<string>.Grep() 2023-03-30 17:29:54 +01:00
Oliver Booth f49188b428
feat: add string.EnsureEndsWith and string.EnsureStartsWith 2023-03-30 02:09:04 +01:00
Oliver Booth f5b53cd3f6
[ci skip] test: remove netstandard2.1 from test csproj 2023-03-29 17:55:00 +01:00
Oliver Booth 4dd31ec1b6
[ci skip] style: reformat & cleanup solution 2023-03-29 17:46:56 +01:00
Oliver Booth 436f56d912
feat: add Saturate for floating point types (#60) 2023-03-29 16:21:16 +01:00
Oliver Booth 121c3a388a
test: 100% coverage on EnumerableExtensions 2023-03-28 16:28:38 +01:00
Oliver Booth 9bb9c9692a
tests: 100% coverage on Circle and CircleF 2023-03-28 16:09:35 +01:00
Oliver Booth 3e4d9603c0
test: cover Color.Deconstruct 2023-03-28 15:54:06 +01:00
Oliver Booth 3121b23732
fix(tests): fix incorrect timezone offset for DST 2023-03-28 14:54:11 +01:00
Oliver Booth 55cae2f454
test: update test project dependencies
- Microsoft.NET.Test.Sdk 17.5.0
- MSTest.* 3.0.2
- coverlet.collector 3.2.0
2023-03-28 14:54:11 +01:00
Oliver Booth 3b85419da3
Add MinMax and MinMaxBy (resolves #72) 2023-03-26 17:03:40 +01:00
RealityProgrammer 77b0a8ca39 Move some intrinsic methods around, reimplement RuneExtensions.Repeat(Rune, Int32) 2023-03-14 21:18:01 +07:00
Oliver Booth a685d6ec39
Merge branch 'develop' into main 2023-03-07 17:30:15 +00:00
RealityProgrammer e176f65e97 Commit git's untracked files 2023-03-07 16:50:04 +07:00
RealityProgrammer 6f343cd393 Fast Int16 packing 2023-03-07 08:58:53 +07:00
RealityProgrammer 5e4044f965 Code fixup, fast Int8 packing 2023-03-06 10:39:58 +07:00
Oliver Booth 799bc77ec8
Add IsEmpty/IsWhiteSpace and IsNullOrEmpty/WhiteSpace for string 2023-02-28 19:05:03 +00:00
Oliver Booth 041181cc5a
Add IEnumerable<T?>.WhereNotNull() 2023-02-27 21:11:37 +00:00
Oliver Booth d1959f4ba6
[ci skip] Add unit tests for IsOnLine 2023-02-27 17:05:59 +00:00
Oliver Booth 3fc2e7259e
Add Random.NextFrom([ReadOnly]Span<T>) 2023-02-27 13:15:20 +00:00
Oliver Booth d1454a1170
[ci skip] Add unit tests for ScaleRange
Add Aggressive implementations, and annotate as Pure
2023-02-26 13:33:01 +00:00
Oliver Booth 795d696eca
Add GammaToLinear and LinearToGamma (#60) 2023-02-26 13:10:59 +00:00
Oliver Booth ca1b1ccbf2
Add GreatestCommonFactor for built-in integer types 2023-02-26 12:25:50 +00:00
Oliver Booth d461c464df
Rewrite TimeSpanParserTests
The tests previously worked on the assumption that TryParse would throw an exception on null argument. This was changed with 94a841b2fc but the tests were not updated to reflect that
2023-02-26 00:46:01 +00:00
Oliver Booth d9cf9c8db5
Add Nullable<T>.TryGetValue (resolves #61) 2023-02-26 00:35:22 +00:00
Oliver Booth 35591b05e2
Add ReadOnlySpan<char> overload for TimeSpanParser
Also tidies up the code here to reduce complexity
2022-12-22 20:19:52 +00:00
Oliver Booth 9d6dbaaa23
Add Quaternion.ToAxisAngle and Quaternion.ToVector3 2022-12-06 01:08:35 +00:00
Oliver Booth b60fdc495b
Add IReadOnlyList<T>.Slice 2022-12-01 13:51:30 +00:00
Oliver Booth e02fd3b1b4
Add IReadOnlyList<T>.IndexOf 2022-12-01 12:28:33 +00:00
Oliver Booth 9c2f77b203
Remove invalid DirectoryInfo.Clear test 2022-12-01 12:28:05 +00:00
Oliver Booth 7776138909
Remove calls to no-longer-existing Clear(bool) 2022-11-29 17:27:33 +00:00
Oliver Booth 271305b056
Add .NET 7 target 2022-11-29 15:51:22 +00:00
Oliver Booth 53e8b2ff64
Repurpose Span<T>.Split to accept generic 2022-11-29 12:39:34 +00:00
Oliver Booth ed8651172b
Add [ReadOnly]Span<char>.Split
This commit also migrates CountSubstring from StringExtensions to CharSpanExtensions
2022-11-28 02:59:46 +00:00
Oliver Booth 9cce13727d
Add CountSubstring 2022-11-26 09:31:36 +00:00