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
799bc77ec8
Add IsEmpty/IsWhiteSpace and IsNullOrEmpty/WhiteSpace for string
2023-02-28 19:05:03 +00:00
041181cc5a
Add IEnumerable<T?>.WhereNotNull()
2023-02-27 21:11:37 +00:00
d1959f4ba6
[ci skip] Add unit tests for IsOnLine
2023-02-27 17:05:59 +00:00
3fc2e7259e
Add Random.NextFrom([ReadOnly]Span<T>)
2023-02-27 13:15:20 +00:00
d1454a1170
[ci skip] Add unit tests for ScaleRange
...
Add Aggressive implementations, and annotate as Pure
2023-02-26 13:33:01 +00:00
795d696eca
Add GammaToLinear and LinearToGamma ( #60 )
2023-02-26 13:10:59 +00:00
ca1b1ccbf2
Add GreatestCommonFactor for built-in integer types
2023-02-26 12:25:50 +00:00
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
d9cf9c8db5
Add Nullable<T>.TryGetValue ( resolves #61 )
2023-02-26 00:35:22 +00:00
35591b05e2
Add ReadOnlySpan<char> overload for TimeSpanParser
...
Also tidies up the code here to reduce complexity
2022-12-22 20:19:52 +00:00
9d6dbaaa23
Add Quaternion.ToAxisAngle and Quaternion.ToVector3
2022-12-06 01:08:35 +00:00
b60fdc495b
Add IReadOnlyList<T>.Slice
2022-12-01 13:51:30 +00:00
e02fd3b1b4
Add IReadOnlyList<T>.IndexOf
2022-12-01 12:28:33 +00:00
9c2f77b203
Remove invalid DirectoryInfo.Clear test
2022-12-01 12:28:05 +00:00
7776138909
Remove calls to no-longer-existing Clear(bool)
2022-11-29 17:27:33 +00:00
271305b056
Add .NET 7 target
2022-11-29 15:51:22 +00:00
53e8b2ff64
Repurpose Span<T>.Split to accept generic
2022-11-29 12:39:34 +00:00
ed8651172b
Add [ReadOnly]Span<char>.Split
...
This commit also migrates CountSubstring from StringExtensions to CharSpanExtensions
2022-11-28 02:59:46 +00:00
9cce13727d
Add CountSubstring
2022-11-26 09:31:36 +00:00
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
02765b8b19
Add IList<T>.Swap ( #62 )
2022-07-14 10:22:37 +01:00
c0395feba3
Add GetClosestConsoleColor ( #66 )
2022-07-13 14:18:12 +01:00
46bfa17b93
Add vector and point component rounding ( #65 )
2022-07-13 12:09:37 +01:00
b1eadf61f4
Add PopCount for built-in integer types
2022-07-08 13:09:34 +01:00
2e8626a32b
Add DirectoryInfo.Clear ( #63 )
2022-06-21 13:57:20 +01:00
3d896ea5d1
Add IList<T>.RemoveRange(Range)
2022-06-03 11:53:40 +01:00
3b78235957
Add tests for 3D shapes
2022-06-01 19:43:52 +01:00
f02de2ad14
Refer to points as vertices in unit tests
2022-06-01 19:43:24 +01:00
0b3bf01fa0
Convert Polygon/F to class
...
This change also now refers to "Points" as "Vertices"
2022-06-01 18:30:48 +01:00
b0cce087b3
Add additional ctor overloads for Ellipse/F
2022-06-01 17:05:25 +01:00
ea56f2be48
Add Line3D
2022-06-01 16:47:03 +01:00
b666b272a1
Add missing unit tests, bumps coverage to 99%
2022-06-01 15:36:45 +01:00
5e835e10f1
Add Ellipse struct
2022-06-01 15:36:18 +01:00
b5227f58d3
Code cleanup for X10D.Tests
2022-06-01 15:35:00 +01:00
e9b0ed08d4
Add primitive 2D structs to complement System.Drawing types
2022-06-01 13:46:22 +01:00
f35f398d7f
Add conversions between Size(F)/Point(F)/Vector and Rect/Rectangle(F)
2022-05-28 14:19:46 +01:00
7ca206721b
Add MathUtility.InverseLerp ( #60 )
2022-05-23 10:33:52 +01:00
683e02cc2a
Add RoundUpToPowerOf2
2022-05-18 11:55:47 +01:00
d312d05f7a
Add vector tuple deconstruction
2022-05-16 10:30:55 +01:00
23e07b65b8
Add [ReadOnly]Span<T>.Count(Predicate<T>)
2022-05-12 13:52:04 +01:00
4d19e2f64c
Add Vector.With* methods ( resolves #56 )
2022-05-09 10:33:21 +01:00
d904daf431
Add Color.With* methods ( resolves #55 )
2022-05-09 10:01:03 +01:00
176ad9fa09
[ci skip] Define colors as fields
2022-05-09 09:59:03 +01:00
aa30abea93
Add Color.Inverted ( #54 )
2022-05-08 19:52:49 +01:00
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
ed2920f8a0
Multi-target X10D.Tests
2022-05-07 23:16:06 +01:00
39ccf1f198
Denote CLS-noncompliant tests as such
2022-05-07 23:14:07 +01:00
0e726e9cd8
Cast sbyte values
...
Rename test file to SByteTests.cs
2022-05-07 23:12:28 +01:00
adf2281f21
Add DisposeAll(Async) and ClearAndDisposeAll(Async)
2022-05-02 22:31:09 +01:00
fd53b41610
Move EnumerableTests to Collections namespace
2022-05-02 22:27:21 +01:00
5d3a82a33a
Add IEnumerable<T>.For and ForEach ( #50 )
2022-05-01 22:25:37 +01:00
6505299c00
Move Stream extensions to IO namespace ( #7 )
...
* Finalizes unit tests, 99% coverage
* Update CHANGELOG
2022-04-30 13:52:34 +01:00
a6139a5720
Migrate string extensions to appropriate namespaces ( #7 )
...
Introduces more tests
2022-04-30 13:08:39 +01:00
c13cc934b6
Move ListOfByteExtensions to IO namespace
...
Also introduces unit tests
2022-04-30 11:59:03 +01:00
5d5bc1e384
Add tests for NextUnitVector2/3 and NextRotation(Uniform)
2022-04-30 11:34:15 +01:00
8ba5a5ad19
Remove empty lines and unnecessary namespace imports
2022-04-30 11:33:48 +01:00
a7631b0efe
Add MultiplicativePersistence for integer types
2022-04-30 11:29:09 +01:00
3ae2827fd5
Fix precision errors by specifying delta 1e-6
2022-04-30 11:07:57 +01:00
7577fc1c99
"Fix" weird edge-case with Atanh returning incorrect value 1x10^-16
2022-04-30 10:41:27 +01:00
14148f751a
Add tests for ToConnectionString/ToGetParameters
2022-04-30 10:36:03 +01:00
2547d4a227
Add comprehensive math tests
...
Introduces extension methods for decimal
2022-04-30 10:15:36 +01:00
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
155a604812
Add FromUnixTime(Milli)Seconds for unsigned types
2022-04-29 23:21:00 +01:00
cacdf148d5
Add RotateLeft and RotateRight for integer types
2022-04-29 23:16:37 +01:00
06413fd710
Add comprehensive IsPrime tests
2022-04-29 21:57:41 +01:00
9006bdffa2
Add IDictionary.AddOrUpdate
2022-04-29 18:10:41 +01:00
d1de1625f2
Move ToHost/NetworkOrder to Net namespace ( #7 )
2022-04-29 17:45:43 +01:00
0f40bb2e31
[ci skip] Update MSTest 2.2.10
2022-04-29 11:24:56 +01:00
e7bdb20b19
Add tests for reflection extensions
2022-04-29 11:17:02 +01:00
dc3de3816e
Add T.RepeatValue(int)
2022-04-29 11:16:44 +01:00
5251408b15
Rename local IEnumerable to "enumerable"
2022-04-29 11:14:33 +01:00
ba6c400a79
Rename UnpackBits to Unpack, PacknBit to Pack(CLR type)
2022-04-28 22:58:58 +01:00
ef9c186684
Add IsLeapYear for DateTime(Offset) and numeric types
2022-04-28 10:27:32 +01:00
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
b743adb445
Rename n.To(n) to n.RangeTo(n)
2022-04-27 21:58:46 +01:00
d672032c44
[ci skip] Remove redundant GetBytes tests in /Core
2022-04-26 11:06:17 +01:00
5a88a06551
[ci skip] Move AsArrayValue tests to CoreTests
2022-04-26 11:04:09 +01:00
f7f3ea71bb
Append "Value" to AsArray/AsEnumerable, to reduce risk of LINQ collision
2022-04-26 10:45:18 +01:00
38ae5b0b7e
Move EnumExtensions to Core namespace ( #7 )
2022-04-26 10:22:59 +01:00
40a75e62c0
Add NextColorRgb and NextColorArgb
2022-04-26 09:55:08 +01:00
433d365a89
Move IO-related bool extensions to IO namespace ( #7 )
2022-04-25 22:26:22 +01:00
2ead3cbb8a
Add exhaustive Random tests
...
Introduces NextInt16 and NextByte
2022-04-25 22:14:11 +01:00
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
907687a883
[ci skip] Use more meaningful test names for EndPointTests
2022-04-25 10:34:49 +01:00
9a089a9ae2
Declare sliced Fill for IList<T> not T[]
2022-04-25 10:34:17 +01:00
1f9bbe9319
Capitalize IP acronym
2022-04-25 10:21:55 +01:00
7fb9459a91
Add tests for IsEven/IsOdd/DigitalRoot
2022-04-25 00:02:08 +01:00
b4f09e0a94
Move math-related extensions to Math namespace ( #7 )
2022-04-24 11:04:30 +01:00
2c2de1e30e
Add unsupported EndPoint tests
...
Satisfies 100% coverage
2022-04-24 10:48:16 +01:00
199b82b9a6
Fix nullability of AsEnumerable return type
2022-04-24 10:29:04 +01:00
e2a496face
Add tests for DateTime/Offset
2022-04-24 10:28:50 +01:00
30e925cdb0
Move additional methods into child namespaces ( #7 )
2022-04-24 10:09:56 +01:00
154a5566a8
Add Rune.Repeat
2022-04-23 12:38:19 +01:00
346fc72d5e
Move text-based char extensions to Text namespace ( #7 )
2022-04-23 12:37:49 +01:00
76191cb43a
[ci skip] Add additional Stream tests
2022-04-23 11:38:20 +01:00
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
224e465915
Move math-related extensions to Math namespace ( #7 )
2022-04-23 11:14:20 +01:00
7d227ad2a8
Added Factorial method
2022-04-23 10:21:07 +01:00
cfa27e0b4f
Move GetHash to child namespace ( #7 )
...
Also introduces TryWriteHash
2022-04-22 12:16:34 +01:00
ae24d94da2
Add tests for AsArray/AsEnumerable
2022-04-22 09:42:58 +01:00
47f1489cbb
Add string.FromJson T.ToJson
2022-04-22 09:42:37 +01:00
a5df7a9ee8
Move Extensions to Core namespace
2022-04-22 09:28:03 +01:00
f961530962
[ci skip] fix product formula in overflow comment
2022-04-22 09:12:35 +01:00
6a1f64f042
Move IEnumerable.Product tests to Linq namespace ( #7 )
2022-04-22 09:11:18 +01:00
d5a74c12a8
Move Span.Any/All to Linq namespace ( #7 )
2022-04-22 08:50:06 +01:00
0fb01726db
Add tests for Enumerable/List
2022-04-21 22:35:06 +01:00
118eeae46a
Remove _ from test names
2022-04-21 22:31:32 +01:00
4096265006
Move LINQ-inspired methods to child namespaces ( #7 )
2022-04-21 22:27:24 +01:00
a95b8fe3da
[ci skip] Remove unnecessary namespace import
2022-04-21 22:09:36 +01:00
e421b357fd
[ci skip] Add IpAddressTests
2022-04-21 21:44:24 +01:00
7086d36faa
[ci skip] Assert that null throws
2022-04-21 21:41:58 +01:00
e88494fae4
[ci skip] Fix incorrect test
2022-04-21 21:41:40 +01:00
734f327a66
Add tests for time-related extension methods
2022-04-21 21:37:20 +01:00
b9d5eca364
Add tests for Net.EndPointExtensions
2022-04-21 21:08:23 +01:00
ad36b915bc
[ci skip] Import namespaces for tests
2022-04-21 18:13:53 +01:00
95020e0db0
Move math-related extensions to child namespace ( #7 )
2022-04-21 17:43:56 +01:00
d9277dbbf6
Add tests for ComplexInfinity
2022-04-21 12:44:50 +01:00
9b9b75ae5b
Add Sqrt tests
2022-04-21 12:20:19 +01:00
4855ae8bf2
[ci skip] Use file-scoped namespaces for tests
2022-04-21 12:15:29 +01:00
3a58ed88c9
Add AsArray/AsEnumerable ( #47 )
2022-04-20 23:14:16 +01:00
af9449935f
Fix null input for WithAlternative test
2022-04-20 19:32:34 +01:00
85becd2415
Add Array.Fill
2022-04-20 19:27:06 +01:00
778d8c6cf1
Add Deg<->Rad tests
2022-04-20 18:48:43 +01:00
facc0834f0
Separate unwrapped Enum.Next/Previous to Unchecked overloads
2022-04-20 18:16:59 +01:00
4c81c218d5
Remove preview features
2022-04-20 17:34:49 +01:00
950c30f267
Update MSTest and Test SDK
2022-04-20 17:33:22 +01:00
3aaee23ebe
Add (some) missing tests
2022-04-20 17:33:02 +01:00
2128814db1
[ci skip] Use explicit type in tests
2022-04-20 17:31:16 +01:00
a645f56204
[ci skip] Add test for Enumerable.Shuffled
2022-04-20 16:47:15 +01:00
66e7e79561
Rename Clusivity enum to InclusiveOptions
...
https://sonarcloud.io/project/issues?fileUuids=AX9gUgFivY1Q2LeuiUva&pullRequest=43&id=oliverbooth_X10D&open=AX75E353Zn_cGN5aPZcQ
2022-04-20 16:35:44 +01:00
374933e45e
Add FileInfo.GetHash<T>
...
Wraps Stream.GetHash<T>, but saves the caller having to OpenRead themselves
2022-04-20 14:29:45 +01:00
3c60340bde
Add Product extension method
...
Computes the element-wise product, optionally with a transformation delegate
2022-04-20 14:07:16 +01:00
5509305c5a
Update string.With*Alternative tests
2022-03-06 17:36:58 +00:00
1c0768c472
Remove legacy tests
2022-02-14 16:25:59 +00:00
64bcb34a11
Introduce Between clusivity
2022-02-14 16:24:14 +00:00
6c27227c3e
Remove char.Random test
2022-02-14 16:04:57 +00:00
e0e7965557
Remove old tests
2022-02-14 16:03:55 +00:00
54848848ac
Enable implicit usings in tests csproj
2022-02-14 12:20:55 +00:00
375a382e1b
Bump to .NET 6, bump dependency versions
2022-02-14 12:18:35 +00:00
093a504467
Remove CA ruleset enforcement
2022-02-14 12:17:49 +00:00
3257428fad
Enable preview features in Tests csproj
2022-02-14 12:17:08 +00:00
920fadf639
Remove X10D.Unity dependency from Tests csproj
2022-02-14 12:16:28 +00:00
3592ec555e
Remove X10D.Unity from solution
2022-02-14 12:13:29 +00:00
1205290ab4
Fix typos in IsPrimeTests xmldoc
2021-07-20 14:51:09 +01:00
09e126fa08
Add IsPrime tests
2021-07-20 14:47:33 +01:00
132573e262
Update byte unit tests to reflect new API
2021-07-20 00:53:43 +01:00
1cc2300e83
Update BooleanTests to reflect new API
2021-07-19 12:53:49 +01:00
6e6d6c48fb
( #14 ) Declare using directives outside of namespace
2021-07-19 12:48:58 +01:00
1443d7d4cf
Update X10D.Unity to 2020.3.12.f1 LTS
2021-06-27 12:20:51 +01:00
188d662452
Update Tests project to .NET 5
2021-06-27 12:19:51 +01:00
937d701d14
Remove ruleset and unused analyzers
2021-03-07 18:00:17 +00:00
f7664ba8a8
🗑 Remove IConvertible extension methods
...
Fully resolves #13
2021-01-14 18:31:16 +00:00
2cf508f253
🚨 Add tests for latest methods
...
AsNullIfEmpty
AsNullIfWhiteSpace
Reverse
WithAlternative
2020-10-20 15:08:20 +01:00
5bc71bd426
✨ Add X10D.Unity
2020-07-15 14:33:40 +01:00
600b37fe82
🚚 Move X10D tests to Core namespace
2020-07-15 14:32:59 +01:00
a591b91c6c
✅ Add ReflectionTests
2020-04-21 04:17:19 +01:00
36d3014573
⚠ Treat warnings as errors
2020-04-21 03:45:02 +01:00
430eadee57
✅ Add tests for StringExtensions
2020-04-19 16:16:28 +01:00
4df2543181
➕ Add Roslynator.Analyzers
2020-04-19 14:31:29 +01:00
5034e1ceb4
👍 CLSCompliant assemblies
2020-04-19 14:13:46 +01:00
1780ae3a40
📕 Add XMLDoc to TimeSpanParserTests
2020-04-19 14:11:28 +01:00
b1a69a7711
🔨 Add code analysis ruleset
2020-04-19 14:10:42 +01:00
bf779bafec
✅ Add ToInt16 and ToInt64 in BooleanTests
2020-04-18 23:39:04 +01:00
e7bf572d09
🚨 Minor refactor in BooleanTests.cs
...
* const bool in Not()
* rename Xor() to XOr()
* conform XNOr() documentation
2020-04-18 23:14:48 +01:00
Timathy
a0de8ceb11
✨ Add logical operations in BooleanExtensions
...
Methods include:
* And
* Or
* Not
* XOr
* NAnd
* NOr
* XNOr
2020-04-18 22:50:26 +01:00
7e0de45b64
🚨 Fix ByteTests.GetString
...
Use unicode codepoint instead of raw literal
2020-04-18 17:43:51 +01:00
686b915be8
✅ Add MSTests project
2020-04-18 14:41:53 +01:00