Commit Graph

173 Commits

Author SHA1 Message Date
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
Oliver Booth 3847d53120
Add more LINQ-esque methods
* IEnumerable<T>.CountWhereNot(Func<T, bool>)
* IEnumerable<T>.FirstWhereNot(Func<T, bool>)
* IEnumerable<T>.FirstWhereNotOrDefault(Func<T, bool>)
* IEnumerable<T>.LastWhereNot(Func<T, bool>)
* IEnumerable<T>.LastWhereNotOrDefault(Func<T, bool>)
* IEnumerable<T>.WhereNot(Func<T, bool>)
2022-07-30 23:53:35 +01:00
Oliver Booth 02765b8b19
Add IList<T>.Swap (#62) 2022-07-14 10:22:37 +01:00
Oliver Booth c0395feba3
Add GetClosestConsoleColor (#66) 2022-07-13 14:18:12 +01:00
Oliver Booth 46bfa17b93
Add vector and point component rounding (#65) 2022-07-13 12:09:37 +01:00
Oliver Booth b1eadf61f4
Add PopCount for built-in integer types 2022-07-08 13:09:34 +01:00
Oliver Booth 2e8626a32b
Add DirectoryInfo.Clear (#63) 2022-06-21 13:57:20 +01:00
Oliver Booth 3d896ea5d1
Add IList<T>.RemoveRange(Range) 2022-06-03 11:53:40 +01:00
Oliver Booth 3b78235957
Add tests for 3D shapes 2022-06-01 19:43:52 +01:00
Oliver Booth f02de2ad14
Refer to points as vertices in unit tests 2022-06-01 19:43:24 +01:00
Oliver Booth 0b3bf01fa0
Convert Polygon/F to class
This change also now refers to "Points" as "Vertices"
2022-06-01 18:30:48 +01:00
Oliver Booth b0cce087b3
Add additional ctor overloads for Ellipse/F 2022-06-01 17:05:25 +01:00
Oliver Booth ea56f2be48
Add Line3D 2022-06-01 16:47:03 +01:00
Oliver Booth b666b272a1
Add missing unit tests, bumps coverage to 99% 2022-06-01 15:36:45 +01:00
Oliver Booth 5e835e10f1
Add Ellipse struct 2022-06-01 15:36:18 +01:00
Oliver Booth b5227f58d3
Code cleanup for X10D.Tests 2022-06-01 15:35:00 +01:00
Oliver Booth e9b0ed08d4
Add primitive 2D structs to complement System.Drawing types 2022-06-01 13:46:22 +01:00
Oliver Booth f35f398d7f
Add conversions between Size(F)/Point(F)/Vector and Rect/Rectangle(F) 2022-05-28 14:19:46 +01:00
Oliver Booth 7ca206721b
Add MathUtility.InverseLerp (#60) 2022-05-23 10:33:52 +01:00
Oliver Booth 683e02cc2a
Add RoundUpToPowerOf2 2022-05-18 11:55:47 +01:00
Oliver Booth d312d05f7a
Add vector tuple deconstruction 2022-05-16 10:30:55 +01:00
Oliver Booth 23e07b65b8
Add [ReadOnly]Span<T>.Count(Predicate<T>) 2022-05-12 13:52:04 +01:00
Oliver Booth 4d19e2f64c
Add Vector.With* methods (resolves #56) 2022-05-09 10:33:21 +01:00
Oliver Booth d904daf431
Add Color.With* methods (resolves #55) 2022-05-09 10:01:03 +01:00
Oliver Booth 176ad9fa09
[ci skip] Define colors as fields 2022-05-09 09:59:03 +01:00
Oliver Booth aa30abea93
Add Color.Inverted (#54) 2022-05-08 19:52:49 +01:00