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
Oliver Booth
d405faf6e2
Add IsEmoji method
...
Emoji validation is performed by using a regex which is generated from Twemoji. Source: https://raw.githubusercontent.com/twitter/twemoji-parser/master/src/lib/regex.js
2022-05-07 23:37:14 +01:00
Oliver Booth
ed2920f8a0
Multi-target X10D.Tests
2022-05-07 23:16:06 +01:00
Oliver Booth
39ccf1f198
Denote CLS-noncompliant tests as such
2022-05-07 23:14:07 +01:00
Oliver Booth
0e726e9cd8
Cast sbyte values
...
Rename test file to SByteTests.cs
2022-05-07 23:12:28 +01:00
Oliver Booth
adf2281f21
Add DisposeAll(Async) and ClearAndDisposeAll(Async)
2022-05-02 22:31:09 +01:00
Oliver Booth
fd53b41610
Move EnumerableTests to Collections namespace
2022-05-02 22:27:21 +01:00
Oliver Booth
5d3a82a33a
Add IEnumerable<T>.For and ForEach ( #50 )
2022-05-01 22:25:37 +01:00
Oliver Booth
6505299c00
Move Stream extensions to IO namespace ( #7 )
...
* Finalizes unit tests, 99% coverage
* Update CHANGELOG
2022-04-30 13:52:34 +01:00
Oliver Booth
a6139a5720
Migrate string extensions to appropriate namespaces ( #7 )
...
Introduces more tests
2022-04-30 13:08:39 +01:00
Oliver Booth
c13cc934b6
Move ListOfByteExtensions to IO namespace
...
Also introduces unit tests
2022-04-30 11:59:03 +01:00
Oliver Booth
5d5bc1e384
Add tests for NextUnitVector2/3 and NextRotation(Uniform)
2022-04-30 11:34:15 +01:00
Oliver Booth
8ba5a5ad19
Remove empty lines and unnecessary namespace imports
2022-04-30 11:33:48 +01:00
Oliver Booth
a7631b0efe
Add MultiplicativePersistence for integer types
2022-04-30 11:29:09 +01:00
Oliver Booth
3ae2827fd5
Fix precision errors by specifying delta 1e-6
2022-04-30 11:07:57 +01:00
Oliver Booth
7577fc1c99
"Fix" weird edge-case with Atanh returning incorrect value 1x10^-16
2022-04-30 10:41:27 +01:00
Oliver Booth
14148f751a
Add tests for ToConnectionString/ToGetParameters
2022-04-30 10:36:03 +01:00
Oliver Booth
2547d4a227
Add comprehensive math tests
...
Introduces extension methods for decimal
2022-04-30 10:15:36 +01:00
Oliver Booth
8d4f82e964
Remove Lerp extension methods
...
These extension methods lead to confusion with the parameter order, and so the advice now is to simply use MathUtility.Lerp directly
2022-04-29 23:24:59 +01:00
Oliver Booth
155a604812
Add FromUnixTime(Milli)Seconds for unsigned types
2022-04-29 23:21:00 +01:00
Oliver Booth
cacdf148d5
Add RotateLeft and RotateRight for integer types
2022-04-29 23:16:37 +01:00
Oliver Booth
06413fd710
Add comprehensive IsPrime tests
2022-04-29 21:57:41 +01:00
Oliver Booth
9006bdffa2
Add IDictionary.AddOrUpdate
2022-04-29 18:10:41 +01:00
Oliver Booth
d1de1625f2
Move ToHost/NetworkOrder to Net namespace ( #7 )
2022-04-29 17:45:43 +01:00
Oliver Booth
0f40bb2e31
[ci skip] Update MSTest 2.2.10
2022-04-29 11:24:56 +01:00
Oliver Booth
e7bdb20b19
Add tests for reflection extensions
2022-04-29 11:17:02 +01:00
Oliver Booth
dc3de3816e
Add T.RepeatValue(int)
2022-04-29 11:16:44 +01:00
Oliver Booth
5251408b15
Rename local IEnumerable to "enumerable"
2022-04-29 11:14:33 +01:00
Oliver Booth
ba6c400a79
Rename UnpackBits to Unpack, PacknBit to Pack(CLR type)
2022-04-28 22:58:58 +01:00
Oliver Booth
ef9c186684
Add IsLeapYear for DateTime(Offset) and numeric types
2022-04-28 10:27:32 +01:00
Oliver Booth
e08274189a
Add Pack/Unpack bits
...
Allows a bool list (no more than 64 in length) to be packed to an integer, which can be unpacked again
2022-04-28 09:47:48 +01:00
Oliver Booth
b743adb445
Rename n.To(n) to n.RangeTo(n)
2022-04-27 21:58:46 +01:00
Oliver Booth
d672032c44
[ci skip] Remove redundant GetBytes tests in /Core
2022-04-26 11:06:17 +01:00
Oliver Booth
5a88a06551
[ci skip] Move AsArrayValue tests to CoreTests
2022-04-26 11:04:09 +01:00
Oliver Booth
f7f3ea71bb
Append "Value" to AsArray/AsEnumerable, to reduce risk of LINQ collision
2022-04-26 10:45:18 +01:00
Oliver Booth
38ae5b0b7e
Move EnumExtensions to Core namespace ( #7 )
2022-04-26 10:22:59 +01:00
Oliver Booth
40a75e62c0
Add NextColorRgb and NextColorArgb
2022-04-26 09:55:08 +01:00
Oliver Booth
433d365a89
Move IO-related bool extensions to IO namespace ( #7 )
2022-04-25 22:26:22 +01:00
Oliver Booth
2ead3cbb8a
Add exhaustive Random tests
...
Introduces NextInt16 and NextByte
2022-04-25 22:14:11 +01:00
Oliver Booth
c4abef7be6
Move IO related methods to IO namespaces ( #7 )
...
Also renames more tests to be more meaningful
2022-04-25 17:09:49 +01:00
Oliver Booth
907687a883
[ci skip] Use more meaningful test names for EndPointTests
2022-04-25 10:34:49 +01:00
Oliver Booth
9a089a9ae2
Declare sliced Fill for IList<T> not T[]
2022-04-25 10:34:17 +01:00
Oliver Booth
1f9bbe9319
Capitalize IP acronym
2022-04-25 10:21:55 +01:00
Oliver Booth
7fb9459a91
Add tests for IsEven/IsOdd/DigitalRoot
2022-04-25 00:02:08 +01:00
Oliver Booth
b4f09e0a94
Move math-related extensions to Math namespace ( #7 )
2022-04-24 11:04:30 +01:00
Oliver Booth
2c2de1e30e
Add unsupported EndPoint tests
...
Satisfies 100% coverage
2022-04-24 10:48:16 +01:00
Oliver Booth
199b82b9a6
Fix nullability of AsEnumerable return type
2022-04-24 10:29:04 +01:00
Oliver Booth
e2a496face
Add tests for DateTime/Offset
2022-04-24 10:28:50 +01:00
Oliver Booth
30e925cdb0
Move additional methods into child namespaces ( #7 )
2022-04-24 10:09:56 +01:00
Oliver Booth
154a5566a8
Add Rune.Repeat
2022-04-23 12:38:19 +01:00
Oliver Booth
346fc72d5e
Move text-based char extensions to Text namespace ( #7 )
2022-04-23 12:37:49 +01:00
Oliver Booth
76191cb43a
[ci skip] Add additional Stream tests
2022-04-23 11:38:20 +01:00
Oliver Booth
68d1ea6f4d
[ci skip] Reduce chance of Shuffle tests failing
...
A list containing 5 elements has a 1/(5!) (1/120) chance of being shuffled to the same order. This was causing unit tests to fail locally by pure fluke. Tests now generate a list from 1-52, which has a 1/(52!) chance of shuffling to the same order, so the chance is basically 0. If these tests ran once per second, it would take 1.9x10^50 * age of the universe to hit a collision.
This still can happen. Randomness does not guarantee we won't hit the same order. The odds are just so astronomically small that it's not worth considering. And if the CI run fails due to these tests failing, just re-run them anyway and call it a day
2022-04-23 11:25:09 +01:00
Oliver Booth
224e465915
Move math-related extensions to Math namespace ( #7 )
2022-04-23 11:14:20 +01:00
Oliver Booth
7d227ad2a8
Added Factorial method
2022-04-23 10:21:07 +01:00
Oliver Booth
cfa27e0b4f
Move GetHash to child namespace ( #7 )
...
Also introduces TryWriteHash
2022-04-22 12:16:34 +01:00
Oliver Booth
ae24d94da2
Add tests for AsArray/AsEnumerable
2022-04-22 09:42:58 +01:00
Oliver Booth
47f1489cbb
Add string.FromJson T.ToJson
2022-04-22 09:42:37 +01:00
Oliver Booth
a5df7a9ee8
Move Extensions to Core namespace
2022-04-22 09:28:03 +01:00
Oliver Booth
f961530962
[ci skip] fix product formula in overflow comment
2022-04-22 09:12:35 +01:00
Oliver Booth
6a1f64f042
Move IEnumerable.Product tests to Linq namespace ( #7 )
2022-04-22 09:11:18 +01:00
Oliver Booth
d5a74c12a8
Move Span.Any/All to Linq namespace ( #7 )
2022-04-22 08:50:06 +01:00