Oliver Booth
8b4fd45e05
fix(test): assert vertex count against Polygon.Empty
2023-04-03 13:54:23 +01:00
Oliver Booth
262f191799
fix(test): assert ArgumentNullException only for .NET < 6
2023-04-03 13:47:59 +01:00
Oliver Booth
9985652c40
test: 100% coverage on RandomExtensions
2023-04-03 13:43:07 +01:00
Oliver Booth
b806e50ec1
[ci skip] style: remove unused using directives
2023-04-03 13:42:53 +01:00
Oliver Booth
6ef48fc3b9
test: 100% coverage on IntrinsicUtility ( #73 )
2023-04-03 13:41:41 +01:00
Oliver Booth
783c4b0f8e
test: add tests for integer Pack ( #73 )
2023-04-03 01:28:01 +01:00
Oliver Booth
92855ddbab
fix(test): remove invalid namespace imports
2023-04-02 23:15:22 +01:00
Oliver Booth
22d5f07215
test: add tests for ReadOnlySpan.Pack ( #73 )
...
1 failing test: PackInt32Internal_Sse2_ShouldReturnCorrectInt32_GivenReadOnlySpan
This will fail the dotnet workflow.
2023-04-02 23:14:38 +01:00
Oliver Booth
78cebbce8b
test: add unit tests for Span.Contains(Enum) ( #73 )
2023-04-02 22:11:45 +01:00
Oliver Booth
4fc0d01670
test: cover null input for IsIPv4 and IsIPv6
2023-04-02 21:59:35 +01:00
Oliver Booth
d68d893abd
test: 100% coverage on Reflection extensions
2023-04-02 20:48:15 +01:00
Oliver Booth
2c01b0e23a
build: remove Debug properties in test csproj
...
I believe these properties to be the cause of an issue with symbol verification when publishing X10D to nuget.org. I will report with status after this nightly run.
2023-04-02 15:53:54 +01:00
Oliver Booth
fdc0c6aa35
perf: fix performance of intrisics
...
This changes removes the CPU-arch support provider interfaces that were introduced with 87b6dbdd56
. That commit worsened the performance of the intrinsic methods because it resulted in a box when upcasting the System_SupportProvider value type to an interface, removing the potential for JIT to optimise the code path.
2023-04-02 15:17:28 +01:00
Oliver Booth
6b1dc2837a
test: bring coverage to 100% for Collections, Linq, Math, and Text
2023-04-02 04:16:33 +01:00
Oliver Booth
daff6ee3fe
fix: suppress .NET analyzer for test project
2023-04-02 03:31:37 +01:00
Oliver Booth
bf73ecce32
test: add unit tests for ServiceCollectionExtensions
2023-04-02 03:31:19 +01:00
Oliver Booth
85f4e8c733
test: bring coverage to 100% for AddOrUpdate
2023-04-02 01:16:12 +01:00
Oliver Booth
bfd3a5663d
[ci skip] ci: enable .NET analyzers for all projects
2023-04-02 01:11:14 +01:00
Oliver Booth
427563bfdb
[ci skip] test: CollectCoverage:true
2023-04-02 01:07:01 +01:00
Oliver Booth
e5ec06cfe5
[ci skip] test: output debug symbols
2023-04-02 01:06:38 +01:00
Oliver Booth
95cd3e8cbc
test: bring coverage to 100% for X10D.Collections.SpanExtensions
2023-04-02 00:36:31 +01:00
Oliver Booth
f10ff4a36c
test: add tests for Span<T>.Count
2023-04-02 00:18:47 +01:00
Oliver Booth
586057ba3d
test: add tests for ReverseElements ( #73 )
2023-04-01 23:48:08 +01:00
Oliver Booth
6f16c0df3c
test: add tests for CorrectBoolean ( #73 )
2023-04-01 23:40:41 +01:00
Oliver Booth
d7bf9d1788
style(test): remove throws of NotImplementedException
2023-04-01 22:00:40 +01:00
Oliver Booth
23282db3a9
fix(test): import X10D.Core for NextSingle to work on < net6.0
2023-04-01 22:00:11 +01:00
Oliver Booth
87b6dbdd56
test: bring coverage to 100% for integer Unpack ( #70 )
2023-04-01 21:56:45 +01:00
Oliver Booth
ca5f95bbf6
test: test RuneExtensions for .NET >= 5
2023-04-01 18:59:24 +01:00
Oliver Booth
e52e9096e0
feat: expose ComplexSqrt to all frameworks
2023-04-01 18:54:04 +01:00
Oliver Booth
1acee3bf72
fix(test): fix incorrect date being returned for .NET Standard 2.1
2023-04-01 18:20:44 +01:00
Oliver Booth
5714ef73c1
test: 100% coverage on stream Read/Write methods
2023-04-01 18:17:50 +01:00
Oliver Booth
2815c505c3
fix: fix incorrect float/double being written for netstandard2.1
...
The call to _To_Bits yields the result containing the same bytes, but not the same value. This value was then stored as-is into the parameter, which causes a conversion on how the value is stored, ultimately causing the wrong value to be written to the stream.
2023-04-01 17:11:05 +01:00
Oliver Booth
b2a27cdafb
fix(test): fix Clear unit test not creating the temp directory
2023-04-01 17:06:19 +01:00
Oliver Booth
35113fac27
test: run tests for .NET 7, 6, and Core 3.1
...
.NET Core 3.1 allows testing of the .NET Standard 2.1 implementation of X10D
2023-04-01 17:05:46 +01:00
Oliver Booth
dd325ba5c9
test: test Equals(object) for various Drawing types
...
This brings coverage to 100% for the affected types.
2023-04-01 00:30:51 +01:00
Oliver Booth
8b768f824c
test: add tests for Point.IsOnLine and PointF.IsOnLine
2023-04-01 00:30:04 +01:00
Oliver Booth
6e7e162ffe
test: 100% coverage on MultiplicativePersistence
2023-03-31 23:19:21 +01:00
Oliver Booth
3d2baf595b
test: 100% coverage on Wrap for all types
2023-03-31 20:37:50 +01:00
Oliver Booth
3f47a4ec44
[ci skip] test: rename Pack8Bit to PackByte
2023-03-31 20:23:56 +01:00
Oliver Booth
62034ded75
style(test): segment methods to partials
...
This changes introduces the Moq package to create mocked objects implementing IDisposable, rather than defining a concrete class.
2023-03-31 20:21:17 +01:00
Oliver Booth
f293f247e7
[ci skip] style: remove unused using directives
2023-03-31 20:18:01 +01:00
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
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